url-kaist / dynaVINS

DynaVINS : A Visual-Inertial SLAM for Dynamic Environments
GNU General Public License v3.0
323 stars 49 forks source link
robotics slam visual-inertial-slam

DynaVINS: A Visual-Inertial SLAM for Dynamic Environments

:bookmark_tabs: About DynaVINS (IEEE RA-L'22)

animated animated

IMAGE ALT TEXT

:heavy_plus_sign: Additional package : VINS-Fusion-SC (SwitchableConstraints)


Test Env.

This code is tested on

:package: Prerequisites

The dependency of DynaVINS is equal to that of VINS-Fusion.

1. Ubuntu and ROS

Ubuntu 64-bit 16.04 or 18.04. ROS Kinetic or Melodic. ROS Installation

2. Ceres Solver

Follow Ceres Installation.

3. Support file from VINS-Fusion

Due to the limiting file size of Github, we need one package and two files from the VINS-Fusion repository.

  1. Set the camera_models package in your workspace, which is included in VINS-Fusion.
  2. Copy support_files/brief_k10L6.bin in VINS-Fusion into our support_files folder
  3. Copy support_files/brief_pattern.yml in VINS-Fusion into our support_files folder

:building_construction: How to build

Please follow the below commands to build DynaVINS (on ROS).

$ cd ~/catkin_ws/src 
$ git clone https://github.com/url-kaist/dynaVINS
$ cd ../
$ catkin_make  
(or if you use catkin tools) catkin build
$ source ~/catkin_ws/devel/setup.bash

:runner: To run the demo codes

VIODE dataset (Only BA) examples

For convenience, we also provide 3_high.bag file in the parking_lot scene. You can download the file by the following command:

$ wget https://urserver.kaist.ac.kr/publicdata/dynaVINS/VIODE_dataset/parking_lot/3_high.bag

Note that the larger the number of bag files in the VIODE dataset is, the more dynamic objects exist.

1. VIODE sequence with monocular camera + IMU

$ roslaunch dynaVINS viode_mono.launch
$ rosbag play 3_high.bag (or 0_none.bag, 1_low.bag, ...)

2. VIODE sequence with stereo camera + IMU

$ roslaunch dynaVINS viode_stereo.launch
$ rosbag play 3_high.bag (or 0_none.bag, 1_low.bag, ...)

Our dataset (with Loop Closure module) examples

You can use your own intel realsense d455! (calibration is required)

You can easily download our bag file by the following command:

$ wget https://urserver.kaist.ac.kr/publicdata/dynaVINS/d455_urban_robotics/e_shape.bag
$ roslaunch dynaVINS d455_mono.launch
$ rosbag play e_shape.bag (or loop_tempstatic.bag, ...)
$ roslaunch dynaVINS d455_stereo.launch
$ rosbag play e_shape.bag (or loop_tempstatic.bag, ...)

:gear: Parameters

Parameters of DynaVINS. You can find the results of each parameter on the wiki page (param)

Time comparison according to various parameters can be found on the wiki page (time).

:bookmark: Citation

If you use our codes\, please cite our paper (arXiv)

@article{song2022dynavins,
    title={DynaVINS: A Visual-Inertial SLAM for Dynamic Environments},
    author={Song, Seungwon and Lim, Hyungtae and Lee, Alex Junho and Myung, Hyun},
    journal={IEEE Robotics and Automation Letters},
    year={2022}
}

:mailbox: Contact Information

If you have any questions, please do not hesitate to contact us: