SLAM TOOLBOX FOR MATLAB

LATEST NEWS

Upgrade 2015/08/05: Added Graph-SLAM using key-frames and non-linear optimization.

Older upgrades and news

Upgrade 2012/04/22: Added support for Omni-directional cameras for ahmPnt and eucPnt points.
From 2011/09/03 to 2011/09/08: a bug in the package released between these 5 days caused the toolbox to completely fail. Download the current version below.
2010/09/04: BUG FIX: Corrected bug in code for IDP. If you just want the bug fix, click here. Toolbox versions after 2011/09/08 are already fixed.

See the TROUBLESHOOTING section below for some fixes related to old Matlab versions.

INTRODUCTION

We present two toolboxes sharing a number of features, but using two radically different approaches to SLAM: EKF, and nonlinear optimization via graphical models. They are provided for free under the GPL license (please read the file COPYING and make sure you agree in the terms and conditions before using them).

EKF-SLAM: The first toolbox performs 6DOF SLAM using the classical EKF implementation. It is conceived as an "active-search" SLAM. With points:

EKF-SLAM with points, sensor view    EKF-SLAM with pints, map view


and with lines:

Plucker SLAM
            sensor sequence    Plucker SLAM map
          sequence

Graph-SLAM: The second toolbox substitutes the EKF by a non-linear optimizer based on factor graphs and matrix factorization. Currently, QR, Cholesky, and Schur factorizations are implemented. It works with points:


graph SLAM animation - sensor     graph SLAM animation - map

USING THE TOOLBOX

Users employing the toolbox for scientific research should cite in their scientific communications one of the papers of the authors (especially SOLA-ETAL-IJCV-11, SOLA-ETAL-TRO-08) appearing in the References section of the documentation, and also acknowledging the use of this toolbox.

DOWNLOAD AND INSTALLATION

ADDITIONAL INFORMATION

BUG FIXES

BUG (fixed in toolbox releases after 2011/09/08): The Jacobians of the idpPnt initialization function were incorrect. This derived in a poor performance of idpPnt points. Now, idpPnt and ahmPnt show equivalent performance.
FIX: follow these simple steps:
  1. Download this file. Unzip it.
  2. Copy files  idp2ahp.m   and   ahp2idp.m   to toolbox folder   %SLAMTB/Points/
  3. Copy file  retroProjIdpPntFromPinHoleOnRob.m   to toolbox folder  %SLAMTB/Observations/
  4. Delete the obsolete bugged file   %SLAMTB/Points/idpS2idpW.m  from the toolbox.

TROUBLESHOOTING

Expression or statement is incorrect--possibly unbalanced (, {, or [. 
In version 2009b and after, MATLAB introduced the tilde return operator '~' to ignore unwanted return parameters and avoid creating variables in memory that are not going to be used.
If you happen to be running this toolbox on older versions of Matlab, you will encounter the following kind of error:

    " Expression or statement is incorrect--possibly unbalanced (, {, or [."

Your best option is to do the following:

  1. Run slamtb as many times as you have errors of this kind.
  2. Each time, navigate to the error line, and substitute the tilde '~' by a dummy variable name such as tmp, unused, dummy, or whatever you prefer.