INS学习01——VINS_Fusion官方教程翻译解读

我爱编程皮肤好好

已于 2022-12-05 17:32:59 修改

1616
收藏 21
分类专栏: 相机SLAM 文章标签: 学习
版权

相机SLAM
专栏收录该内容
4 篇文章3 订阅
订阅专栏
1.简介
VINS_Fusion 是一个基于优化的多传感器融合定位算法,由港科大开源,在VINS_Mono基础上改进。
融合传感器包括:IMU,双目相机,GPS
融合方式:IMU+单目,IMU+双目,纯双目

  1. 算法演示
    2.1 前期准备
    1)安装ros
    2)安装ceres
    3)下载VINS-Fusion 功能包到你的工作空间
    ```shell
    git clone https://github.com/HKUST-Aerial-Robotics/VINS-Fusion.git

4)数据集
一共用到两个常用的数据集 无人机的数据集EuRoc,无人车的数据集Kitti
都是以G为单位的数据集
我会在每个demo前加上数据集链接、数据集名称、数据集大小、数据集内话题

2.2 无人机demo演示
2.2.1 数据集
链接
数据包下载名称:MH_01_easy.bag
数据包大小 2.7GB

topics: /cam0/image_raw 3682 msgs : sensor_msgs/Image //相机1
/cam1/image_raw 3682 msgs : sensor_msgs/Image //相机2
/imu0 36820 msgs : sensor_msgs/Imu //imu
/leica/position 3099 msgs : geometry_msgs/PointStamped //动捕真值无姿态


2.2.2 单目相机+IMU融合
①打开rviz显示
```shell
roslaunch vins vins_rviz.launch

这三条曲线是显示的重点

②启动数据融合(单目相机和IMU)的核心算法

 rosrun vins vins_node ~/catkin_ws/src/VINS-Fusion/config/euroc/euroc_mono_imu_config.yaml

注意catkin_ws改成自己工作空间名字
可以看到终端输出image的图片格式,以及初始化参数 相机外参和重力环境(这个是针对我们一会要用的数据包MH_01_easy.bag)
③回环代码(可选)*

rosrun loop_fusion loop_fusion_node ~/catkin_ws/src/VINS-Fusion/config/euroc/euroc_mono_imu_config.yaml

建议加不加回环分别运行一次 做个对比
④运行bag包

rosbag play  YOUR_DATASET_FOLDER/MH_01_easy.bag

⑤最终效果
不加回环

其中VIOGroup比较重要的话题就是 定位路径,当前点云,历史点云,现在图片及特征角点

加回环

左下角是检测到回环对应的图片 右侧也可以看出来回环曲线和VIO曲线有一定区别。
但是Globalgroup始终没有显示,我看了一下rqt_graph 确实是没有发布这个话题消息,在后边有GPS的part可能会用到

2.2.3 双目相机+IMU
①启动rviz

roslaunch vins vins_rviz.launch

2.2.3 双目相机+IMU
①启动rviz

rosrun vins vins_node ~/catkin_ws/src/VINS-Fusion/config/euroc/euroc_mono_imu_config.yaml

③回环检测(可选)
开着回环观察红绿曲线的区别,还是可以对整体算法的理解有一些加深的

rosrun loop_fusion loop_fusion_node ~/catkin_ws/src/VINS-Fusion/config/euroc/euroc_mono_imu_config.yaml

④运行代码包

rosbag play YOUR_DATASET_FOLDER/MH_01_easy.bag

2.2.4 双目相机
①启动rviz

roslaunch vins vins_rviz.launch

②启动双目定位代码

rosrun vins vins_node ~/catkin_ws/src/VINS-Fusion/config/euroc/euroc_stereo_config.yaml

③回环(可选)

rosrun loop_fusion loop_fusion_node ~/catkin_ws/src/VINS-Fusion/config/euroc/euroc_stereo_config.yaml

④运行bag

rosbag play YOUR_DATASET_FOLDER/MH_01_easy.bag

2.2.5 定位精度
这个数据集真值获取有障碍,先放一放

2.3 无人车KITTI数据集
官方教程上给了两个KITTI数据集的运行demo,但是我的虚拟机放不开17GB的包,所以没有运行

2.4 无人车demo演示
2.4.1 数据集
链接
数据包名:car.bag
数据包大小:3.9GB
数据包话题(没有真值)

topics:      /cam0/image_raw    5702 msgs    : sensor_msgs/Image
             /cam1/image_raw    5703 msgs    : sensor_msgs/Image
             /imu0             57030 msgs    : sensor_msgs/Imu

2.4.2 双目相机+IMU融合
①运行RVIZ

roslaunch vins vins_rviz.launch

②启动双目+IMU融合定位算法

rosrun vins vins_node ~/catkin_ws/src/VINS-Fusion/config/vi_car/vi_car.yaml

③加入回环(可选)

rosrun loop_fusion loop_fusion_node ~/catkin_ws/src/VINS-Fusion/config/vi_car/vi_car.yaml

④运行bag包

rosbag play YOUR_DATASET_FOLDER/car.bag
  1. 参考文献
    VINS_Fusion官方教程 https://github.com/HKUST-Aerial-Robotics/VINS-Fusion