- 一.ros读取与轨迹保存
- 二.euroc数据集测试
- 三、结论
一.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.单目没有视觉尺度问题
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)