校准手机上的指南针,为什么要拿着手机在空中画一个“8“字形?

2025-05-24 08:21:18
推荐回答(3个)
回答1:

手机要想得到compass的值需要由三个sensor来确定,accel, gyro, magnetic。accel可以判断重力感应的放心,来确定手机所在的三个轴向XYZgyro可以判断出机器在三个轴向的转动。magnetic可以判断出在三个轴向的磁感应量。这个值并不是我们所能直观看懂的compass的值。那么通过orientation的设置,使机器能够知道XYZ三个方向哪个是指北的。一般机器在打开compass的application时只有知道自己的orientation和default offset。这时候就需要各位转动手机。虽然是说的8字,但是其实是想让你把三个轴向都转一转这样在每个轴向会形成一个螺旋线的球体(我用小画家画不出来,大家脑补,或者换个时间我去弄个图来)。这个就是周围的磁场。在这一刻传感器就开始计算当前的三个轴向offset并加以纠正,加上适当的补偿值。如此你就可以得到准确的北。并且通过gyro和magnetic共同计算就可以知道你在水平方向的旋转度数,这样你除了东西南北还能知道其他方向的角度(东西南北对应的是-X,+X,-Y,+Y,比较好算,转过这些点就要混合计算了。)如果算法足够先进,再加上accel的判断就可以计算出机器是否是在倾斜的状况下旋转并计算出compass的值。

回答2:

避免磁场干扰

回答3:

应该是切割地磁感线来矫正吧