我已经在6DoF(位置和姿态)中创建了一个具有非常精确的基础事实的数据集,并且想用它来比较6DoF中不同单眼SLAM算法的路径精度。
基础事实导致6DoF相对于地面实况的坐标系的路径。 SLAM算法导致相对于SLAM坐标系的6DoF路径
由于单眼SLAM算法的性质,我没有路径规模。
如何使用我的数据集解决这个问题?有没有可用的脚本?
答案 0 :(得分:1)
您要做的是找到本地坐标和全局坐标之间的转换。根据您的确切状态模型,方程式将发生变化。但基本思路是从两个帧中的已知点开始。在我们的全局框架的初始时间说( P osition g lobal)Pg=[xg0 yg0 zg0 rg0 pg0 yg0]
,机器人坐标为Pr =[xr0 yr0 zr0 rr0 pr0 yr0]
此时我们需要创建从Pg到Pr的映射一旦我们有了这个,我们就可以表示所有数据。
从6dof映射到另一个6dof是非常困难和高度非线性的。通常可以分两步考虑
我无法同时找到两个来源,但是如果按顺序执行它们仍会有效(顺序很重要)这里有一个很好的帖子,xyz转换https://gamedev.stackexchange.com/questions/79765/how-do-i-convert-from-the-global-coordinate-space-to-a-local-space
这个网站很棒(我用它来解决3D SLAM问题,它非常有帮助)并且它有关于滚动俯仰偏航变换的信息。 http://planning.cs.uiuc.edu/node104.html如果你浏览网站,你也应该找到xyz变换。有时它首先开始使用2D示例,因此您了解概念,然后在
之后查看3D 祝你好运修改强>
我最初发布了错误的链接到规划网站,但它是固定的。这是主要的等式
SLAM的标志点是此等式Global landmark = T * Landmark w/respect Robot
的输出,每个点都表示为[x,y,z,1]
,保留翻译需要1。滚动(α)俯仰(β)和偏航(γ)是从全局坐标和机器人坐标之间的旋转矩阵获得的