2

第一次在这个论坛上发帖,希望我做对了。我知道过去有几个关于加速度双重积分的线程,而且我知道不是 200k+ 军用级传感器的加速度计固有的误差。幸运的是,我的目的只需要它大约正确(+/- 3 英寸)不超过十秒。

我已经快到了。我正在使用 bno055 IMU 的线性加速度。我以 50hz(每 20 毫秒)的速率进行采样。每次采样时,我都会使用基本的梯形积分来从加速度移动到速度和从速度移动到位置。我有一个“辨别窗口”来抛出静止错误,以及一个“运动结束检测”代码,用于在加速度为 0 后将速度设置回 0 对于给定数量的计数。

它正在流行,我只需要它更好地工作。我看到一些非常奇怪的回弹,我移动加速度计并且位置非常正确地移动,直到我停下来,然后位置“回弹”几英寸 - 有时几乎回到我开始的地方。带了一个比我聪明得多的朋友,他建议我更聪明地集成,使用 4 或 5 个数据点,而不是我在梯形集成中使用的最后两个数据点。

所以我的问题是:如何使用最后四个或五个数据点进行比基本梯形积分更精确的积分?我尝试研究 Euler 和 RK4,但自从我完成更高级别的数学以来已经很长时间了,我不知道从哪里开始。如果有人可以简单地解释一下,那就太棒了。谢谢。作为背景,这段代码都是在微型计算机上运行的,所以我不能通过matlab运行数据。

PS。还建议我使用高通滤波器,但同样,当我尝试开始阅读数字高通滤波器时,我就是无法理解它。我想我会从更智能的集成开始,看看它会做什么。

4

1 回答 1

0

尽管OP在发布后的两年中无疑已经解决了这个问题,但我之所以做出回应,是因为我遇到了同样的问题并在阅读此问题后发现了解决方案。

对于 OP 的目的,梯形积分甚至积分的中点估计都可以正常工作。表示这种简单运动的曲线不需要更复杂或更准确的积分,也无助于解决这个特定问题。

描述的问题是位置被正确跟踪了一段时间,但是当设备停止移动时位置会向后跳。这种行为是由于速度阻尼使用不当造成的。

当设备移动然后停止时,会有一个瞬时加速,然后是一段时间的匀速运动(零加速度),然后是一段减速(降低速度),直到设备再次静止。

OP报告使用

“运动结束检测”代码在加速度为 0 给定计数后将速度设置回 0。

OPs 问题很可能是在匀速运动期间,加速度为零,因此在尝试降噪(阻尼)算法时,人为地将速度重置为零。随后的减速会在一段时间内导致负速度,将计算的位置几乎一直返回到起点。

如果跟踪小的离散运动,这个特定问题的一种解决方案是检测和跟踪加速 -> 滑行 -> 减速的循环,并仅在循环的减速部分完成后应用阻尼算法。

于 2017-05-21T01:33:28.523 回答