Occupancy Grid SLAM (Simultaneous Localization and Mapping)

Instructions: Start, pause, and reset do exactly what you think (pressing start while paused will resume). New world resets and generates a new random field of obstacles.
Once you've started, use WASD to control the robot. You can also click and drag obstacles. The blue path is the robot's actual path, and the green path is the estimated path.
If you click anywhere on the map, the robot will plan a path to that location, and then follow it.
As long as the simulation isn't running, you can modify parameters and settings below.


Start
Pause
Reset
New World


Parameter Name Value Description
 
World Properties
World Size The size/scaling of the world, with respect to the width of the browser. Explicitly it's the width of the browser viewport, in meters. Must be no smaller than 10.
Number of Obstacles The number of obstacles. Must be a non-negative integer.
Minimum Obstacle Size Minimum obstacle size, in meters. Must be greater than zero and smaller than the maximum obstacle size.
Maximum Obstacle Size Maximum obstacle size, in meters. Must be greater than zero and greater than the maximum obstacle size.
 
Robot Properties
Robot Size The radius of the robot's base, in meters. Must be greater than zero.
Robot Forward Speed The robot's forward driving speed, in meters per second. Must be greater than zero.
Robot Turning Speed The robot's turning speed, in degrees per second. Must be greater than zero.
Number of LIDAR Points The number of points the LIDAR sensor reads. Must be no smaller than 20.
LIDAR FOV The frame of view of the LIDAR sensor, in degrees. Must be between 30 and 360.
LIDAR Noise Variance The variance of the (normally-distributed) noise added to the LIDAR measurements, in meters. Must be non-negative.
Odometry Noise Variance (Position) The variance (normally-distributed) noise added to the odometry's position readings, in meters. Must be non-negative.
Odometry Noise Variance (Orientation) The variance (normally-distributed) noise added to the odometry's orientation readings, in degrees. Must be non-negative.
 
Occupancy Grid Properties
Cell Size The size of each occupancy grid cell, in meters. Must be greater than zero.
Occupancy Trust Factor A factor affecting how much the occupancy grid trusts new observations of obstacles. Must be greater than 1.
Occupancy Trust Factor A factor affecting how much the occupancy grid trusts new observations of no obstacles. Must be greater than 1.
Minimum Log-Prob The minimum log-probability of each occupancy grid square. Can be any number, or set to "-Infinity" to disable. Must be less than the maximum log-probability.
Maximum Log-Prob The maximum log-probability of each occupancy grid square. Can be any number, or set to "Infinity" to disable. Must be greater than the minimum log-probability.
 
Particle Filter Properties
Number of Particles The number of particles used in the particle filter. Must be a positive integer.
Particle Noise Variance (Position) The variance (normally-distributed) noise added to the particles' position readings, in meters. Must be non-negative.
Particle Noise Variance (Orientation) The variance (normally-distributed) noise added to the particles' orientation readings, in degrees. Must be non-negative.
Particle Exploration Factor The proportion of exploration particles (uniformly distributed particles). Must be between 0 and 0.5 (inclusive).
Pose Estimation Method The method used to estimate the robot pose from the particle filter. 1 for the weighted average of the particles, 2 for the unweighted average of the particles, and 3 for the maximum likelihood particle.
 
Path Planning Properties
Path Planning Algorithm The path planning algorithm. 0 for breadth-first search, 1 for depth-first search, and 2 for A*.