ORB-SLAM2和ORB-SLAM3怎么跑出来,之前都有相关的保姆级的教程,下来给大家介绍一款evo工具,给科研加速!!!


1.下载evo

输入命令下载

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple evo

下载完了输入evo是下面的样子就是下载成功,如果输入evo显示没有此命令,那么重启虚拟机即可!!!
在这里插入图片描述

2.轨迹介绍

我做的是动态,所以就说一下TUM里的轨迹

  1. CameraTrajectory.txt:
    内容:包含SLAM算法在整个过程中估计的每一帧相机的位置和姿态(即相机的轨迹)。
    用途:用来表示SLAM系统在每一帧图像上的估计结果,通常用来分析相机在整个运动过程中如何移动和转向。该文件可以帮助评估SLAM算法在每一帧的定位精度。
  2. KeyFrameTrajectory.txt:
    内容:仅包含SLAM系统选定的关键帧的位置和姿态。关键帧是SLAM算法认为最重要的帧,通常用于优化或地图构建。
    用途:用来表示SLAM系统中选择的关键帧的轨迹。这些关键帧是SLAM中用于进行全局优化和地图构建的重要参考点,因此KeyFrameTrajectory.txt通常比CameraTrajectory.txt文件要小,因为它只记录了少量关键帧的信息。
  3. 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的误差

Logo

立足具身智能前沿赛道,致力于搭建全球化、开源化、全栈式技术交流与实践共创平台。

更多推荐