需从VINS-Fusion仓库额外拷贝camera_models包及brief_k10L6.bin、brief_pattern.yml两个支持文件到support_files目录;运行前须先下载VIODE或D455的bag数据集;依赖ROS环境,需先装好Ceres Solver和OpenCV 3.4.1
cd ~/catkin_ws/src && git clone https://github.com/url-kaist/dynaVINS && cd ../ && catkin_make && source ~/catkin_ws/devel/setup.bashREADME未说明GPU或显存要求;测试环境为Ubuntu 16.04/18.04加ROS Kinetic/Melodic,依赖Ceres Solver与OpenCV 3.4.1;可用Intel RealSense D455采集数据但需自行标定
面向动态环境的视觉惯性SLAM,用鲁棒BA抑制车辆行人等动态物体干扰
面向动态环境的视觉惯性 SLAM 系统,能在场景中存在移动物体时稳定完成定位与建图,适合机器人在人群或杂乱环境中使用。
核心能力
- 用鲁棒Bundle Adjustment处理车辆行人等动态物体
- 基于VINS-Fusion扩展,支持单目/双目相机加IMU
- 提供带回环检测模块的版本,用假设分组约束
- 可调正则化、动量与交替优化收敛阈值等参数
- 附带VINS-Fusion-SC可切换约束回环实现
容易踩的坑
暂无 release 数据(可能没有发版,或尚未同步)。
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
DynaVINS: A Visual-Inertial SLAM for Dynamic Environments
:bookmark_tabs: About DynaVINS (IEEE RA-L'22)
- A robust visual-inertial state estimator algorithm for dynamic environments.
- The robust bundle adjustment is used for dynamic objects such as cars :car:, humans :runner:, buses :bus:, etc.
- Please refer our paper for detailed explanantions and experimental results!
- The BA module validated on VIODE dataset dataset.
- The loop closure module validated on Our dataset.
- Algorithm is based on VINS-Fusion.
- Youtube video for the detailed explanation and the demo video.
:heavy_plus_sign: Additional package : VINS-Fusion-SC (SwitchableConstraints)
- In our paper, VINS-Fusion combined with Switchable Constraints (git)was compared with DynaVINS.
- VINS-Fusion-SC, an algorithm that integrates Switchable Constraints into the loop closure module of VINS-Fusion, is also useful, so we released the algorithm.
- You can visit here to use VINS-Fusion-SC.
- When using VINS-Fusion-SC for your paper, don't forget to cite our paper!:wink:
Test Env.
This code is tested on
- Linux 18.04 LTS
- ROS Melodic
- Ceres Solver 1.14.0
- OpenCV 3.4.1
: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.
- Set the
camera_modelspackage in your workspace, which is included in VINS-Fusion. - Copy
support_files/brief_k10L6.binin VINS-Fusion into oursupport_filesfolder - Copy
support_files/brief_pattern.ymlin VINS-Fusion into oursupport_filesfolder
: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
- If direct download not works, download the dataset from : Link
- Other sequence of VIODE dataset can be found in original repository : https://github.com/kminoda/VIODE
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
$ wget https://urserver.kaist.ac.kr/publicdata/dynaVINS/d455_urban_robotics/loop_static.bag
$ wget https://urserver.kaist.ac.kr/publicdata/dynaVINS/d455_urban_robotics/loop_tempstatic.bag
- If direct download not works, download the dataset from : Link
$ 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).
-
regularization_lambdaThe Lambda value of regularization term in paper. (Section III-C)
-
momentum_onUsing the momentum factor or not (true/false)
-
momentum_lambdaThe Lambda value of momentum term in paper. (Section III-D)
-
alternating_convergeThe threshold for checking the convergence of the alternating optimization.
90% is usually enough. If you want faster speed, please try to reduce it.
Time comparison can be found on the wiki page. -
margin_feature_threshFeatures which have less weight than this value are not used in marginalization.
This may affect accuracy, but is effective at reducing time costs.
You can try uncomment line 848 of "vins_estimator/estimator/estimator.cpp" to enable these features also in optimization.//ADDITIONAL FEATURE : NO USE IN OPT. //if(it_per_id.weight<DYN_FEAT_MARGIN_THRESH) continue; -
hypodiff_distThe distance threshold for grouping constraints into the hypothesis. (Section IV-B)
-
hypodiff_yawThe angle threshold for grouping constraints into the hypothesis. (Section IV-B)
-
hypo_regularizationThe Lambda value of regularization term in loop closure module. (Section IV-C)
-
hypo_alternating_convergeThe threshold for checking the convergence of the alternating optimization in the loop closure module.
: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:
- Seungwon Song :envelope:
sswan55 at kaist.ac.kr - Hyungtae Lim :envelope:
shapelim at kaist.ac.kr
