14

可能重复:
结合陀螺仪和加速度计数据

我已经阅读了很多关于Kalman filters.

我有一个系统,其中包含一个三轴加速度计和一个陀螺仪,用于测量围绕加速度计轴之一的旋转。该系统设计为由人手持,大部分时间陀螺仪将测量围绕重力矢量或接近重力矢量的旋转。(在同一行业工作的人可能会从中认出我在说什么;))我意识到这是不受约束的。

陀螺仪似乎具有近乎恒定的偏差,对于系统的每个实例都略有不同。当系统倾斜时,我将如何编写过滤器以使用加速度计读数来校准陀螺仪,因此陀螺轴与重力不共线,并且围绕陀螺轴旋转?似乎应该有足够的信息来做到这一点,但被告知没有,为什么也会是一个答案:)

4

6 回答 6

7

您似乎在这里有两个(或三个)单独的问题。

1. 您并不真正了解卡尔曼滤波器和/或它们背后的数学原理。这将使正确实施和使用一个变得非常困难。

2. 你似乎不了解这个问题所涉及的基本物理学。(基础物理是指基础物理,而不是简单物理,因为它并不简单。)

我建议您尝试使用更简单的积分器,例如 Runga-Kutta 4,您可以找到许多书籍,其中包含实现和使用的示例。对于这个问题应该足够了。(如果客户指定卡尔曼,询问原因。)

至于为什么问题受到限制,在我看来,它无法确保设备垂直握持,也无法测量实际方向。暂时忘记陀螺仪,假设设备不能绕垂直轴旋转。您有三个加速度计,大概是为了估计 3D 中的位置。因此,如果您看到 X 方向的加速度,您会增加您在 X 方向的估计值。类似地,如果您看到 Z 方向的加速度(我假设它是“向上”),您会增加您在 Z 方向上的位置的估计值。现在稍微旋转设备,比如绕 Y 轴旋转 30 度。现在,当设备认为您正在沿 X 方向加速时,设备实际上的加速比 X 中指示的要小一些,并且它也在Z方向加速。所以你的位置估计现在是不正确的。

旋转更难积分(方程更“僵硬”,需要更小的时间步来保持精度)。但是如果设备被倾斜,他们将遇到类似的计算错误答案的问题(因为设备无法判断它是否被倾斜)。它会认为绕垂直轴的旋转比实际大或小,因为旋转的一部分实际上是绕着不同的轴(就像加速部分沿着不同的轴一样)。

也许您需要聘请顾问(不,我不是在找工作)来帮助您制定数学。

于 2008-09-21T12:18:35.327 回答
4

考虑到您对卡尔曼滤波器的兴趣,也许您打算通过惯性测量来增加 GPS 数据。关于你的问题:

“当系统倾斜时,我将如何编写过滤器以使用加速度计读数校准陀螺仪,因此陀螺轴与重力不共线,并且围绕陀螺轴旋转?似乎应该有足够的信息来做到这一点”

这听起来像是一个陀螺仪校准。假设您正在进行工厂校准,并将设备放在工作台上,您将能够独立测量对齐情况。然后运行您将编写的调平代码,并从测量和陀螺压缩对齐之间的差异中消除陀螺偏差误差。

如果您想即时更新陀螺漂移,那么您将需要卡尔曼滤波器。

就实施而言,我推荐第 7 章, GPS 和全球定位系统理论与应用惯性集成第 2 卷在该主题上有很好的背景。它有理论和数学,但没有源代码。

于 2009-01-18T21:18:31.613 回答
3

我在这个博客上找到了关于在导航中使用加速度计和陀螺仪的好文章。关于卡尔曼滤波的部分有点模糊,但似乎有代码示例。

您还可以在http://academic.csuohio.edu/simond/publications.html找到有关卡尔曼滤波的一般资源。(8)中提到的文章很好,不太吓人,介绍了卡尔曼滤波器背后的数学。

于 2008-10-15T13:51:58.020 回答
3

nBot,一个两轮平衡机器人
关于作者如何选择解决他的两轮机器人平衡问题的大量信息和链接。

于 2009-06-11T23:45:25.607 回答
2

丹麦的一位绅士刚刚发布了一个推导卡尔曼滤波器的工作示例,几乎可以完全解决这个问题。

于 2012-09-10T18:50:21.593 回答
1

如果你碰巧正在为 Propeller uController 开发,那么 Parallax Object Exchange有一些代码。好问题;-)

于 2010-05-27T20:16:09.167 回答