Spring2007RobotLabAssignment2
Assignment 2: robotic SLAM (simultaneous localization and mapping)
Description of Assignment
Your Roomba will be placed in a random location in a rectangular arena of unknown dimension. The arena will have an unknown number of Roomba invisible walls (IR walls projecting a cone) pointing into the arena. Your Roomba must explore the arena and provide a map of the arena including an estimate of the dimensions of the arena, the location of the invisible walls, an estimate of the number of invisible walls, and an estimate of its original starting location. In order to allow all students to get time in the arena, your Roomba must do this in 10 minutes, and your procedure must terminate.
Your source code will need to output the dimensions of the arena and have one of the TAs check this at the end of the execution (physically show the printout to the TA).
Your source code will also need to generate 2 bmp files (see [http://en.wikipedia.org/wiki/Portable_Bitmap_File_Format http://en.wikipedia.org/wiki/Portable_Bitmap_File_Format] ) and a printout of the mapping from X and Y pixel dimensions to real world dimensions (e.g. each pixel represents an area of 6 inches by 6 inches) which must also be shown to the TA upon completion. The two bmp files will contain your automated mapping of the arena, "startpos.bmp" will plot the estimated position of your Roomba at the beginning of the execution, and "wallmap.bmp" will plot the locations of the invisible wall fields in the arena (display everywhere in the arena that your Roomba encountered the presence of an invisible wall). You should use zeros for the arena background and ones for the locations of the invisible wall fields and your Roomba's initial location estimate.
You should create a short writeup of this lab (2 pages at most) which details your strategies/algorithms/ideas for performing this lab, and references or other resources you used, any problems you encountered and how you overcame them. If you tried multiple different strategies before your final one then describe the progression of ideas, and why you gave up on earlier ideas. Your writeup should also include your estimate for how many invisible walls there were, the dimensions of the arena, and the scale of your bmp files, basically everything you showed to the TA upon completion of your execution. Finally, include any conclusions that you have from this lab, analysis of your strategies and estimates of error would be appropriate here, along with anything else you feel is relevant.
Deliverables for this Assignment
- have a TA watch your execution, the TA will place your Roomba in a random location
- the TA must see that your program terminates
- upon termination, the TA must see that your program outputs the 2 bmp files (and checks what they display as your estimates for the invisible wall maps and initial location), the printout of the mapping between the bmps and real world dimensions, the printout of the dimensions of the arena, and the printout of the estimate for the number of invisible walls
- you must then turn in a writeup of the assignment, your source code, and your 2 bmp files