Graph SLAM is implemented on Intel G2O Dataset
This project shows implementation of Graph SLAM algorithm using GTSAM Library. The implementation on 2D and 3D data sets.
Overview: 1.The project shows implementation of Graph SLAM algorithm using GaussNewton and iSAM optimizers to generate optimized trajectories. 2. Batched and Incremental optimizations are performed on the data sets and the results are compared.
Optimizations:
- Batch Optimization: A batch solution means when we construct the entire 2D/3D non linear factor graph from the sensor measurements first and solve it at the end altogether. The Optimizer used for this method is Gauss-Newton Optimizer.
- Incremental Optimizations: Here we incermentally solve the factor graph as and when the measurements come in and loop closures are formed. We use the iSAM2 optimizer for this operation.
The algorithm for incremental solution can be seen here:
- 2D Data : https://www.dropbox.com/s/vcz8cag7bo0zlaj/input_INTEL_g2o.g2o?dl=0
- 3D Data : https://www.dropbox.com/s/zu23p8d522qccor/parking-garage.g2o?dl=0
Datasets used here are obtained by processing raw measurements from wheel odometry and laser range findings at Intel Research Lab, Seattle.
-
Please first clone and install GTSAM Library to the desired file folder. Detailed instructions can be found here. (https://github.com/borglab/gtsam)
-
Please notice prerequisites: Boost >= 1.58 (Ubuntu: sudo apt-get install libboost-all-dev); CMake>= 3.0 (Ubuntu: sudo apt-get install cmake); A modern compiler, i.e., at least gcc 4.7.3 on Linux.
-
In terminal
cd <path_to_your_desired file folder>
- Then create new build folder
mkdir build
- Navigate to build folder
cd build
- run cmake
cmake ..
- make the file to build folder
make -j8
- Install the GTSAM Library
sudo make install -j8
These steps will install the GTSAM Library in your workspace which can be used further for solving the Pose Grpah SLAM problem.
Additionally this project will also require Eigen Library. The installation instructions can be found here (http://eigen.tuxfamily.org/index.php?title=Main_Page)
This Repo doesn't has the GTSAM library and Eigen installed in it. So when the above steps are complete this project should run. There 4 combinations of results between 2D,3D and Batched,Incremental solutions. Each file will generate a .g2o result file with the optimized coordinates. This file can be transferrred to Matlab for ease of plotting purposes.
- 2D Batched
- 2D Incremental
- 3D Batched
- 3D Incremental
- GTSAM : https://github.com/borglab/gtsam
- Datasets : https://lucacarlone.mit.edu/datasets/