关于这个简单的一维卡尔曼案例的 2 个问题
2 questions about this simple 1D Kalman case
所以我正在尝试学习如何使用卡尔曼滤波器在某个时候在小型机器人中实现它们。该视频和以下网页是我了解这些过滤器的非常好的来源:
YouTube: Kalman Filter Tutorial
http://bilgin.esme.org/BitsBytes/KalmanFilterforDummies.aspx
让我们以一个简单的一维案例为例,我有一个传感器平台,两侧各有一个距离传感器,我们假设 L 是左侧传感器,R 是右侧传感器。机器人被束缚在一个 100 个单位长的盒子里,每个传感器的范围只有 10 个单位,我们认为它们的任何值大于 ~7.5 都是无效的。
平台会在X <= 95时前进,然后在X >= 5时后退,我想使用过滤器来估计X,并使用来自L/R的数据来修正X时我靠近一堵墙。我的论点如下:
在视频 15:50 中,Francis Govers 说如果你丢失了一个传感器,那么错误将变得无穷大,你将能够判断出你的传感器不存在提供良好的数据。但是,当我实现网页上显示的 1D 案例时,错误会继续减少,即使我提供的数据变化很大。为什么?错误不应该增加吗?
关于 1,当错误变得太高或者我知道传感器正在提供无效数据时我该怎么办?除非另有说明,否则我是否根本不将传感器包括在校正步骤中?
很抱歉,如果之前有人问过这些问题,我通常很擅长自己寻找答案,但这些问题似乎有点晦涩难懂(或者更可能答案是显而易见的),但我就是可以'自己好像找不到。
- 我根本不熟悉那个视频,但他的意思可能是如果你反复添加过程噪声 (
P = FPF' + Q
) 但从不通过测量减少 P
,那么 P
只能增加。不过,总的来说,我会提醒您不要将协方差矩阵 P
视为过滤器的 output。您会注意到它不受您的测量值(除了缺少测量值)或您的状态的影响。它只会受到重复应用您自己的过程和测量噪声估计(Q
和 R
)的影响,所以如果您错了(例如,正如您尝试的那样,使用相同的 R
) 你仍然会得到相同的 P
.
- 卡尔曼滤波器的一个基本假设是你所有的噪声都是高斯(经典钟形曲线分布)和零均值.您可以对分布进行大量捏造,但将噪声平均为零非常重要。这写成
E(v) = 0
,期望值。如果您的传感器读数为 "about 5" 或 5 + v
,其中 v
是一个具有 零均值 的随机变量,那么平均您的传感器读数将使您得到非常接近的结果到 5。这就是传感器在范围内时的工作方式。 v
的大小是您在 R
中估计的,因此过滤器知道需要多少平均。如果您的传感器 超出范围 那么您最好不要将其包括在测量中。当传感器读数超出范围时,该值不是 "about 10",而是 "probably at least 10 and maybe a lot more",您的噪音有偏差。
所以我正在尝试学习如何使用卡尔曼滤波器在某个时候在小型机器人中实现它们。该视频和以下网页是我了解这些过滤器的非常好的来源:
YouTube: Kalman Filter Tutorial
http://bilgin.esme.org/BitsBytes/KalmanFilterforDummies.aspx
让我们以一个简单的一维案例为例,我有一个传感器平台,两侧各有一个距离传感器,我们假设 L 是左侧传感器,R 是右侧传感器。机器人被束缚在一个 100 个单位长的盒子里,每个传感器的范围只有 10 个单位,我们认为它们的任何值大于 ~7.5 都是无效的。
平台会在X <= 95时前进,然后在X >= 5时后退,我想使用过滤器来估计X,并使用来自L/R的数据来修正X时我靠近一堵墙。我的论点如下:
在视频 15:50 中,Francis Govers 说如果你丢失了一个传感器,那么错误将变得无穷大,你将能够判断出你的传感器不存在提供良好的数据。但是,当我实现网页上显示的 1D 案例时,错误会继续减少,即使我提供的数据变化很大。为什么?错误不应该增加吗?
关于 1,当错误变得太高或者我知道传感器正在提供无效数据时我该怎么办?除非另有说明,否则我是否根本不将传感器包括在校正步骤中?
很抱歉,如果之前有人问过这些问题,我通常很擅长自己寻找答案,但这些问题似乎有点晦涩难懂(或者更可能答案是显而易见的),但我就是可以'自己好像找不到。
- 我根本不熟悉那个视频,但他的意思可能是如果你反复添加过程噪声 (
P = FPF' + Q
) 但从不通过测量减少P
,那么P
只能增加。不过,总的来说,我会提醒您不要将协方差矩阵P
视为过滤器的 output。您会注意到它不受您的测量值(除了缺少测量值)或您的状态的影响。它只会受到重复应用您自己的过程和测量噪声估计(Q
和R
)的影响,所以如果您错了(例如,正如您尝试的那样,使用相同的R
) 你仍然会得到相同的P
. - 卡尔曼滤波器的一个基本假设是你所有的噪声都是高斯(经典钟形曲线分布)和零均值.您可以对分布进行大量捏造,但将噪声平均为零非常重要。这写成
E(v) = 0
,期望值。如果您的传感器读数为 "about 5" 或5 + v
,其中v
是一个具有 零均值 的随机变量,那么平均您的传感器读数将使您得到非常接近的结果到 5。这就是传感器在范围内时的工作方式。v
的大小是您在R
中估计的,因此过滤器知道需要多少平均。如果您的传感器 超出范围 那么您最好不要将其包括在测量中。当传感器读数超出范围时,该值不是 "about 10",而是 "probably at least 10 and maybe a lot more",您的噪音有偏差。