Rid*_*lly 11 android android-sensors
我想要的是一种位置的"磁性指纹".我使用MAGNETIC_FIELD传感器,如果我得到(不幸的是没有进一步说明)X,Y和Z轴的3个值.
问题是,当我旋转设备时值会改变,所以我猜3轴是相对于设备的.什么我需要的是让我得到同样的3个值,而无论该设备是如何旋转补偿装置的旋转.
我试图乘以旋转矩阵(我知道如何得到它),试图乘以倾角矩阵等等,但没有任何效果.无论我尝试什么,旋转设备时值仍会改变.
那么有谁知道如何做对吗?最好使用代码,因为我读了很多像'那么你必须使用旋转矩阵补偿它',但没有找到一个具体的工作实例.
Ben*_*ijl -1
磁场矢量的坐标是相对于手机给出的,如下图所示:
得到下图坐标系下的磁场矢量:
您必须将磁矢量与从getRotationMatrix()m
检索到的旋转矩阵相乘,例如。该矢量将穿过地球指向磁北极。R
R * m
如果您还将它与 inclination 相乘I
,则矢量将围绕 X 轴旋转以完全在 Y 轴上:
[0 m 0] = I * R * 地磁(m = 地磁场强度)
该矢量对于地球上的每个位置都应该是恒定的。然而,您的手机上的结果可能会出现轻微偏差,因为您必须非常小心,在旋转设备时不要改变传感器的位置。
归档时间: |
|
查看次数: |
6825 次 |
最近记录: |