GNU General Public License v3.0

项目介绍

rpng/R-VIO2 是一个托管在 GitHub 上的开源项目,主要使用 C++ 编写,采用 GNU General Public License v3.0 许可证,目前获得 292 个 Star、34 次 Fork。

仓库全名
rpng/R-VIO2
开源许可证
GNU General Public License v3.0
Star 数
292
Fork 数
34
未关闭 Issue
7

README 摘要

R-VIO2 R-VIO2 is a novel square root information-based robocentric visual-inertial navigation algorithm using a monocular camera and a single IMU for consistent 3D motion tracking. It is developed based on our robocentric VIO model, while different with our previous work R-VIO, we have derived and used i) our square-root robocentric formulation and ii) QR-based update combined with back substitution to improve the…

完整内容见 GitHub 原始 README 或本页 。

常见问题

R-VIO2 用什么语言开发?

主要使用 C++ 编写,采用 GNU General Public License v3.0 许可证,目前有 292 个 Star。

R-VIO2 可以免费商用吗?

仓库标注的许可证为 GNU General Public License v3.0,商用前请先阅读仓库 LICENSE 文件确认授权范围。

如何获取 R-VIO2 的源码?

可以直接克隆仓库:git clone https://github.com/rpng/R-VIO2.git,默认分支为 main;安装与运行步骤见仓库 README。

R-VIO2 最近还在维护吗?

仓库最近一次更新为 2024年9月19日,当前有 7 个未关闭 Issue;Star 数为 292,可作为社区活跃度的参考。

关于

Square-Root Robocentric Visual-Inertial Odometry with Online Spatiotemporal Calibration

描述取自 GitHub 官方 API,中文内容由 GitRead 中文社区 编辑团队整理。

简要分析

热度分
373
价值分
186
活跃状态
活跃

语言占比

C
C++
CMake

README

R-VIO2

R-VIO2 is a novel square root information-based robocentric visual-inertial navigation algorithm using a monocular camera and a single IMU for consistent 3D motion tracking. It is developed based on our robocentric VIO model, while different with our previous work R-VIO, we have derived and used i) our square-root robocentric formulation and ii) QR-based update combined with back substitution to improve the numerical stability and computational efficiency of the estimator. Moreover, the spatiotemporal calibration is performed online to robustify the performance of estimator in the presence of unknown parameter errors. Especially, this implementation can run in two modes: VIO or SLAM, where the former only estimates a sliding window of consecutive relative poses during the navigation (our RA-L2022 paper), while the latter additionally estimates a small set of map points in favor of localization and mapping (the frontend developed for our TRO2024 paper).

If you find this work relevant to or use it for your research, please consider citing the following papers:

  • Zheng Huai and Guoquan Huang, Square-Root Robocentric Visual-Inertial Odometry with Online Spatiotemporal Calibration, IEEE Robotics and Automation Letters (RA-L), 2022: download.
@article{huai2022square,
  title={Square-root robocentric visual-inertial odometry with online spatiotemporal calibration},
  author={Huai, Zheng and Huang, Guoquan},
  journal={IEEE Robotics and Automation Letters},
  volume={7},
  number={4},
  pages={9961--9968},
  year={2022},
  publisher={IEEE}
}
  • Zheng Huai and Guoquan Huang, A Consistent Parallel Estimation Framework for Visual-Inertial SLAM, IEEE Transactions on Robotics (T-RO), 2024: download.
@article{huai2024consistent,
  title={A Consistent Parallel Estimation Framework for Visual-Inertial SLAM},
  author={Huai, Zheng and Huang, Guoquan},
  journal={IEEE Transactions on Robotics},
  volume={40},
  pages={3734--3755},
  year={2024},
  publisher={IEEE}
}

1. Prerequisites

ROS

Download and install instructions can be found at: http://wiki.ros.org/kinetic/Installation/Ubuntu.

Eigen

Download and install instructions can be found at: http://eigen.tuxfamily.org. Tested with v3.1.0.

OpenCV

Download and install instructions can be found at: http://opencv.org. Tested with v3.3.1.

2. Build and Run

First git clone the repository and catkin_make it. Especially, rvio2_mono is used to run with rosbag in real time, while rvio2_mono_eval is used for evaluation purpose which preloads the rosbag and reads it as a txt file. A config file and a launch file are required for running R-VIO2 (for example, rvio2_euroc.yaml and euroc.launch are for EuRoC dataset). The default mode is VIO, while you can switch to SLAM mode by setting the maximum number of SLAM features to nonzero from the config file (see rvio2_euroc.yaml). To visualize the outputs, please use rviz.

Start ROS:
Terminal 1: roscore
Terminal 2: rviz (AND OPEN rvio2_rviz.rviz IN THE CONFIG FOLDER)
Run rvio2_mono:
Terminal 3: rosbag play --pause V1_01_easy.bag (AND SKIP SOME DATA IF NEEDED)
Terminal 4: roslaunch rvio2 euroc.launch
Run rvio2_mono_eval:
Terminal 3: roslaunch rvio2 euroc_eval.launch (PRESET PATH_TO_ROSBAG IN euroc_eval.launch)

Note that this implementation currently requires the sensor platform to start from stationary. Therefore, when testing the Machine Hall sequences you should skip the wiggling phase at the beginning. In particular, if you would like to run rvio2_mono_eval, the rosbag data to be skipped can be set in the config file (see rvio2_euroc.yaml).

3. License

This code is released under GNU General Public License v3 (GPL-3.0).

评论

暂无评论