当前位置: 首页 > news >正文

evo precision evaluation

SLAM轨迹评估工具evo使用方法简介

一、evo工具简介

evo是一个比较方便的轨迹评估工具,官方地址为:https://github.com/MichaelGrupp/evo 。下面主要介绍一些经常用的命令:
1.evo支持的数据格式

TUM 轨迹文件

KITTI 位姿
EUROC

.csv和.txt文件
ROS bag文件

本文主要用到bag和tum两种格式:

evo对rosbag的话题支持主要包含以下四种,常用的是nav_msgs/Odometry :

Currently, bagfiles with topics that contain geometry_msgs/PoseStamped

, geometry_msgs/TransformStamped

, geometry_msgs/PoseWithCovarianceStamped and nav_msgs/Odometry messages are supported. evo only reads the trajectory, thus covariance or twist aren't used. 

TUM 轨迹文件格式为:timestamp tx ty tz qx qy qz qw (时间戳以秒为单位)
2.evo常用命令
2.1 evo_traj
:轨迹可视化工具

evo_traj可以打开任意多个轨迹,查看统计信息,进行对齐以及画图操作,同时可以将轨迹转换成其他格式。一般使用命令如下:

//将bag文件里的里程计topic轨迹转化为tum格式txt文件
evo_traj bag name.bag /topic_name --save_as_tum
//查看tum轨迹文件,并绘制图像,-v 详细模式查看 --full_check 对轨迹进行检查
evo_traj tum name.tum --plot

ps:1.tum格式,只需要给出tum轨迹文件路径即可,bag格式,要给出bag包路径 后面加上odom的话题名称

2.如果要查看多个路径文件,在后面累加即可
2.2 evo_ape/evo_rpe
:绝对位姿评估工具/相对位姿评估工具

两者使用方法基本一样,根据需要选择即可,下面以evo_ape为例

可通过 evo_ape +格式 + --help查看更多参数的含义以及如何使用,例如:

evo_ape bag --help

常用的评估命令如下:

//tum格式 以name1为参考轨迹,计算name2轨迹的绝对位姿误差 -va对齐 -plot画图
evo_ape tum name1.tum name2.tum -va --plot
//bag格式
evo_ape bag name.bag name1topic name2topic -va --plot

下方以RTK输出的里程计评估IMU输出的里程计:如何输出里程计可以参考以下两个链接:

https://zhuanlan.zhihu.com/p/577161337

https://zhuanlan.zhihu.com/p/577958759

有了两者输出的里程计后可以通过rosbag录制输出的里程计话题,之后用evo进行评估:

没有对齐的时候是这样:

自动对齐之后是这样:

ps:1.对这里的自动对齐有个疑问:如果用自动对齐相当于对轨迹已经作了一次优化,求解的均方根误差最小的旋转和平移矩阵,那评估结果就不准了,所以曲线是振荡的,按理说imu的累积误差是一直增大的,所以误差应该也是一直增大
2.3 evo_res
:结果评估工具

evo_ape/evo_rpe中将结果保存为.zip文件后,可以利用evo_res对不同的结果进行比较

2.4 evo_config

:evo配置工具

evo_config show可以查看设置文件中的参数和参数的简要注释,如下所示:

{
“console_logging_format”: “%(message)s”,
“euler_angle_sequence”: “sxyz”,
“global_logfile_enabled”: false,
“plot_axis_marker_scale”: 0.0,
“plot_backend”: “Qt5Agg”,
“plot_figsize”: [
6,
6
],
“plot_fontfamily”: “sans-serif”,
“plot_fontscale”: 1.0,
“plot_invert_xaxis”: false,
“plot_invert_yaxis”: false,
“plot_linewidth”: 1.5,
“plot_mode_default”: “xyz”,
“plot_multi_cmap”: “none”,
“plot_pose_correspondences”: false,
“plot_pose_correspondences_linestyle”: “dotted”,
“plot_reference_alpha”: 0.5,
“plot_reference_axis_marker_scale”: 0.0,
“plot_reference_color”: “black”,
“plot_reference_linestyle”: “–”,
“plot_seaborn_palette”: “deep6”,
“plot_seaborn_style”: “darkgrid”,
“plot_split”: false,
“plot_statistics”: [
“rmse”,
“median”,
“mean”,
“std”,
“min”,
“max”
],
“plot_texsystem”: “pdflatex”,
“plot_trajectory_alpha”: 0.75,
“plot_trajectory_cmap”: “jet”,
“plot_trajectory_linestyle”: “-”,
“plot_usetex”: false,
“plot_xyz_realistic”: true,
“ros_map_alpha_value”: 1.0,
“ros_map_unknown_cell_value”: 205,
“save_traj_in_zip”: false,
“table_export_data”: “stats”,
“table_export_format”: “csv”,
“table_export_transpose”: true,
“tf_cache_lookup_frequency”: 10,
“tf_cache_max_time”: 10000.0
}

相关文章:

  • 【分治法 容斥原理 矩阵快速幂】P6692 出生点|普及+
  • virtualbox 如何虚拟机ip固定
  • DFT测试之TAP/SIB/TDR
  • AudioRelay 0.27.5 手机充当电脑音响
  • Python: 操作 Excel折叠
  • VTK如何让部分单位不可见
  • js树形菜单功能总结
  • excel数据对比找不同:6种方法核对两列数据差异
  • 三十四、面向对象底层逻辑-SpringMVC九大组件之FlashMapManager接口设计哲学
  • 一文学会《使用Auto CAD2020绘制Allegro PCB板框》
  • Excel 表格内批量添加前缀与后缀的实用方法
  • RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)
  • cnn卷积神经变体
  • 若依添加添加监听容器配置(删除键,键过期)
  • 什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南
  • [BJDCTF2020]Easy MD5 1
  • Excel 模拟分析之单变量求解简单应用
  • redhat系统中删除多余的硬盘
  • 深入解析:为什么 Redis 比 MySQL 快
  • Python----目标检测(YOLO简介)
  • 网站制作前需要进行规划设计/百度推广电话销售话术
  • 网站建设详细教程视频/企业管理培训课程视频
  • 如何对网站做镜像/360推广联盟
  • 即墨做网站的/seo外链推广平台
  • 深圳公司网站推广/seo网络优化
  • 重庆建设安全管理网站/深圳营销型网站设计公司