We have built a turtlebot-like robot from scratch (using an Arduino), which can navigate a predefined map autonomously, and also follow a person depending on the color of shirt he/she is wearing. For state estimation (odometry) of the robot, we used rotary encoders found on the wheels. We then integrated an IMU to get more accurate state estimation. For path planning, we used the A* algorithm to find the shortest path between the initial position and the goal. For path tracking, we used a PID controller (Video 1).
For color tracking, we mounted a camera on the robot and used the OpenCV library to segment the defined colors. We used Robot Operating System (ROS) for communication between all the parts of the project (Video 2).
This project was part of the “Automatic Control” course during my undergraduate studies. Teammates: Suha Shreim and Mohammad Fakih.