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


三轴加速度计
三轴陀螺仪
三轴磁力计
/>水平传感器
GPS
向下的超声波。

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

#1 楼

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

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

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

理想情况下,我希望每次通过控制循环重新估算这7个数字。
(人们四轴飞行器输出-感知-计算-输出更新循环需要保持稳定的频率是多少?每秒50次的速度还不够快)。

我必须以某种方式将我拥有的14或15个原始数字减少为我真正想要的7个数字(估计其中一些)。
/>
如乔sh指出,有许多临时方法可以将这些原始数字转换为可用数据。
任何将15个数字转换为7个数字的例程都可以称为“过滤器”。

您不必使用最佳过滤器。
但是您将使用某种过滤器-即,将某些数据从您拥有的15个原始数据转换成您真正想要的7个数字(估计) 。

在某些情况下,卡尔曼过滤器是“最佳”过滤器,是将原始数据转换为我真正想要的7个数字的最佳方法。

它可能使用别人已经编写和调试过的卡尔曼滤波器,可以减少您的工作量,
而不是从头开始编写其他一些过滤器,对其进行调试,并不断向其添加内容,直到它可用为止-这种过滤器不可避免地会变得次优。

#2 楼

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

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

评论


$ \ begingroup $
正是我想要的答案。 “如果不使用卡尔曼滤波器会发生什么”。谢谢!
$ \ endgroup $
–马纳夫·卡塔里亚(Manav Kataria)
2014年3月29日在0:04

#3 楼

传感器数据嘈杂。如果您不对其进行过滤,那么即使它足够稳定以至于可以飞行,您的车辆也至少会失常地运转。通过卡尔曼滤波器或其他方法进行滤波,可以在正确完成操作后降低噪声,从而提高稳定性。它采用系统模型以及系统和传感器的噪声模型。然后,它根据提供的状态估计值和随时应用的控件来估计车辆的状态。此估计状态将比传感器报告的状态更准确。

#4 楼

您也可以使用粒子过滤器。有关粒子过滤器的基本介绍,您可以看一下Thrun教授在“对机器人汽车编程”中的视频。
http://www.youtube.com/watch?v=QgOUu2sUDzg

粒子过滤器更强大,并且闭环错误的可能性要小得多,这种情况通常在实现EKF。

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

评论


$ \ begingroup $
通常,不希望包含不超过一个链接的答案。如果您可以根据视频内容写一两个段落,那就太好了。
$ \ endgroup $
– Manishearth
2012年11月20日下午6:52

$ \ begingroup $
为自己说话。通过在另一个链接中重述信息,我看不到什么收获。该链接可能包含我不知道的信息,并且无需重新输入它即可使我知道。我可以非常轻松地单击阅读,谢谢。
$ \ endgroup $
–秒杀3
2012年11月24日在6:08

#5 楼

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

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

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