专利名称:一种移动装置的指南针校准方法
技术领域:
本发明涉及移动装置的定位系统领域,尤其涉及一种移动装置的指南针校准方法。
背景技术:
指南针在目前移动装置设备上使用率越来越高,甚至在使用谷歌的android (—种开放源码操作系统,中文译名安卓)系统的移动装置上,指南针已经成了必备的应用软件。但是在指南针的开发过程中存在着一个比较重要的问题,就是在每次移动装置重新开机后,指南针都需要校准之后才可以正常使用。指南针的方位角是通过磁偏角(offset)计算而来,如图I所示,所述磁偏角包括三维空间里X、I、z轴的磁偏角基准值,分别取名为 offset_x> offset_y> offset_z,这些磁偏角基准值都是通过加速度传感器获取,所述磁偏角值会根据移动装置校准的情况实时改变。然后指南针结合上述的磁偏角值,通过磁感应强度计算得到方位角(即移动装置与地磁北极间的夹角),而校准指南针就是确定此磁偏角值。现有技术中实现指南针校准有两种方法
方法1,是在用户的使用过程中,通过指南针自动校准。方法2,通过用户手动校准。这两种方法都有其明显的缺点
方法I的缺点由于校准是移动装置自动完成的,并且需要在用户使用过程才能完成,这样在用户每次开机后第一次使用指南针时,在刚开始使用的一段时间内,指南针还未能完成自动校准,此时指南针会变的非常不准,而用户不知道原因,也不知道什么时候才能校准完成,从而影响了用户的使用。方法2的缺点在用户每次开机后第一次使用指南针时,须提示用户进行校准,力口速度传感器在移动装置上的坐标系是三维的,上下方向定义为X轴,左右方向定义为I轴,里外方向定义为Z轴,具体校准的方法是用户拿着移动装置在空中不停的按“C ”轨迹移动。所述“⑴”轨迹是一个具有空间感的环轨迹,形状类似于将一个平面圆弯折的立体环。如果移动装置按图I所示放置,那么此时X轴受到的重力加速度大小为I g,而y轴和Z轴受到的重力加速度大小为0g。我们先看X轴的变化,当移动装置在三维空间中按轨迹移动时,移动装置有从正立到倒立再到正立的过程,在这个过程中X轴受到的重力加速度的变化其实是从Ig到-Ig再到lg,同理看I轴和z轴,当移动装置移动时,移动装置也有从左侧立到右侧立和从正面朝下到反面朝下的过程,在这个过程中I轴和z轴的值的变化也是在Ig到-Ig之间,而指南针在实际使用中用到的加速度传感器X、y、z各个轴的值的范围也是从-Ig到Ig之间,这就是说在移动装置在三维空间中按“⑴”轨迹移动时,就能通过速度传感器获取移动装置在三维空间中的每个位置对应的加速度传感器的X、I、z轴的磁坐标值,从而得出移动装置的方位角。但是这两种方法都有一个共同的缺点,就是像“谷歌地图”这种需要用到指南针的android通用软件不会等到指南针校准完成再使用指南针,如果用户在移动装置开机后没有等指南针校准完成就直接使用“谷歌地图”,会造成“谷歌地图”等软件无法正常使用。 因此,现有技术有待于完善和发展。
发明内容
本发明的目的在于提供一种能够在指南针没有完成校准前能基本正常工作的移动装置的指南针校准方法。一种移动装置的指南针校准方法,包括以下步骤
A,通过加速度传感器获取移动装置的磁偏角;
B,将所述磁偏角储存在移动装置的储存器中;
C,使用指南针时,调用储存器中的磁偏角作为初始值;
D,当所述磁偏角发生改变时,判断其校准等级是否达到预定精度,是则
使用改变后的磁偏角并替换储存器中磁偏角的初始值,否则继续使用原有的磁偏角;
E,再次使用指南针时,返回步骤C。所述移动装置的指南针校准方法,其中,所述步骤A中还包括,
Al,将移动装置在三维空间里沿“①”轨迹移动,通过加速度传感器获取移动装置在X、Y、z轴的加速度值;
A2,通过所述加速度值计算出移动装置的磁偏角;
所述的移动装置的指南针校准方法,其中,在步骤A2中,计算磁偏角使用的算法为 fData
= (acc. X * 9. 8f) / 64 fData[l] = (acc. y * 9. 8f) / 64 fData[2] = (acc. z * 9. 8f) / 64
其中,fData
、fData[l]、fData[2]分别为磁偏角基准值,acc. x、acc. y、acc. z分别表示从加速度传感器中取得的X、I、Z轴的加速度值,f代表浮点计算,所述磁偏角由fData
> fData[l]和 fData[2]组成。所述的移动装置的指南针校准方法,其中,所述步骤B中还包括,
BI,所述磁偏角以文本形式储存,所述储存器为移动装置的闪存。所述的移动装置的指南针校准方法,其中,所述步骤D中还包括,
D1,所述校准等级分为1、2、3、4四个等级,分别代表不准、不太准、较准和准确,所述预定精度为第3等级或第4等级。所述的移动装置的指南针校准方法,其中,所述移动装置为手机。本发明是通过在移动装置内的储存器里记录和储存初始的方位角,当移动装置的指南针自我校准达到一定精度后,再将更新后的方位角记录和储存在移动装置内的储存器里,下次再使用指南针软件时,直接从储存器里调用即可,保证了指南针在启用时的开始阶段也能有较准的精度,基本使用正常;从而解决指南针启用时由于方位角不准确无法使用的问题。
图I为现有技术中移动装置所处位置对应的x、y、z磁坐标示意图。
图2为本发明一种移动装置的指南针校准方法的流程图。图3为本发明一种移动装置的指南针校准方法中的移动装置在出厂前的准备流程图。图4为本发明一种移动装置的指南针校准方法的移动装置出厂后使用指南针的流程图。
具体实施例方式本发明提供了一种移动装置的指南针校准方法,为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。如图2所示,本发明一种移动装置的指南针校准方法的流程示意图,步骤包括 步骤A,通过加速度传感器获取移动装置的磁偏角;对于如何获取移动装置的磁偏角
已是现有技术,无论是指南针应用本身还是“谷歌地图”软件,要计算最终的方位角(也就是移动装置的朝向与地磁北极间的夹角),都需要用到移动装置当时所处的位置对应的磁偏角,目前市面上大部分移动装置提供的指南针功能都是能在三维空间使用的,所以一般都会配备一个加速度传感器与其协同工作,利用加速度传感器计算出移动装置当前在三维空间中的位置信息即磁偏角。具体地,所述步骤A中包括,
步骤Al,将移动装置在三维空间里沿“①”轨迹移动,通过加速度传感器获取移动装置在三维空间里X、I、z轴的加速度值;
步骤A2,通过所述加速度值计算出移动装置的磁偏角;最后再通过所述 磁偏角计算出移动装置的方位角。具体计算磁偏角使用的算法为 fData
= (acc. X * 9. 8f) / 64 fData[l] = (acc. y * 9. 8f) / 64 fData[2] = (acc. z * 9. 8f) / 64
其中 fData
、fData[l]、fData[2]分别为磁偏角基准值,acc. x、acc. y、acc. z 分别表示从加速度传感器中取得的X、I、z轴的加速度值,f代表浮点计算。一般加速度传感器都支持标准的I2C接口,因此本发明中也可以通过I2C接口取得这三个值的。这里示例的加速度传感器的精度是6位的,所以它对应的量程是64,而Ig对应的数值是9. 8,通过上面的换算就可以通过加速度传感器的值转换成磁偏角基准值,所述磁偏角由磁偏角基准值fData
> fData[l]和 fData[2]组成。然后再将磁偏角传输到compass算法的校准接口,compass算法就可以通过磁偏角进行校准。本发明中所述校准接口具体的型号为AKM8975,对应的compass算法校准接口为
Direction6D(fData[]);
校准后的磁偏角传输到Direction6D (fData[]),从而计算出最终的方位角。当然不同的compass算法,标准接口也不一样。步骤B,将所述磁偏角记录储存在移动装置的储存器中;具体可以文本形式储存,所述储存器为移动装置的闪存。之所以要以文本文件的形式保存到文件系统中,是因为文件都是放在移动终端的flash中,而flash是非掉电易失的存储介质,这样移动终端关机或重启后保存在文件中的磁偏角值都不会消失或改变,而文件系统的操作,即如何创建文件,把磁偏角值写到文件中,读取及更新文件中的磁偏角值都可以用标准的C语言中的文件处理来完成。 步骤C,使用指南针时,直接调用储存器中的磁偏角作为初始值;所以即使指南针没有经过校准也能保证基本正常工作,因为我们在开机之前就已经给了它一个合理的磁偏角。这样就基本解决了移动终端出厂之后,用户第一次开机并使用指南针时,指南针不能使用的问题了。步骤D,当所述磁偏角发生改变时,判断其校准等级是否达到预定精度,是则使用改变后的磁偏角,并替换储存器中的磁偏角初始值,否则继续使用原有的磁偏角;此处所说的改变可因移动装置自身校准而进行的改变,因此随着移动终端不断地在空中画“c ”或者其他的移动,指南针的校准精度就会逐渐提高,当其精度到达预定值时,具体可将指南针的校准等级分为1、2、3、4四个等级,指南针在校准等级I时不准、在校准等级2时是不太准的,在校准等级3时较为准确,而到校准等级4时是最为准确的,当校准等级为I时,offset_x,offset _y,offset _z的初始值都为4096,4096是指南针刚刚启用时所用的默认值,此时的精度是十分不准的。本发明中,所述预定精度定为第3等级或以上。当符合所述的预定精度,移动装置就会使用更新后的磁偏角并替换原有的磁偏角记录储存在储存器中,否则继续使用原有的磁偏角;毕竟移动终端的使用环境不固定,用之前预设的磁偏角值未必更好,所以当compass自身的校准达到一定的精度时,就没必要再用之前预设offset值了。如图3所示,为本发明一种移动装置的指南针校准方法中的移动装置在出厂前的准备流程图;上述的校准等级也可以应用在移动装置在出厂前的调试中使用,在开始使用compass (指南针)时,对compass进行校准,并观察其校准等级,当达到第3等级时,即level3,就记录此时的offset值,作为出厂后第一次使用compass时的offset的初始值,最后就关闭compass。步骤E,再次使用指南针时,返回步骤C。即将作为下次启用指南针时的初始化值,此时指南针或“谷歌地图”通过直接使用记录在储存器中的磁偏角值计算出的方位角都能基本等达到用户的要求。如图4所示,为本发明一种移动装置的指南针校准方法的移动装置出厂后使用指南针的流程图;当开始使用compass时,就判断是否有offset值保存在移动装置储存器内的文件中,是则直接使用文件中的offset值作为offset值的初始值,否的话就像出厂前调试一样,用调试时得到的一组校准后的offset值作为offset的初始值;移动装置在使用过程中,会不断地进行自我校准,此时就等待compass算法校准完成,校准完成后,达到预定精度,就将校准完成后的offset值替换原先的初始值,关闭compass前,则将最新最准确的offset值保存在文件中,最后关闭compass,下次使用时再如此循环。本发明中所述移动装置可为手机。本发明的方法的核心思想是结合指南针本身的自动校准算法加上额外的软件补偿来完成指南针的自动校准,为移动终端找到一个较为合理的初始化offset值。特别是解决开机后在指南针完成校准前不能使用“谷歌地图”的问题。
应 当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。
权利要求
1.一种移动装置的指南针校准方法,包括以下步骤 A,通过加速度传感器获取移动装置的磁偏角; B,将所述磁偏角储存在移动装置的储存器中; C,使用指南针时,调用储存器中的磁偏角作为初始值; D,当所述磁偏角发生改变时,判断其校准等级是否达到预定精度,是则使用改变后的磁偏角并替换储存器中磁偏角的初始值,否则继续使用原有的磁偏角; E,再次使用指南针时,返回步骤C。
2.如权利要求I所述移动装置的指南针校准方法,其特征在于,所述步骤A中还包括, Al,将移动装置在三维空间里沿“①”轨迹移动,通过加速度传感器获取移动装置在X、Y、z轴的加速度值; A2,通过所述加速度值计算出移动装置的磁偏角。
3.如权利要求2所述的移动装置的指南针校准方法,其特征在于,在步骤A2中,计算磁偏角使用的算法为fData
= (acc. X * 9. 8f) / 64fData[l] = (acc. y * 9. 8f) / 64fData[2] = (acc. z * 9. 8f) / 64 其中,fData
> fData[l]> fData[2]分别为磁偏角基准值,acc. x、acc. y、acc. z 分别表示从加速度传感器中取得的x、y、z轴的加速度值,f代表浮点计算,所述磁偏角由fData
> fData[l]和 fData[2]组成。
4.如权利要求I所述的移动装置的指南针校准方法,其特征在于,所述步骤B中还包括, BI,所述磁偏角以文本形式储存,所述储存器为移动装置的闪存。
5.如权利要求I 4任一所述的移动装置的指南针校准方法,其特征在于,所述步骤D中还包括, D1,所述校准等级分为1、2、3、4四个等级,分别代表不准、不太准、较准和准确,所述预定精度为第3等级或第4等级。
6.如权利要求I所述的移动装置的指南针校准方法,其特征在于,所述移动装置为手机。
全文摘要
本发明公开了一种移动装置的指南针校准方法,本发明通过在移动装置内的储存器里记录和储存方位角,当移动装置的指南针自我校准达到一定精度后,再将更新后的方位角记录和储存在移动装置内的储存器里,再次使用指南针软件时,就直接从储存器里调用更新后的方位角进行运算,保证了指南针在启用时的开始阶段也能有较准的精度,基本使用正常;从而解决指南针启用时由于方位角不准确无法使用的问题。
文档编号G01C17/38GK102620725SQ20121007027
公开日2012年8月1日 申请日期2012年3月16日 优先权日2012年3月16日
发明者吴奇峰 申请人:惠州Tcl移动通信有限公司