使用evo工具比较ORB-SLAM3的运行轨迹(从安装到解决报错)
ORB-SLAM2和ORB-SLAM3怎么跑出来,之前都有相关的保姆级的教程,下来给大家介绍一款evo工具,给科研加速!!!
1.下载evo
输入命令下载
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple evo
下载完了输入evo是下面的样子就是下载成功,如果输入evo显示没有此命令,那么重启虚拟机即可!!!

2.轨迹介绍
我做的是动态,所以就说一下TUM里的轨迹
- CameraTrajectory.txt:
内容:包含SLAM算法在整个过程中估计的每一帧相机的位置和姿态(即相机的轨迹)。
用途:用来表示SLAM系统在每一帧图像上的估计结果,通常用来分析相机在整个运动过程中如何移动和转向。该文件可以帮助评估SLAM算法在每一帧的定位精度。 - KeyFrameTrajectory.txt:
内容:仅包含SLAM系统选定的关键帧的位置和姿态。关键帧是SLAM算法认为最重要的帧,通常用于优化或地图构建。
用途:用来表示SLAM系统中选择的关键帧的轨迹。这些关键帧是SLAM中用于进行全局优化和地图构建的重要参考点,因此KeyFrameTrajectory.txt通常比CameraTrajectory.txt文件要小,因为它只记录了少量关键帧的信息。 - groundtruth.txt:
内容:包含真实的相机位置和姿态信息,即所谓的“地面真值”。这些数据通常通过高精度的外部设备(如激光扫描仪或高精度GPS)获取,用于作为算法结果的对照。
用途:用来评估SLAM算法的精度。通过将SLAM估计的轨迹(如CameraTrajectory.txt)与groundtruth.txt中的真实轨迹进行对比,可以量化SLAM系统的定位误差和精度。
简单来说groundtruth.txt是真实轨迹,CameraTrajectory.txt是相机轨迹,KeyFrameTrajectory.txt是关键帧的轨迹.
3.生成轨迹

我们跑完数据集会生成如图所示的轨迹
我们输入命令对比真实轨迹和相机轨迹:
evo_traj tum CameraTrajectory.txt KeyFrameTrajectory.txt --plot
会有如下报错:

解决方案:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple matplotlib --upgrade
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple numpy --upgrade --user
sudo apt install python3-tk
然后安装完这些东西,我再运行又有了新错误:

解决方案:
sudo apt-get install python3-pil python3-pil.imagetk
然后就结局了所闻问题了,再次运行:
evo_traj tum CameraTrajectory.txt KeyFrameTrajectory.txt --plot

我们的轨迹对比就出来了!!!!
4.轨迹参考系问题

绘制两者的轨迹后,发现两者完全没有对上,发现估计轨迹是以第一帧坐标系作为参考,而真值轨迹应该是以某个固定的坐标系作为参考。
解决方法:
明确指定参考轨迹: 当你使用 evo_traj 或 evo_ape 进行轨迹对齐时,你需要明确指定哪个轨迹是参考轨迹(通常是groundtruth.txt),并确保其他轨迹与它进行对齐。
例如,使用 --ref 选项指定 groundtruth.txt 作为参考轨迹:
evo_traj tum groundtruth.txt CameraTrajectory.txt KeyFrameTrajectory.txt --ref groundtruth.txt --align --plot

此时我们的轨迹就可以对上了,就可以更好的去比较误差!
除此之外有时还需要确保时间戳同步: 对齐和同步要求轨迹文件中的时间戳是同步的。如果轨迹之间的时间戳不一致,可能需要先进行时间戳同步。
如果你的轨迹文件的时间戳不一致,你可以先检查并修正时间戳,然后再进行对齐。 使用 --t_offset 选项:
如果时间戳之间有已知的时间偏移,可以使用 --t_offset 选项来手动调整时间戳。
evo_traj tum groundtruth.txt CameraTrajectory.txt --t_offset0.1 --align --plot
这里的 0.1 是假设的时间偏移值(单位是秒),可以根据实际情况进行调整。
5.evo别的功能使用
我感觉这位大佬写的很好很详细:
链接: evo安装、evo使用方法详细介绍使用教程,SLAM轨迹精度评估工具,如何用来评估ORB-SLAM2生成的轨迹精度,评估激光雷达SLAM与视觉SLAM的轨迹精度,量化SLAM的误差
更多推荐
所有评论(0)