1、创建环境:
conda create -n evo python=3.8
conda activate evo
pip install evo --upgrade --no-binary evo --user
pip install rosbags
2、 绘制轨迹
本文使用的是ORB_SLAM3 生成的关键帧位姿,为tum格式;
tum数据集格式: timestamp tx ty tz qx qy qz qw;
kitti数据集格式:1 0 0 -15.8049 0 1 0 -5.41213 0 0 1 -2.642 , 一行12个数据,表示Pose(R+t);
evo_traj tum KeyFrameTrajectory.txt -p --plot_mode xy
具体evo指令解释,我参考的这篇文章: evo安装与使用教程--完整版_evo 安装-CSDN博客
3、报错处理
如果第二步出现报错,类如:
Traceback (most recent call last):
File "/home/nvidia/.local/lib/python3.8/site-packages/evo/entry_points.py", line 95, in launch
main_module.run(args)
File "/home/nvidia/.local/lib/python3.8/site-packages/evo/main_traj.py", line 182, in run
from evo.tools import file_interface, log
File "/home/nvidia/.local/lib/python3.8/site-packages/evo/tools/file_interface.py", line 36, in <module>
from rosbags.serde.serdes import cdr_to_ros1
ModuleNotFoundError: No module named 'rosbags.serde.serdes'
解决办法:Rosbags update introduces breaking change · Issue #636 · MichaelGrupp/evo · GitHub
其实就是将evo/tools/file_interface.py的文件第36行注释一下就行,如下:
# from rosbags.serde.serdes import cdr_to_ros1