?MSCKF那些事(十二)开源算法Open VINS试用紫薯萝卜 [点击并拖拽以移动]?
2021/7/18 1:05:56
本文主要是介绍?MSCKF那些事(十二)开源算法Open VINS试用紫薯萝卜 [点击并拖拽以移动]?,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
转载自:https://zhuanlan.zhihu.com/p/93814423
MSCKF那些事(十二)开源算法Open VINS试用
紫薯萝卜
机器人,视觉
1. Open VINS简介
Open VINS是Huang Guoquan老师团队在2019年8月份开源的一套基于MSCKF的VINS算法,黄老师曾是Tango项目的核心成员,在MSCKF这块非常的权威。
- Github地址:
rpng/open_vins
github.com
- 官方文档:
Open VINSdocs.openvins.com
Open VINS的特色官网上有介绍,个人比较关注的有以下几点:
- 详细的官方文档和理论推导,写的非常好,强烈推荐
- 五种特征表征形式: 全局 XYZ,全局逆深度,Anchored XYZ,Anchored 逆深度,Anchored MSCKF版本逆深度
- 融合了两种特征SLAM: 分别是ARUCO二维码特征和常规的稀疏特征. Hybird SLAM代码实现(特征加入剔除状态向量,VIO和SLAM切换)非常具有参考意义
open_vins运动初始化代码没有开源,只有静止初始化. 所以直接跑EUROC和TUM数据集,有些数据可能会跑飞。
2. 安装测试
参考官网教程,安装非常简单
- Step0: 准备工作
安装ROS和OpenCV,如果要测试EUROC或TUM数据集,需要提前下载rosbag数据。
- Step1: 编译代码
mkdir -p ~/workspace/catkin_ws_ov/src/ cd ~/workspace/catkin_ws_ov/src/ git clone https://github.com/rpng/open_vins/ cd .. catkin build
- Step2: 修改rosbag路径
ov_msckf/launch目录下已经有了EUROC(pgeneva_eth.launch)和TUM数据集(pgeneva_tum.launch)的launch文件,修改'path_bag','path_gt',分别是rosbag的路径和对应的ground truth文件,其中gt文件在ov_data中已经有了,只需要修改bag对应的gt文件即可。有的launch文件名带'ros'有的不带,不带'ros'的是顺序执行rosbag,带'ros'的是用ros bag play,算法处理不过来的时候会有数据丢失,可以自行选择。
<!-- bag parameters --> <param name="path_bag" type="string" value="/home/symao/data/euroc/rosbag/MH_04_difficult.bag" /> <param name="path_gt" type="string" value="$(find ov_data)/euroc_mav/MH_04_difficult.csv" />
- Step3: 测试程序
cd catkin_ws_ov source devel/setup.bash roslaunch ov_msckf pgeneva_eth.launch # 新开一个终端 rosrun rviz rviz -d ov_msckf/launch/display.rviz
成功运行图如下:
open_vins运行效果图
3. 精度测试
在MH_04_difficult.bag数据上测试了下不同特征表征以及单双目对精度的影响,修改launch文件中的'feat_representation'和'max_cameras'参数,测试结果如下:
对比发现,单目VIO时,逆深度相对于XYZ的精度提升比较明显,ANCHOR坐标系相对于GLOABL坐标系的提升并不是很明显。双目VIO反而最naive的GLOABL XYZ精度最好。这里只测了一组数据,并不能完全说明问题,只能粗略参考。
最后,再次强烈推荐官方文档https://docs.openvins.com/pages.html. 有代码有文档,理论推导又详细又全面,绝对的良心巨作,给黄老师团队点赞。
编辑于 2019-11-27
这篇关于?MSCKF那些事(十二)开源算法Open VINS试用紫薯萝卜 [点击并拖拽以移动]?的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享
- 2024-11-22怎么实现ansible playbook 备份代码中命名包含时间戳功能?-icode9专业技术文章分享