当将EKF用于SLAM时,我经常看到运动和测量模型被描述为具有一些噪声项。

如果您要进行模拟,这对我来说很有意义,因为您需要在模拟测量中添加噪声以使其随机。但是,当使用真实的机器人数据时呢?是测量中已经存在了噪声,因此不需要添加噪声,还是噪声矩阵意味着其他含义?例如,在概率机器人技术(第319页)中,有一个测量模型:$ z_t ^ i = h(y,j)+ Q_t $,其中$ Q_t $是噪声协方差。使用真实数据时是否需要计算$ Q_t $?

#1 楼

在实际的机器人上使用EKF(或标准KF)时,您将要告诉滤波器每次测量以及过程中会有多少噪声。

目的是为了卡尔曼滤波器可以决定对每个数据源“信任”的程度,因此可以决定在最终估算中对每个测量值进行加权。

对于真实的机器人数据,噪声已经在测量中。我认为当您说“噪声矩阵”时,是指协方差矩阵。这并不是实际的噪声本身,而是噪声协方差矩阵描述了噪声的大小(卡尔曼滤波器可以预期),以及噪声的正态分布中不同噪声项之间的相关性。通常,您将需要尽可能精确的噪声协方差,但是可以简单地对其进行估算。在处理实际数据时,您可以执行快速实验来估计噪声协方差,或者也可以通过参考数据表来估计它,或者选择一个比较合理的值。在没有可用数据太多的地方,协方差通常是对角矩阵(即无相关性)。协方差矩阵的对角元素也称为方差。这意味着您要告诉卡尔曼滤波器,不同噪声源的方差是多少(噪声的标准偏差的平方)。

另一方面,您想知道为什么这些模型与卡尔曼滤波器可能具有噪声项(与噪声协方差相对),它们只是模型,而这些方程式实际上并未在算法中使用。该算法使用的方程式将具有表示噪声协方差(不是实际噪声-未知)的项,该项通常保持在线估计。