我一直在试验iPhone 4上的指南针和陀螺仪,并希望得到一些我正在解决的问题的帮助.我想通过使用陀螺仪的数据来弥补指南针的缓慢.
使用CMMotionManager和它的CMDeviceMotionobject(motionManager.deviceMotion),我得到了CMAttitude对象.如果我错了(请),请纠正我,但这是我从CMAttitude对象的yaw属性中推断出来的(我不需要pitch也不是roll为了我的目的):
yaw范围从0到PI当手机正在指向下方(由所指示的deviceMotion.gravity.z)和逆时针方向摆动,并0以-PI顺时针方向摆动时yaw范围分别为-PIto 0和PIto0locationManager.heading.magneticHeading),我看到罗盘给出了从值0到360与值顺时针摆动时增加好吧,所以一起使用所有这些信息,我能够得到一个我称之为的值horizontal,无论设备是向上还是向下,都会给出值0,360并在设备顺时针摆动时增加(尽管我我在deviceManager.gravity.z周围时仍然遇到麻烦0- yaw价值在这个gravity.z价值上变得非常惊人).
在我看来,我可以使用映射到的计算值"同步" horizontal和magneticHeading值,并在我感觉指南针"赶上"时"同步"该值.horizontalmagneticHeadinghorizontalmagneticHeading
所以我的问题:
CMDeviceMotion是否正确使用陀螺仪数据并且上面列出的假设是正确的?yaw在 …