IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> EVO评估工具的使用 -> 正文阅读

[Python知识库]EVO评估工具的使用

evo github 链接

0、安装

通过 PyPI :

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

装不上可以换源:

清华:https://pypi.tuna.tsinghua.edu.cn/simple
阿里云:http://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
华中理工大学:http://pypi.hustunique.com/
山东理工大学:http://pypi.sdutlinux.org/
豆瓣:http://pypi.douban.com/simple/

直接用 -i 命令指定源即可,比如:

pip install evo --upgrade --no-binary evo -i https://pypi.tuna.tsinghua.edu.cn/simple

也可以下载源码到本地,然后在根目录执行(如果用了kitti数据集,建议用这一种)

pip install --editable . --upgrade --no-binary evo

1、evo的命令工具

1.1 命令列表

两个指标命令,四个工具命令
指标命令

evo_ape - absolute pose error 绝对位姿误差
evo_rpe - relative pose error 相对位姿误差

工具命令

evo_traj - tool for analyzing, plotting or exporting one or more trajectories,最常用,绘制轨迹图,分析轨迹结果
evo_res - tool for comparing one or multiple result files from evo_ape or >evo_rpe,较常用,对结果进一步分析,比对一个或更多轨迹结果
evo_fig - (experimental) tool for re-opening serialized plots (saved with --serialize_plot)
evo_config - tool for global settings and config file manipulation

1.2 轨迹格式转换

支持轨迹格式:(更详细的见文档)

TUM’ trajectory file: 时间戳+3D位置+四元数 [timestamp x y z q_x q_y q_z q_w]
KITTI’ pose files : 变换矩阵[a b c d e f g h i j k l]
EuRoC MAV’ (.csv groundtruth and TUM trajectory file)
ROS and ROS2 话题

geometry_msgs/PoseStamped
geometry_msgs/TransformStamped
geometry_msgs/PoseWithCovarianceStamped
nav_msgs/Odometry
TF

在跑源码的时候,可能会遇到代码输出格式与数据集格式不同的情况。evo也提供了转换工具
可以使用 evo_traj + 轨迹文件 + –save_as_<other_format> 的命令进行格式转换

在这里插入图片描述
例:

# 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 <timestamp>.bag with topics traj_1, traj_2 and traj_3)

# ......

1.3 对齐和转换

可以通过下面的指令将其他轨迹与参考轨迹(–ref指定的)对齐:

–align or -a = SE(3) Umeyama alignment (rotation, translation)
–align --correct_scale or -as = Sim(3) Umeyama alignment (rotation, translation, scale)
–correct_scale or -s = scale correction only

2、示例

下面分别展示官方和自己用ORB-SLAM2测试的结果

2.1 绘制多条轨迹

官方

假设KITTI_00_ORB.txt、KITTI_00_SPTAM.txt 分别是ORB-SLAM和S-PTAM在kitti sequence00下的估计结果; KITTI_00_gt.txt 为ground truth

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

-p / --plot 表示绘制轨迹;
** --plot_mode** 指定视图,如 xz 表示 x 轴和 z 轴处的 2D 视图;xyz 表示 3D 视图。
更详细的可以参考 evo/Plotting

在这里插入图片描述

ORB-SLAM2
以kitti sequence 00 为例:

ORB-SLAM生成的轨迹文件KeyFrameTrajectory.txt 是Tum格式的,Tum比Kitti格式包含更多信息,因此将Kitti的ground truth 转换为Tum的:
找到evo/contrib,里面有一个kitti_poses_and_timestamps_to_trajectory.py文件。把KITTI数据集下的00.txt和times.txt文件拷贝到该目录,运行如下命令得到kitti_00_gt.txt文件(直接就是Tum格式):

python3 kitti_poses_and_timestamps_to_trajectory.py 00.txt times.txt kitti_00_gt.txt

然后:

evo_traj tum KeyFrameTrajectory.txt --ref kitti_00_gt.txt -p --plot_mode xz --correct_scale --align

在这里插入图片描述

如果不带 align
在这里插入图片描述
如果不带 align 也不带 correct_scale
在这里插入图片描述

2.2 计算轨迹误差

使用evo_ape计算ORB-SLAM和S-PTAM两个轨迹的绝对姿态误差,绘制并将单个结果保存到.zip文件中以供evo_res:-a选项表示对齐两条轨迹,第5个参数中的-v选项表示输出轨迹对齐的详细信息(即对齐的平移、旋转);

官方

ORB Stereo 估计

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

在这里插入图片描述

S-PTAM 估计

evo_ape kitti KITTI_00_gt.txt KITTI_00_SPTAM.txt -va --plot --plot_mode xz --save_results results/SPTAM.zip

在这里插入图片描述

-a 表示对齐两条轨迹;
-v 表示输出轨迹对齐的详细信息(即对齐的平移、旋转);

ORB-SLAM2

evo_ape tum kitti_00_gt.txt KeyFrameTrajectory.txt --plot --correct_scale --align -v --save_results kitti_00_ape.zip

在这里插入图片描述

在这里插入图片描述

如果无法保存*.zip执行这句:

evo_config set save_traj_in_zip true

2.3 可视化误差结果

使用 evo_res 比较指标中的多个结果文件,即:

打印信息和统计信息(默认)
绘制结果
将统计信息保存在表中

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

在这里插入图片描述

ORB-SLAM2

 evo_res results/kitti_00_ape.zip -p --save_table results/kitti_00_apetable.csv

在这里插入图片描述

3、 详细文档

4、其他相关博客

evo轨迹评估工具使用
EVO使用方法详解

【SLAM】运行ORB-SLAM2并使用evo工具评估TUM/KITTI/EuRoC单目数据集【SLAM】运行ORB-SLAM2并使用evo工具评估TUM/KITTI/EuRoC单目数据集

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-07-21 21:30:58  更:2022-07-21 21:31:25 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/26 15:34:49-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计