dynaVINS

url-kaistGPL-3.0长期未更新

面向动态环境的视觉惯性 SLAM 系统,能在场景中存在移动物体时稳定完成定位与建图,适合机器人在人群或杂乱环境中使用。

DynaVINS : A Visual-Inertial SLAM for Dynamic Environments

暂无版本448star61fork同步于 2026-11-07 07:32 UTC

怎么上手

由 README 提炼,执行前请确认
cd ~/catkin_ws/src && git clone https://github.com/url-kaist/dynaVINS && cd ../ && catkin_make && source ~/catkin_ws/devel/setup.bash
硬件要求按 README 说明

README未说明GPU或显存要求;测试环境为Ubuntu 16.04/18.04加ROS Kinetic/Melodic,依赖Ceres Solver与OpenCV 3.4.1;可用Intel RealSense D455采集数据但需自行标定

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

面向动态环境的视觉惯性SLAM,用鲁棒BA抑制车辆行人等动态物体干扰

面向动态环境的视觉惯性 SLAM 系统,能在场景中存在移动物体时稳定完成定位与建图,适合机器人在人群或杂乱环境中使用。

核心能力

  • 用鲁棒Bundle Adjustment处理车辆行人等动态物体
  • 基于VINS-Fusion扩展,支持单目/双目相机加IMU
  • 提供带回环检测模块的版本,用假设分组约束
  • 可调正则化、动量与交替优化收敛阈值等参数
  • 附带VINS-Fusion-SC可切换约束回环实现

容易踩的坑

需从VINS-Fusion仓库额外拷贝camera_models包及brief_k10L6.bin、brief_pattern.yml两个支持文件到support_files目录;运行前须先下载VIODE或D455的bag数据集;依赖ROS环境,需先装好Ceres Solver和OpenCV 3.4.1

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

0 个版本

暂无 release 数据(可能没有发版,或尚未同步)。

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    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!
    • Youtube video for the detailed explanation and the demo video.

    IMAGE ALT TEXT

    :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.

    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
    $ 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_lambda

      The Lambda value of regularization term in paper. (Section III-C)

    • momentum_on

      Using the momentum factor or not (true/false)

    • momentum_lambda

      The Lambda value of momentum term in paper. (Section III-D)

    • alternating_converge

      The 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_thresh

      Features 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_dist

      The distance threshold for grouping constraints into the hypothesis. (Section IV-B)

    • hypodiff_yaw

      The angle threshold for grouping constraints into the hypothesis. (Section IV-B)

    • hypo_regularization

      The Lambda value of regularization term in loop closure module. (Section IV-C)

    • hypo_alternating_converge

      The 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: