Assignment 2: Obstacle Course
In this assignment, you will program a robot to navigate an obstacle course (configuration files provided here). Your robot must plan and follow path from the top left corner of the space to the bottom right using information about obstacles on the map. You can use the PositionProxy class to determine when your robot has reached the opposite corner. You will be provided with configuration files and the map. However, the real map, against which your robot will be tested, will have a few additional obstacles that your robot must account for using its sensors. For parts 2 and 3, you will use different robots with more difficult shapes and orient them to pass through narrow areas. Configuration files for these robots are provided in the zip file as pioneer-2.inc and pioneer-3.inc. These files can be renamed to pioneer.inc to work with the existing configuration files.
One way to proceed is to first see if your robot can make it through the map when it does know all of the obstacles. Then, you could edit a2-shapes (the file with the shape descriptions), commenting out some of the shapes. Can it still make it through the map?
Configuration files are provided: here.
- Laser - This robot contains a 180 degree laser.
- You may start with obsbot.cpp as your client file.
- To run
Obstacle data for the map is provided in the file a2-shapes.
The format is as follows:
poly (x_1 y_1) ... (x_n y_n) circ (x y) radius
You may assume that each polygon is either 3, 4 or 6-sided. Vertices are wound counter-clockwise. The shapes are specified in world coordinates x:[-15, 15], y:[-15, 15]. The outer walls of the map are not included in this file, though you may have to take these into account.
- As with the last assignment, this assignment will take some time. Please start early.
- Submit your robot client code along with a README file containing any necessary build instructions to Bb Vista by the due date.
- If something does not work properly or is incomplete, please say so in the README.
- Part 1 (10 points)
- "Point robot" combines map information with sensor data to navigate to opposite corner.
- Part 2 (7 points)
- Oblong robot with 2 DOF searches configuration space to navigate through narrow areas of the map.
- Part 3 (7 points)
- Robot with 3 DOF searches configuration space to navigate through narrow areas of the map.
- Code is readable and documented: 4 points
Total: 28 points
NOTE: Your robot does not have to generate images like this (or any images, for that matter), these are just to give you an idea of how the robot should move, and how you should generate the paths.
Map visibility graph using the provided shape data.
Point robot maze completion.
2 DOF robot maze completion.
3 DOF robot maze completion.