Depth-Based Lunar Rover Navigation
Budget: $250 – $750 USD
I already have LunarSim running under ROS 2 Humble on Ubuntu 22.04.5 LTS and now need a plug-and-play execution layer that lets the simulated rover travel a user-defined distance in both X and Y while it autonomously skirts any rocks in its path.
Key points of the job
• Use the depth images published on /lunarsim/depth_image/depth as the sole sensing source.
• Apply a classical computer-vision approach (OpenCV, PCL or similar) to detect rocks—no machine-learning training loops, just reliable depth-based segmentation.
• When a rock is detected, perform a simple avoidance manoeuvre: veer around the obstacle, re-establish the original heading, and keep going. No global mapping or heavy path planning required.
• Drive the rover exclusively through velocity commands so it behaves smoothly inside the simulator.
Deliverables
• A clean ROS 2 Humble package containing the navigation node(s), publishers/subscribers, and any helper libraries.
• Launch file(s) that start the simulator interface, the obstacle-detection node, and the motion controller in one command.
• Parameters for target X/Y distance, speed, safety margin, and timeout, all exposed through ROS 2 params.
• README with build instructions (colcon), topic diagram, and a quick demo sequence I can reproduce.
Acceptance test
1. Build and source the package in a fresh workspace.
2. Launch the system; specify e.g., X = 10 m, Y = 5 m.
3. Rover reaches the requested offset within a reasonable tolerance (<10 cm) without colliding with any rocks, issuing only velocity commands throughout the run.
If something in my environment is unclear, let me know early—otherwise I look forward to integrating your package and watching the rover drive itself.
Key points of the job
• Use the depth images published on /lunarsim/depth_image/depth as the sole sensing source.
• Apply a classical computer-vision approach (OpenCV, PCL or similar) to detect rocks—no machine-learning training loops, just reliable depth-based segmentation.
• When a rock is detected, perform a simple avoidance manoeuvre: veer around the obstacle, re-establish the original heading, and keep going. No global mapping or heavy path planning required.
• Drive the rover exclusively through velocity commands so it behaves smoothly inside the simulator.
Deliverables
• A clean ROS 2 Humble package containing the navigation node(s), publishers/subscribers, and any helper libraries.
• Launch file(s) that start the simulator interface, the obstacle-detection node, and the motion controller in one command.
• Parameters for target X/Y distance, speed, safety margin, and timeout, all exposed through ROS 2 params.
• README with build instructions (colcon), topic diagram, and a quick demo sequence I can reproduce.
Acceptance test
1. Build and source the package in a fresh workspace.
2. Launch the system; specify e.g., X = 10 m, Y = 5 m.
3. Rover reaches the requested offset within a reasonable tolerance (<10 cm) without colliding with any rocks, issuing only velocity commands throughout the run.
If something in my environment is unclear, let me know early—otherwise I look forward to integrating your package and watching the rover drive itself.
Related categories:
Python
CUDA
Machine Learning (ML)
C++ Programming
Ubuntu
OpenCV
Computer Vision
Simulation
Robot Operating System (ROS)