evo工具评测slam系统

文章目录

    • 安装
    • 使用介绍
      • 查看版本
      • 支持的轨迹文件类型
      • 不同轨迹文件之间的转换
      • 优点
      • evo包含的工具
      • 常用命令

参考wiki

安装

github

  • Python 3.4+ and Python 2.7 都支持

  • 安装步骤

  1. 安装pip,可能需要升级
  2. 从github下载源码git clone https://github.com/MichaelGrupp/evo.git
  3. 从清华镜像下载依赖安装pip install -i https://pypi.tuna.tsinghua.edu.cn/simple evo --upgrade --no-binary evo --user,要不要太慢出现各种问题。


使用介绍

查看版本

evo pkg --version

支持的轨迹文件类型

  1. TUM 轨迹类型
    文件每一行有8个数据:时间戳(单位:秒)、位置、旋转
    timestamp x y z q_x q_y q_z q_w
  2. KITTI轨迹类型
    事实上这不能算是轨迹文件,因为它没有时间戳,文件中只包含pose。所以文件中的pose数量必须一致才能比较。文件每一行是一个变换矩阵SE3 (4x4) 的前三行:a b c d e f g h i j k l 代表变换矩阵:
a b c d
e f g h
i j k l
0 0 0 1
  1. EuRoC MAV 轨迹类型
    这类文件一般是.csv文件,但是只有前几列对我们有用(时间戳、位置、旋转)。
    WARNING be careful with the EuRoC dataset coordinate frames (ground truth, IMU, camera…), because they have different axis conventions

  2. ROS bag 包
    包含这些信息 geometry_msgs/PoseStamped, geometry_msgs/TransformStamped, geometry_msgs/PoseWithCovarianceStamped and nav_msgs/Odometry 的bag包类型是支持的。evo 只读取 trajectory, 因此 covariance or twist没用。

不同轨迹文件之间的转换

参考官网

通常情况下,可以使用evo_traj  file  --save_as_的选项,导出为其他类型的文件,他们之间的转化:

–save_as_bag –save_as_kitti –save_as_tum
bag yes yes yes
euroc yes yes yes
kitti no (no timestamps)* yes no (no timestamps)*
tum yes yes yes

举例子:

# 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)

# and so on...

没有--save_as_euroc选项,因为EuRoC类型只是针对EuRoC数据集的ground truth有效

优点

  1. 支持各种类型轨迹文件
  2. 针对单目SLAM,进行轨迹对齐、尺度调整
  3. 灵活的导入、输出、画图(LaTeX plots or Excel tables)
  4. core和tools库可以自定义扩展

evo包含的工具

  • Metrics:
  1. evo_ape: 绝对位置误差
  2. evo_rpe: 相对位置误差

  • Tools:
  1. evo_traj: 分析、画图一个或多个轨迹的工具
  2. evo_res:比较一个或者多个由evo_ape 或者evo_rpe生成的误差结果文件
  3. evo_fig:重新打开序列化图的工具(测试中)
  4. evo_config:全局设置和配置文件操作的工具

note: --help 查看帮助,比如:evo_ape --help


常用命令

  • 画两个轨迹进行对比: evo_traj tum KeyFrameTrajectory.txt --ref=data.tum -p --plot_mode=xz
  • 评估轨迹误差(-s对齐之后):evo_ape tum data.tum KeyFrameTrajectory.txt -vsa --plot
  • 不懂 evo_ape tum -h 查询

你可能感兴趣的:(SLAM)