侧边栏壁纸
  • 累计撰写 125 篇文章
  • 累计创建 16 个标签
  • 累计收到 4 条评论

目 录CONTENT

文章目录
SLAM   

SLAM的轨迹评价指标

SLAM的轨迹评价是衡量定位精度的一个关键部分。以下是针对SLAM轨迹定义以及评价指标定义两方面展开:

轨迹

目前常用的轨迹描述文件包括:kitti、tum。

kitti 格式

KITTI是一个公开的数据集,主要用于自动驾驶和计算机视觉领域的研究。它由德国卡尔斯鲁厄理工学院(Karlsruhe Institute of Technology)和丰田研究所(TOYOTA Technological Institute at Chicago)联合创建。

同时,KITTI提供了一个在线评估服务器,允许研究者提交他们的算法结果并与其他方法进行比较。

但是,实际上 kitti 不是一种真正的轨迹格式,因为它没有时间戳 - 它只包含姿势。这意味着当要将此格式的两个文件与指标进行比较时必须小心,因为姿势的数量必须完全相同

文件的每一行都包含 3x4 齐次姿势矩阵 SE(4) 矩阵的前 3 行,这些矩阵展平为一行,每个值用空格分隔。例如,这个姿势矩阵:

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

在 txt 文件中的展开形式为:

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

tum 格式

TUM 是德国慕尼黑工业大学的英文缩写。因为其提供了一系列的数据集和基准测试,尤其是针对视觉测距和SLAM技术。其中,TUM RGB-D 数据集是一个非常流行的数据集,它提供了从RGB-D相机捕获的数据,用于评估各种视觉测距和SLAM方法。

其中,每行有 8 个条目,包含时间戳(以秒为单位)、位置和方向(以四元数为单位),每个值用空格分隔:

timestamp x y z q_x q_y q_z q_w

评价指标

常用评估轨迹误差的方式有两种:绝对轨迹误差(ATE)与相对轨迹误差(RPE)

绝对轨迹误差(ATE )

ATE 考虑了估计轨迹和真实轨迹之间的全局误差。首先,我们需要对齐估计的轨迹与真实轨迹。通常,这可以通过找到最佳的刚体变换(平移和旋转)来实现。

ATE=1Ni=1NTpiepig22\text{ATE} = \sqrt{\frac{1}{N} \sum_{i=1}^{N} \| T \cdot p_i^e - p_i^g \|_2^2}

其中:

  • TT:从估计轨迹到真实轨迹的最佳刚体变换(包括旋转和平移)。
  • piep_i^e:估计轨迹的第 ii 个位置。
  • pigp_i^g:真实轨迹的第 ii 个位置。
  • NN:轨迹中的位置点的总数。
  • 2\| \cdot \|_2表示欧氏范数。

在计算ATE之前,确保估计轨迹和真实轨迹具有相同的时间戳,并已经进行了恰当的对齐。

相对轨迹误差(RPE )

RPE 与ATE(绝对轨迹误差)不同,RTE更关心局部轨迹的精度和连续性,而不是整个轨迹的全局误差。

RTE通常通过计算两个相邻的位姿之间的相对运动来得到。给定一个时间窗口长度 Δt,RTE会对所有相距 Δt 的位姿对进行评估,以评估这些位姿对之间的相对误差。

相对轨迹误差(RTE)可以定义为所有对应相对位姿变换之间的误差的均值或均方根:

RTE=1NΔti=1NΔtδpieδpig22\text{RTE} = \sqrt{\frac{1}{N-\Delta t} \sum_{i=1}^{N-\Delta t} \| \delta p_i^e \ominus \delta p_i^g \|_2^2}

其中:

  • δpie\delta p_i^e:从估计轨迹中第i个位姿到第i+Δt个位姿的相对变换。
  • δpig\delta p_i^g:从真实轨迹中第i个位姿到第i+Δt个位姿的相对变换。
  • NN:轨迹中的位姿点的总数。
  • \ominus:表示位姿之间的差异操作,通常是指SE(3)空间中的位姿之间的相对变换。

evo工具

evo 工具是一个用于评估测程法和SLAM的Python包

安装:

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

绘制 kitti 数据

计算 APE 的同时绘制轨迹误差图

evo_ape kitti KITTI_00_gt.txt KITTI_00_ORB.txt -va --plot --plot_mode xz

同时绘制多条曲线

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

绘制 TUM 数据

计算 APE 的同时绘制轨迹误差图

evo_ape tum fr2_desk_groundtruth.txt  fr2_desk_ORB.txt -va --plot --plot_mode xz

同时绘制多条曲线

evo_traj tum freiburg1_xyz-ORB_kf_mono.txt freiburg1_xyz-rgbdslam.txt  --ref=freiburg1_xyz-groundtruth.txt -va --plot --plot_mode xy
0

评论区