The iRobot Create is a versatile robot which can both retrieve commands and send information on its sensors (actuators, bumpers, etc.) over a serial communication link. As such, it is useful as a platform for 'learning' a path or room. In orcer to accomplish this, an iterative process is carried out where a user places the Create at a specific location and runs the robot, allowing it to explore forward and find walls. The Create is reset after it bumps into a wall, and then travels forward in search for another wall. It first checks for walls to its right, and if there is an object too close it will be reset again and try other walls. Eventually, this process allows the Create to learn an entire path, and it will successfully complete most paths in normal situations.
One of the primary challenges encountered was retrieving data from the actuators in a manner which supported our objective. Originally the project was to be completed in C++, however the implementation of the serial communication proved inaccurate. As such, a Matlab toolkit was used to complete the project. This toolkit provided much more accurate data. Other challenges was establishing a starting position for the robot. If the path involves a high number of turns and obstacles, and the Create setup at an angle or distance from the first wall that is much different than the original setup, the Create may traverse path lengths and turns in an incorrect path. Normally, however, if the setup is accurate enough the newly learned sections will still be learned correctly, and the original path traversed without issue. Thus it is recommended that the user finds landmarks to align the Create.
Future improvements may include use of the left and right bumper sensors to auto-correct its traversal after an innacurate initial setup and to learn uneven wall segments (such as curved walls or corners with non-right angles). Other improvements might be made to continue learning new steps if, for instance, the Create finds a corner with a wall to its right. The Create would then continue rotating until no wall is found.
This project was created by Derek Gobin and John Schaberg at the Georgia Institute of Technology for a Final Project in ECE 4180, in the Fall of 2013.