# RTK-Visual-Inertial-Navigation
A Sliding Window Filter with GNSS-State Constraint for RTK-Visual-Inertial Navigation. [paper link]()
Authors: Xiaohong Huang, Cui Yang
**RTK-Visual-Inertial-Navigation** is a navigation system that tightly fuses GNSS, visual, and inertial measurements. It uses a sliding window filter (SWF) with GNSS-state constraints for sensor fusion. That is, the GNSS states (i.e., position, orientation, and velocity of the body and inertial biases at the time of capturing GNSS measurements) are retained in the SWF to construct more appropriate constraints between measurements and states. It also uses the parallel elimination strategy in a predefined elimination ordering, which can solve the Gauss-Newton problem and simultaneously obtain the covariance for ambiguity resolution. The system can perform the following types of navigation:
- RTK-Visual-Inertial Navigation;
- RTD-Visual-Inertial Navigation;
- SPP-Visual-Inertial Navigation;
- SPP-Visual-Inertial Navigation with Carrier-Phase Fusion
- Visual-Inertial navigation.
## 1. Prerequisites
### 1.1 C++11 Compiler
This package requires some features of C++11.
### 1.2 ROS
This package is developed under [ROS Kinetic](http://wiki.ros.org/kinetic) environment.
### 1.3 Opencv 3
Our code uses [Opencv 3](https://github.com/opencv/opencv/tree/3.4) for image process.
## 2. Build RTK-Visual-Inertial-Navigation
Clone the repository to your catkin workspace (for example `~/catkin_ws/`):
```
cd ~/catkin_ws/src/
git clone https://github.com/xiaohong-huang/RTK-Visual-Inertial-Navigation.git
```
In our source code, we have developed our solving strategy based on [Ceres-Solver](http://ceres-solver.org/). The original version of [Ceres-Solver](http://ceres-solver.org/) is not satisfied for our project. To build the project, you need to build our modified Ceres-Solver with:
```
# CMake
sudo apt-get install cmake
# Eigen3
sudo apt-get install libeigen3-dev
# Ceres-Solver-Modified
cd ~/catkin_ws/src/RTK-Visual-Inertial-Navigation
tar -xvf ceres-solver-modified.tar
cd ceres-solver-modified/
sh build.sh
```
The modified version will only be installed in the workspace's folder. So you don't need to worry that the installation will change the settings of your computer.
Then build the package with:
```
cd ~/catkin_ws/
catkin_make
```
## 3. Run RTK-Visual-Inertial-Navigation with our dataset
Our equipment is shown as follows: A grayscale camera (MT9V034 752x480@25HZ), a MEMS-grade IMU (BMI088 400HZ), a $360^o$ prism, and a GNSS receiver (ublox ZED-F9P 10HZ) are installed together with a small GNSS antenna (BT-560). A Trimble S9 total station is installed in a fixed position and observes the prism to generate the ground truth of the rover station every 0.1 seconds with mm-level accuracy. A GNSS receiver (ublox ZED-F9P 1HZ) with an experimental-level antenna is installed in a fixed position for the base station.
![image](https://github.com/xiaohong-huang/RTK-Visual-Inertial-Navigation/blob/main/fig/equipment.png)
The experiment environment is shown as follows.
![image](https://github.com/xiaohong-huang/RTK-Visual-Inertial-Navigation/blob/main/fig/experiment_sense.png)
Download our [Dataset](https://1drv.ms/f/s!ApdCy_pJvU0qyVsLB906CNjAEQiH) and launch the rviz via:
```
source ~/catkin_ws/devel/setup.bash
roslaunch rtk_visual_inertial rtk_visual_inertial_rviz.launch
```
Open another terminal and run the project by:
```
source ~/catkin_ws/devel/setup.bash
rosrun rtk_visual_inertial rtk_visual_inertial_node src/RTK-Visual-Inertial-Navigation/yaml/SETTING.yaml YOUR_BAG_FOLDER/BAG_NAME.bag ourput.csv
```
YOUR_BAG_FOLDER is the folder where you save our dataset. BAG_NAME is the name of our dataset. SETTING.yaml is the setting for RTK-Visual-Inertial-Navigation. You could use the following settings to perform different types of navigation.
```
rtk_visual_inertial_config.yaml #RTK-Visual-Inertial-Navigation
rtd_visual_inertial_config.yaml #RTD-Visual-Inertial-Navigation
spp_visual_inertial_config.yaml #SPP-Visual-Inertial-Navigation
spp_CP_visual_inertial_config.yaml #SPP-Visual-Inertial-Navigation with carrier-phase fusion
visual_inertial_config.yaml #Visual-Inertial-Navigation
```
We have also provide a demo for evaluating the positioning errors (see [evaluate.py](https://github.com/xiaohong-huang/RTK-Visual-Inertial-Navigation/blob/main/evaluate/evaluate.py)).
## 4. Run RTK-Visual-Inertial-Navigation in [Jetson-TX2](https://developer.nvidia.com/embedded/jetson-tx2) and [Orangepi5]([https://developer.nvidia.com/embedded/jetson-tx2](http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/details/Orange-Pi-5.html))
We have provide a fast version of RTK-Visual-Inertial-Navigation in [RTK-Visual-Inertial-Navigation-JetsonTX2](https://github.com/xiaohong-huang/RTK-Visual-Inertial-Navigation-JetsonTX2) and [RTK-Visual-Inertial-Navigation-Orangepi5](https://github.com/xiaohong-huang/RTK-Visual-Inertial-Navigation-Orangepi5). The [RTK-Visual-Inertial-Navigation-JetsonTX2](https://github.com/xiaohong-huang/RTK-Visual-Inertial-Navigation-JetsonTX2) is able to achieve real-time state estimation with a state update rate of 20~25Hz in Jetson-Tx2. And The [RTK-Visual-Inertial-Navigation-Orangepi5](https://github.com/xiaohong-huang/RTK-Visual-Inertial-Navigation-Orangepi5) is able to achieve real-time state estimation with a state update rate of 25Hz in Orangepi5.
![image](https://github.com/xiaohong-huang/RTK-Visual-Inertial-Navigation/blob/main/fig/jetson-tx2.png)
![image](https://github.com/xiaohong-huang/RTK-Visual-Inertial-Navigation/blob/main/fig/pi-5-banner-img.png)
## 5. Acknowledgements
The VIO framework is adapted from [VINS-Mono](https://github.com/HKUST-Aerial-Robotics/VINS-Mono). The Ceres-Solver-Modified is developed base on [Ceres-Solver](http://ceres-solver.org/).
## 6. Licence
The source code is released under [GPLv3](https://www.gnu.org/licenses/gpl-3.0.html) license.
没有合适的资源?快使用搜索试试~ 我知道了~
RTK视觉惯性导航滑动窗滤波器框架方法_C++_源码_下载.zip
共97个文件
h:37个
cpp:24个
cc:14个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 65 浏览量
2023-09-17
16:21:44
上传
评论
收藏 6.01MB ZIP 举报
温馨提示
RTK视觉惯性导航滑动窗滤波器框架方法_C++_源码_下载.zip
资源推荐
资源详情
资源评论
收起资源包目录
RTK视觉惯性导航滑动窗滤波器框架方法_C++_源码_下载.zip (97个子文件)
RTK-Visual-Inertial-Navigation-main
evaluate
evaluate.py 3KB
ceres-solver-modified.tar 12.64MB
LICENSE 34KB
yaml
spp_CP_visual_inertial_config.yaml 5KB
cam0_pinhole.yaml 337B
rtd_visual_inertial_config.yaml 5KB
rtk_visual_inertial_config.yaml 5KB
visual_inertial_config.yaml 5KB
cam1_pinhole.yaml 342B
spp_visual_inertial_config.yaml 5KB
rtk_visual_inertial_src
camera_models
include
camodocal
sparse_graph
Transform.h 748B
camera_models
CostFunctionFactory.h 3KB
Camera.h 5KB
ScaramuzzaCamera.h 10KB
CataCamera.h 6KB
PinholeCamera.h 6KB
CameraFactory.h 662B
PinholeFullCamera.h 9KB
EquidistantCamera.h 7KB
calib
CameraCalibration.h 2KB
chessboard
Chessboard.h 3KB
ChessboardQuad.h 775B
ChessboardCorner.h 1KB
Spline.h 10KB
gpl
EigenUtils.h 11KB
gpl.h 2KB
EigenQuaternionParameterization.h 1KB
CMakeLists.txt 2KB
src
sparse_graph
Transform.cc 1KB
intrinsic_calib.cc 9KB
camera_models
CameraFactory.cc 6KB
ScaramuzzaCamera.cc 25KB
EquidistantCamera.cc 20KB
CataCamera.cc 25KB
CostFunctionFactory.cc 58KB
PinholeFullCamera.cc 26KB
Camera.cc 6KB
PinholeCamera.cc 22KB
calib
CameraCalibration.cc 16KB
chessboard
Chessboard.cc 69KB
gpl
EigenQuaternionParameterization.cc 1KB
gpl.cc 25KB
package.xml 2KB
readme.md 552B
rtk_visual_inertial
CMakeLists.txt 2KB
src
feature
feature_tracker.cpp 16KB
feature_manager.h 3KB
feature_tracker.h 3KB
feature_manager.cpp 19KB
main3.cpp 9KB
utility
utility.h 3KB
visualization.h 1KB
camera_pose_visualization.cpp 7KB
visualization.cpp 19KB
camera_pose_visualization.h 1KB
tic_toc.h 478B
gnss
include
lambda.h 122B
common_function.h 5KB
src
lambda.cpp 10KB
common_function.cpp 11KB
factor
integration_base.cpp 9KB
projection_factor.h 2KB
marginalization_factor.h 4KB
marginalization_factor.cpp 19KB
gnss_factor.cpp 6KB
mag_factor.h 374B
gnss_imu_factor.h 8KB
gnss_imu_factor.cpp 33KB
initial_factor.cpp 4KB
pose_local_parameterization.cpp 847B
initial_factor.h 2KB
imu_factor.cpp 11KB
imu_factor.h 541B
projection_factor.cpp 13KB
pose0_factor.h 810B
pose_local_parameterization.h 435B
gnss_factor.h 5KB
mag_factor.cpp 1KB
integration_base.h 2KB
pose0_factor.cpp 1KB
swf
swf.cpp 33KB
swf.h 14KB
swf_core.cpp 28KB
swf_image.cpp 16KB
swf_imu.cpp 9KB
swf_lambda.cpp 15KB
swf_gnss.cpp 30KB
parameter
parameters.h 5KB
parameters.cpp 6KB
package.xml 509B
launch
rtk_visual_inertial_rviz.launch 175B
config
rtk_visual_inertial_rviz_config.rviz 13KB
README.md 6KB
fig
pi-5-banner-img.png 481KB
equipment.png 559KB
jetson-tx2.png 284KB
experiment_sense.png 986KB
共 97 条
- 1
资源评论
m0_57781768
- 粉丝: 9863
- 资源: 402
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 本科毕业设计基于C# wpf人脸识别的考勤系统的设计与实现源码.zip
- 基于Ruoyi+uniapp实现学生考勤系统 学生考勤源码+项目说明.zip
- feae6bc968ca68a099455d8b8a8dea35
- 基于Pytorch训练CIRAR10上分类算法.zip
- Pytorch-pytorch深度学习教程之Tensorboard.zip
- 基于C++和Python开发yolov8-face作为人脸检测器dlib作为人脸识别器的人脸考勤系统源码+项目说明.zip
- Pytorch-pytorch深度学习教程之变分自动编码器.zip
- Pytorch-pytorch深度学习教程之神经风格迁移.zip
- Pytorch-pytorch深度学习教程之深度残差网络.zip
- Pytorch-pytorch深度学习教程之循环神经网络.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功