Embedded 从IMU加速计上移除重力

Embedded 从IMU加速计上移除重力,embedded,accelerometer,sensors,gravity,Embedded,Accelerometer,Sensors,Gravity,我发现这可以消除加速度计读数中的重力。然而,我有一个6自由度的IMU(xyz陀螺仪,xyz加速度计,没有磁强计),所以我不确定我是否可以使用这个代码(我试过了,但它不能正常工作) 有人会如何移除重力组件?这是一个很大的障碍,因为我不能继续我的项目 编辑: 我所拥有的: 描述飞机位置的四元数(使用扩展卡尔曼滤波器获得) 加速度传感器读数(未过滤;轴与平面对齐;重力也包含在这些读数中) 我想要的是: 消除重力 修正(旋转)加速计读数,使其轴线与地球参考系轴线对齐 读取对地加速度(现在是加速度

我发现这可以消除加速度计读数中的重力。然而,我有一个6自由度的IMU(xyz陀螺仪,xyz加速度计,没有磁强计),所以我不确定我是否可以使用这个代码(我试过了,但它不能正常工作)

有人会如何移除重力组件?这是一个很大的障碍,因为我不能继续我的项目


编辑:

我所拥有的:

  • 描述飞机位置的四元数(使用扩展卡尔曼滤波器获得)
  • 加速度传感器读数(未过滤;轴与平面对齐;重力也包含在这些读数中)
我想要的是:

  • 消除重力
  • 修正(旋转)加速计读数,使其轴线与地球参考系轴线对齐
  • 读取对地加速度(现在是加速度计的Z分量)

基本上,我想读取朝向地球的加速度,无论飞机的方向如何但我想第一步是移除重力。

更新:好的,所以你需要的是用四元数旋转一个向量。看到或看到

使用四元数(对应于方向)旋转测量的加速度向量,然后从结果中减去重力
[0,0,9.81]
(根据符号约定,可能有-9.81)。就这些


我已经基于此为设备实现了传感器融合,我强烈推荐它。它只使用加速计和陀螺仪,而不使用磁强计,并且完全符合您的要求


您在问题中链接到的资源具有误导性。它依赖于来自传感器融合的四元数。换句话说,有人已经为你做了举重,已经为你准备了重力补偿。

只是为了确定——有人已经实施了卡尔曼滤波,从地球参考系输出横摇、俯仰和偏航——因此传感器已经融合。这条信息对你的答案有影响吗(可能使用上面的代码)?嗯。我不确定我是否明白。我想说的是,必须有其他人实现了传感器融合,这样链接的Python代码才能工作。链接的Python代码需要进一步的解释(例如缩放:所有东西都是用g度量的吗,或者缩放发生了什么?)。最简单的方法是尝试和实验。这个解决方案听起来很优雅,但我关心的是最后只从Z中减去重力。如果不是acc矢量的所有三个分量,重力不是都包含在两个分量中吗?或者旋转实际上也考虑到了这一点吗?旋转将你的矢量与地球参考系对齐,重力只出现在Z轴上。换句话说,是的,旋转会解决这个问题,别担心。@Besabstin谢谢你的警告,另外两个链接也断开了。已修复,请检查!您是否正在尝试实施传感器融合?或者你已经有了可靠的传感器融合算法,你想从测量的加速度中去除重力?好的,我相信我已经回答了你的问题,请检查并评论/提问。