SLAM精度测评——EVO
1.install
GitHub - MichaelGrupp/evo: Python package for the evaluation of odometry and SLAM
注意:安装好依赖!
sudo apt install python-pip
pip install evo --upgrade --no-binary evo
or
pip install evo --upgrade --no-binary evo --user
pip install numpy --upgrade --user
2.数据格式(data formal):TUM/EuRoC/Kitti数据集
- 格式转换
3数据格式转换
3.1"把EuRoc的数据格式转化成TUM数据格式"
evo_traj euroc data.csv --save_as_tum
将生成的 KeyFrameNavStateTrajectory.txt 文件,格式如下。总共17位 (timestamp;position3;q4;v3;bw3;ba3)
转化成符合TUM 形式的轨迹文件格式:8位
timestamp x y z q_x q_y q_z q_w
3.2"TUM数据转换成kitti格式"
evo_traj tum traj_1.txt traj_2.txt traj_3.txt --save_as_kitti
3.3"TUM数据转换成kitti格式"
- " 把一些文件的数据格式转化成rosbag"
evo_traj tum traj_1.txt traj_2.txt traj_3.txt --save_as_bag
4.evo使用
evo_traj euroc v203_truth.csv --plot
2.Plot multiple trajectories
- Here, we plot two KITTI pose files and the ground truth using
evo_traj
:
cd test/data
evo_traj kitti KITTI_00_ORB.txt KITTI_00_SPTAM.txt --ref=KITTI_00_gt.txt -p --plot_mode=xz
3.Run a metric on trajectories
3.1 evo_ape
绝对位姿误差,常被用作绝对轨迹误差,比较估计轨迹和参考轨迹并计算整个轨迹的统计数据,适用于测试轨迹的全局一致性。
命令语法:命令 格式 参考轨迹 估计轨迹 [可选项]
其中格式包括euroc、tum等数据格式,可选项有对齐命令、画图、保存结果等。
For example, here we calculate the absolute pose error for two trajectories from ORB-SLAM and S-PTAM using evo_ape
(KITTI_00_gt.txt
is the reference (ground truth)) and plot and save the individual results to .zip files for evo_res
:
mkdir results
evo_ape kitti KITTI_00_gt.txt KITTI_00_ORB.txt -r full
-va --plot --plot_mode xz --save_results results/ORB.zip
命令的含义为:计算考虑平移和旋转部分误差的ape,进行平移和旋转对齐,以详细模式显示,保存画图并保存计算结果。
命令运行后得到结果如下图所示
其中-r表示ape所基于的姿态关系
不添加-r/–pose_relation和可选项,则默认为trans_part。
-v表示verbose mode,详细模式,-a表示采用SE(3) Umeyama对齐,其余可选项如下表所示。不加-s表示默认尺度对齐参数为1.0,即不进行尺度对齐。
详情:
可通过 evo_ape +数据格式 + --help查看更多参数的含义以及如何使用。例如
evo_ape euroc --help
3.2 evo_rpe
相对位姿误差不进行绝对位姿的比较,相对位姿误差比较运动(姿态增量)。相对位姿误差可以给出局部精度,例如slam系统每米的平移或者旋转漂移量。
命令语法:命令 格式 参考轨迹 估计轨迹 [可选项]
其中格式包括euroc、tum等数据格式,可选项有对齐命令、画图、保存结果等。
常用命令示例:
evo_rpe euroc data.csv V102.txt -r angle_deg --delta 1 --delta_unit m
-va --plot --plot_mode xyz --save_plot ./VIO --save_results ./VIO.zip
命令的含义为 求每米考虑旋转角的rpe,以详细模式显示并画图。
命令运行后得到结果如下图所示
其中-r表示ape所基于的姿态关系
不添加-r/–pose_relation和可选项,则默认为trans_part。
–d/–delta表示相对位姿之间的增量,–u/–delta_unit表示增量的单位,可选参数为[f, d, r, m],分别表示[frames, deg, rad, meters]。–d/–delta -u/–delta_unit合起来表示衡量局部精度的单位,如每米,每弧度,每百米等。其中–delta_unit为f时,–delta的参数必须为整形,其余情况下可以为浮点型。–delta 默认为1,–delta_unit默认为f。
-v --plot --plot_mode xyz --save_results results/VINS.zip --save_plot等同evo_ape中所讲。
当在命令中加上–all_pairs,则计算rpe时使用位置数据中所有的对而不是仅连续对,此时,可以通过-t/–delta_tol控制–all_pairs模式下的相对增量的容差(relative delta tolerance)。需要注意–all_pairs下不能使用–plot函数。
可通过 evo_rpe +数据格式 + --help查看更多参数的含义以及如何使用。例如
evo_rpe euroc --help
4.Process multiple results from a metric
evo_res
can be used to compare multiple result files from the metrics, i.e
- print infos and statistics (default)
- plot the results
- save the statistics in a table
Here, we use the results from above to generate a plot and a table:
evo_ape/evo_rpe中将结果保存为.zip文件后,可以利用evo_res对不同的结果进行比较。
evo_res results/*.zip -p --save_table results/table.csv
evo_res --help可查看可选参数含义。
evo其他常用命令
结果如下所示:
参考evo: GitHub - MichaelGrupp/evo: Python package for the evaluation of odometry and SLAM
SLAM精度测评——EVO相关推荐
- SLAM精度测评——EVO进阶
1. 基本概念 1.1 Umeyama算法 ATE: evo_ape tum state_groundtruth_estimate0/data.tum orb2/CameraTrajectory.tx ...
- ORB_SLAM2及其他SLAM精度测评
ORB_SLAM2及其他SLAM精度测评 测试工具:https://svncvpr.in.tum.de/cvpr-ros-pkg/trunk/rgbd_benchmark/rgbd_benchmark ...
- SLAM精度测评——rpg_trajectory_evaluatio
1. install https://github.com/ccxslam/rpg_trajectory_evaluation#install 下载catkin_simple:https://git ...
- SLAM轨迹测评工具evo使用
evo主要有以下几种命令: evo_ape : 计算绝对位姿误差 evo_rpe : 计算相对位姿误差 evo_traj : 轨迹管理的主要工具(常用来绘制轨迹) evo_config : 全局设置和 ...
- SLAM评测工具EVO常用功能介绍【正在刷夜的李哈哈】
看完这个我觉得你肯定会用evo了 前言 官方网页介绍 实际使用方法 绘制轨迹:evo_traj 比较绝对位姿误差:eva_ape 比较相对位姿误差:evo_rpe 如何对比kitti数据集下的轨迹(k ...
- 一种SLAM精度评定工具——EVO使用方法详解
evo工具github链接:link evo_ape 计算绝对位姿误差 绝对位姿误差,常被用作绝对轨迹误差,比较估计轨迹和参考轨迹并计算整个轨迹的统计数据,适用于测试轨迹的全局一致性. 命令语法:命令 ...
- SLAM精度评估常见问题——GPS时间戳与bag包时间戳如何对齐
在使用evo进行精度评估时,由于evo是通过时间戳来进行配准和比较的,为了使结果更准确,需要将GPS与bag包的时间戳进行转换对齐 在这里更方便的方法是转换GPS时间戳到bag包 首先查看GPS文件 ...
- SLAM精度评估—从二维到三维
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨lovely_yoshino 来源丨古月居 简介 最近在群里划水时,看到很多初学的SLAMer面 ...
- ubuntu18.04安装SLAM评价工具evo
参考:1. https://blog.csdn.net/haner27/article/details/116709470 2. https://blog.csdn.net/haner27/artic ...
最新文章
- R语言使用caret包的preProcess函数进行数据预处理:对所有的数据列进行center中心化、scale标准化(每个数据列减去平均值、除以标准差)、设置参数为center和scale
- 卷积神经网络(cnn) 手写数字识别
- 2021年春季学期-信号与系统-第十三次作业参考答案-第六小题
- ASP.NET PipeLine #Reprinted#
- PHP基础知识--函数
- Spring For All 顶级Spring综合社区服务平台
- qt中socket通信流程图_Qt学习 之 Socket通信
- Abaqus 两套常用单位
- 比较好的论坛(个人认为)
- mysql 没有 myd_MySQL中找不到.myd文件的问题
- 图扑 Web 可视化引擎在仿真分析领域的应用
- java支付宝网页授权_轻松实现支付宝服务窗网页授权从配置到获取授权获取用户信息...
- 极客时间限时免费开放全部课程!别纠结了选这几门!
- 合服 两个服务器都有什么作用,阴阳师合服是什么意思?合服合区问题汇总详解[多图]...
- 自动化测试 - 12306火车票网站自动登录工具
- jquery实现二级导航下拉菜单效果实例
- 「时序数据库」时间序列数据与MongoDB:第一部分-简介
- 保护终端信息安全的意义何在?
- 无人机动力系统测试的必要性
- sdk无法打开的原因,值得新手参考
热门文章
- 搭建java_搭建java开发环境
- java 类的存储结构设计_Doris存储层设计介绍1——存储结构设计解析
- 多表连接去重复 mysql_连接多个表时避免重复条目(MySQL)
- iis6如何升级iis7_IIS修复IIS出现错误后如何完全卸载重装
- 使用Python,OpenCV进行平滑和模糊
- 机器学习中的一些概念
- 相机标定 matlab opencv ROS三种方法标定步骤(3)
- 强化学习(五) - 时序差分学习(Temporal-Difference Learning)及其实例----Sarsa算法, Q学习, 期望Sarsa算法
- 【SLAM建图和导航仿真实例】(一)- 模型构建
- Udacity机器人软件工程师课程笔记(一)-样本搜索和找回-基于漫游者号模拟器