CN113865571A - 提高手机指南针应用精度的方法、装置和可读存储介质 - Google Patents
提高手机指南针应用精度的方法、装置和可读存储介质 Download PDFInfo
- Publication number
- CN113865571A CN113865571A CN202110962915.0A CN202110962915A CN113865571A CN 113865571 A CN113865571 A CN 113865571A CN 202110962915 A CN202110962915 A CN 202110962915A CN 113865571 A CN113865571 A CN 113865571A
- Authority
- CN
- China
- Prior art keywords
- data
- triaxial
- axis
- gyroscope
- component
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C17/00—Compasses; Devices for ascertaining true or magnetic north for navigation or surveying purposes
- G01C17/38—Testing, calibrating, or compensating of compasses
Landscapes
- Engineering & Computer Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Telephone Function (AREA)
Abstract
本发明公开了一种提高手机指南针应用精度的方法、装置和可读存储介质。在该方法中,包括如下步骤:获取陀螺仪的三轴数据、加速度计的三轴数据、地磁传感器的三轴数据;对所述陀螺仪的三轴数据、所述加速度计的三轴数据、所述地磁传感器的三轴数据进行融合处理,获得手机的运动姿态数据;对所述运动姿态数据进行解析,得到指南针的方向。本发明的手机指南针通过采用手机的运动姿态数据作为指向,可避免指南针受到外部磁场干扰,从而提高指南针抗干扰能力,使手机指南针应用精度更高,指向更准确。
Description
技术领域
本发明涉及手机指南针技术领域,特别涉及一种提高手机指南针应用精度的方法、装置和可读存储介质。
背景技术
手机指南针是用以判别方位的一种简单仪器,常用于航海、大地测量、旅行及军事等方面。手机指南针免去携带指南针仪器的不便,将仪器装入手机,使用简单方便。
随着用户对手机的依赖性增强,手机指南针的应用需求日益增加,而手机指南针的精度也成为用户关注的重点之一。现有的手机指南针由于直接采用地磁传感器提供的数据,在使用过程中一旦存在外部磁场,其容易受到干扰,从而引起指南针指向不准确的问题。
发明内容
本发明的主要目的是提出一种提高手机指南针应用精度的方法、装置和可读存储介质,旨在解决手机指南针容易受到外部磁场干扰导致指向不精准的技术问题。
为实现上述目的,本发明提出一种提高手机指南针应用精度的方法,所述提高手机指南针应用精度的方法包括如下步骤:
获取陀螺仪的三轴数据、加速度计的三轴数据、地磁传感器的三轴数据;
对所述陀螺仪的三轴数据、所述加速度计的三轴数据、所述地磁传感器的三轴数据进行融合处理,获得手机的运动姿态数据;
对所述运动姿态数据进行解析,得到指南针的方向。
进一步地,所述对所述陀螺仪的三轴数据、所述加速度计的三轴数据、所述地磁传感器的三轴数据进行融合处理,获得手机的运动姿态数据的步骤包括:
将所述加速度计的三轴数据、地磁传感器的三轴数据对陀螺仪的三轴数据进行修正,获得陀螺仪的三轴修正数据;
将所述陀螺仪的三轴修正数据进行整合处理,获得手机的运动姿态数据。
进一步地,在所述将所述加速度计的三轴数据、地磁传感器的三轴数据对陀螺仪的三轴数据进行修正,获得陀螺仪的三轴修正数据的步骤前,还包括:
根据所述陀螺仪三轴数据,获取手机的原始运动姿态数据。
进一步地,所述将所述加速度计的三轴数据、地磁传感器的三轴数据对陀螺仪的三轴数据进行修正,获得陀螺仪的三轴修正数据的步骤,包括:
对所述原始运动姿态数据进行估算,获得三轴分量估算值;
根据所述加速度计的三轴数据、地磁传感器的三轴数据获取三轴分量实际值;
将所述三轴分量估算值与所述三轴分量实际值进行比对,对陀螺仪的三轴数据进行修正。
进一步地,所述将所述三轴分量估算值与所述三轴分量实际值进行比对,对陀螺仪的三轴数据进行修正的步骤包括:
对所述三轴分量估算值与所述三轴分量实际值进行叉积处理,获得三轴分量相差值;
将所述三轴分量相差值进行积分处理,并且累加到所述陀螺仪的三轴数据;
将所述三轴分量相差值进行比例运算,并且累加到所述陀螺仪的三轴数据。
进一步地,所述三轴分量估算值包括三轴重力分量估算值,所述三轴分量实际值包括三轴重力分量实际值,其中,
所述对所述三轴分量估算值与所述三轴分量实际值进行叉积处理,获得三轴分量相差值;将所述三轴分量相差值进行积分处理,并且累加到所述陀螺仪的三轴数据;将所述三轴分量相差值进行比例运算,并且累加到所述陀螺仪的三轴数据的步骤包括:
对所述三轴重力分量估算值与所述三轴重力分量实际值进行叉积处理,获得三轴重力分量相差值;
将所述三轴重力分量相差值进行积分处理,并且累加到所述陀螺仪的三轴数据;
将所述三轴重力分量相差值进行比例运算,并且累加到所述陀螺仪的三轴数据。
进一步地,所述三轴分量估算值包括三轴地磁分量估算值,所述三轴分量实际值包括三轴地磁分量实际值,其中,
所述对所述三轴分量估算值与所述三轴分量实际值进行叉积处理,获得三轴分量相差值;将所述三轴分量相差值进行积分处理,并且累加到所述陀螺仪的三轴数据;将所述三轴分量相差值进行比例运算,并且累加到所述陀螺仪的三轴数据的步骤包括:
对所述三轴地磁分量估算值与所述三轴地磁分量实际值进行叉积处理,获得三轴地磁分量相差值;
将所述三轴地磁分量相差值进行积分处理,并且累加到所述陀螺仪的三轴数据;
将所述三轴地磁分量相差值进行比例运算,并且累加到所述陀螺仪的三轴数据。
进一步地,所述对所述运动姿态数据进行解析,得到指南针的方向的步骤包括:
对所述运动姿态数据进行换算,获得欧拉角,所述欧拉角包括章动角、旋进角、自转角;
使指南针的偏转角度与章动角的角度一致,得到指南针的方向。
为实现上述目的,本发明还提供一种提高手机指南针应用精度的装置,所述提高手机指南针应用精度的装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的提高手机指南针应用精度程序,所述提高手机指南针应用精度程序被所述处理器执行时实现上述提高手机指南针应用精度的方法的步骤。
为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有提高手机指南针应用精度程序,所述提高手机指南针应用精度程序被处理器执行时实现上述提高手机指南针应用精度的方法的步骤。
本发明提供一种提高手机指南针应用精度的方法、装置和可读存储介质。在该方法中,包括如下步骤:获取陀螺仪的三轴数据、加速度计的三轴数据、地磁传感器的三轴数据;对所述陀螺仪的三轴数据、加速度计的三轴数据、地磁传感器的三轴数据进行融合处理,获得手机的运动姿态数据;对所述运动姿态数据进行解析,得到指南针的方向。本发明的手机指南针通过采用手机的运动姿态数据作为指向,可避免指南针受到外部磁场干扰,从而提高指南针抗干扰能力,使手机指南针应用精度更高,指向更准确。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
图1是本发明实施例方案涉及的硬件运行环境的装置结构示意图;
图2为本发明提高手机指南针应用精度的方法第一实施例的流程示意图;
图3为本发明提高手机指南针应用精度的方法第二实施例的流程示意图;
图4为本发明提高手机指南针应用精度的方法第三实施例的流程示意图;
图5为本发明提高手机指南针应用精度的方法第四实施例的流程示意图;
图6为本发明提高手机指南针应用精度的方法第五实施例的流程示意图;
图7为本发明提高手机指南针应用精度的方法第六实施例的流程示意图;
图8为本发明提高手机指南针应用精度的方法第七实施例的流程示意图;
图9为本发明提高手机指南针应用精度的方法第八实施例的流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的装置结构示意图。
本发明实施例装置可以是PC的组合,也可以是智能手机、平板电脑、便携计算机等具有数据处理功能的装置设备。
如图1所示,该装置可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如摄像头、麦克风和键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的装置结构并不构成对装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及提高手机指南针应用精度程序。
在图1所示的装置中,网络接口1004主要用于后台服务器互联,用于后台服务器间进行数据通信;处理器1001可以用于调用存储器1005中存储的提高手机指南针应用精度程序,并执行以下操作:
获取陀螺仪的三轴数据、加速度计的三轴数据、地磁传感器的三轴数据;
对所述陀螺仪的三轴数据、所述加速度计的三轴数据、所述地磁传感器的三轴数据进行融合处理,获得手机的运动姿态数据;
对所述运动姿态数据进行解析,得到指南针的方向。
进一步地,处理器1001可以调用存储器1005中存储的提高手机指南针应用精度程序,还执行以下操作:
将所述加速度计的三轴数据、地磁传感器的三轴数据对陀螺仪的三轴数据进行修正,获得陀螺仪的三轴修正数据;
将所述陀螺仪的三轴修正数据进行整合处理,获得手机的运动姿态数据。
进一步地,处理器1001可以调用存储器1005中存储的提高手机指南针应用精度程序,还执行以下操作:
根据所述陀螺仪三轴数据,获取手机的原始运动姿态数据。
进一步地,处理器1001可以调用存储器1005中存储的提高手机指南针应用精度程序,还执行以下操作:
对所述原始运动姿态数据进行估算,获得三轴分量估算值;
根据所述加速度计的三轴数据、地磁传感器的三轴数据获取三轴分量实际值;
将所述三轴分量估算值与所述三轴分量实际值进行比对,对陀螺仪的三轴数据进行修正。
进一步地,处理器1001可以调用存储器1005中存储的提高手机指南针应用精度程序,还执行以下操作:
对所述三轴分量估算值与所述三轴分量实际值进行叉积处理,获得三轴分量相差值;
将所述三轴分量相差值进行积分处理,并且累加到所述陀螺仪的三轴数据;
将所述三轴分量相差值进行比例运算,并且累加到所述陀螺仪的三轴数据。
进一步地,处理器1001可以调用存储器1005中存储的提高手机指南针应用精度程序,还执行以下操作:
所述三轴分量估算值包括三轴重力分量估算值,所述三轴分量实际值包括三轴重力分量实际值,其中,
所述对所述三轴分量估算值与所述三轴分量实际值进行叉积处理,获得三轴分量相差值;将所述三轴分量相差值进行积分处理,并且累加到所述陀螺仪的三轴数据;将所述三轴分量相差值进行比例运算,并且累加到所述陀螺仪的三轴数据的步骤包括:
对所述三轴重力分量估算值与所述三轴重力分量实际值进行叉积处理,获得三轴重力分量相差值;
将所述三轴重力分量相差值进行积分处理,并且累加到所述陀螺仪的三轴数据;
将所述三轴重力分量相差值进行比例运算,并且累加到所述陀螺仪的三轴数据。
进一步地,处理器1001可以调用存储器1005中存储的提高手机指南针应用精度程序,还执行以下操作:
所述三轴分量估算值包括三轴地磁分量估算值,所述三轴分量实际值包括三轴地磁分量实际值,其中,
所述对所述三轴分量估算值与所述三轴分量实际值进行叉积处理,获得三轴分量相差值;将所述三轴分量相差值进行积分处理,并且累加到所述陀螺仪的三轴数据;将所述三轴分量相差值进行比例运算,并且累加到所述陀螺仪的三轴数据的步骤包括:
对所述三轴地磁分量估算值与所述三轴地磁分量实际值进行叉积处理,获得三轴地磁分量相差值;
将所述三轴地磁分量相差值进行积分处理,并且累加到所述陀螺仪的三轴数据;
将所述三轴地磁分量相差值进行比例运算,并且累加到所述陀螺仪的三轴数据。
进一步地,处理器1001可以调用存储器1005中存储的提高手机指南针应用精度程序,还执行以下操作:
对所述运动姿态数据进行换算,获得欧拉角,所述欧拉角包括章动角、旋进角、自转角;
使指南针的偏转角度与章动角的角度一致,得到指南针的方向。
本发明提高手机指南针应用精度的设备的具体实施例与下述提高手机指南针应用精度的方法各实施例基本相同,在此不作赘述。
参照图2,图2为本发明提高手机指南针应用精度的方法第一实施例的流程示意图,所述提高手机指南针应用精度的方法包括:
步骤S100:获取陀螺仪的三轴数据、加速度计的三轴数据、地磁传感器的三轴数据。
陀螺仪是一种角速度测量仪器,即测量物体转动的速度,通过测量的角速度和时间相乘,即可得到某一时间段内物体转过的角度,而三轴陀螺仪可同时测定6个方向的位置,移动轨迹,加速。加速度计测量的是物体的加速度,众所周知,重力加速度是一个物体受重力作用的情况下所具有的加速度,当物体处于静止状态时,重力加速度g的方向总是竖直向下的,通过获得重力加速度在其X轴,Y轴上的分量,我们可以计算出物体相对于水平面的倾斜角度。地磁传感器测量的是地球磁场,在不受磁干扰的情况下,若知道当地的经纬度和海拔,就可以在测量地磁场方向后,利用各种地球磁场模型计算磁倾角、磁偏角,它可提供了一个正北方向的绝对参考值。在本实施例中,所述陀螺仪的三轴数据、加速度计的三轴数据、地磁传感器的三轴数据可通过手机CPU利用通信总线与陀螺仪传感器、加速度计、地磁传感器通信连接,从而实现分别获取陀螺仪的三轴数据、加速度计的三轴数据、地磁传感器的三轴数据。
步骤S200:对所述陀螺仪的三轴数据、所述加速度计的三轴数据、所述地磁传感器的三轴数据进行融合处理,获得手机的运动姿态数据。
在本实施例中,所述融合处理具体为采用MahonyAHRS(显式互补滤波法)算法对上述三种数据进行处理,该算法在2009年开发并发布,源自英国Bristol大学的Ph.DSebastian Madgwick,主要用于将加速度计,磁力计,陀螺仪共九轴数据,融合解算出物体的运动姿态数据,即四元数,以及用于通过理论和实际重力加速度向量来补偿陀螺仪误差。在本实施例中,该算法引入地磁传感器的三轴数据,可进一步修正陀螺仪的角度数据,使运动姿态数据更准确。
步骤S300:对所述运动姿态数据进行解析,得到指南针的方向。
由于上述算法引入地磁传感器的三轴数据,因此可以输出一个带有绝对方向的运动姿态数据,通过对该运动姿态数据进行解析,获取该绝对方向的数据,使指南针的方向与该绝对方向保持一致。
本发明提供一种提高手机指南针应用精度的方法、装置和可读存储介质。在该方法中,包括如下步骤:获取陀螺仪的三轴数据、加速度计的三轴数据、地磁传感器的三轴数据;对所述陀螺仪的三轴数据、所述加速度计的三轴数据、所述地磁传感器的三轴数据进行融合处理,获得手机的运动姿态数据;对所述运动姿态数据进行解析,得到指南针的方向。本发明的手机指南针通过采用手机的运动姿态数据作为指向,可避免指南针受到外部磁场干扰,从而提高指南针抗干扰能力,使手机指南针应用精度更高,指向更准确。
请参阅图3,图3为本发明提高手机指南针应用精度的方法第二实施例的流程示意图。
基于上述实施例,本实施例中,步骤S200包括:
步骤S210:将所述加速度计的三轴数据、地磁传感器的三轴数据对陀螺仪的三轴数据进行修正,获得陀螺仪的三轴修正数据。
由于陀螺仪是一种角速度测量仪器,同时它也是一种间接测量角度的仪器,而角度则是通过角速度对时间的积分而得到。在陀螺仪通过角速度积分得到角度时,角速度的误差会在积分过程中被不断放大从而影响数据准确性。因此,在使用陀螺仪获得角度时,需要借助其它传感器进行其数据进行修正。
在本实施例中,采用Mahony AHRS显式互补滤波法对陀螺仪的三轴数据进行修正,但在其他实施例中,对陀螺仪的三轴数据进行修正的方法不局限于Mahony AHRS,还可以采用其它开源算法,比如Madgwick AHRS、Kalman Filter、Extended Kalman Filter,采用前述算法均可利用加速度计的三轴数据、地磁传感器的三轴数据对陀螺仪进行修正,在此并不限定。
步骤S220:将所述陀螺仪的三轴修正数据进行整合处理,获得手机的运动姿态数据。
陀螺仪的三轴数据经修正后需整合形成四元数,四元数为物体进行旋转运动的其中一种表示方式,在本实施例中,该四元数为手机的运动姿态数据。
请参阅图4,图4为本发明提高手机指南针应用精度的方法第三实施例的流程示意图。
基于上述施例,本实施例中,步骤S210前,还包括:
步骤S209:根据所述陀螺仪三轴数据,获取手机的原始运动姿态数据。
在本实施例中,所述手机的原始运动姿态数据具体为手机当前的四元数,该四元数通过陀螺仪的三轴测量数据所形成。
请参阅图5,图5为本发明提高手机指南针应用精度的方法第四实施例的流程示意图。
基于上述施例,本实施例中,步骤S210包括:
步骤211:对所述原始运动姿态数据进行估算,获得三轴分量估算值。
步骤212:根据所述加速度计的三轴数据、地磁传感器的三轴数据获取三轴分量实际值。
步骤213:将所述三轴分量估算值与所述三轴分量实际值进行比对,对陀螺仪的三轴数据进行修正。
在本实施例中,根据手机当前的四元数的姿态值来估算出各轴分量,继而使其和其他传感器实际测量出来的各分量进行对比,从而实现对陀螺仪的三轴数据进行修正,对陀螺仪的误差进行补偿。
请参阅图6,图6为本发明提高手机指南针应用精度的方法第五实施例的流程示意图。
基于上述施例,本实施例中,步骤S213包括:
步骤2131:对所述三轴分量估算值与所述三轴分量实际值进行叉积处理,获得三轴分量相差值。
步骤2132:将所述三轴分量相差值进行积分处理,并且累加到所述陀螺仪的三轴数据。
步骤2133:将所述三轴分量相差值进行比例运算,并且累加到所述陀螺仪的三轴数据。
在本实施例中,所述三轴分量相差值即为陀螺仪的测量数据与加速度计、地磁传感器之间的误差向量,这个叉积向量仍旧是位于物体坐标系上的,而陀螺积分误差也是在物体坐标系,叉积的大小与陀螺仪的积分误差成正比,可用于纠正陀螺仪。由于陀螺仪是对物体直接积分,所以对陀螺仪的纠正量会直接体现在对物体坐标系的纠正。
请参阅图7,图7为本发明提高手机指南针应用精度的方法第六实施例的流程示意图。
基于上述施例,本实施例中,所述三轴分量估算值包括三轴重力分量估算值,所述三轴分量实际值包括三轴重力分量实际值,其中,步骤S2131、步骤2132、步骤2133具体为:
步骤S2134:对所述三轴重力分量估算值与所述三轴重力分量实际值进行叉积处理,获得三轴重力分量相差值。
步骤2135:将所述三轴重力分量相差值进行积分处理,并且累加到所述陀螺仪的三轴数据。
步骤2136:将所述三轴重力分量相差值进行比例运算,并且累加到所述陀螺仪的三轴数据。
在本实施例中,取q0、q1、q2、q3代表四元数,取gx,gy,gz分别代表陀螺仪在X轴,Y轴和Z轴三个轴上的分量,ax,ay,az分别代表加速度计在在X轴,Y轴和Z轴三个轴上的分量。所述步骤S2134:对所述三轴重力分量估算值与所述三轴重力分量实际值进行叉积处理,获得三轴重力分量相差值具体方式为:
//Estimated direction of gravity and vector perpendicular to magneticflux
halfvx=q1*q3–q0*q2;
halfvy=q0*q1+q2*q3;
halfvz=q0*q0–0.5f+q3*q3;
//Error is sum of cross product between estimated and measureddirection of gravity
halfex=(ay*halfvz–az*halfvy);
halfey=(az*halfvx–ax*halfvz);
halfez=(ax*halfvy–ay*halfvx);
所述步骤2135:将所述三轴重力分量相差值进行积分处理,并且累加到所述陀螺仪的三轴数据,该步骤中积分系数是Ki,其积分处理具体方式为:
//Compute and apply integral feedback if enabled
if(twoKi>0.0f){
integralFBx+=twoKi*halfex*(1.0f/sampleFreq);//integral error scaledby Ki
integralFBy+=twoKi*halfey*(1.0f/sampleFreq);
integralFBz+=twoKi*halfez*(1.0f/sampleFreq);
gx+=integralFBx;//apply integral feedback
gy+=integralFBy;
gz+=integralFBz;
}
else{
integralFBx=0.0f;//prevent integral windup
integralFBy=0.0f;
integralFBz=0.0f;
}
所述步骤2136:将所述三轴重力分量相差值进行比例运算,并且累加到所述陀螺仪的三轴数据,该步骤中比例系数为Kp,其比例运算具体方式为:
//Apply proportional feedback
gx+=twoKp*halfex;
gy+=twoKp*halfey;
gz+=twoKp*halfez;
}
请参阅图8,图8为本发明提高手机指南针应用精度的方法第七实施例的流程示意图。
基于第五实施例,本实施例中,所述三轴分量估算值包括三轴地磁分量估算值,所述三轴分量实际值包括三轴地磁分量实际值,其中,步骤S2131、步骤2132、步骤2133具体为:
步骤2137:对所述三轴地磁分量估算值与所述三轴地磁分量实际值进行叉积处理,获得三轴地磁分量相差值。
步骤2138:将所述三轴地磁分量相差值进行积分处理,并且累加到所述陀螺仪的三轴数据。
步骤2139:将所述三轴地磁分量相差值进行比例运算,并且累加到所述陀螺仪的三轴数据。
在本实施例中,取gx,gy,gz分别代表陀螺仪在X轴,Y轴和Z轴三个轴上的分量,ax,ay,az分别代表加速度计在在X轴,Y轴和Z轴三个轴上的分量。mx,my,mz分别代表地磁在在X轴,Y轴和Z轴三个轴上的分量。所述步骤2137:对所述三轴地磁分量估算值与所述三轴地磁分量实际值进行叉积处理,获得三轴地磁分量相差值具体方式为:
//Estimated direction of gravity and magnetic field
halfvx=q1q3–q0q2;
halfvy=q0q1+q2q3;
halfvz=q0q0–0.5f+q3q3;
halfwx=bx*(0.5f–q2q2–q3q3)+bz*(q1q3–q0q2);
halfwy=bx*(q1q2–q0q3)+bz*(q0q1+q2q3);
halfwz=bx*(q0q2+q1q3)+bz*(0.5f–q1q1–q2q2);
//Error is sum of cross product between estimated direction andmeasured direction of field vectors
halfex=(ay*halfvz–az*halfvy)+(my*halfwz–mz*halfwy);
halfey=(az*halfvx–ax*halfvz)+(mz*halfwx–mx*halfwz);
halfez=(ax*halfvy–ay*halfvx)+(mx*halfwy–my*halfwx);
所述步骤2138:将所述三轴地磁分量相差值进行积分处理,并且累加到所述陀螺仪的三轴数据,该积分处理的具体方式为:
//Compute and apply integral feedback if enabled
if(twoKi>0.0f){
integralFBx+=twoKi*halfex*(1.0f/sampleFreq);//integral error scaledby Ki
integralFBy+=twoKi*halfey*(1.0f/sampleFreq);
integralFBz+=twoKi*halfez*(1.0f/sampleFreq);
gx+=integralFBx;//apply integral feedback
gy+=integralFBy;
gz+=integralFBz;
}
else{
integralFBx=0.0f;//prevent integral windup
integralFBy=0.0f;
integralFBz=0.0f;
}
所述步骤2139:将所述三轴地磁分量相差值进行比例运算,并且累加到所述陀螺仪的三轴数据,其比例运算具体方式为:
//Apply proportional feedback
gx+=twoKp*halfex;
gy+=twoKp*halfey;
gz+=twoKp*halfez;
}
在本实施例中,还包括对加速计和地磁传感器修正过后的陀螺仪数据整合到四元数中的步骤,该步骤具体为:
//Integrate rate of change of quaternion
gx*=(0.5f*(1.0f/sampleFreq));//pre-multiply common factors
gy*=(0.5f*(1.0f/sampleFreq));
gz*=(0.5f*(1.0f/sampleFreq));
qa=q0;
qb=q1;
qc=q2;
q0+=(-qb*gx–qc*gy–q3*gz);
q1+=(qa*gx+qc*gz–q3*gy);
q2+=(qa*gy–qb*gz+q3*gx);
q3+=(qa*gz+qb*gy–qc*gx);
在本实施例中,还包括对上述运算后的四元数进行归一化处理,从而得到物体经过旋转后的新的四元数的步骤,该步骤具体为:
//Normalise quaternion
recipNorm=invSqrt(q0*q0+q1*q1+q2*q2+q3*q3);
q0*=recipNorm;
q1*=recipNorm;
q2*=recipNorm;
q3*=recipNorm;
}
请参阅图9,图9为本发明提高手机指南针应用精度的方法第八实施例的流程示意图。
基于第一实施例,本实施例中,步骤S300包括:
步骤S301:对所述运动姿态数据进行换算,获得欧拉角,所述欧拉角包括章动角、旋进角、自转角。
步骤S302:使指南针的偏转角度与章动角的角度一致,得到指南针的方向。
ψ=atan2(2*(w*x+y*z)/(1-2*(x*x+y*y)))
θ=arcsin(2*(w*y-z*x))
其中,章动角θ即为指南针的偏转角度,通过使指南针的偏转角度与章动角的角度一致,最终得到指南针的方向。
此外,本发明实施例还提出一种计算机可读存储介质。
本发明计算机可读存储介质上存储有提高手机指南针应用精度程序,所述提高手机指南针应用精度程序被处理器执行时实现如上所述的提高手机指南针应用精度的方法的步骤。
其中,在所述处理器上运行的提高手机指南针应用精度程序被执行时所实现的方法可参照本发明提高手机指南针应用精度的方法各个实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台装置设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种提高手机指南针应用精度的方法,其特征在于,所述提高手机指南针应用精度的方法包括如下步骤:
获取陀螺仪的三轴数据、加速度计的三轴数据、地磁传感器的三轴数据;
对所述陀螺仪的三轴数据、所述加速度计的三轴数据、所述地磁传感器的三轴数据进行融合处理,获得手机的运动姿态数据;
对所述运动姿态数据进行解析,得到指南针的方向。
2.根据权利要求1所述的提高手机指南针应用精度的方法,其特征在于,所述对所述陀螺仪的三轴数据、所述加速度计的三轴数据、所述地磁传感器的三轴数据进行融合处理,获得手机的运动姿态数据的步骤包括:
将所述加速度计的三轴数据、所述地磁传感器的三轴数据对所述陀螺仪的三轴数据进行修正,获得陀螺仪的三轴修正数据;
将所述陀螺仪的三轴修正数据进行整合处理,获得手机的运动姿态数据。
3.根据权利要求2所述的提高手机指南针应用精度的方法,其特征在于,所述将所述加速度计的三轴数据、所述地磁传感器的三轴数据对所述陀螺仪的三轴数据进行修正,获得陀螺仪的三轴修正数据的步骤前,还包括:
根据所述陀螺仪三轴数据,获取手机的原始运动姿态数据。
4.根据权利要求3所述的提高手机指南针应用精度的方法,其特征在于,所述将所述加速度计的三轴数据、所述地磁传感器的三轴数据对所述陀螺仪的三轴数据进行修正,获得陀螺仪的三轴修正数据的步骤,包括:
对所述原始运动姿态数据进行估算,获得三轴分量估算值;
根据所述加速度计的三轴数据、所述地磁传感器的三轴数据获取三轴分量实际值;
将所述三轴分量估算值与所述三轴分量实际值进行比对,对所述陀螺仪的三轴数据进行修正。
5.根据权利要求4所述的提高手机指南针应用精度的方法,其特征在于,所述将所述三轴分量估算值与所述三轴分量实际值进行比对,对所述陀螺仪的三轴数据进行修正的步骤包括:
对所述三轴分量估算值与所述三轴分量实际值进行叉积处理,获得三轴分量相差值;
将所述三轴分量相差值进行积分处理,并且累加到所述陀螺仪的三轴数据;
将所述三轴分量相差值进行比例运算,并且累加到所述陀螺仪的三轴数据。
6.根据权利要求5所述的提高手机指南针应用精度的方法,其特征在于,所述三轴分量估算值包括三轴重力分量估算值,所述三轴分量实际值包括三轴重力分量实际值,其中,
所述对所述三轴分量估算值与所述三轴分量实际值进行叉积处理,获得三轴分量相差值;将所述三轴分量相差值进行积分处理,并且累加到所述陀螺仪的三轴数据;将所述三轴分量相差值进行比例运算,并且累加到所述陀螺仪的三轴数据的步骤包括:
对所述三轴重力分量估算值与所述三轴重力分量实际值进行叉积处理,获得三轴重力分量相差值;
将所述三轴重力分量相差值进行积分处理,并且累加到所述陀螺仪的三轴数据;
将所述三轴重力分量相差值进行比例运算,并且累加到所述陀螺仪的三轴数据。
7.根据权利要求5所述的提高手机指南针应用精度的方法,其特征在于,所述三轴分量估算值包括三轴地磁分量估算值,所述三轴分量实际值包括三轴地磁分量实际值,其中,
所述对所述三轴分量估算值与所述三轴分量实际值进行叉积处理,获得三轴分量相差值;将所述三轴分量相差值进行积分处理,并且累加到所述陀螺仪的三轴数据;将所述三轴分量相差值进行比例运算,并且累加到所述陀螺仪的三轴数据的步骤包括:
对所述三轴地磁分量估算值与所述三轴地磁分量实际值进行叉积处理,获得三轴地磁分量相差值;
将所述三轴地磁分量相差值进行积分处理,并且累加到所述陀螺仪的三轴数据;
将所述三轴地磁分量相差值进行比例运算,并且累加到所述陀螺仪的三轴数据。
8.根据权利要求1所述的提高手机指南针应用精度的方法,其特征在于,所述对所述运动姿态数据进行解析,得到指南针的方向的步骤包括:
对所述运动姿态数据进行换算,获得欧拉角,所述欧拉角包括章动角、旋进角、自转角;
使指南针的偏转角度与章动角的角度一致,得到指南针的方向。
9.一种提高手机指南针应用精度的装置,其特征在于,所述提高手机指南针应用精度的装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的提高手机指南针应用精度程序,所述提高手机指南针应用精度程序被所述处理器执行时实现如权利要求1至8中任一项所述提高手机指南针应用精度的方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有提高手机指南针应用精度程序,所述提高手机指南针应用精度程序被处理器执行时实现如权利要求1至8中任一项所述提高手机指南针应用精度的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110962915.0A CN113865571A (zh) | 2021-08-20 | 2021-08-20 | 提高手机指南针应用精度的方法、装置和可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110962915.0A CN113865571A (zh) | 2021-08-20 | 2021-08-20 | 提高手机指南针应用精度的方法、装置和可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113865571A true CN113865571A (zh) | 2021-12-31 |
Family
ID=78988078
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110962915.0A Pending CN113865571A (zh) | 2021-08-20 | 2021-08-20 | 提高手机指南针应用精度的方法、装置和可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113865571A (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102252689A (zh) * | 2010-05-19 | 2011-11-23 | 北京国浩传感器技术研究院(普通合伙) | 一种基于磁传感器的电子罗盘校准方法 |
CN103267520A (zh) * | 2013-05-21 | 2013-08-28 | 江苏多维科技有限公司 | 一种三轴数字指南针 |
CN106679649A (zh) * | 2016-12-12 | 2017-05-17 | 浙江大学 | 一种手部运动追踪系统及追踪方法 |
CN107421523A (zh) * | 2017-06-19 | 2017-12-01 | 深圳市万普拉斯科技有限公司 | 方位角校准方法、装置、存储介质和计算机设备 |
CN108731676A (zh) * | 2018-05-04 | 2018-11-02 | 北京摩高科技有限公司 | 一种基于惯性导航技术的姿态融合增强测量方法及系统 |
CN110887480A (zh) * | 2019-12-11 | 2020-03-17 | 中国空气动力研究与发展中心低速空气动力研究所 | 基于mems传感器的飞行姿态估计方法及系统 |
CN112033405A (zh) * | 2020-08-10 | 2020-12-04 | 北京摩高科技有限公司 | 一种室内环境磁异常实时修正与导航方法及装置 |
CN112066984A (zh) * | 2020-09-17 | 2020-12-11 | 深圳维特智能科技有限公司 | 姿态角度解算方法、装置、处理设备和存储介质 |
CN112762915A (zh) * | 2020-12-21 | 2021-05-07 | 深圳酷派技术有限公司 | 指南针精度优化方法、装置、存储介质及电子设备 |
-
2021
- 2021-08-20 CN CN202110962915.0A patent/CN113865571A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102252689A (zh) * | 2010-05-19 | 2011-11-23 | 北京国浩传感器技术研究院(普通合伙) | 一种基于磁传感器的电子罗盘校准方法 |
CN103267520A (zh) * | 2013-05-21 | 2013-08-28 | 江苏多维科技有限公司 | 一种三轴数字指南针 |
CN106679649A (zh) * | 2016-12-12 | 2017-05-17 | 浙江大学 | 一种手部运动追踪系统及追踪方法 |
CN107421523A (zh) * | 2017-06-19 | 2017-12-01 | 深圳市万普拉斯科技有限公司 | 方位角校准方法、装置、存储介质和计算机设备 |
CN108731676A (zh) * | 2018-05-04 | 2018-11-02 | 北京摩高科技有限公司 | 一种基于惯性导航技术的姿态融合增强测量方法及系统 |
CN110887480A (zh) * | 2019-12-11 | 2020-03-17 | 中国空气动力研究与发展中心低速空气动力研究所 | 基于mems传感器的飞行姿态估计方法及系统 |
CN112033405A (zh) * | 2020-08-10 | 2020-12-04 | 北京摩高科技有限公司 | 一种室内环境磁异常实时修正与导航方法及装置 |
CN112066984A (zh) * | 2020-09-17 | 2020-12-11 | 深圳维特智能科技有限公司 | 姿态角度解算方法、装置、处理设备和存储介质 |
CN112762915A (zh) * | 2020-12-21 | 2021-05-07 | 深圳酷派技术有限公司 | 指南针精度优化方法、装置、存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wu et al. | Fast complementary filter for attitude estimation using low-cost MARG sensors | |
US10641625B2 (en) | Method and apparatus for calibrating a magnetic sensor | |
US9846040B2 (en) | System and method for determining the orientation of an inertial measurement unit (IMU) | |
EP2553392B1 (en) | Calibrating sensor measurements on mobile devices | |
Phuong et al. | A DCM based orientation estimation algorithm with an inertial measurement unit and a magnetic compass | |
US9417091B2 (en) | System and method for determining and correcting field sensors errors | |
US20110077891A1 (en) | Accelerometer-only calibration method | |
KR20060060666A (ko) | 3축 나침반 문제해결을 위한 2축 자기센서를 이용한 장치 | |
Allotta et al. | Single axis FOG aided attitude estimation algorithm for mobile robots | |
US11408735B2 (en) | Positioning system and positioning method | |
WO2014134710A1 (en) | Method and apparatus for fast magnetometer calibration | |
CN103512584A (zh) | 导航姿态信息输出方法、装置及捷联航姿参考系统 | |
CN106813679B (zh) | 运动物体的姿态估计的方法及装置 | |
Cho et al. | A calibration technique for a two‐axis magnetic compass in telematics devices | |
Wahdan et al. | Three-dimensional magnetometer calibration with small space coverage for pedestrians | |
Suprem et al. | Orientation and displacement detection for smartphone device based imus | |
Ayub et al. | Pedestrian direction of movement determination using smartphone | |
EP2930467A1 (en) | A system and method for sensing the inclination of a moving platform with respect to gravity | |
EP3910289A2 (en) | Method, apparatus, device and medium for calibrating temperature drift | |
EP3443299A1 (en) | Gyromagnetic geopositioning system | |
CN108627152A (zh) | 一种微型无人机基于多传感器数据融合的导航方法 | |
JP5678748B2 (ja) | 端末装置及び地磁気環境判定プログラム | |
KR100799536B1 (ko) | 2축 지자계 센서의 경사각 오차를 보상하기 위한 가상축 지자계 데이터 추정 장치 및 그 방법과, 그를 이용한 방위각 산출 시스템 | |
CN113532477A (zh) | 一种骑行码表设备及骑行码表初始姿态自动校准方法 | |
El-Diasty | An accurate heading solution using MEMS-based gyroscope and magnetometer integrated system (preliminary results) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20211231 |
|
RJ01 | Rejection of invention patent application after publication |