SLAM: Localización de robots y construcción simultánea de mapas


SLAM simulator for MatLab



The slam.m program is a simple SLAM simulation written in MatLab.  A mobile robot carries out a square trajectory in an environment with point features at each side of the trajectory, similar to a cloister (see figure below; red points and trajectory are ground truth):



The vehicle is equipped with a point detector whose characteristics (range, precision) can be modified.  Vehicle odometry can also be modified.  You can also try different data association algorithms: the Nearest Neighbour, the Joint Compatibility Branch and Bound, or your own!




  1.  Load slam.m, find where data association is done and try the nearest neighbour (NN) algorithm.


  1. Complete SINGLES and try it:


You have observations.m observations, and prediction.n predicted features.


For every observation i, check whether it has only one neighbour,

feature, and whether that feature j  has only that one neighbour

observation i.  If so, H(i) = j.


You will need to check the compatibility.ic matrix

for this:


compatibility.ic(i,j) = 1 if observation i is a neighbour of

feature j.


  1. Include people (configuration.people = 1)  and try SINGLES

  2. Try Joint Compatibility Branch and Bound (JCBB)