所以我试图学习如何使用卡尔曼滤波器在某个时刻在小型机器人中实现它们。此视频和以下网页对我来说是理解这些过滤器的非常好的资源:
YouTube: Kalman Filter Tutorial
http://bilgin.esme.org/BitsBytes/KalmanFilterforDummies.aspx
让我们来看一个简单的1D情况,我有一个传感器平台,两侧都有1个距离传感器,我们说L是左侧传感器,R是右侧。机器人被装在一个100个单位长的盒子里,每个传感器的范围只有10个单位,我们认为它们中任何大于7.5的值都是无效的。
平台将向前移动而X <= 95,然后反转而X> = 5,我想使用过滤器估算X,并使用来自L / R的数据来纠正X靠近墙。我的论点如下:
视频中的15:50,Francis Govers说,如果您丢失了一个传感器,那么错误就会变为无穷大,并且您将能够判断出您的传感器并非如此。提供良好的数据。但是,当我实现网页上显示的1D案例时,即使我提供了大量不同的数据,错误也会继续减少。为什么?不应该是错误增加吗?
关于1,当错误过高或我知道传感器提供无效数据时该怎么办?除非另有说明,否则我是否只是将传感器包含在校正步骤中?
对不起,如果以前曾经问过这些,我通常非常擅长自己找到答案,但这些问题似乎有点模糊(或者更有可能答案是显而易见的)但我只是似乎无法自己找到它。
答案 0 :(得分:1)
P = FPF' + Q
)但从未通过测量减少P
,那么P
可以只会增加。但是,一般情况下,我会提醒您不要将协方差矩阵P
视为过滤器的输出。您会注意到它不受您的测量(除了缺少测量)或您的状态的影响。它仅受重复应用您自己的过程和测量噪声估计值(Q
和R
)的影响,因此如果您错了(例如,您尝试过,请使用相同的{{1}进行垃圾测量}})你仍然会得到相同的R
。P
,即期望值。如果您的传感器显示“约5”或E(v) = 0
其中5 + v
是零均值的随机变量,那么对传感器读数求平均值会得到非常接近5的结果。是传感器在范围内的工作原理。 v
的大小是您在v
中估算的大小,因此过滤器知道需要多少平均值。如果您的传感器超出范围,那么最好不要将其包含在测量中。当传感器读取超出规模时,该值不是“大约10”,它“可能至少为10,可能更多”并且您的噪音有偏差。