open_vins(二):rosbag精度测试

一.ros读取与轨迹保存

运行open_vins launch 读取ros数据包:

roslaunch pgeneva_ros_eth.launch 

修改launch中的rosbag名称来改变数据集:

<arg name="bag_start"   default="0" />
<arg name="bag_name"  default="/xxxxx/datasets/EuRoc/MH_03_medium.bag" />  

输出运动轨迹结果保存到:

 <arg name="path_est"    default="/xxxx/open_vins_ws/src/open_vins/ov_eval/example/traj_estimate.txt" />

运动轨迹保存的node:

<node name="recorder_estimate" pkg="ov_eval" type="pose_to_file" output="screen" required="true">
   <param name="topic"      type="str" value="/ov_msckf/poseimu" />
   <param name="topic_type" type="str" value="PoseStamped" />
   <param name="output"     type="str" value="$(arg path_est)" />
</node>

二.euroc数据集测试

双目: MH_03
运行效果:
在这里插入图片描述
evo轨迹评估
在这里插入图片描述
数据集从第0s开始运行,数据集起始状态为静止状态
open_vins运动初始化代码没有开源,目前使用的是静止初始化,因此对于起始状态为静止的情况具有较好的运行效果。
而对于一些起始状态为运动的数据集,非常容易在一开始就跑飞(imu初始化错误)

双目: v1_01在这里插入图片描述
在这里插入图片描述

单目:v1_01 (0s)
在这里插入图片描述
运行v1_01数据集 (0s起始)
对比轨迹精度:双目的效果会比单目好些;
evo轨迹评估的尺度误差:单目与双目相差不大。

三、结论

1.openvins的imu初始化使用静止初始化 方法,要求运动起始状态为静止状态,且设定激励阈值来判断运动突变时刻.
(部分数据集无法满足起始静止条件会出现跑飞现象)
2.前期imu误差较大,但通过后期的状态更新可以消除一部分的误差.
3.单目没有视觉尺度问题

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值