从零入门激光SLAM(十二)——evo工具箱

大家好呀,我是一个SLAM方向的在读博士,深知SLAM学习过程一路走来的坎坷,也十分感谢各位大佬的优质文章和源码。随着知识的越来越多,越来越细,我准备整理一个自己的激光SLAM学习笔记专栏,从0带大家快速上手激光SLAM,也方便想入门SLAM的同学和小白学习参考,相信看完会有一定的收获。如有不对的地方欢迎指出,欢迎各位大佬交流讨论,一起进步。博主创建了一个科研互助群Q:772356582,欢迎大家加入讨论。

SLAM和里程计评估工具——evo - 灰信网(软件开发博客聚合) 
evo详细参考见上述链接

一、简介

EVO代表"Evaluating Visual Odometry and SLAM systems",是一组用于比较和评估视觉里程计(Visual Odometry,VO)和SLAM(Simultaneous Localization and Mapping)系统的工具和方法。EVO工具箱提供了一种用于评估VO和SLAM算法输出轨迹与真实轨迹之间差异的方式。它可以从ROS数据包、KITTI数据集或者Euroc数据集等输入中读取数据,然后计算和显示VO和SLAM轨迹的误差、相对运动信息、以及其他性能指标。

二、安装使用

  • 安装 

pip install evo --upgrade --no-binary evo

evo包括两个带尺度的评估工具和四个简单的工具:

Metrics工具

  1. evo_ape:绝对位姿评估工具;
  2. evo_rpe:相对位姿评估工具;

简单工具

  1. evo_traj:轨迹可视化工具
  2. evo_res:结果评估工具
  3. evo_fig:绘图查看工具
  4. evo_config:evo配置工具
  •  evo_traj

主要用途是显示轨迹
显示一个轨迹

evo_traj tum a.txt -p

显示多个轨迹

evo_traj kitti KITTI_00_ORB.txt KITTI_00_SPTAM.txt --ref=KITTI_00_gt.txt -p -vas --plot_mode=xz

--ref=[ground_truth]:该选项明确了轨迹可视化中所需使用的标称轨迹文件,使用该选项后,evo会以灰色虚线绘制标称轨迹;

-p 画图像

--plot_mode=xz 画二维图像,也可以xy、yz自己选择

--align_origin 匹配到统一起点

–align/-a 采用SE(3) Umeyama对齐,只处理平移和旋转
–align --correct_scale/-as 采用Sim(3) Umeyama对齐,同时处理平移旋转和尺度
–correct_scale/-s 仅对齐尺度

--save_plot ./output.pdf  保存图片为PDF

-- full_check可以对轨迹进行检查

轨迹对比

从零入门激光SLAM(十二)——evo工具箱_第1张图片

三轴位置对比

从零入门激光SLAM(十二)——evo工具箱_第2张图片

三轴姿态角对比 

从零入门激光SLAM(十二)——evo工具箱_第3张图片

  • evo_ape/rpe

evo_ape kitti KITTI_00_ORB.txt KITTI_00_SPTAM.txt  -r full -p -vas --plot_mode=xz --save_results --delta 100
evo_rpe kitti KITTI_00_ORB.txt KITTI_00_SPTAM.txt  -r full -p -vas --plot_mode=xz --save_results --delta 100

ape是绝对误差,rpe是相对误差,默认第一个文件是ground truth

该工具会显示如下所示的轨迹误差曲线和误差热力图。

--save_results,该参数允许我们将evo_ape的结果存储在一个zip文件中,后后续的evo_res评估使用。

-r 表示ape/rpe所基于的姿态关系

--delta 100 表示100m统计一次

从零入门激光SLAM(十二)——evo工具箱_第4张图片

从零入门激光SLAM(十二)——evo工具箱_第5张图片

从零入门激光SLAM(十二)——evo工具箱_第6张图片

  •  evo_res

对比多个方法与真值的精度

evo_res results/*.zip -p --save_table results/table.csv

从零入门激光SLAM(十二)——evo工具箱_第7张图片

  • evo_config

evo_config用于保存配置文件,可以把自己的参数保存下来,这样就可以避免每次都输入相同的参数。 

从零入门激光SLAM(十二)——evo工具箱_第8张图片

1、生成配置文件

evo_config generate --pose_relation angle_deg --delta 1 --delta_unit m --verbose --plot --out rpe_config.json

生成json配置文件如下所示

{
    "delta": 1.0,
    "delta_unit": "m",
    "plot": true,
    "pose_relation": "angle_deg",
    "verbose": true
}

2、调用生成的配置文件 

evo_rpe groundtruth.txt estimate2.txt -c rpe_config.json

 

你可能感兴趣的:(从零入门激光SLAM,机器人,无人机,自动驾驶)