使用EVO工具测评SLAM轨迹

你又发现,压根没有数据集格式的问题存在:如果有问题再按照二节中修改

tum格式 就用  evo_traj tum

euroc格式,就用 evo_traj euroc

一. Vins-Mono数据集格式的问题(这一章可以删掉了

拿到Vins-mono代码,只修改 output_path 和 pose_graph_save_path后,使用闭环,使用时间偏置估计。

在运行 roslaunch vins_estimator euroc.launch  的窗口,最后按入's'键保存生成了 vins_result_loop.csv文件。

然后运行:

evo_traj tum vins_result_no_loop.csv -p --plot_mode=xyz

 结果会出现这个错误:(你这里本身是euroc数据集,用的是tum命令,不出错才怪

[ERROR] TUM trajectory files must have 8 entries per row and no trailing delimiter at the end of the rows (space)

 以上原因在于 evo 仅仅支持 TUM 格式数据集绘制,而VINS-Mono源码保存的是 EUROC 格式数据集。把源码中的数据集保存方式改成 TUM 格式的 即可。euroc和tum的数据格式区别参考博客[1],euroc由于是四旋翼采集的数据,因此,包含:

(时间戳,位置,姿态,速度,陀螺仪bias,加速度bias)

tum的数据集格式如下:

(时间戳,位置,姿态)

因此,euroc数据集可以转为tum格式的数据集,反过来是不行的。

小疑问:虽然说这是euroc格式的数据,但是输出的 vins_result_loop.csv 文件明显只有8列啊,哪里不符合tum格式了,不太明白~~


二. 修改VINS-Mono输出tum格式的数据集(这一章估计也可以删掉

 具体修改了3个地方,参考博客[3]。

最后就能运行出 tum格式的 vins_result_loop.csv文件。

三. 使用evo进行测评(单条轨迹)

1. 需要一个绝对轨迹

运行的 MH_01_easy.bag 的绝对轨迹在文件夹

EuRoC/mav0/state_groundtruth_estimate0/data.csv

参考[2] 运行下述代表,把euroc格式的数据集转为 tum格式的数据集

evo_traj euroc data.csv --save_as_tum// 将euroc格式的文件data.cs转成tum格式。生成data.tum

反正数据集格式tum就用tum,euroc就用euroc

2. 实际轨迹的操作

实际轨迹就是 (二)中生成的 vins_result_loop.csv 格式文件,内部已经是tum格式的数据了

 直接运行

evo_traj tum vins_result_no_loop.csv -p --plot_mode=xyz

即可出现

使用EVO工具测评SLAM轨迹_第1张图片

使用EVO工具测评SLAM轨迹_第2张图片

 

evo_ape tum data.tum ~/output/vins_result_no_loop.csv -va --plot --plot_mode xyz --save_results a.zip

 不太懂为什么roll角突变那么严重,这正常吗?

四. 对比绝对轨迹和实际轨迹

4.1 绝对轨迹位姿误差 APE

euroc就用下述代码:

evo_ape euroc data.csv ~/output/vins_result_no_loop.csv -va --plot --plot_mode xyz --save_results a.zip

tum就用下述代码:文件具体是什么后缀,取决于你的数据集保存的文件。

evo_ape tum data.csv ~/output/vins_result_no_loop.csv -va --plot --plot_mode xyz --save_results a.zip

目前联合对比轨迹,很容易出现下述问题:(经过运行ground_truth,你发现两个轨迹天差地别,肯定是你的ground_truth找错了)

[ERROR] found no matching timestamps between /home/zjj/Data/EuRoC/mav0/state_groundtruth_estimate0/data.tum and /home/zjj/output/vins_result_loop.csv with max. time diff 0.01 (s) and time offset 0.0 (s)

[1]. 各类数据格式_半尺杆头的博客-CSDN博客

[2]. Ubuntu 18.04 ——— VINS-Mono运行与EVO的评测与使用_@曾记否的博客-CSDN博客_vins-mono评估

[3].

你可能感兴趣的:(VIO,1024程序员节,c++)