1

我已经创建了一个在 6DoF(位置和姿态)中具有非常准确的地面实况的数据集,并且想用它来比较不同单目 SLAM 算法在 6DoF 中路径的准确性。

地面实况导致相对于地面实况坐标系的 6DoF 路径。SLAM 算法产生相对于 SLAM 坐标系的 6DoF 路径

由于单目 SLAM 算法的性质,我没有路径的尺度。

如何用我的数据集解决这个问题?有没有可用的脚本?

4

1 回答 1

1

您要做的是找到局部坐标和全局坐标之间的变换。根据您的确切状态模型,方程式会发生变化。但基本思想是从两个帧中的一个已知点开始。假设在我们的全局框架中的初始时间,我们有(Position global),此时机器人坐标是我们需要创建从Pg到Pr的映射一旦我们有了这个,我们就可以用相同的方式表示所有数据。Pg=[xg0 yg0 zg0 rg0 pg0 yg0]Pr =[xr0 yr0 zr0 rr0 pr0 yr0]

从 6dof 映射到另一个 6dof 非常困难且高度非线性。通常可以分为两个步骤

  1. 在 xyz 之间映射以获取同一区域中的轴。
  2. 映射两个轴之间的方向(滚动,俯仰偏航)

我找不到很多同时做这两个的资源,但是如果你按顺序做它们仍然可以工作(顺序很重要,所以要保持一致)这是一个很好的帖子,它有 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) 是从全局坐标和机器人坐标之间的旋转矩阵中获得的

于 2015-05-05T19:10:51.427 回答