我正在阅读Thrun的概率机器人。在“卡尔曼滤波器”部分中,它们指出
$$
x_ {t} = A_ {t} x_ {t-1} + B_ {t} u_ {t} + \ epsilon_ {t}
$$

其中$ \ epsilon_ {t} $是状态噪声矢量。并且在
$$
z_ {t} = C_ {t} x_ {t} + \ delta_ {t}
$$
其中$ \ delta_ {t} $是测量噪声。现在,我想在Matlab中模拟一个系统。对我来说,除了状态噪声矢量$ \ epsilon_ {t} $外,其他一切都很简单。不幸的是,大多数作者并不在乎技术细节。我的问题是什么是状态噪声矢量?它的来源是什么?我需要知道,因为我希望我的模拟相当明智。关于测量噪声,很明显并在规格表中给出,即传感器具有不确定性$ {\ pm} e $。

#1 楼

据我了解,$ \ epsilon_ {t} $解释了状态模型的不确定性。不确定性来自现实生活中的缺陷,例如轮子不完全是圆形的,或者重量分布不均匀,或者电机的性能与模型所预测的不完全相同。

所以当机器人执行直线运动,预计最终将到达模型预测的位置附近,即向左或向右一点。

评论


$ \ begingroup $
感谢您的答复。根据您所说的,卡尔曼滤波器是对系统进行准确建模的问题。
$ \ endgroup $
– Croco
2014年1月7日在18:01

$ \ begingroup $
那么,一个精确的模型对卡尔曼滤波器是有益的,但对于任何滤波器来说都是如此。重要的是,模型的不确定性用ε表示,并且(标准)卡尔曼滤波器假设该变量是来自零均值高斯分布的随机变量。
$ \ endgroup $
–德米特
2014年1月8日在8:22

#2 楼

噪声项$ \ epsilon_t $旨在捕获过渡模型中的不确定性,例如车轮摩擦模型不完善导致滑移。换句话说,未合并的模型组件,因为它们增加了很多计算复杂性,或者根本无法建模,例如无法事先知道的干扰。通常假定它是零均值高斯分布随机变量矢量,其大小与状态变量$ x $的大小相同,并且在时间步长之间是独立的。换句话说,$ x,\ epsilon \ in \ mathbb {R} ^ n $其中$ n $是状态空间的维数,$ \ epsilon \ sim \ mathcal {N}(0,\ Sigma)$, $ \ Sigma $是$ \ epsilon $的协方差,而$ \ epsilon_t $和$ \ epsilon_ {t + 1} $相同且独立分布。这些假设允许对Kalman滤波器采用封闭形式的解决方案,从而使计算变得相对高效。

噪声项$ \ delta_t $基本相同,但代表了传感模型中的不确定性。通常$ \ epsilon_t $和$ \ delta_t $并不是先验的,需要通过某种系统识别方法来学习,或者可以使用Expectation-Maximization之类的数据来学习。

评论


$ \ begingroup $
规格表中给出的传感器的不确定性如何?为什么它们不包含在$ \ delta_ {t} $中?
$ \ endgroup $
– Croco
2014年1月25日9:55



$ \ begingroup $
绝对可以使用。我只想说,在某个时候需要确定不确定性模型。在这种情况下,制造商会测量传感器的某些方面,这些方面可能适用于您的型号,也可能不适用于您的型号。
$ \ endgroup $
– DaemonMaker
2014年1月25日21:11

$ \ begingroup $
我想我仍然在为此挣扎。在我看来,应该从技术角度讨论这些内容。多数书籍在不重复技术细节的情况下重复相同的内容,这使得更难掌握那些魔术符号的含义。
$ \ endgroup $
– Croco
2014年1月27日在8:24