Difference between revisions of "Spring2010RobotLabAssignment3"

From GICL Wiki
Jump to: navigation, search
(Configuration Files)
(Assignment 3: "Where am I")
 
(18 intermediate revisions by one user not shown)
Line 1: Line 1:
='''THIS ASSIGNMENT IS NOT COMPLETE YET, READ AT YOUR OWN RISK!!'''=
 
 
 
[[Category:Robot Lab (Spring 2010)]]
 
[[Category:Robot Lab (Spring 2010)]]
 
==Assignment 3: "Where am I"==
 
==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.  You may not use the  
+
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.  The robot should create the map as it explores it, that is, it should NOT wait until it has explored the entire world to produce a map.  If your robot is stopped at an arbitrary point in time, it should have ''some'' kind of map written, representing what it has seen so far.
 +
 
 +
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.  In both parts, you may use the laser range finder.
 +
 
 +
You proabably want to look into "occupancy grid mapping" to do this assignment.
  
 
===Configuration Files===
 
===Configuration Files===
The configuration files are provided '''INSERT TARBALL LINK'''.
+
The configuration files are provided [http://www.cs.drexel.edu/~urlass/three_setup.tar.gz here].
  
Inside there is a client skeleton files which you are welcome to use or not use.  There is also a script to generate the .cfg 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.
+
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===
 
===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.
 
* 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.  For the odometry portion, you should use these functions.
 +
* The maps produced by your robot should be in some reasonably common image format such as XPM, PNG, JPEG, etc.
  
 
If you are not sure about the above requirements, feel free to email the TA.
 
If you are not sure about the above requirements, feel free to email the TA.
  
 
===Extra Credit===
 
===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.
 +
 +
===Submission===
 +
* 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.
 +
 +
===Grading===
 +
* Quality of odometry-based map: up to 10 pts.
 +
** Periodically writing a map file:  2 pts.
 +
** Capturing all of the shapes on the map:  5 pts.
 +
** Accuracy of the shapes and their relative positions:  5 pts.
 +
* Quality of dead-reckoning-based map: up to 10pts.
 +
** Periodically writing a map file:  2 pts.
 +
** Capturing all of the shapes on the map:  5 pts.
 +
** Accuracy of the shapes and their relative positions:  5 pts.
 +
* Quality of techniques for fusing (combining) the data from both approaches, and quality of the map it produces: up to 6 extra points.
 +
'''TOTAL = 20 points + 6E.C.'''
 +
 +
===Map===
 +
[[File:Slam-map.png]]

Latest revision as of 11:42, 6 May 2010

Contents

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. The robot should create the map as it explores it, that is, it should NOT wait until it has explored the entire world to produce a map. If your robot is stopped at an arbitrary point in time, it should have some kind of map written, representing what it has seen so far.

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. In both parts, you may use the laser range finder.

You proabably want to look into "occupancy grid mapping" to do this assignment.

Configuration Files

The configuration files are provided here.

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. For the odometry portion, you should use these functions.
  • The maps produced by your robot should be in some reasonably common image format such as XPM, PNG, JPEG, etc.

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.

Submission

  • 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.

Grading

  • Quality of odometry-based map: up to 10 pts.
    • Periodically writing a map file: 2 pts.
    • Capturing all of the shapes on the map: 5 pts.
    • Accuracy of the shapes and their relative positions: 5 pts.
  • Quality of dead-reckoning-based map: up to 10pts.
    • Periodically writing a map file: 2 pts.
    • Capturing all of the shapes on the map: 5 pts.
    • Accuracy of the shapes and their relative positions: 5 pts.
  • Quality of techniques for fusing (combining) the data from both approaches, and quality of the map it produces: up to 6 extra points.

TOTAL = 20 points + 6E.C.

Map

Slam-map.png