假设我们从传感器中获得了一堆观测值$ z ^ {i} $,并且有一张地图,可以在其中获取地标的预测测量值$ \ hat {z} ^ {i} $。在校正步骤的EKF定位中,我们是否应该将每个观测值$ z ^ {i} $与整个预测测量值$ \ hat {z} ^ {i} $?进行比较,所以在这种情况下,我们有两个循环?还是只将每个观察值与每个预测的测量值进行比较?因此,在这种情况下,我们有一个循环。我假设传感器可以在每次扫描时针对所有界标给出所有观测结果。下图描述了这种情况。现在,每次执行EKF-Localization时,我得到$ z ^ {i} = \ {z ^ {1},z ^ {2},z ^ {3},z ^ {4} \} $,我得到了$ m $,这样我就可以得到$ \ hat {z} ^ {i} = \ {\ hat {z} ^ {1},\ hat {z} ^ {2},\ hat {z} ^ {3}, \ hat {z} ^ {4} \} $。为了实现创新,这就是我所做的
$$
Z ^ {1} = z ^ {1}-\ hat {z} ^ {1} \\
Z ^ {2} = z ^ {2}-\ hat {z} ^ {2} \\
Z ^ {3} = z ^ {3}-\ hat {z} ^ {3} \\
Z ^ {4} = z ^ {4}-\ hat {z} ^ {4} \\
$$ << />其中$ Z $是创新。对于每次迭代,我都会得到四个创新。这个对吗?我在本书《概率机器人》第204页中使用EKF-本地化。



评论

事实上,我的假设是正确的。我取得了很好的结果。

#1 楼

是的,考虑到两个假设,这是正确的:


每个度量是独立的(即观察值$ z_i $的(高斯分布)与$ z_j $不相关)。通常这是一个合理的假设(例如,使用激光扫描仪测量路标的位置)。
数据关联是已知的。换句话说,您“只是知道”您的第一个观察结果实际上是对界标1的观察。因此,您仅可以使用界标1生成的预测观察值来计算创新量。不知道观察值属于哪个界标是两倍在这种情况下,您需要将观测值与所有*其他界标的预测观测值进行比较,并使用诸如马氏距离之类的度量来选择最有可能**的观测值。

*您可以通过仅将其与估计在传感器视场内的界标进行比较来加快此过程。其他(例如,关节兼容性)。

评论


$ \ begingroup $
如何为每个地标计算一个值?
$ \ endgroup $
–user20203
18年6月15日在17:46