当在纵向模式下垂直握住iPhone按下按钮时,我正在记录指南针磁性标题 - 已经显示十字准线的实时摄像机输入。 GPS,相机(中等预设),指南针和姿态感应都在这里持续长达20秒。 CLLocationManager有一个实例。对于态度,我尝试了一个与磁北+垂直对齐的参考框架以及任意垂直参考框架。
如果没有矫正态度,无论我多么努力地垂直握住iPhone并避免偏航,我都无法获得可重复的结果。有时会有正确的值,但通常不会。我不确定这是否完全是因为我还没有应用态度修正,或者iPhone指南针在垂直时是否根本无法正常工作。
我在一个大型公园中间进行了一些彻底的测试,远离杂散的磁力,进行了校准仪式,在三个轴上旋转了180度,还有其他一些令人尴尬的操作。
结果不正确,而且往往非常不准确。作为示例,在磁性142度上固定在目标上,我连续地获得磁性(非真实)航向的值155,152,154,154,153,156。在其他时候,我会得到175,177,142等等。
我希望这不是iOS中的缺陷(可能与万向节锁有关吗?),只是必须针对iPhone的态度纠正磁罗盘标题。我使用CMMotionManager / DeviceMotion以欧拉角的形式获得手机相对于参考轴的姿态(但同样可以获得旋转矩阵或四元数)。
我的问题是,尽管搜索量很长(尽管不是太害怕数学)但我还没有找到进行校正所需的数学运算。有时我似乎很接近,但链接的服务器不再可用。
如果您旋转设备以将偏航改变一定量,则罗盘读数似乎会改变相似的量,这让我想到也许我只是在标题上添加偏航,但这完全失败了。我已经看到了以未指定的方式使用四元数或旋转矩阵的建议,但我所拥有的只是一个四元数或矩阵,表示从参考帧到当前手机方向的旋转,所以不确定我将用它做什么。< / p>
希望没有必要跳入原始磁力计/陀螺仪/加速度计硬铁干扰等来应用校正?
感激不尽的任何指示或建议。
- 比尔。