可能的重复:
结合陀螺仪和加速度计数据 https://stackoverflow.com/questions/1586658/combine-gyroscope-and-accelerometer-data
我读过很多关于Kalman filters
,但似乎很少有好的公开可用的从数学论文到实际工作代码的示例。
我有一个系统,包含一个三轴加速计和一个测量围绕加速计轴之一的旋转的陀螺仪。该系统设计为由人手持,并且大部分时间陀螺仪将测量围绕重力矢量或接近重力矢量的旋转。 (在同一行业工作的人可能会从中认识到我在说什么;))我意识到这是有限的。
陀螺仪似乎具有近乎恒定的偏差,该偏差对于系统的每个实例都略有不同。当系统倾斜以使陀螺仪轴与重力不共线并且绕陀螺仪轴旋转时,我将如何编写一个滤波器以使用加速度计读数来校准陀螺仪?似乎应该有足够的信息来做到这一点,但被告知没有以及为什么也会有答案:)
您似乎在这里有两个(或三个)单独的问题。
1. 您并不真正了解卡尔曼滤波器和/或其背后的数学原理。这将使正确实施和使用变得非常困难。
2.你似乎不理解这个问题所涉及的基本物理原理。 (基础物理意味着基础物理,而不是简单物理,因为它并不简单。)
我建议您尝试使用更简单的积分器,例如 Runga-Kutta 4,您可以找到许多书籍,其中包含实现和使用的示例。对于这个问题应该足够了。 (如果客户指定卡尔曼,请询问原因。)
至于为什么问题受到限制,在我看来,它无法确保设备保持垂直,也无法测量实际方向。暂时忘记陀螺仪并假设设备不能绕垂直轴旋转。您有三个加速度计,大概是为了估计 3D 位置。因此,如果您看到 X 方向上有加速度,您就会增加对您在 X 方向上的位置的估计。同样,如果您看到 Z 方向上的加速度(我假设是“向上”),您就会增加对 Z 方向上的位置的估计。现在稍微旋转设备,例如绕 Y 轴旋转 30 度。现在,当设备认为您正在沿 X 方向加速时,设备实际上的加速速度比 X 方向指示的要小一些and它也在 Z 方向加速。所以你的位置估计现在不正确。
旋转更难积分(方程更“僵化”,需要更小的时间步长来保持精度)。但如果设备倾斜(因为设备无法判断它是否倾斜),它们也会遇到类似的计算错误答案的问题。它会认为绕垂直轴的旋转比实际更大或更小,因为旋转的一部分实际上是绕不同的轴(就像加速部分的一部分沿着不同的轴一样)。
也许您需要聘请一名顾问(不,我不是在找工作)来帮助您制定数学公式。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)