gpt4 book ai didi

accelerometer - 从 IMU 的原始加速度计数据中去除重力--> 请批准数学和算法

转载 作者:行者123 更新时间:2023-12-05 01:27:41 25 4
gpt4 key购买 nike

我正在使用此设备 ( http://www.sparkfun.com/products/10724 ) 并基于此 http://www.x-io.co.uk/node/8#open_source_imu_and_ahrs_algorithms 基于磁力计、加速度计和陀螺仪数据的融合成功地实现了相当好的工作方向估计。执行。现在我想计算动态加速度(测量没有静态重力加速度的加速度)。为此,我想到了以下想法。

计算原始加速度计数据的运行平均值。如果原始加速度稳定一段时间(运行平均值和当前测量的原始数据之间的差异很小),我们假设设备没有移动,我们正在测量原始重力。现在将重力矢量和当前方向保存为四元数。这种方法假设我们的设备在没有重力的情况下无法持续加速。

为了计算没有重力的加速度,我现在正在做以下四元数计算:

RA = Quaternion with current x,y,z raw acceleration values
GA = Quaternion with x,y,z raw acceleration values of estimated gravity
CO = Quaternion of current orientation
GO = saved gravity orientation

DQ = GO^-1 * CO // difference of orientation between last gravity estimation and current orientation

DQ = DQ^-1 // get the inverse of the difference

SQ = DQ * GA * DQ^1 // rotate gravity vector

DA = RA - SQ // get the dynamic acceleration by subtracting the rotated gravity from the raw acceleration

有人可以检查这是否正确吗?我不确定,因为在测试它时,我在旋转我的传感器板时获得了一些高加速度,但是如果移动设备而不旋转它,我能够获得一些加速度数据(但比旋转过程中的加速度小得多)。

此外,我有一个问题,如果加速度计在原地旋转,它是否也在测量加速度!

最佳答案

另一种方法是微分加速度给jerk(使用有限差分,j = (a2 - a1)/dt)。通过衰减/泄漏函数运行 SCSS (使用半衰期衰减计算值而不是简单的乘数)。然后对加速器进行积分(梯形规则,a = dt * (j1 + j2) * 0.5),它将消除直流偏移(重力)。再次通过衰减函数运行此信号。
衰减函数可避免值螺旋式下降,但会降低您看到的动态加速度值的幅度,并将对信号进行一些整形。因此,您将不再获得“准确”m/s/s 读数的值。但它对短时间运动很有用。

当然,您可以只使用高通滤波器,但这通常需要固定的采样率,并且如果您使用卷积(有限脉冲响应滤波器),计算成本可能会更高。

关于accelerometer - 从 IMU 的原始加速度计数据中去除重力--> 请批准数学和算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10801951/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com