为什么需要卡尔曼滤波器?


61

我正在设计一种无人机,其中将包括几种类型的传感器:

  • 3轴加速度计
  • 三轴陀螺仪
  • 3轴磁力计
  • 地平线传感器
  • 全球定位系统
  • 向下的超声波。

我的一个朋友告诉我,我需要将所有这些传感器数据通过卡尔曼滤波器进行过滤,但是我不明白为什么。为什么我不能直接将它直接放入微控制器。卡尔曼滤波器对我的传感器数据有何帮助?

Answers:


52

确实将所有这些传感器直接连接到微控制器。卡尔曼滤波器不是像传感器和微控制器之间的LRC滤波器那样的电子滤波器。卡尔曼滤波器是一种数学滤波器,实现为微控制器内部的软件例程。

您列出的传感器在每次更新时都会给微控制器14或15个原始数字。

当我驾驶一架小飞机时,我真正想知道的是它的位置和方向以及它在地面上的距离-7个数字。

我需要一些能给我这7个数字的东西

理想情况下,我希望通过控制循环每次都对这7个数字进行新的估算。我从便宜的GPS中获得的每秒更新一次还不够快。(我的四轴飞行器输出-感知-计算-输出更新循环需要保持哪个频率上的频率?告诉我什至每秒50次的速度还不够快)。

我将不得不以某种方式将我拥有的14或15个原始数字减少到我真正想要的7个数字中(估计其中一些只是偶尔更新)。

正如Josh所指出的,有许多临时方法可以将这些原始数字转换为可用数据。将15个数字转换为7个数字的任何例程都可以称为“过滤器”。

你不具备使用最佳滤波器。但是您将使用某种过滤器-即,将您拥有的15个原始数据转换成您真正想要的7个数字(估算值)的过滤器。

卡尔曼滤波是,在某些情况下,“最优”的过滤器,该转换原始数据到7号我真的想最好的方式。

使用别人已经编写和调试过的卡尔曼过滤器,比起从头开始编写其他过滤器,对其进行调试并不断添加内容直到可用为止,可能需要花费较少的精力–一个过滤器将不可避免地是次优的。


28

最简短的回答是“不加尝试。” 更好的答案是一个例子:当您的加速度计说您与垂直方向成10度,而您的陀螺仪却说您尚未远离垂直方向旋转时,您的磁力计报告说它与北偏30度,而您的陀螺仪说您与垂直方向成32度。目前的航向和倾斜度是多少?

您可能会想出一百万个临时方法,这些方法似乎在一个示例中可行,但在其他示例中却失败了。卡尔曼滤波器(用于此任务的扩展卡尔曼滤波器(EKF)!)将为您提供一种严格的方法来回答这些问题。答案的质量仍在研究中-尽管EKF的往绩非常好-但至少每个人都会同意答案什么。


1
正是我要找的答案。“如果不使用卡尔曼滤波器会发生什么”。谢谢!
Manav Kataria 2014年

22

传感器数据嘈杂。如果您不对其进行过滤,那么即使它的稳定性足以飞行,您的车辆也至少会失常运行。如果正确完成操作,则通过卡尔曼滤波器或其他方式进行滤波可以降低噪声,从而提高稳定性。

卡尔曼滤波器是特别强大的过滤器。它采用系统模型以及系统和传感器的噪声模型。然后,它根据提供的状态估算值和随时应用的控制来估算车辆的状态。此估计状态将比传感器报告的状态更准确。


8

您也可以使用粒子过滤器。对于粒子过滤器的基本介绍,您可以看一下Thrun教授在《编程机器人汽车》中的视频。

http://www.youtube.com/watch?v=H0G1yslM5rc

http://www.youtube.com/watch?v=QgOUu2sUDzg

粒子滤波器更强大,并且闭环错误的可能性要小得多,这通常在实现EKF时发生。

视频介绍了粒子过滤器的功能。


通常,包含链接的答案不多。如果你能写对视频的要点一两段,这将是不错..
Manishearth

为自己说话。通过在另一个链接中重述信息,我看不到什么收获。该链接可能包含我不知道的信息,并且不需要重新键入它就可以使我知道。我可以非常轻松地单击并阅读,谢谢。
Spiked3 2012年

8

卡尔曼滤波器是一种算法,通常用于无人机中,以将多个传感器的测量结果融合在一起,以提供无人机的位置和/或方向的“最佳”估计。例如,卡尔曼滤波器可以将加速度计,陀螺仪和磁力计的测量值与速度估算值融合在一起,以估算无人机的偏航角,俯仰角和侧倾角。

有关无人机状态估计中使用的传感器和算法的更多信息,请尝试阅读独立文章“小型无人机飞行的基础知识”

本文还链接到随附的Matlab代码,这些代码实现了所描述的卡尔曼滤波器无人机状态估计算法。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.