欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

evo工具评测slam系统

程序员文章站 2024-03-25 08:13:34
...

安装

  1. github
  2. Python 3.4+ and Python 2.7 都支持


使用介绍

查看版本

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_<other_format>的选项,导出为其他类型的文件,他们之间的转化:

–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