如何计算加速度计的距离

时间:2016-09-14 07:49:22

标签: algorithm embedded

我是嵌入式世界的初学者。目前我正在研究MPU9250运动传感器。我的项目目标是使用加速度计实时计算距离。例如如果我在A点(即位于X轴5cm处)并且我愿意朝B点移动(即位于X轴上50cm处),则A-> B的移动应显示距离的变化为5,6,7,--- 10 --- 50厘米。类似地,从B-> A的移动应该显示距离的变化为50,49,48 ---- 30,29,---- 5 cm。

我的项目非常通用,它将在嵌入式处理器上实现,所以我不需要任何更昂贵的算法,如kalmaan等。我已经通过许多论坛来完成这项任务。我正在使用双积分,也可以过滤噪声并管理漂移。

我目前面临的问题是,我正在获取数据,即使传感器静止不动也会有所不同。由此最终估计的距离不断变化。此外,当我移动传感器时,整体估计的位移变得非常低。请建议我解决问题的方向。

目前我的置换算法是:

V[t] = V[t-1] + (A[t]+A[t-1])*T/2  // Where T is my sampling interval set by RTOS. 100msec
Pos[t] = Pos[t-1] + (V[t]+V[t-1])*T/2

2 个答案:

答案 0 :(得分:2)

加速度计的估计位置是通过加速度的双重积分计算的,因此积分误差应该被添加到积分结果中。

这个问题可以通过INS / GPS融合(室外)或LPE(局部位置估计)传感器来解决。

如果只需要Z轴位置,气压计+加速度计就是解决方案。

答案 1 :(得分:0)

您需要多个高通滤波器来消除微小的偏移和重力偏差,这些偏差和重力偏差在积分时会累积起来。这意味着快速运动大部分都会通过,但慢速运动将在高通滤波器中丢失。您需要低通滤波器来消除噪音。这将导致快速移动大部分丢失。剩下的不是很好,除了您可以调整的狭窄范围的速度。 我看到了一些其他使用 FFT 的建议,在频域中进行滤波有一些优势,但我从未尝试过。 通常通过卡尔曼滤波器等与其他具有不同优势的传感器结合使用。

相关问题