1.简介

VINS_Fusion 是一个基于优化的多传感器融合定位算法,由港科大开源,在VINS_Mono基础上改进。
融合传感器包括:IMU,双目相机,GPS
融合方式:IMU+单目,IMU+双目,纯双目

2. 算法演示

2.1 前期准备

1)安装ros
2)安装ceres
3)下载[VINS-Fusio](https://github.com/HKUST-Aerial-Robotics/VINS-Fusion)n 功能包到你的工作空间

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显示

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

②启动双目+IMU的融合代码

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

3. 参考文献

VINS_Fusion官方教程 https://github.com/HKUST-Aerial-Robotics/VINS-Fusion

4.下篇预告

  1. 将VINS_Fusion 代码应用在自己设备上的修改流程
  2. 这两组实验的真值我都没获取成功,后续用在自己设备上做2.2.2~2.2.4的定位精度验证

VINS_Fusion学习01——官方教程翻译解读相关推荐

  1. Unity3D Shader官方教程翻译(三)

    Unity3D Shader官方教程翻译(三) 1.Shader语法:Pass 1个Pass块可以使一个几何物体被一次渲染. Pass { [Name and Tags] [RenderSetup] ...

  2. Dapper官方教程翻译8:Dapper方法之QueryMultiple(转)

    Dapper官方教程翻译8:Dapper方法之QueryMultiple 2019年02月28日 10:42:22 Day_and_Night_2017 阅读数:120 QueryMultiple方法 ...

  3. Caffe官方教程翻译(8):Brewing Logistic Regression then Going Deeper

    前言 最近打算重新跟着官方教程学习一下caffe,顺便也自己翻译了一下官方的文档.自己也做了一些标注,都用斜体标记出来了.中间可能额外还加了自己遇到的问题或是运行结果之类的.欢迎交流指正,拒绝喷子! ...

  4. Caffe官方教程翻译(7):Fine-tuning for Style Recognition

    前言 最近打算重新跟着官方教程学习一下caffe,顺便也自己翻译了一下官方的文档.自己也做了一些标注,都用斜体标记出来了.中间可能额外还加了自己遇到的问题或是运行结果之类的.欢迎交流指正,拒绝喷子! ...

  5. Caffe官方教程翻译(6):Learning LeNet

    前言 最近打算重新跟着官方教程学习一下caffe,顺便也自己翻译了一下官方的文档.自己也做了一些标注,都用斜体标记出来了.中间可能额外还加了自己遇到的问题或是运行结果之类的.欢迎交流指正,拒绝喷子! ...

  6. Caffe官方教程翻译(1):LeNet MNIST Tutorial

    前言 最近打算重新跟着官方教程学习一下caffe,顺便也自己翻译了一下官方的文档.自己也做了一些标注,都用斜体标记出来了.中间可能额外还加了自己遇到的问题或是运行结果之类的.欢迎交流指正,拒绝喷子! ...

  7. Caffe官方教程翻译(10):Editing model parameters

    前言 最近打算重新跟着官方教程学习一下caffe,顺便也自己翻译了一下官方的文档.自己也做了一些标注,都用斜体标记出来了.中间可能额外还加了自己遇到的问题或是运行结果之类的.欢迎交流指正,拒绝喷子! ...

  8. Caffe官方教程翻译(9):Multilabel Classification with Python Data Layer

    前言 最近打算重新跟着官方教程学习一下caffe,顺便也自己翻译了一下官方的文档.自己也做了一些标注,都用斜体标记出来了.中间可能额外还加了自己遇到的问题或是运行结果之类的.欢迎交流指正,拒绝喷子! ...

  9. Caffe官方教程翻译(5):Classification: Instant Recognition with Caffe

    前言 最近打算重新跟着官方教程学习一下caffe,顺便也自己翻译了一下官方的文档.自己也做了一些标注,都用斜体标记出来了.中间可能额外还加了自己遇到的问题或是运行结果之类的.欢迎交流指正,拒绝喷子! ...

  10. Caffe官方教程翻译(4):CIFAR-10 turorial

    前言 最近打算重新跟着官方教程学习一下caffe,顺便也自己翻译了一下官方的文档.自己也做了一些标注,都用斜体标记出来了.中间可能额外还加了自己遇到的问题或是运行结果之类的.欢迎交流指正,拒绝喷子! ...

最新文章

  1. Java中String、StringBuffer和StringBuilder的区别
  2. LNMP部署(分享十七)
  3. SAP Spartacus单元测试里Component实例的创建细节
  4. Arduino笔记-9110风扇模块的使用
  5. 搜狐超越新浪给创业者的两个启示:不断+耐心布局
  6. STM32出现HardFault故障的解决方法
  7. git am 部分发生冲突的处理
  8. minium环境配置——微信开发者工具
  9. 如何提取html的音频,如何将网页中的音频文件提取出来
  10. vbox win10 分辨率_告诉你win10系统设置屏幕分辨率的两种方法
  11. 关于 Windows 桌面图标显示为空白的解决方法
  12. 学软件嵌入式需要学c语言吗,嵌入式软件工程师需要学什么?
  13. 学计算机应用技术掉头发,为什么程序员更容易脱发呢?
  14. [其他][转载]ACM知识点分类
  15. golang:模拟http post请求
  16. Android O 版本(Android 8.0) 存储空间不足时提醒
  17. 狂神说 | Mybatis完整版笔记
  18. Windows添加route
  19. 16bit的pcm双声道转单声道
  20. 镍氢电池的特性和使用方法(FDK镍氢电池充电机制)

热门文章

  1. 格式工厂DIVX、AVC、HEVC三个格式那个最清晰
  2. BI系统打包Docker镜像及容器化部署的具体实现
  3. 小米平板2刷哪个系统更流畅_教程:小米平板2轻松刷Win10
  4. 手机支付需厘清六大关键问题
  5. IDEA快捷键大全 + 动图演示,提升效率
  6. java WebSocket客户端断线重连 | 实用代码框架
  7. 金蝶云星空表单插件开发常用事件、方法、函数
  8. ark服务器修改龙属性代码,方舟生存进化修改恐龙颜色指令代码
  9. office2016 + visio2016
  10. xu2w显示屏软件下载_LED显示屏控制软件(LED BEST)