A vision-guided autonomous omnidirectional mobile robot that detects, predicts and autonomously acquires moving targets using computer vision, state estimation and closed-loop control.
AODAS (Autonomous Object Detection & Acquisition System) is an embedded robotics platform built around a Raspberry Pi 5 that combines perception, state estimation and control into a complete autonomous system.
The robot captures live video from a wide-angle camera, detects a coloured target using OpenCV, predicts target motion using a four-state Kalman Filter and continuously generates motion commands through a PD controller to drive a four-wheel omnidirectional Mecanum platform.
Unlike a conventional vision tracker, AODAS is designed as a complete robotics system that integrates sensing, estimation, decision making and actuation in real time.
| Category | Specification |
|---|---|
| Compute | Raspberry Pi 5 |
| Camera | 170° Wide-Angle Camera |
| Programming Language | Python |
| Vision | OpenCV |
| Detection | HSV Segmentation + Dual-Tier Contour Detection |
| State Estimation | 4-State Kalman Filter |
| Motion Control | PD Controller |
| Mobility | Four-Wheel Omnidirectional Mecanum Drive |
| Motor Drivers | Dual L298N |
| Processing Speed | ~60 FPS |
- Real-time computer vision pipeline
- Dual-tier contour detection for robust target localisation
- Predictive target tracking using a Kalman Filter
- Closed-loop PD motion controller
- Omnidirectional Mecanum drive platform
- Lost-target recovery through state prediction
- Raspberry Pi 5 embedded implementation
- Thermal monitoring for reliable operation
The system is divided into four functional stages:
- Perception
- State Estimation
- Motion Control
- Motor Actuation
This separation simplifies debugging, maintenance and future upgrades.
Every frame passes through the following stages:
- Frame Acquisition
- HSV Colour Conversion
- Colour Thresholding
- Morphological Filtering
- Dual-Tier Contour Detection
- Ball Localisation
- Kalman Prediction
- Position Error Computation
- PD Control
- Motor Command Generation
The robot continuously transitions between initialization, searching, tracking, prediction and autonomous navigation. If the target is temporarily lost, the Kalman Filter maintains short-term prediction before the system returns to search mode.
HSV segmentation provides improved robustness to illumination changes while simplifying colour thresholding.
The Kalman Filter predicts target motion, smooths noisy measurements and maintains tracking during temporary detection loss.
A PD controller provides fast response with minimal oscillation, making it well suited for real-time vision-guided robotics.
Mecanum wheels allow independent motion along both axes without requiring robot reorientation, improving interception efficiency.
- Raspberry Pi 5
- 170° Wide-Angle Camera
- Four DC Motors
- Four Mecanum Wheels
- Dual L298N Motor Drivers
- Portable Battery Pack
Clone the repository:
git clone https://github.com/GargeyaOHKO/AODAS.git
cd AODASInstall dependencies:
pip install -r requirements.txtRun the application:
cd raspberry_pi
python main.pyNote: The project is intended to run on a Raspberry Pi 5 with the Picamera2 library and the required motor driver hardware.
Future versions of AutoLocker could include:
- Deep learning based object detection
- Multi-object tracking
- ROS 2 integration
- SLAM-assisted navigation
- Adaptive control algorithms
- Raspberry Pi AI accelerator integration
Gargeya Parab
Incoming M.S. Electrical and Computer Engineering Intelligent Systems, Robotics, and Control (ISRC) University of California San Diego
This project is released under the MIT License.