Skip to content

bapat-akshay/2D-SLAM

Repository files navigation

2D-SLAM: Algorithm for a Simulated Two-Dimensional World

Simulation

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.

Simulation Environment

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.

Pose Graph Optimization

SLAM Without Pose Graph Optimization Without pose graph optimization, faulty odometry results in incorrect SLAM.

SLAM With Pose Graph Optimization 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.

Running the Algorithm

  • 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

Scholarly References:

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

Observation (.p) Files Reference

  • "1" for zero noise observation, circular motion
  • "2" for standard deviation of 2, circular motion
  • "4" for zero noise observation, linear motion

About

SLAM algorithm for a two-dimensional world

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages