/ssvio

A lightweight setero visual-inertial SLAM system implementation, including complete closed-loop detection, front-end tracking, back-end optimization, visualization and other parts.

Primary LanguageC++

Simple Stero Visual Inertial SLAM(SSVIO)

English | 简体中文

A lightweight setero visual-inertial SLAM system implementation, including complete closed-loop detection, front-end tracking, back-end optimization, visualization and other parts. This warehouse is more friendly to students who are new to SLAM. At the same time, the performance of this system is evaluated on the Kitti dataset. Although there is still a certain distance from the SOTA method, it is basically a usable visual odometry system.You can see a more detailed running effect of the entire project on bilibili.

Install 🛠️

  • Opencv3.2 needs to be installed in advance, of course, its 3.x version should also be applicable.
  • At the same time we use Pangolin0.6 for visualization.
sudo apt install libgoogle-glogdev libeigen-dev libsuitesparse-dev libcholmod3
cd thirdparty/g2o
mkdir build
cmake ..
make -j

cd ../DBoW2
mkdir build
cd build
cmake ..
make -j
  • Next compile our project
mkdir build && cd build
cmake ..
make -j

Running SSVIO 🏃

You need to pass in two parameters via the command line according to the glog, the example as follow

../bin/test_system \
--config_yaml_path=/home/xxx/ssvio/config/kitti_00.yaml \
--kitti_dataset_path=/home/xxx/kitti/dataset/sequences/00

System Result On Kitti Dataset🏋️

We verified the SLAM algorithm in this warehouse on the Kitti dataset, and compared the results with and without loop closure, the evaluate tool is evo tool ,as shown below.

Without Loop On Kitti 00 Seq With Loop On Kitti 00 Seq

Citation 📝

TODO📜

  • Update Pangolin UI
  • Add IMU to backend opt
  • Embed LightGlue into the front end