SLAM is a probabilistic technique to construct and update maps for navigation while localizing the object pose in the map. The problem appears to be a chicken and egg problem as to localize the vehicle we need a map and to update the map we need to know the pose of the vehicle. This problem can be solved through multiple approximate techniques such as Extended kalman filters and Particle filters.
The problem can be formulated mathematically as finding:
Input: robot's controls inputs u and observations z.
Output: Map of the environment m and the pose of the robot x
This can be done using bayes filter. Bayes filter is a two step process: Prediction and Correction.
Predicton step predicts the state of the vehicle using the motion model, control inputs and previous belief while the correction step reduces the uncertainty using the observation model. The motion model describes the distribution of the current state of the system given the control inputs for this time step and the previous belief of the pose of the vehicle. This can be represented mathematically as:The predicted state of the system is :
The Sensor model or the Observation model is responsible for reducing the uncertainty that is introduced by the random nature of the problem. The predicted state is:This belief value is the current pose of the system.
There are multiple ways to implement the Bayes filter:
- Kalman Filters which deals with gaussian distributions and linear models
- Particle Filters which deal with non-parametric arbitrary models
Kalman filters deal with the linear gaussian case. By linear we mean a linear model and by gaussian we mean gaussian noise is associated with the pose and observations.