SLAM评估-evo绘制APE、ATE和ARE曲线

APE、ATE、ARE介绍

LVI-SAM(Lidar Visual-Inertial Smoothing and Mapping)是一种结合激光雷达、视觉和惯性测量的里程计和地图构建方法。在评估LVI-SAM的性能时,通常会使用以下几种指标:
APT(Absolute Pose Trajectory Error):绝对位姿轨迹误差,表示估计的轨迹与真实轨迹之间的差异。APT通常通过计算估计轨迹和真实轨迹之间的欧几里得距离来量化,反映了系统在全局坐标系中的定位精度。

ATE(Absolute Trajectory Error):绝对轨迹误差,类似于APT,ATE用于评估估计轨迹与真实轨迹之间的误差。ATE通常是通过计算每个时间点的位姿误差,然后取平均值或根均方误差(RMSE)来表示。

ARE(Absolute Rotation Error):绝对旋转误差,专门用于评估估计的旋转部分(姿态)与真实旋转之间的差异。ARE通常通过计算旋转矩阵或四元数之间的差异来量化,反映了系统在姿态估计方面的精度。

这些指标帮助研究人员和工程师评估LVI-SAM在不同场景下的性能,确保其在实际应用中的可靠性和准确性。

evo绘制

  • 假设gt.txt为真值文件,lvisam.txt为轨迹文件

绘制APE曲线(full-平移+旋转)

evo_ape tum gt.txt lvisam.txt -r full -va --plot --plot_mode xy --save_plot ./lvisamplotape

绘制ATE曲线(transplant-平移)

evo_ape tum gt.txt lvisam.txt -r trans_part -va --plot --plot_mode xy --save_plot ./lvisamplotate

绘制ARE曲线(rotation)

evo_ape tum gt.txt lvisam.txt -r angle_deg -va --plot --plot_mode xy --save_plot ./lvisamplotare
### 如何使用evo工具评估SLAM算法或系统 Evo 是一种用于评估比较 SLAM 系统的流行 Python 工具,它提供了多种功能来分析轨迹数据并可视化其性能。以下是关于如何利用 evo 进行 SLAM 性能评估的关键点。 #### 安装 Evo 为了开始使用 evo,首先需要安装该工具。可以通过 pip 命令轻松完成安装: ```bash pip install evo ``` #### 数据准备 在使用 evo 之前,需准备好要评估的数据文件。这些文件通常包含机器人或传感器随时间移动的位置估计值以及真实位置(如果可用)。支持的常见格式包括 TUM、KITTI Euroc[^1]。 #### 轨迹对比与误差计算 通过命令行界面 (CLI),可以加载两个轨迹文件——一个是估算轨迹,另一个是地面实况轨迹,并执行各种类型的误差分析: - **绝对轨迹误差 (ATE)**: 衡量全局坐标系下预测位姿与实际位姿之间的差异。 - **相对 pose error (RPE)**: 测量局部变化的一致性,即连续帧间转换矩阵间的偏差。 运行 ATE 或 RPE 的基本语法如下所示: ```bash evo_ape tum groundtruth.txt estimate.txt --plot --save_plot ape_results.pdf evo_rpe tum groundtruth.txt estimate.txt -a -t 0.1 --plot --save_plot rpe_results.pdf ``` 上述例子展示了如何分别针对两种不同形式的错误进行测量,并保存生成图表到 PDF 文件中以便进一步审查。 #### 可视化结果 除了提供数值上的统计指标外,evo 还能够绘制二维或者三维空间内的路径图象帮助直观理解两者之间差距情况。这一步骤可通过附加参数 `--plot` 实现,在前面提到的例子中有体现出来。 #### 自动化脚本编写 对于更复杂的实验设置或是批量处理多组数据集的需求来说,则可考虑撰写 python 脚本来调用 evo 库内部函数实现自动化流程控制。下面给出一段简单的示范代码片段展示这一过程的一部分逻辑结构: ```python from evo.core import sync, metrics import evo.main_ape as main_ape import evo.tools.file_interface as file_interface # Load trajectory files. traj_ref = file_interface.read_tum_trajectory_file("groundtruth.txt") traj_est = file_interface.read_tum_trajectory_file("estimate.txt") # Synchronize trajectories based on timestamps. traj_ref, traj_est = sync.associate_trajectories(traj_ref, traj_est) # Calculate Absolute Pose Error metric instance. ate_metric = metrics.APE(metrics.PoseRelation.translation_part) data = ate_metric.calculate(traj_ref, traj_est) stats_summary = data.get_statistics() print(stats_summary) ``` 此段程序读取两份轨迹文档内容之后同步它们的时间戳序列再求解平移部分对应的绝对姿态误差均方根值等信息最后打印总结报告给用户查看。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值