evo工具评测slam系统
程序员文章站
2024-03-25 08:13:34
...
安装
- github
- Python 3.4+ and Python 2.7 都支持
使用介绍
查看版本
evo pkg --version
支持的轨迹文件类型
- TUM 轨迹类型
文件每一行有8个数据:时间戳(单位:秒)、位置、旋转timestamp x y z q_x q_y q_z q_w
- 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
-
EuRoC MAV 轨迹类型
这类文件一般是.csv文件,但是只有前几列对我们有用(时间戳、位置、旋转)。
WARNING be careful with the EuRoC dataset coordinate frames (ground truth, IMU, camera…), because they have different axis conventions -
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有效
优点
- 支持各种类型轨迹文件
- 针对单目SLAM,进行轨迹对齐、尺度调整
- 灵活的导入、输出、画图(LaTeX plots or Excel tables)
- core和tools库可以自定义扩展
evo包含的工具
- Metrics:
- evo_ape: 绝对的位置误差
- evo_rpe: 相对的位置误差
- Tools:
- evo_traj: 分析、画图一个或多个轨迹的工具
- evo_res:比较一个或者多个由evo_ape 或者evo_rpe生成的误差结果文件
- evo_fig:重新打开序列化图的工具(测试中)
- evo_config:全局设置和配置文件操作的工具
note: --help 查看帮助,比如:evo_ape --help