From GICL Wiki
Revision as of 17:14, 4 May 2010 by Urlass (Talk | contribs)

Jump to: navigation, search



Assignment 3: "Where am I"

In this assignment, you will use the Roomba model robot to perform simultaneous location and mapping (SLAM). Your robot will be placed in a random location in the world, and needs to construct a map of the world. The robot does not know it's location or orientation.

In the first part of the problem, you will generate a map using dead-reckoning. In the second part, you will generate a map using an odometer-based technique. In the optional extra credit, you will combine measurements from these techniques to make a more accurate map.

Configuration Files

The configuration files are provided INSERT TARBALL LINK.

Inside there is a client skeleton files which you are welcome to use or not use. There is also a script, create_world.py, to generate the slam.world file. Please not that it will place the robot in a different starting location each time. I will run this script before I test your robot, so you cannot assume that your robot will start in any particular location. It is possible that the script places your robot inside an obstacle. If that happens, just run it again.

Additional Requirements

  • You may not hard code turns or rely on anything particular to the provided map. If your robot were to run on a map with the landmarks in a different location it should still work.
  • In the dead-reckoning portion, you may not use getX(), getY(), getYaw(), getData(), or getGeom() in the Position2DInterface class. If you find some other functions that report the robots location or orientation, you can't use them either.

If you are not sure about the above requirements, feel free to email the TA.

Extra Credit

Combine the estimates from both the dead-reckoning and the odometer-based approaches in some reasonable way to create a map. In order to get points for this part, your README file must describe the data fusion technique you used.


  • Submit a tarball of your robot client code using Bb Vista. The tarball should contain a README file with any necessary build instructions or peculiarities of your program.
  • If something does not work properly or is incomplete, you must say so in the README.


  • Quality of odometry-based map: up to 10 pts.
  • Quality of dead-reckoning-based map: up to 10pts.
  • Quality of data fusion techniques and map: up to 6 points.