Linear SLAM

Linear SLAM: A Linear Solution to the Feature-based, Pose Graph and D-SLAM based on Submap Joining.

Authors
Liang Zhao; Shoudong Huang; Gamini Dissanayake;

Get the Source Code via SVN
svn co https://svn.openslam.org/data/svn/linearslam

Long Description
Linear SLAM is a strategy for large-scale pose feature and pose graph SLAM through solving a sequence of linear least squares problems. The algorithm is based on building large-scale maps through submap joining, where submaps are built using any existing SLAM technique that is able to deal with a small size SLAM problem. It is demonstrated that if submaps coordinate frames are judiciously selected, least squares objective function for joining two submaps becomes a quadratic function of the state vector. Therefore, solution to a large-scale SLAM problem that requires joining a number of local submaps either sequentially or in a more efficient Divide and Conquer manner, can be obtained through solving a sequence of linear least squares problems. The proposed Linear SLAM technique is applicable to both feature-based, pose graph and D-SLAM, in two and three dimensions, and does not require any assumption on the character of the covariance matrices or an initial guess of the state vector. Although this algorithm is still an approximation to the optimal full nonlinear least squares SLAM, simulations and experiments using publicly available datasets in 2D and 3D show that Linear SLAM produces results that are very close to the best solutions that can be obtained using full nonlinear least squares optimization algorithm started from an accurate initial value.

Example Images

Result of Victoria Park 2D pose feature dataset

Result of DLR 2D pose feature dataset

Result of Intel 2D pose graph dataset

Result of Parking Garage 3D pose graph dataset

Input Data
The input to the Linear SLAM algorithm is a sequence of local submaps. Each local map contains a state vector estimate and the corresponding information matrix.

Logfile Format
mat file for MATLAB code, text file for C/C++ code

Type of Map
Pose feature or pose graph map

Hardware/Software Requirements
Matlab, or
Windows, Microsoft Visual Studio, or
Linux/Unix

Documentation
Documentation for Linear SLAM MATLAB and C/C++ Source Code

Papers Describing the Approach
Liang Zhao, Shoudong Huang and Gamini Dissanayake: Linear SLAM: A Linear Solution to the Feature-based and Pose Graph SLAM based on Submap Joining, IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), 2013 (link)

License Information
This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
The authors allow the users of OpenSLAM.org to use and modify the source code for their own research. Any commercial application, redistribution, etc has to be arranged between users and authors individually and is not covered by OpenSLAM.org.

Linear SLAM by Liang Zhao, Shoudong Huang, Gamini Dissanayake is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.


*** OpenSLAM.org is not responsible for the content of this webpage ***
*** Copyright and V.i.S.d.P.: Liang Zhao; Shoudong Huang; Gamini Dissanayake; ***