CN102620725B - 一种移动装置的指南针校准方法 - Google Patents
一种移动装置的指南针校准方法 Download PDFInfo
- Publication number
- CN102620725B CN102620725B CN201210070276.8A CN201210070276A CN102620725B CN 102620725 B CN102620725 B CN 102620725B CN 201210070276 A CN201210070276 A CN 201210070276A CN 102620725 B CN102620725 B CN 102620725B
- Authority
- CN
- China
- Prior art keywords
- mobile device
- magnetic declination
- compass
- fdata
- acc
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Abstract
本发明公开了一种移动装置的指南针校准方法,本发明通过在移动装置内的储存器里记录和储存方位角,当移动装置的指南针自我校准达到一定精度后,再将更新后的方位角记录和储存在移动装置内的储存器里,再次使用指南针软件时,就直接从储存器里调用更新后的方位角进行运算,保证了指南针在启用时的开始阶段也能有较准的精度,基本使用正常;从而解决指南针启用时由于方位角不准确无法使用的问题。
Description
技术领域
本发明涉及移动装置的定位系统领域,尤其涉及一种移动装置的指南针校准方法。
背景技术
指南针在目前移动装置设备上使用率越来越高,甚至在使用谷歌的android(一种开放源码操作系统,中文译名:安卓)系统的移动装置上,指南针已经成了必备的应用软件。但是在指南针的开发过程中存在着一个比较重要的问题,就是在每次移动装置重新开机后,指南针都需要校准之后才可以正常使用。指南针的方位角是通过磁偏角(offset)计算而来,如图1所示,所述磁偏角包括三维空间里x、y、z轴的磁偏角基准值,分别取名为offset_x、offset_y、offset_z,这些磁偏角基准值都是通过加速度传感器获取,所述磁偏角值会根据移动装置校准的情况实时改变。然后指南针结合上述的磁偏角值,通过磁感应强度计算得到方位角(即移动装置与地磁北极间的夹角),而校准指南针就是确定此磁偏角值。
现有技术中实现指南针校准有两种方法:
方法1,是在用户的使用过程中,通过指南针自动校准。
方法2,通过用户手动校准。
这两种方法都有其明显的缺点:
方法1的缺点:由于校准是移动装置自动完成的,并且需要在用户使用过程才能完成,这样在用户每次开机后第一次使用指南针时,在刚开始使用的一段时间内,指南针还未能完成自动校准,此时指南针会变的非常不准,而用户不知道原因,也不知道什么时候才能校准完成,从而影响了用户的使用。
方法2的缺点:在用户每次开机后第一次使用指南针时,须提示用户进行校准,加速度传感器在移动装置上的坐标系是三维的,上下方向定义为x轴,左右方向定义为y轴,里外方向定义为z轴,具体校准的方法是用户拿着移动装置在空中不停的按“∞”轨迹移动。所述“∞”轨迹是一个具有空间感的环轨迹,形状类似于将一个平面圆弯折的立体环。如果移动装置按图1所示放置,那么此时x轴受到的重力加速度大小为1 g,而y轴和z轴受到的重力加速度大小为0g。我们先看x轴的变化,当移动装置在三维空间中按“∞”轨迹移动时,移动装置有从正立到倒立再到正立的过程,在这个过程中x轴受到的重力加速度的变化其实是从1g到-1g再到1g,同理看y轴和z轴,当移动装置移动时,移动装置也有从左侧立到右侧立和从正面朝下到反面朝下的过程,在这个过程中y轴和z轴的值的变化也是在1g到-1g之间,而指南针在实际使用中用到的加速度传感器x、y、z各个轴的值的范围也是从-1g到1g之间,这就是说在移动装置在三维空间中按“∞”轨迹移动时,就能通过速度传感器获取移动装置在三维空间中的每个位置对应的加速度传感器的x、y、z轴的磁坐标值,从而得出移动装置的方位角。
但是这两种方法都有一个共同的缺点,就是像“谷歌地图”这种需要用到指南针的android通用软件不会等到指南针校准完成再使用指南针,如果用户在移动装置开机后没有等指南针校准完成就直接使用“谷歌地图”,会造成“谷歌地图”等软件无法正常使用。
因此,现有技术有待于完善和发展。
发明内容
本发明的目的在于提供一种能够在指南针没有完成校准前能基本正常工作的移动装置的指南针校准方法。
一种移动装置的指南针校准方法,包括以下步骤:
A,通过加速度传感器获取移动装置的磁偏角;
B,将所述磁偏角储存在移动装置的储存器中;
C,使用指南针时,调用储存器中的磁偏角作为初始值;
D,当所述磁偏角发生改变时,判断其校准等级是否达到预定精度,是则
使用改变后的磁偏角并替换储存器中磁偏角的初始值,否则继续使用原有的磁偏角;
E,再次使用指南针时,返回步骤C。
所述移动装置的指南针校准方法,其中,所述步骤A中还包括,
A1,将移动装置在三维空间里沿“∞”轨迹移动,通过加速度传感器获取移动装置在x、y、z轴的加速度值;
A2,通过所述加速度值计算出移动装置的磁偏角;
所述的移动装置的指南针校准方法,其中,在步骤A2中,计算磁偏角使用的算法为:
fData[0] = (acc.x * 9.8f) / 64
fData[1] = (acc.y * 9.8f) / 64
fData[2] = (acc.z * 9.8f) / 64
其中,fData[0]、fData[1]、fData[2]分别为磁偏角基准值,acc.x、 acc.y、 acc.z分别表示从加速度传感器中取得的x、y、z轴的加速度值,f代表浮点计算,所述磁偏角由fData[0]、fData[1]和fData[2]组成。
所述的移动装置的指南针校准方法,其中,所述步骤B中还包括,
B1,所述磁偏角以文本形式储存,所述储存器为移动装置的闪存。
所述的移动装置的指南针校准方法,其中,所述步骤D中还包括,
D1,所述校准等级分为1、2、3、4四个等级,分别代表不准、不太准、较准和准确,所述预定精度为第3等级或第4等级。
所述的移动装置的指南针校准方法,其中,所述移动装置为手机。
本发明是通过在移动装置内的储存器里记录和储存初始的方位角,当移动装置的指南针自我校准达到一定精度后,再将更新后的方位角记录和储存在移动装置内的储存器里,下次再使用指南针软件时,直接从储存器里调用即可,保证了指南针在启用时的开始阶段也能有较准的精度,基本使用正常;从而解决指南针启用时由于方位角不准确无法使用的问题。
附图说明
图1为现有技术中移动装置所处位置对应的x、y、z磁坐标示意图。
图2为本发明一种移动装置的指南针校准方法的流程图。
图3为本发明一种移动装置的指南针校准方法中的移动装置在出厂前的准备流程图。
图4为本发明一种移动装置的指南针校准方法的移动装置出厂后使用指南针的流程图。
具体实施方式
本发明提供了一种移动装置的指南针校准方法,为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
如图2所示,本发明一种移动装置的指南针校准方法的流程示意图,步骤包括:
步骤A,通过加速度传感器获取移动装置的磁偏角;对于如何获取移动装置的磁偏角已是现有技术,无论是指南针应用本身还是“谷歌地图”软件,要计算最终的方位角(也就是移动装置的朝向与地磁北极间的夹角),都需要用到移动装置当时所处的位置对应的磁偏角,目前市面上大部分移动装置提供的指南针功能都是能在三维空间使用的,所以一般都会配备一个加速度传感器与其协同工作,利用加速度传感器计算出移动装置当前在三维空间中的位置信息即磁偏角。
具体地,所述步骤A中包括,
步骤A1,将移动装置在三维空间里沿“∞”轨迹移动,通过加速度传感器获取移动装置在三维空间里x、y、z轴的加速度值;
步骤A2,通过所述加速度值计算出移动装置的磁偏角;最后再通过所述
磁偏角计算出移动装置的方位角。具体计算磁偏角使用的算法为:
fData[0] = (acc.x * 9.8f) / 64
fData[1] = (acc.y * 9.8f) / 64
fData[2] = (acc.z * 9.8f) / 64
其中fData[0]、fData[1]、fData[2]分别为磁偏角基准值,acc.x、acc.y、acc.z分别表示从加速度传感器中取得的x、y、z轴的加速度值,f代表浮点计算。一般加速度传感器都支持标准的I2C接口,因此本发明中也可以通过I2C接口取得这三个值的。这里示例的加速度传感器的精度是6位的,所以它对应的量程是64,而1g对应的数值是9.8,通过上面的换算就可以通过加速度传感器的值转换成磁偏角基准值,所述磁偏角由磁偏角基准值fData[0]、fData[1]和fData[2]组成。
然后再将磁偏角传输到compass算法的校准接口,compass算法就可以通过磁偏角进行校准。本发明中所述校准接口具体的型号为AKM8975,对应的compass算法校准接口为:
Direction6D(fData[]);
校准后的磁偏角传输到Direction6D(fData[]),从而计算出最终的方位角。
当然不同的compass算法,标准接口也不一样。
步骤B,将所述磁偏角记录储存在移动装置的储存器中;具体可以文本形式储存,所述储存器为移动装置的闪存。之所以要以文本文件的形式保存到文件系统中,是因为文件都是放在移动终端的flash中,而flash是非掉电易失的存储介质,这样移动终端关机或重启后保存在文件中的磁偏角值都不会消失或改变,而文件系统的操作,即如何创建文件,把磁偏角值写到文件中,读取及更新文件中的磁偏角值都可以用标准的C语言中的文件处理来完成。
步骤C,使用指南针时,直接调用储存器中的磁偏角作为初始值;所以即使指南针没有经过校准也能保证基本正常工作,因为我们在开机之前就已经给了它一个合理的磁偏角。这样就基本解决了移动终端出厂之后,用户第一次开机并使用指南针时,指南针不能使用的问题了。
步骤D,当所述磁偏角发生改变时,判断其校准等级是否达到预定精度,是则使用改变后的磁偏角,并替换储存器中的磁偏角初始值,否则继续使用原有的磁偏角;此处所说的改变可因移动装置自身校准而进行的改变,因此随着移动终端不断地在空中画“∞”或者其他的移动,指南针的校准精度就会逐渐提高,当其精度到达预定值时,具体可将指南针的校准等级分为1、2、3、4四个等级,指南针在校准等级1时不准、在校准等级2时是不太准的,在校准等级3时较为准确,而到校准等级4时是最为准确的,当校准等级为1时,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值。特别是解决开机后在指南针完成校准前不能使用“谷歌地图”的问题。
应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。
Claims (3)
1. 一种移动装置的指南针校准方法,包括以下步骤:
A,通过加速度传感器获取移动装置的磁偏角;
B,将所述磁偏角储存在移动装置的储存器中,所述储存器为移动装置的闪存,所述磁偏角以文本形式储存在移动装置的储存器中;
C,使用指南针时,调用储存器中的磁偏角作为初始值;
D,当所述磁偏角发生改变时,判断其校准等级是否达到预定精度,是则使用改变后的磁偏角并替换储存器中磁偏角的初始值,否则继续使用原有的磁偏角;
E,再次使用指南针时,返回步骤C;
所述步骤A中还包括,
A1,将移动装置在三维空间里沿“∞”轨迹移动,通过加速度传感器获取移动装置在x、y、z轴的加速度值;
A2,通过所述加速度值计算出移动装置的磁偏角;
在步骤A2中,计算磁偏角使用的算法为:
fData[0] = (acc.x * 9.8f) / 64
fData[1] = (acc.y * 9.8f) / 64
fData[2] = (acc.z * 9.8f) / 64
其中,fData[0]、fData[1]、fData[2]分别为磁偏角基准值,acc.x、acc.y、acc.z分别表示从加速度传感器中取得的x、y、z轴的加速度值,f代表浮点计算,所述磁偏角由fData[0]、fData[1]和fData[2]组成。
2. 如权利要求1所述的移动装置的指南针校准方法,其特征在于,所述步骤D中还包括,
D1,所述校准等级分为1、2、3、4四个等级,分别代表不准、不太准、较准和准确,所述预定精度为第3等级或第4等级。
3. 如权利要求1所述的移动装置的指南针校准方法,其特征在于,所述移动装置为手机。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210070276.8A CN102620725B (zh) | 2012-03-16 | 2012-03-16 | 一种移动装置的指南针校准方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210070276.8A CN102620725B (zh) | 2012-03-16 | 2012-03-16 | 一种移动装置的指南针校准方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102620725A CN102620725A (zh) | 2012-08-01 |
CN102620725B true CN102620725B (zh) | 2015-02-11 |
Family
ID=46560793
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210070276.8A Active CN102620725B (zh) | 2012-03-16 | 2012-03-16 | 一种移动装置的指南针校准方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102620725B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103167166B (zh) * | 2013-01-31 | 2015-08-19 | 深圳市金立通信设备有限公司 | 一种终端指南针的校准方法及装置 |
CN104501790B (zh) * | 2014-12-17 | 2017-06-16 | 小米科技有限责任公司 | 电子罗盘的校准方法和装置 |
CN106125160B (zh) * | 2016-06-14 | 2018-11-09 | 重庆蓝岸通讯技术有限公司 | 自动校准重力感应器方向的系统及方法 |
CN107421523B (zh) * | 2017-06-19 | 2021-05-28 | 深圳市万普拉斯科技有限公司 | 方位角校准方法、装置、存储介质和计算机设备 |
CN107328401B (zh) * | 2017-07-26 | 2021-02-19 | Tcl移动通信科技(宁波)有限公司 | 移动终端及其地磁感应器数据校正处理方法、及存储介质 |
CN111433562A (zh) * | 2017-12-27 | 2020-07-17 | 深圳市柔宇科技有限公司 | 磁力计的校准方法及相关设备 |
CN109379492B (zh) * | 2018-10-17 | 2019-11-12 | 珠海格力电器股份有限公司 | 一种集成水平垂直仪功能的指南针实现方法及手机 |
CN111854721A (zh) * | 2020-07-30 | 2020-10-30 | 北京小米移动软件有限公司 | 地磁数据修正方法、装置和电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101806595A (zh) * | 2010-04-19 | 2010-08-18 | 美新半导体(无锡)有限公司 | 一种两维电子指南针校准算法 |
CN102168974A (zh) * | 2011-05-23 | 2011-08-31 | 北京百纳威尔科技有限公司 | 移动式3d指南针系统及其实现方法和手机 |
CN102289308A (zh) * | 2011-09-06 | 2011-12-21 | 宇龙计算机通信科技(深圳)有限公司 | 一种利用移动终端调节对象方位的方法、系统及移动终端 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7667686B2 (en) * | 2006-02-01 | 2010-02-23 | Memsic, Inc. | Air-writing and motion sensing input for portable devices |
JP2009534690A (ja) * | 2006-07-10 | 2009-09-24 | メムシック,インコーポレイテッド | 磁場センサーを用いて偏揺れを感知するためのシステム、および、前記システムを用いた携帯用の電子装置 |
JP2010266214A (ja) * | 2009-05-12 | 2010-11-25 | Aichi Micro Intelligent Corp | 異常磁気検出装置、磁気ジャイロ、電子コンパス |
-
2012
- 2012-03-16 CN CN201210070276.8A patent/CN102620725B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101806595A (zh) * | 2010-04-19 | 2010-08-18 | 美新半导体(无锡)有限公司 | 一种两维电子指南针校准算法 |
CN102168974A (zh) * | 2011-05-23 | 2011-08-31 | 北京百纳威尔科技有限公司 | 移动式3d指南针系统及其实现方法和手机 |
CN102289308A (zh) * | 2011-09-06 | 2011-12-21 | 宇龙计算机通信科技(深圳)有限公司 | 一种利用移动终端调节对象方位的方法、系统及移动终端 |
Non-Patent Citations (1)
Title |
---|
JP特开2010-266214A 2010.11.25 * |
Also Published As
Publication number | Publication date |
---|---|
CN102620725A (zh) | 2012-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102620725B (zh) | 一种移动装置的指南针校准方法 | |
US10984554B2 (en) | Monocular vision tracking method, apparatus and non-volatile computer-readable storage medium | |
CN109613543B (zh) | 激光点云数据的修正方法、装置、存储介质和电子设备 | |
CN108161936B (zh) | 优化的机器人标定方法及装置 | |
CN108871311B (zh) | 位姿确定方法和装置 | |
CN108961343A (zh) | 虚拟坐标系的构建方法、装置、终端设备及可读存储介质 | |
RU2013129857A (ru) | Лазерная конфокальная сенсорная измерительная система | |
CN105571614B (zh) | 磁传感器校准方法及装置 | |
CN103438798A (zh) | 主动双目视觉系统全局标定方法 | |
CN104730802A (zh) | 光轴夹角的校准、对焦方法和系统和双摄像头设备 | |
CN110276774B (zh) | 物体的绘图方法、装置、终端和计算机可读存储介质 | |
CN105783900A (zh) | 一种传感器数据的校准方法及装置 | |
CN105376564A (zh) | 摄像头校准设备及其控制方法与装置 | |
CN104750879B (zh) | 一种电子地图标注、认领、纠错方法及处理设备 | |
CN104767927A (zh) | 一种对云台摄像设备进行方位控制的方法和装置 | |
WO2019230447A9 (ja) | 画像処理方法、薬剤感受性試験方法および画像処理装置 | |
CN110455265A (zh) | Rtk放样系统、方法及装置 | |
CN102168974A (zh) | 移动式3d指南针系统及其实现方法和手机 | |
CN107782304A (zh) | 移动机器人的定位方法及装置、移动机器人及存储介质 | |
CN115308721A (zh) | 一种激光雷达和组合惯导外参标定方法、装置、设备、介质 | |
JP6564054B2 (ja) | 非対称レンズの安息角を決定するためのシステム及び方法 | |
CN109506617B (zh) | 传感器数据处理方法、存储介质、电子设备 | |
CN111191596B (zh) | 一种封闭区域制图方法、装置及存储介质 | |
CN105758422B (zh) | 一种积分式闭环光纤陀螺的测试方法 | |
CN115200572B (zh) | 三维点云地图构建方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |