无需校准即可计算偏航角

Posted

技术标签:

【中文标题】无需校准即可计算偏航角【英文标题】:Calculating yaw angle without calibration 【发布时间】:2015-01-07 04:30:42 【问题描述】:

假设我们有加速度计和磁力计。我想知道是否有一种方法可以在不校准磁力计的情况下计算偏航角 -

    相对于磁北的偏航角不需要准确;所以当设备指向磁北时,偏航角不需要为0,可以是任意度数。但偏航角需要相对于旋转准确,即当设备旋转时,偏航角的变化需要正确反映实际度数的变化。

谢谢,

【问题讨论】:

我投票结束这个问题,因为这与编程无关。 【参考方案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)
            
          
        )

【讨论】:

以上是关于无需校准即可计算偏航角的主要内容,如果未能解决你的问题,请参考以下文章

使用 CMQaternion 计算偏航角

为啥移动控制器时偏航角消失?

鼠标输入

iOS 时间校准解决方案

基于arduino的自动校准日晷

在插入符号交叉验证期间计算模型校准?