This project aimed to develop an automated docking algorithm for a Roomba-like mobile robot within ROS2.
The video shows the robot undocking, driving out a pre-determined distance, then randomly rotating, and driving out a pre-determined distance once again. The odometry data supplied by the on-board optical mouse, wheel encoders, and IMU are used to navigate to a rough estimate of the dock's location. Once the robot is near the dock, the IR sensor is polled to determine which of the two IR "cones" is being detected (right or left). The heading of the robot is adjusted accordingly, and the robot is moved forward incrementally until the docking sensor reads "True".
Additional code was implemented to reset the robot in the case that the robot gets stuck. Details can be seen in the roomba_node.py script found on my Github profile, which can be found on my resume!
Ещё видео!