当前位置:  开发笔记 > 编程语言 > 正文

集成陀螺仪和加速度计读数

如何解决《集成陀螺仪和加速度计读数》经验,为你挑选了1个好方法。

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

你真的不了解卡尔曼滤波器和/或它们背后的数学.这将使正确实现和使用它变得非常困难.

你似乎不理解这个问题所涉及的基本物理学.(基础物理学意味着潜在的物理学,而不是简单的物理学,因为它并不简单.)

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

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

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

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



1> Mark T..:

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

你真的不了解卡尔曼滤波器和/或它们背后的数学.这将使正确实现和使用它变得非常困难.

你似乎不理解这个问题所涉及的基本物理学.(基础物理学意味着潜在的物理学,而不是简单的物理学,因为它并不简单.)

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

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

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

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

推荐阅读
php
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有