After setting up a robot to wander the halls of the Libra Complex, the next step is to have the robot identify its location on a map. Monte Carlo localization is the obvious choice for this task, and it is what Prof. Dodds provided us with a framework for.
We began by modifying the map tool to perform Monte Carlo localization, using the information from our sonar unit. We hope to include image processing so that the prescence of a red stripe on the wall can also be used to determine our location.
Victoria added a feature to the map tool so that it can graphically display the path based on MCL data, as well as the odometry. We decided that the MCL location is the weighted (by probability) average of all the points on the graph.
Paul modifed the map tool so that it would perform MCL, and then left for a conference. Unfortunately, Steph discovered after he left that there were problems with this code. These problems were eventually fixed, and the MCL code now works.
We demonstrated the wandering and MCL code to Prof. Dodds, and a video of that demonstration can be found here . The problems at the end of the video occur because the sonar is not really the correct choice for detecting walls to the side or at an angle. Soon, the pretty IR sensors will be attached to the robot, fixing this problem.
The MapTool code works even better when it's dealing with simulated movement, as in this picture:
The maptool code which has been modified:
And the readme file for our maptool.Steph modifed the wandering code developed last week in the following ways:
Steph also wrote a nice client which simply allows a person to move the robot using the keyboard with MapTool.