繁体   English   中英

我可以只用陀螺仪和磁力计抵消重力吗?

[英]Can I cancel out gravity only with gyro and magnetometer?

在设备上,我想检测一系列力:小力(最小约 0.01g)但也有更强的力,如 0.1g - 0.15g。

该设备将在 3d 空间中具有不同的位置,因此为了检测小力,我必须知道它的角度以便能够减去 1g。 因为设备可以有一个随机位置(角度位置)。

到目前为止我所做的:我使用了 MPU6050 并使用了带有加速的互补滤波器。 和陀螺仪。 它是这样的:

agnleX_k+1 = 0.98*(angle_k + deltaT * gyro_k+1) + 0.02*angle_acc_k+1;

angle_acc是从加速度计算的角度。 传感器。 类似的东西:

arctan(accelX / sqrt(accelX^2 + accelY^2 + accelZ^2 + ))

所以我感兴趣的是:

forceX_k+1 = accelX_k+1 - 1g*sin(agnleX_k+1)

问题是:

如果我想检测到一个非常快的小力,假设在accelX_k+1我想检测从 0g 到 0.01g 或更多但在非常小的时间范围内的变化。 问题是我计算出的角度也会受到加速度的这种微小而快速的变化的影响。 传感器虽然角度没有真正改变。

我想我必须独立于加速度进行角度计算。 传感器。 我可以用陀螺仪和磁力计做类似互补滤波器的事情吗? 这会和我上面描述的过滤器一样工作,但只是使用 mag。 传感器代替? 或者你会怎么做? 我在考虑使用 MPU9250。

你说使用 MPU6050,它包含一个加速度计和一个陀螺仪。 您可以独立使用它们 - 从加速度计获取加速度并从陀螺仪获取角度,然后使用这些角度来补偿旋转。 角度不需要取决于您的加速度计。

使用来自Jeff Rowberg 的DMP 库将为您完成这项工作。 它可以比Arduino代码更快地在内部补偿重力加速度。

链接到github

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM