evo评价视觉slam精度

本文使用evo工具对EuRoC开源数据集的视觉SLAM精度进行评价

默认已经安装好了ORB-SLAM3和evo,两者的安装教程网上很多资料可以参考,这里不再赘述

1.运行ORB-SLAM3,跑EuRoC数据集的双目部分,以MH04_difficult为例:

cd ~/orb_slam3/Examples
./Stereo/stereo_euroc ../Vocabulary/ORBvoc.txt ./Stereo/EuRoC.yaml ../test/MH_04_difficult/ ./Stereo/EuRoC_TimeStamps/MH04.txt

这里,./Stereo/stereo_euroc为双目可执行文件,../Vocabulary/ORBvoc.txt为ORB字典所在位置,../test/MH_04_difficult/为数据集位置,注意:ORB-SLAM3运行双目数据集时,路径到MH_04_difficult即可,./Stereo/EuRoC_TimeStamps/MH04.txt为双目数据集对应的时间戳。

然后会看到这样的界面
在这里插入图片描述
等跑完后生成两个txt,一个是CameraTrajectory.txt,代表全局轨迹,一个是KeyFrameTrajectory.txt,代表关键帧轨迹。

2.使用ORB-SLAM3带的评价工具评价
ORB-SLAM3自带了一个评价工具,位置在~/orb_slam3/evaluation/Ground_truth/,里面有个evaluate_ate_scale.py可以对SLAM轨迹进行粗略评价,使用方法如下:

python ../evaluation/evaluate_ate_scale.py ../evaluation/Ground_truth/EuRoC_left_cam/MH04_GT.txt ../evaluation/CameraTrajectory.txt  --plot mh04ORB-SLAM2.pdf

也会如果加上参数--verbose和--verbose2也会得到RMSE这些误差,感兴趣的可以自己了解一下,因为我对这个python脚本做了一些修改,得到了这样的图:
在这里插入图片描述
3.使用evo工具进行评价
evo工具主要有6个常用命令

evo_ape:用于评估绝对位姿误差
evo_rpe:用于评估相对位姿误差
evo_traj:用于画轨迹、输出轨迹文件、转换轨迹数据格式
evo_res:比较来自evo_ape和evo_rpe生成的一个或多个结果文件的工具
evo_fig:(不常用)用于重新打开序列化图
evo_config:(不常用)evo工具全局设置和配置文件操作

(1)evo_ape:评估绝对位姿误差
首先把EuRoc的数据格式转化成TUM数据格式

evo_traj euroc data.csv --save_as_tum

得到data.tum,这里我把CameraTrajectory.txt重命名为ORB-SLAM2,然后进行评价,

evo_ape tum data.tum ORB-SLAM2 -v -a --plot --plot_mode xy -s --save_results results_gai1/ape.zip

推荐使用

evo_ape tum data.tum ORB-SLAM --plot_mode xyz -as --save_results results_gai1/ape.zip

其中

-v表示verbose mode,详细模式
​
-a表示采用SE(3) Umeyama对齐,只处理平移和旋转

-s 表示仅对齐尺度,不加-s表示默认尺度对齐参数为1.0,即不进行尺度对齐

-as表示采用Sim(3) Umeyama对齐,同时处理平移旋转和尺度
​
–plot表示画图,–plot_mode选择画图模式,二维图或者三维图,可选参数为[xy, xz, yx, yz, zx, zy, xyz],默认为xyz

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

上述命令运行之后会在终端输出统计信息(单位:米),其中

max:最大误差
mean:误差均值
median:误差中位数
min:最小误差
rmse:均方根误差
sse:方差
std:标准差

(2)evo_rpe:评估相对位姿误差
evo_rpe和evo_ape的使用方法基本一致,只是换个指令,可以得到类似的结果图和误差

evo_rpe tum data.tum ORB-SLAM2 -v --plot --plot_mode xyz -as --save_results results_gai1/ape.zip

(3)evo_traj:画轨迹
通过evo_traj可以画出两条轨迹,参数和上面一样

evo_traj tum ORB-SLAM2 --ref data.tum -v --plot --plot_mode xy -as

在这里插入图片描述
(4)evo_res:比较结果
通过evo_res可以比较两条轨迹的误差曲线,箱型图等一些误差

evo_res results_gai1/ape.zip results_gai1/ape1.zip -p --ignore_title --save_table results/table.csv

在这里插入图片描述
(5)evo_config:配置evo
evo_config set 进行参数设置
下面是几个常用的参数,其含义以及可选项
参数

plot_export_format输出图像时图像存储格式 ;常用png,pdf等
plot_linewidth作图时线的宽度;matplotlib支持的宽度,默认1.5
plot_reference_color图像中参考轨迹的颜色; black,red,green等
plot_reference_linestyle参考轨迹的线型; matplotlib支持的线型,默认–
plot_seaborn_style图像背景和网格;whitegrid,darkgrid,white,dark
plot_split是否分开显示/存储图像; false/true
plot_figsize画图的图像大小;默认宽高均为6,可使用其他值
table_export_format表格数据输出格式; 常用 csv,excel,latex,json

例如命令
evo_config set plot_seaborn_style whitegrid 将画图背景更改成白色网格
evo_config set plot_fontfamily serif plot_fontscale 1.2 将字体改为衬线型并调为1.2倍大小
evo_config set plot_reference_linestyle - 将画图所使用的线型改为 -
evo_config set plot_figsize 10 9 将所画图的图像大小调整为10 9(宽 高)
evo_config reset 将参数还原到默认值

参考:
https://blog.csdn.net/dcq1609931832/article/details/102465071
https://blog.csdn.net/Yangy_Jiaojiao/article/details/124419966

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值