Computer vision / 2024 — 2025
Autonomous Rover Navigation
From camera pixels to a navigation signal.

01 / THE PROBLEM
Perception in motion.
A rover needs to turn visual cues into a navigation signal under changing outdoor conditions. Detecting an arrow is only one part of the problem; its position must reach the robotics stack in a useful form.
My contribution
AI/ML developer · Rover teamI built the arrow detection pipeline, assembled annotated training images and integrated perception with the ROS 2 navigation workflow for competition trials.
02 / TECHNICAL APPROACH
Inside the
implementation.
- 01
The project explores classical OpenCV methods and YOLO-based detection. The YOLOv8n training configuration uses a 640-pixel input size and batch size 16.
- 02
A ROS 2 node subscribes to image_raw, converts the message using CvBridge and sends the frame to a YOLO model with a 0.5 confidence threshold.
- 03
For each detected box, the node computes horizontal deviation from the frame center, publishes it in a Twist message on yolo_info and displays annotated frames.
- 04
The Roboflow dataset export contains 1,244 images with auto-orientation and 1024 × 1024 resizing before model-specific preprocessing.
03 / SYSTEM ARCHITECTURE
Follow the signal.
Select a stage to explore
how the system works.
Camera topic
ROS 2 sensor_msgs/Image messages arrive on image_raw.
05 / RESULTS & OUTCOMES
What the work delivers.
The rover team placed 14th among 32 teams at the International Rover Challenge 2025. The perception pipeline turns detected arrows into position signals that the navigation stack can consume.
Scope & limitations
- The visual is a saved training mosaic with annotations, not a live inference or tracking demo.
- Detection is frame-based; the pipeline does not track object identities across frames.
- Public source includes local model paths that need configuration before running on another machine.
06 / ENGINEERING DECISIONS
The interesting
constraints.
Perception has to leave the notebook
The ROS node makes the detector’s result available to other processes through a concrete message interface.
Keeping coordinates useful
A bounding box alone is not a navigation command. Expressing its center relative to the frame gives the robotics stack a consistent signal to interpret.
Perception becomes useful when the output, timing and coordinate conventions fit the system consuming it.
07 / BUILDING BLOCKS
Tools with
a purpose.
- Python / OpenCV
- Frame processing and visualization
- YOLOv8
- Arrow detection experiments
- ROS 2 / CvBridge
- Camera and navigation messaging
Go to the source
NEXT PROJECT / 03