A fully custom-built omnidirectional robot that uses a ceiling-mounted camera and real-time computer vision to navigate autonomously from any start point to any goal — avoiding dynamic obstacles without turning its frame.
Project Overview
The goal of this project was to build a robot that uses a camera mounted near the ceiling to observe both itself and its environment, then uses image processing to determine an optimal path to a target destination — all while avoiding obstacles in its way.
What makes this robot unique is its omnidirectional movement: using three mecanum wheels arranged at 120° intervals, the robot can move in any direction without rotating its body — a significant advantage in constrained environments.
Hardware
The robot was designed and assembled from scratch. Each subsystem — power, motion, sensing, and computation — was carefully selected and integrated.




Intelligence
When a straight-line path from the robot to the destination intersects an obstacle (modeled as a circle), the algorithm computes the two tangent lines from the robot's current position to the obstacle's bounding circle.
The shorter tangent path is selected, directing the robot to graze the edge of the obstacle and then re-aim toward the destination. This process repeats iteratively as the robot moves, handling multiple sequential obstacles.
The result: smooth, efficient trajectories that avoid collisions without requiring pre-mapped environments — purely reactive based on the live camera feed.


Implementation
// PID# define Zarib_P 0.15# define Zarib_I 0.00001# define Zarib_D 0.0015
Evaluation
The robot was evaluated across multiple motion directions. Position error was measured over the course of each run to quantify accuracy and stability.
Gallery



