整合陀螺仪和加速度计读数

14

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

我已经阅读了一些关于卡尔曼滤波器的论文,但似乎很少有好的公开可访问的实际工作代码示例。

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

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


你能否在那些论文中添加一些链接? - TraumaPony
实际上,维基百科文章现在比我第一次接到规格时要好得多。但是当我看到所有那些方程式时,我的眼睛仍然会变得模糊。 - moonshadow
祝你好运,愿你的三轴加速度计能够顺利运行。 - TraumaPony
请告诉我们您的进展情况,以及在寻找资源时发现了什么。 - Kena
6个回答

7
你似乎有两个(或三个)不同的问题。 1. 你并不真正理解卡尔曼滤波器和/或它们背后的数学。这将使正确实现和使用它非常困难。 2. 你似乎不理解问题涉及的基本物理学。(基本物理学指的是基础物理学,而不是简单的物理学,因为它并不简单。) 我建议你尝试使用更简单的积分器,例如龙格-库塔4,你可以在许多书籍中找到它们的实现和使用示例。对于这个问题来说,它应该足够了。(如果客户指定了卡尔曼滤波器,请询问原因。) 至于为什么问题不完整,我觉得是因为没有办法确保设备垂直放置且没有办法测量实际方向。暂时忘记陀螺仪,假设设备不能绕垂直轴旋转。你有三个加速度计,可能用于估计三维位置。所以如果你看到X方向上的加速度,你会增加你在X方向上的位置估计。同样,如果你看到Z方向(我将假设为“向上”)的加速度,你会增加你在Z方向上的位置估计。现在稍微旋转设备,比如绕Y轴旋转30度。现在当设备认为你正在沿X方向加速时,设备实际上在X方向加速的少一点,并且还在Z方向加速。因此,你的位置估计现在是不正确的。 旋转积分要困难得多(方程更“僵硬”,需要较小的时间步长来保持精度)。但是如果设备被倾斜,它们也会遇到计算错误答案的类似问题(因为设备无法判断自己是否倾斜)。它将认为垂直轴周围的旋转大于或小于实际值,因为部分旋转实际上是围绕不同的轴进行的(就像部分加速度是沿着不同的轴进行的)。 也许你需要聘请一位顾问(不,我不是在找工作)来协助你制定数学公式。

请记住,重力是加速度计感知到的恒定力。我可以利用这一点来推断设备的当前俯仰和翻滚。但是,仅凭加速度计无法推断偏航;这就是陀螺仪的作用。然而,它的读数会随着时间漂移,因此我有一个问题。 - moonshadow
谢谢你提供龙格-库塔方法的建议,我会研究一下。 - moonshadow

4
鉴于您对卡尔曼滤波器的兴趣,也许您打算用惯性测量来增强GPS数据。关于您的问题:
“如何编写过滤器以使用加速度计读数校准陀螺仪,在系统倾斜时使陀螺仪轴与重力不共面,并绕陀螺仪轴旋转?看起来应该有足够的信息来做到这一点。”
这听起来像是陀螺罗经校准。假设您正在进行工厂校准,并且将装置放在工作台上,您将能够独立测量校准。然后运行您将编写的平衡代码,并从测量和陀螺罗经校准之间的差异中排除陀螺仪偏差误差。
如果您想动态更新陀螺仪漂移,则需要卡尔曼滤波器。
至于实现方面,我建议阅读第7章《GPS和惯性集成》。全球定位系统理论与应用第2卷对该主题有很好的背景介绍。它提供了理论和数学知识,但没有源代码。

谢谢!虽然我打算增强的不是GPS数据,但问题类似。 "陀螺罗经校准" 看起来是一个非常有用的搜索词,我会进行研究。 - moonshadow
即使您不使用GPS,GPS理论与应用中的第7章可能为您提供有用的背景知识。我能在谷歌图书上找到这一章节。 - Steve Roe

3

第一个链接“MAV-blog:Kalman演示应用程序”已失效。 - openfrog

3
我在这个博客上找到了有关加速度计和陀螺仪在导航中使用的好文章。有关卡尔曼滤波的部分有点模糊,但似乎有代码示例。
您还可以在http://academic.csuohio.edu/simond/publications.html上找到有关卡尔曼滤波的通用资源。在(8)中提到的文章是介绍卡尔曼滤波背后数学原理的良好且不太可怕的入门材料。


1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接