Answers:
您确实将所有这些传感器直接连接到微控制器。卡尔曼滤波器不是像传感器和微控制器之间的LRC滤波器那样的电子滤波器。卡尔曼滤波器是一种数学滤波器,实现为微控制器内部的软件例程。
您列出的传感器在每次更新时都会给微控制器14或15个原始数字。
当我驾驶一架小飞机时,我真正想知道的是它的位置和方向以及它在地面上的距离-7个数字。
我需要一些能给我这7个数字的东西。
理想情况下,我希望通过控制循环每次都对这7个数字进行新的估算。我从便宜的GPS中获得的每秒更新一次还不够快。(我的四轴飞行器输出-感知-计算-输出更新循环需要保持在哪个频率上的频率?告诉我什至每秒50次的速度还不够快)。
我将不得不以某种方式将我拥有的14或15个原始数字减少到我真正想要的7个数字中(估计其中一些只是偶尔更新)。
正如Josh所指出的,有许多临时方法可以将这些原始数字转换为可用数据。将15个数字转换为7个数字的任何例程都可以称为“过滤器”。
你不具备使用最佳滤波器。但是您将使用某种过滤器-即,将您拥有的15个原始数据转换成您真正想要的7个数字(估算值)的过滤器。
该卡尔曼滤波是,在某些情况下,“最优”的过滤器,该转换原始数据到7号我真的想最好的方式。
使用别人已经编写和调试过的卡尔曼过滤器,比起从头开始编写其他过滤器,对其进行调试并不断添加内容直到可用为止,可能需要花费较少的精力–一个过滤器将不可避免地是次优的。
最简短的回答是“不加尝试。” 更好的答案是一个例子:当您的加速度计说您与垂直方向成10度,而您的陀螺仪却说您尚未远离垂直方向旋转时,您的磁力计报告说它与北偏30度,而您的陀螺仪说您与垂直方向成32度。目前的航向和倾斜度是多少?
您可能会想出一百万个临时方法,这些方法似乎在一个示例中可行,但在其他示例中却失败了。卡尔曼滤波器(用于此任务的扩展卡尔曼滤波器(EKF)!)将为您提供一种严格的方法来回答这些问题。答案的质量仍在研究中-尽管EKF的往绩非常好-但至少每个人都会同意答案是什么。
您也可以使用粒子过滤器。对于粒子过滤器的基本介绍,您可以看一下Thrun教授在《编程机器人汽车》中的视频。
http://www.youtube.com/watch?v=H0G1yslM5rc
http://www.youtube.com/watch?v=QgOUu2sUDzg
粒子滤波器更强大,并且闭环错误的可能性要小得多,这通常在实现EKF时发生。
视频介绍了粒子过滤器的功能。
卡尔曼滤波器是一种算法,通常用于无人机中,以将多个传感器的测量结果融合在一起,以提供无人机的位置和/或方向的“最佳”估计。例如,卡尔曼滤波器可以将加速度计,陀螺仪和磁力计的测量值与速度估算值融合在一起,以估算无人机的偏航角,俯仰角和侧倾角。
有关无人机状态估计中使用的传感器和算法的更多信息,请尝试阅读独立文章“小型无人机飞行的基础知识”。
本文还链接到随附的Matlab代码,这些代码实现了所描述的卡尔曼滤波器无人机状态估计算法。