【问题标题】:Calculating yaw angle without calibration无需校准即可计算偏航角
【发布时间】:2015-01-07 04:30:42
【问题描述】:
假设我们有加速度计和磁力计。我想知道是否有一种方法可以在不校准磁力计的情况下计算偏航角 -
- 相对于磁北的偏航角不需要准确;所以当设备指向磁北时,偏航角不需要为0,可以是任意度数。但偏航角需要相对于旋转准确,即当设备旋转时,偏航角的变化需要正确反映实际度数的变化。
谢谢,
【问题讨论】:
标签:
calibration
magnetometer
euler-angles
【解决方案1】:
Ted- 我同意校准磁力计是一件痛苦的事,但如果它们指向相同的方向,您确实需要每个轴给出相同的读数。但是,您无需知道您所在位置的倾角、磁偏角或磁场,即可从磁北获取方位。
【讨论】:
-
谢谢戴夫,我问这个问题的原因是我正在研究 Kolibree (kolibree.com/en) 如何计算相对于牙齿的角度。我认为用户需要先将刷子与牙齿平行放置以获得初始航向角,然后在旋转刷子时,可以通过比较新航向与初始航向来计算与牙齿的相对角度;刷子使用磁力计,但用户如何在使用前校准刷子?它不像 iPhone,人们接受在使用指南针之前必须校准这一事实。
【解决方案2】:
如果您可能还没有找到此代码片段,它将为您指明正确的方向。
motionManager.startDeviceMotionUpdatesUsingReferenceFrame(
CMAttitudeReferenceFrame.XArbitraryCorrectedZVertical,
toQueue: NSOperationQueue.currentQueue()!,
withHandler: {
[unowned self] (data: CMDeviceMotion?, error: NSError?) in
// ignore errors
if let gotData = data {
print(self.motionManager.deviceMotion!.attitude.yaw)
}
}
)