Object residual constrained Visual-Inertial Odometry (OrcVIO) is a visual-inertial odometry pipeline, which is tightly coupled with tracking and optimization over structured object models. It provides accurate trajectory estimation and large-scale object-level mapping from online Mono+IMU data.
OrcVIO-Lite only uses bounding boxs and no keypoints. The object mapping module and VIO module are implemented in separate ROS nodelets and are decoupled.
Related publication: OrcVIO: Object residual constrained Visual-Inertial Odometry, this is the journal version submitted to T-RO. Project website
@inproceedings{shan2020orcvio,
title={OrcVIO: Object residual constrained Visual-Inertial Odometry},
author={Shan, Mo and Feng, Qiaojun and Atanasov, Nikolay},
booktitle={2020 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)},
pages={5104--5111},
year={2020},
organization={IEEE}
}
This repository was tested on Ubuntu 18.04 with ROS Melodic.
The core algorithm depends on Eigen
, Boost
, Suitesparse
, Ceres
, OpenCV
, Sophus
, GTest
$ git clone --recursive https://github.com/shanmo/OrcVIO-Lite.git
$ cd OrcVIO-Lite
$ mkdir build
$ cd build
$ cmake -D CMAKE_BUILD_TYPE=Release ..
$ make
Ubuntu 18.04
with ROS Melodic
ros_wrapper/src
folder$ git clone --recursive https://github.com/shanmo/OrcVIO-Lite.git
$ cd OrcVIO-Lite/ros_wrapper
$ catkin_make
$ source ./devel/setup.bash
Download dataset
Download EuRoC MAV Dataset to PATH_TO_EUROC_DATASET/.
VIO
$ cd PATH_TO_ORCVIO_LITE/
$ ./run_euroc.sh PATH_TO_EUROC_DATASET/
Download dataset
ERL indoor dataset (chairs, monitors)
VIO
$ cd OrcVIO_Lite/ros_wrapper/
$ roslaunch orcvio orcvio_vio_rs_d435i.launch path_bag:=PATH_TO_ERL_DATASET/
$ cd OrcVIO_Lite/ros_wrapper/
$ roslaunch orcvio orcvio_mapping_rs_d435i.launch path_bag:=PATH_TO_ERL_DATASET/
rviz
visualization
config/object_feat_erl.yaml
by result_dir_path_object_map
MIT License
Copyright (c) 2021 ERL at UCSD