evo测评工具使用

evo测评工具使用

evo测评工具提供可执行文件和一个小库,用于处理、评估和比较里程计和SLAM算法的轨迹输出。本次主要对该包的功能介绍。

支持的轨迹格式:

1.TUM数据集格式:每行有8个条目,包含时间戳(以秒为单位)、位置和方向(作为四元数),每个值由空格分隔。例如:

timestamp x y z q_x q_y q_z q_w

2.kitti数据格式:这实际上不是一个真正的轨迹格式,因为它没有时间戳-它只包含在文本文件中的姿态。这意味着,当您想要用这种格式将两个文件与公制进行比较时,您必须非常小心,因为姿态的数目必须是完全相同的。

文件的每一行都包含4x4同质位姿矩阵(SE(3)矩阵)的前3行,其中每个值都由一个空格分隔。例如,这个姿态矩阵:

a b c d
e f g h
i j k l
0 0 0 1

将以行的形式出现在文件中:

a b c d e f g h i j k l

3.Euroc MAV数据格式:此格式为无人机的信息格式,包括IMU的零偏等等。evo提供了脚本将该个数转化为TUM数据集格式。

命令行接口

指标:

  • evo_ape-绝对位姿误差
  • evo_rpe-相对位姿误差

工具

  • evo_traj-分析、绘制或导出一个或多个轨迹的工具
  • evo_res-比较一个或多个结果文件的工具evo_apeevo_rpe
  • evo_fig-(实验)重新打开序列化地块的工具(保存于--serialize_plot)
  • evo_config-全局设置和配置文件操作工具

调用命令--help查看选项,例如:evo_ape --help。选项卡-完成命令行参数在UNIX类系统上可用。

示例

1.绘制多重轨迹

在这里,使用evo_traj:

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pI0cfQYh-1591271605928)(images/1.png)]

2.轨迹度量

evo_ape kitti KITTI_00_gt.txt KITTI_00_ORB.txt -va --plot --plot_mode xz --save_results results/ORB.zip

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ea0WPUOx-1591271605929)(images/2.png)]

3.处理结果

evo_res可用于比较来自度量的多个结果文件,即:

  • 打印信息和统计数据(默认)
  • 绘制结果
  • 讲统计信息保存在表中
