安卓文档说here (只需阅读前4-5行)旋转矢量传感器是基于软件的。但大多数Android设备实际上都有3个传感器,即。加速度计、陀螺仪和磁力计。因此,必须有一种转换算法,将来自这些实际传感器的数据转换为虚拟旋转矢量传感器。但我找不到任何文章或源代码,其中我可以看到用于计算旋转向量的算法。如果有人在这个领域有任何经验,也许他可以给我指明正确的方向。
我需要它知道是否有必要从旋转矢量传感器获取旋转数据,或者我可以使用基于硬件的传感器自己计算它。
发布于 2019-09-26 16:18:09
可通过以下url访问的实现使用扩展卡尔曼滤波器,这是融合加速计、陀螺仪和(可选)磁力计数据的非常标准的方式:
关键方法是predict和update,这两种方法分别对应于卡尔曼滤波的各个阶段。输出是一个四元数(可通过getAttitude方法获取),这是一种表示3D方向的便捷方法。术语“旋转向量”只是Android用来表示四元数的别名。
传感器融合的其他替代方案包括Madgwick和Mahony滤波器。有很多资源(甚至还有许多开放的实现)。
https://stackoverflow.com/questions/57905663
复制相似问题