don*_*kim 30 iphone ios iphone-4 gyroscope compass-geolocation
我一直在试验iPhone 4上的指南针和陀螺仪,并希望得到一些我正在解决的问题的帮助.我想通过使用陀螺仪的数据来弥补指南针的缓慢.
使用CMMotionManager
和它的CMDeviceMotion
object(motionManager.deviceMotion
),我得到了CMAttitude
对象.如果我错了(请),请纠正我,但这是我从CMAttitude
对象的yaw
属性中推断出来的(我不需要pitch
也不是roll
为了我的目的):
yaw
范围从0
到PI
当手机正在指向下方(由所指示的deviceMotion.gravity.z
)和逆时针方向摆动,并0
以-PI
顺时针方向摆动时yaw
范围分别为-PI
to 0
和PI
to0
locationManager.heading.magneticHeading
),我看到罗盘给出了从值0
到360
与值顺时针摆动时增加好吧,所以一起使用所有这些信息,我能够得到一个我称之为的值horizontal
,无论设备是向上还是向下,都会给出值0
,360
并在设备顺时针摆动时增加(尽管我我在deviceManager.gravity.z
周围时仍然遇到麻烦0
- yaw
价值在这个gravity.z
价值上变得非常惊人).
在我看来,我可以使用映射到的计算值"同步" horizontal
和magneticHeading
值,并在我感觉指南针"赶上"时"同步"该值.horizontal
magneticHeading
horizontal
magneticHeading
所以我的问题:
CMDeviceMotion
是否正确使用陀螺仪数据并且上面列出的假设是正确的?yaw
在gravity.z
周围时可能会感到害怕0
?非常感谢你.我期待着听到你的答案!
Fer*_*Htw 21
只是想回答......如果我错了就纠正我..
你是走在正确的轨道上
2. CM中的重力已经与用户重力(由用户加速引起的重力值)"隔离",这就是为什么有两个重力,"重力"和"userAcceleration"它在苹果CM文档上//注意:并非完全孤立//
3.如果你的重力为0,则意味着相应的轴与重力垂直.gravity.z是iPhone屏幕,这就是为什么它-9.82m/s2如果你把桌子放在屏幕上直立,实际上很难得到0或由于传感器噪音引起的最大重力值(这是正常的,所有传感器都有一个噪音特别便宜的传感器).
我在我的应用程序上做的是我将我的参考轴切换到其他轴(在您的情况下可能是x或y)以获得某些限制,策略如何取决于目的或哪一方是您的参考.
另一件事是,陀螺仪速度快但不稳定,需要重新校准几个间隔的值.在我的情况下每5秒.我试验陀螺用于计算两个平面之间的角度,我尝试使用90度标尺并且每秒钟会产生大约0.5度的误差并且不断增加,但那是我的,也许其他人有更好的方法来避免错误.
下面是我的步骤"
注意:对于7号:是检查手机是否受到磁场影响或是否接近巨大的钢铁或高压电线或工厂内的嘈杂和重型设备.
多数民众赞成...希望这可以帮到你......对不起我的英语..
Ell*_*n S 10
这是一个iPhone应用程序的例子,罗盘可以用陀螺仪进行补偿.代码和项目可以在这里看到:http: //www.sundh.com/blog/2011/09/stabalize-compass-of-iphone-with-gyroscope/
归档时间: |
|
查看次数: |
14884 次 |
最近记录: |