1

我试图弄清楚如何使用 GPS 测量来纠正由 SLAM 方法引入的漂移误差,我在固定时刻在欧几里得 3d 空间中有两个点集:

在此处输入图像描述

在此处输入图像描述

红色数据集由 GPS 引入,没有漂移误差,而蓝色数据集基于 SLAM 算法,随时间漂移。

这个想法是,SLAM 在短距离上是准确的,但最终会漂移,而 GPS 在长距离上是准确的,而在短距离上是不准确的。因此,我想弄清楚如何将 SLAM 数据与 GPS 融合,以使两种测量都具有最佳精度。至少如何解决这个问题?

4

1 回答 1

0

由于您的 GPS 看起来非常有局部偏差,我假设它是低成本的并且不使用任何校正技术,例如它不是差分的。您可能知道,GPS 误差不是高斯误差。本文中的研究人员表明,对 GPS 噪声进行建模的一种好方法v+epsv 局部常数“偏置”向量(通常在几米内保持不变,然后或多或少平滑或突然变化),并且eps是高斯噪声。

鉴于此信息,一种选择是使用基于卡尔曼的融合,例如,您将 GPS 噪声和偏差添加到状态向量中,并适当地定义您的转移方程并像使用普通 EKF 一样继续进行。请注意,如果我们忽略卡尔曼的预测步骤,这大致相当于最小化形式的误差函数

   measurement_constraints + some_weight * GPS_constraints 

这为您提供了更直接的第二选择。例如,如果您的 SLAM 是可视的,您可以只使用平方重投影误差之和(束调整误差)作为测量约束,并将您的 GPS 约束定义为位置||x- x_{gps}||或 GPS位置(您可能想忽略使用低成本 GPS 的高度)。x2d3d

如果您的 SLAM 是基于视觉和特征点的(您并没有真正说明您使用的是哪种类型的 SLAM,所以我假设是最普遍的类型),那么与上述任何方法的融合都可能导致“内部损失”。你做了一个突然的、猛烈的修正,并增加了重投影误差。这意味着您在 SLAM 的跟踪中丢失了内点。所以你必须重新对点进行三角测量,等等。另外,请注意,尽管我在上面链接的论文提供了 GPS 误差模型,但它不是一个非常准确的模型,并且假设 GPS 误差的分布是单峰的(EKF 所必需的)对我来说似乎有点冒险.

所以,我认为一个不错的选择是使用障碍项优化。基本上,想法是这样的:由于您并不真正知道如何对 GPS 误差进行建模,因此假设您对本地 SLAM 更有信心,并最小化S(x)捕获 SLAM 重建质量的函数。注意x_opt的最小化器S。然后,只要不恶化S(x_opt)超过给定阈值,就与 GPS 数据融合。从数学上讲,您希望最小化

some_coef/(thresh - S(X))  + ||x-x_{gps}||

并且您将使用x_opt. 一个很好的选择S是捆绑调整错误,因为通过不降低它,您可以防止内部损失。文献中还有其他选择S,但它们通常是为了减少计算时间并且在准确性方面几乎没有增加。

这与 EKF 不同,它没有很好的概率解释,但在实践中产生了非常好的结果(我也将它用于与 GPS 以外的其他事物融合,并且效果很好)。例如,您可以看到这篇优秀的论文,它解释了如何彻底实现这一点,如何设置阈值等。

希望这可以帮助。如果您在我的回答中发现不准确/错误,请随时告诉我。

于 2017-08-27T17:43:33.113 回答