evo_res results/*.zip -p --save_table results/table.csv

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VpsY4H6S-1591271605931)(images/3.png)]


以上是github上的readme,详细信息见wiki百科:

wiki百科

configuration

evo_config是一个小工具,可用于更改全局设置或生成自定义配置文件。并不是很常用。

evo_traj

evo_traj是使用多种轨迹来做家务的主要工具,例如:

  • 显示一些信息
  • 绘图
  • 验证数据是否有效
  • 导出到其他格式
  • 应用变换

-a :对齐

-s:尺度对齐

-v:输出详细模式

-p:绘图

–plot_mode=xyz:选择绘图平面

如果你给出一个参考轨迹--ref,您可以将其他轨迹与Umeyama方法的引用对齐:-a 和-s(只有存在ref时才能用-a和-s)

也有可能只对齐第一个n轨迹的姿态--n_to_align,例如--n_to_align 100.

对于漂移/环路闭包评估来说,一个简单的原点对齐是可用的--align_origin。这不是基于Umeyama算法。

时间对齐

这是通过搜索基准和其他轨迹之间的最佳匹配时间戳来实现的。然后将所有轨迹简化为最佳匹配时间戳。如果没有找到匹配项,则会引发错误。这一步骤的备选方案如下:

  • --t_offset*添加一个恒定的时间戳偏移量(不添加–参考轨道)-缺省值:0.0s
  • --t_max_diff数据关联的最大时间戳差-缺省值:0.01s

所有几何对齐方法(--align, --correct_scale)自动完成点配准。您还可以只同步轨迹的时间戳,而不需要任何几何对齐。--sync.

变换

您也可以通过定制的3D转换来转换轨迹的姿态。为此,你需要一个.json以这种格式使用平移向量和旋转四元数的文件:

{
  "x": 0.0,
  "y": 0.0,
  "z": 0.0,
  "qx": 0.0,
  "qy": 0.0,
  "qz": 0.0,
  "qw": 1.0
}

若要从全局框架应用这样的转换,请使用--transform_left 。若要从各自的本地框架转换每个姿态,请使用--transform_right (这会改变轨迹的形状,如果它包含一个翻译!)。

格式

以下组合是可能的:

--save_as_bag --save_as_kitti --save_as_tum
bag
euroc
kitti 不(没有时间戳) 不(没有时间戳)*
tum

*…。但你可以用这个剧本连同Kitti数据集的时间戳文件

导出的Ros包文件将包含geometry_msgs/PoseStamped讯息

例子:

# export a EuRoC groundtruth file to a TUM trajectory
evo_traj euroc data.csv --save_as_tum
# (will be saved as data.tum)

# export TUM trajectories to KITTI format
evo_traj tum traj_1.txt traj_2.txt traj_3.txt --save_as_kitti
# (will be saved as *.kitti)

# export TUM trajectories to ROS bagfile
evo_traj tum traj_1.txt traj_2.txt traj_3.txt --save_as_bag
# (will be saved as .bag with topics traj_1, traj_2 and traj_3)

# and so on...

度量标准

相对位姿误差不是直接比较绝对姿态,而是比较运动(“姿态三角”)。这个度量给出了关于局部精度的见解,即漂移。例如,可以评估每米的平移或旋转漂移:

evo_rpe tum reference.txt estimate.txt --pose_relation angle_deg --delta 1 --delta_unit m

有几种设置允许您更改情节的外观。

在命令行应用程序中,查看如下参数--plot, --plot_mode更一般的,包范围的设置可以通过evo_config set(见“配置”一节)。看一看evo_config show若要查看所有可用设置及其当前值,请执行以下操作。

打印质量图的示例配置

这是一个示例演练,说明如何在理论上更改绘图设置以生成用于打印的高质量情节(论文、纸张.)。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vVb4G9F0-1591271605934)(https://github.com/MichaelGrupp/evo/wiki/images/plot_style_default.png)] [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-o1zomzFX-1591271605938)(https://github.com/MichaelGrupp/evo/wiki/images/plot_style_changed.png)]

1.设置地块网格和背景

默认的情节设置有一个黑暗的背景。这在屏幕上看起来不错,但不适合打印。的样式参数,可以将背景更改为白色背景的网格。海航有:

evo_config set plot_seaborn_style whitegrid

2.设置字体类型和缩放

默认字体并不适合我们论文的其余部分,它使用的是衬线字体。图中文本标签的相对大小也可以增加,以获得更好的可读性。我们可以通过调用:

evo_config set plot_fontfamily serif plot_fontscale 1.2

为了匹配较小的字体,我们还减少了线宽:

evo_config set plot_linewidth 1.0

您还可以更改其他一些内容,例如参考轨迹的行样式:

evo_config set plot_reference_linestyle -

3.设置默认数字大小

您也可以调整默认的绘图图形大小。例如,宽度为5,高度为4.5:

evo_config set plot_figsize 5 4.5

4.使用乳胶渲染器

因为我们用胶乳来写论文,所以我们也想用乳胶来渲染情节的字体:

evo_config set plot_usetex

您可能需要更改plot_texsystem参数,如果在第一次尝试中不工作,请参见evo_config show.

**高级:**地块也可以出口(--save_plot)以PGF格式:evo_config set plot_export_format pgf.

5.恢复默认设置

evo_config reset

坐标轴标记

通过设置坐标轴标记可以激活plot_axis_marker_scale为非零值,例如:

evo_config set plot_axis_marker_scale 0.1

您可能需要使用这个比例尺值来调整它以适应您的轨迹的大小。把它设置为0如果你不再需要它的话。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AnwM7WKX-1591271605940)(https://github.com/MichaelGrupp/evo/raw/master/doc/assets/markers.png)]

姿态对应标记

您可以启用标记,将参考轨道的姿态与其他轨迹中相应的姿态连接起来。此设置适用于evo_apeevo_rpe,但也是evo_traj如果指定--ref参考和其他轨迹要么是同步的,要么是对齐的。

激活:

evo_config set plot_pose_correspondences true
使用这个比例尺值来调整它以适应您的轨迹的大小。把它设置为`0`如果你不再需要它的话。

[外链图片转存中...(img-AnwM7WKX-1591271605940)]

### 姿态对应标记

您可以启用标记,将参考轨道的姿态与其他轨迹中相应的姿态连接起来。此设置适用于`evo_ape`和`evo_rpe`,但也是`evo_traj`如果指定`--ref`参考和其他轨迹要么是同步的,要么是对齐的。

激活:

evo_config set plot_pose_correspondences true

你可能感兴趣的:(evo测评工具使用)