evo是一款用于视觉里程计和SLAM问题的轨迹评估工具,它包含数据评估和可视化功能。核心功能是能够绘制相机的轨迹, 或评估轨迹与真值之间的误差。支持TUM轨迹文件、KITTI位姿、EUROC的csv与txt文件、ROS的bag文件, 同时支持这些数据格式之间的相互转换。
关于EVO的安装,这里不再叙述。(镜像地址:百度网盘 请输入提取码)
关于EVO功能详细介绍可参考:[slam评估]evo使用-pudn.com
第一,运行单轨迹,即数据集的真实值轨迹可视化:
在~/mav0/state_groundtruth_estimate0 运行: evo_traj euroc data.csv --plot
(trajectories
:轨迹图)
(xyz_view
:xyz轴视图,其中三个图分别代表在xyz三个方向的位置变化。)
(rpy_view
:欧拉角视图,其中三个图分别代表在RPY三个方向的转动变化。Roll(滚转角),Pitch(俯仰角),Yaw(偏航角),分别对应绕XYZ轴旋转的正方向是,从XYZ轴的箭头方向看过去,顺时针为正,逆时针为负。)
第二, 运行多轨迹:数据集自带真实值文件,文件名后缀是.csv ,需要将.csv 的文件groundturth转换为TUM形式的文件。在home文件夹下新建一个文件夹output,将之前通过测试程序得到的TUM形式的轨迹文件:KeyFrameTrajectory.txt(这个文件保存在orb-slam2)和上述指令得到的文件:data.tum 两个文件一块保存到新建的文件夹output中。
如图运行:evo_traj tum CameraTrajectory.txt --ref=data.tum -p --plot_mode xyz -a --correct_scale
放大看2条轨迹基本重合:
第三, 计算绝对位姿误差:
运行evo_ape tum data.tum CameraTrajectory.txt -va --plot --plot_mode xyz -s --save_results results/ape.zip:
(raw:
APE
:绝对位姿误差w.r.t.
:with respect to 的缩写。是 关于;谈及,谈到的意思。translation part (m)
:平移误差,单位mrmse
:均方根误差(Root Mean Square Error)median
:中位数mean
:均值std
:个人理解是误差带(误差数据的波动范围)
)
(映射到轨迹上的误差)
第四, 计算相对位姿误差:
运行evo_rpe tum data.tum CameraTrajectory.txt -va --plot --plot_mode xyz -s --save_results results/rpe.zip