The simulated environment consists of a room with certain features (circular and rectangular objects). A robot explores this room and gathers observations in the form of simulated point clouds. The robot's perception and odometry are erroneous, and this algorithm uses pose graph optimization to minimize the effects of the error in odometry.
This images illustrates the room which the robot explores. Everything in white represents features of the room, while the robot is the V-shaped light blue colored object.
Without pose graph optimization, faulty odometry results in incorrect SLAM.
Using pose graph optimization, the algorithm corrects all previous observations as soon as it detects that it has reached a location it has already visited before, resulting in a much more accurate SLAM solution.
- main.py is the primary file to run
- Changing the robot perception parameters (e.g. sensor standard deviation, range, field of view, etc.) will require saving the observations to a .p file, since simulated observations are recorded by tracing each sensor ray, which is a computationally expensive task and cannot be done in real-time. This may be done using recordObservations.py
- This recorded file may be referenced in main.py
- "A Tutorial on Graph-Based SLAM", Giorgio Grisetti, Rainer Kummerle, Cyrill Stachniss, and Wolfram Burgard, Department of Computer Science, University of Freiburg
- "Fast Iterative Alignment of Pose Graphs with Poor Initial Estimates", Edwin Olson, John Leonard, and Seth Teller, International Conference on Robotics and Automation (ICRA), pp. 2262-2269, May 2006
- "1" for zero noise observation, circular motion
- "2" for standard deviation of 2, circular motion
- "4" for zero noise observation, linear motion