project 03
Autonomous Unmanned Ground Vehicle
An embedded systems project developed within a technology development society, combining real-time object detection, obstacle avoidance and autonomous driving algorithms.
- Category
- Embedded & Robotics
- Role
- Autonomous algorithms and embedded computer vision
- Year
- 2025 – 2026
technologies used
- Python
- C++
- ROS2
- YOLOv8
- Jetson Orin Nano
- CUDA
- OpenCV
problem
Problem
On rough terrain and in fields containing obstacles, the vehicle had to perceive its environment in real time, avoid obstacles and follow a target route without human intervention. The real difficulty: seeing an obstacle isn't enough — the decision has to be made before impact, and on a power-constrained embedded board at that.
solution
Solution
I built a distributed ROS2 node architecture in which the sensing, decision and motion layers run as independent nodes communicating over low-latency message channels. I optimised the YOLOv8 model with CUDA acceleration on a Jetson Orin Nano to build the detection pipeline; the positions of detected objects feed directly into the motor driver control algorithms.
outcome
Outcome
The outcome is a working autonomous ground vehicle platform with real-time obstacle detection and dynamic route correction, field-tested on demanding courses.
key features
- 01High-FPS object and obstacle detection with CUDA-accelerated YOLOv8 on a Jetson Orin Nano.
- 02Distributed ROS2 node architecture separating the sensing, decision and motion layers.
- 03Low-latency delivery of detected object positions to the motor driver control algorithms.
- 04Dynamic route correction, field-tested on demanding terrain.
why these choices
Why CUDA-accelerated YOLOv8?
Lightweight CPU models such as MobileNet would have consumed less power, but lost accuracy on the small and complex obstacles found in the field. Hardware acceleration on the Jetson made it possible to reach high FPS without sacrificing accuracy.
Why ROS2?
The camera, the sensors and the motor control all needed to run independently of one another. ROS2's node architecture made it possible to replace one part without breaking the others.
Why the Jetson Orin Nano?
The onboard system had to support CUDA while staying within a power budget that the vehicle's battery could sustain.