Skip to content

[RA-L 2022] RGB-D Inertial Odometry for a Resource-restricted Robot in Dynamic Environments

Notifications You must be signed in to change notification settings

robot-perception-group/Dynamic-VINS

 
 

Repository files navigation

Dynamic-VINS

RGB-D Inertial Odometry for a Resource-restricted Robot in Dynamic Environments

This fork is made by the FRPG for an upcoming project

yolo_ros was cloned at commit ebd64 and slightly modified.

if you use this repo please note that there are several hardcoded parameters regarding the focal length that we carried from the original repo. Check the fork difference to spot them.

1. Introduction

Dynamic-VINS is a real-time RGB-D Inertial Odometry system for resource-restricted robots in dynamic environments.

  • Dynamic feature recognition by object detection and depth information with the performance comparable to semantic segmentation.
  • Grid-based feature detection and efficient high-quality FAST feature extraction.
  • Competitive localization accuracy and robustness in dynamic environments are shown in a real-time application on resource-restricted platforms, such as HUAWEI Atlas200 DK, NVIDIA Jetson AGX Xavier.

Authors: Jianheng Liu, Xuanfu Li, Yueqian Liu, and Haoyao Chen from the Networked RObotics and Sytems Lab, HITSZ

If you use Dynamic-VINS for your academic research, please cite the following paper.

@ARTICLE{9830851,  
  author={Liu, Jianheng and Li, Xuanfu and Liu, Yueqian and Chen, Haoyao},  
  journal={IEEE Robotics and Automation Letters},  
  title={RGB-D Inertial Odometry for a Resource-Restricted Robot in Dynamic Environments},   
  year={2022},  
  volume={7},  
  number={4},  
  pages={9573-9580},  
  doi={10.1109/LRA.2022.3191193}}

1.1. Framework

1.2. Related Video:

Video links: Youtube or Bilibili.

2. Installation

Tested on Ubuntu 18.04 and 20.04.

Find how to install Dynamic-VINS and its dependencies here: Installation instructions.

3. Run datasets examples

3.1. OpenLORIS

Download OpenLORIS datasets.

Take OpenLORIS-cafe as examples.

tar -xzvf cafe1-1_2-rosbag.tar
cd cafe
rosbag decompress cafe*
python YOUR_PATH_TO_DYNAMIC_VINS/scripts/merge_imu_topics.py cafe1-1.bag cafe1-2.bag

NVIDIA devices (pytorch)

roslaunch vins_estimator openloris_vio_pytorch.launch
roslaunch vins_estimator vins_rviz.launch # Visualization
rosbag play YOUR_PATH_TO_DATASET/cafe.bag 

NVIDIA devices (tensorrt)

roslaunch vins_estimator openloris_vio_tensorrt.launch
roslaunch vins_estimator vins_rviz.launch # Visualization
rosbag play YOUR_PATH_TO_DATASET/cafe.bag 

HUAWEI Atlas200DK

roslaunch vins_estimator openloris_vio_atlas.launch

Running Dynamic-VINS on HUAWEI Atlas200DK requires multile devices communication setting. For specific instructions, please refer to the MULTIPLE_DEVICES. And other kinds of edge devices also could refer to this instruction.

3.2. HITSZ & THUSZ Datasets

Please prepare enough space for the datasets.

  • HITSZ(41.0GB x 2)
  • THUSZ(51.3GB x 2)
# download datasets
bash scripts/download_hitsz.sh # bash scripts/download_thusz.sh
python3 scipts/rosbag_merge_chunk.py Datasets/hitsz_00.bag # python3 scipts/rosbag_merge_chunk.py Datasets/hitsz_00.bag
# rm ./Datasets/hitsz_*.bag # rm ./Datasets/thusz_*.bag
roslaunch vins_estimator realsense_vio_campus.launch
roslaunch vins_estimator vins_rviz.launch
rosbag play Datasets/hitsz.bag # rosbag play thusz.bag 

4. Configuration

5. Acknowledgments

Dynamic-VINS is extended based on VINS-Mono, VINS-RGBD, yolov5, tensorrt_yolov5, ascend_yolo.

About

[RA-L 2022] RGB-D Inertial Odometry for a Resource-restricted Robot in Dynamic Environments

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 92.2%
  • CMake 3.4%
  • Python 2.7%
  • Shell 1.4%
  • C 0.3%