我已经创建了一个在 6DoF(位置和姿态)中具有非常准确的地面实况的数据集,并且想用它来比较不同单目 SLAM 算法在 6DoF 中路径的准确性。
地面实况导致相对于地面实况坐标系的 6DoF 路径。SLAM 算法产生相对于 SLAM 坐标系的 6DoF 路径
由于单目 SLAM 算法的性质,我没有路径的尺度。
如何用我的数据集解决这个问题?有没有可用的脚本?
我已经创建了一个在 6DoF(位置和姿态)中具有非常准确的地面实况的数据集,并且想用它来比较不同单目 SLAM 算法在 6DoF 中路径的准确性。
地面实况导致相对于地面实况坐标系的 6DoF 路径。SLAM 算法产生相对于 SLAM 坐标系的 6DoF 路径
由于单目 SLAM 算法的性质,我没有路径的尺度。
如何用我的数据集解决这个问题?有没有可用的脚本?
您要做的是找到局部坐标和全局坐标之间的变换。根据您的确切状态模型,方程式会发生变化。但基本思想是从两个帧中的一个已知点开始。假设在我们的全局框架中的初始时间,我们有(Position global),此时机器人坐标是我们需要创建从Pg到Pr的映射一旦我们有了这个,我们就可以用相同的方式表示所有数据。Pg=[xg0 yg0 zg0 rg0 pg0 yg0]
Pr =[xr0 yr0 zr0 rr0 pr0 yr0]
从 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 是保持平移所需的。roll(alpha) pitch(beta) 和 yaw(gamma) 是从全局坐标和机器人坐标之间的旋转矩阵中获得的