Autonomous Robots: Perception, Control, and Navigation
Project Details
- Role: Student
- Project Type: University Course Project
- Core Concepts: Sensor Fusion, CI/CD
Technologies & Concepts
- C++ & OpenCV
- Docker & CI/CD Pipelines
- PID Controllers & Kalman Filters
- Simultaneous Localization and Mapping (SLAM)
- Microservice Architecture (OpenDLV)
Project Overview
This project was the centerpiece of the “Autonomous Robots” course, designed to bridge the gap between robotics theory and real-world application. Working with a physical KiwiCar robot, our team developed a complete perception, decision-making, and control pipeline. A major emphasis of the course was on implementing robust, modern software engineering practices, including a modular microservice architecture, containerization with Docker, and automated CI/CD pipelines for reliable testing and deployment.
Core Challenges & Solutions
The project was broken down into three increasingly complex tasks, each building upon the last:
1. Vision-Based Track Following
The initial task was to autonomously navigate a track marked by colored cones. We used OpenCV to process the camera feed, implementing color segmentation and contour detection to identify cone positions. A PID controller was then used to calculate the necessary steering adjustments, translating the visual perception of lane boundaries into smooth, continuous motion.
2. Sensor Fusion for Maze Navigation
The next challenge involved navigating a maze to find a target. This required moving beyond pure visual data. We implemented sensor fusion techniques to combine camera input with distance sensor readings (ultrasonic/IR). This created a more robust world model, allowing the robot to reliably detect walls, avoid collisions, and make intelligent pathfinding decisions.
3. Constrained Exploration & Task Management
The final task introduced high-level logic and state management. The robot had to explore a maze, find multiple goals, and crucially, return to a “recharge station” every two minutes before resuming its exploration. This required not only robust navigation but also an internal state machine to manage mission time, track discovered goals, and prioritize returning to base—a practical simulation of real-world operational constraints.
Key Concepts & Future Interests
This project provided practical experience with essential robotics concepts like PID control for low-level actuation and the principles of the Kalman Filter for state estimation and sensor fusion.
It also ignited a strong interest in more advanced topics. I am eager to apply these skills to future projects involving Simultaneous Localization and Mapping (SLAM) to enable a robot to build a map of an unknown environment while tracking its own position. Furthermore, I am fascinated by the potential of Visual Odometry to estimate a robot’s motion purely from its camera feed, a critical capability for GPS-denied environments.
Conclusion
Through this project, I successfully developed and deployed a multi-layered autonomous system on a physical platform. It was an invaluable experience that solidified my understanding of the full robotics stack—from low-level sensor processing and control to high-level decision-making. More importantly, it provided rigorous training in creating modular, maintainable, and scalable robotics software using industry-standard CI/CD and containerization workflows.
