专利名称:获取空间姿态数据的方法及系统的制作方法
技术领域:
本发明涉及一种获取空间姿态数据的方法及系统。
背景技术:
随着移动设备配置成本降低,目前越来越多的移动设备上如手机、平板等同时装载了重力传感器、陀螺仪、电子罗盘以及GPS导航仪,这些传感器使得移动设备上的应用程序可以获得移动设备在X-Y-Z轴上的角速度、设备当前翻滚角(Roll)、俯仰角(Pitch)以及方位角(Yaw)等空间姿态数据成为可能,获取到的移动设备的空间姿态数据可以实现各类高级的LBS (Location Based Service基于位置的服务)和增强现实的应用,比如室内定位、全景摄像以及虚拟星空观测,从而提高移动设备的实用性和趣味性,另外,移动设备的应用程序还可以利用移动设备装载的陀螺仪、重力传感器、电子罗盘计算出移动设备的空间姿态数据如翻滚角(Roll)、俯仰角(Pitch)以及方位角(Yaw)实现虚拟现实游戏如平衡球、开飞机(如图1所示)等,或作为新式的交互设备如Wii Remote (Wii遥控器)。由于移动设备采用的MEMS (Micro-Electro-Mechanical Systems,微机电系统)传感器自身存在各种误差,如温漂、零点漂移,单个传感器的读数也很容易被外界环境所影响,造成与实际值很大的偏移,比如在移动设备运动时,无法从重力加速度传感器的读数获取当前重力场方向,又如在周围有磁场干扰时,无法从电子罗盘得到当前方位角信息。如果直接使用这类传感器原始数据,则无法实现比较高级和精确的定位应用,目前基于MEMS传感器的数据融合并进行姿态估计的技术已经比较成熟,并广泛应用于AHRS系统(attitudeheadingreference system航姿)中,然而,由于相关的传感器近几年才在移动设备中同时普及,现有的移动操作系统如iOS、Android等仍直接将传感器的原始数据提供给应用程序,并没有进行额外的数据融合操作,为了得到最终需要的姿态信息,应用程序开发人员需要自己编写数据融合算法进行计算,同时传感器数据中时常包含了干扰数据,这无疑增加了应用程序开发人员的负担,编写实现这类处理算法提高了相关应用程序开发门槛,增加了开发周期,另外,编写融合算法需要一定的专业知识,也无疑提高了在移动设备上进行精确姿态数据获取的门槛,阻碍了移动设备上传感器的广泛应用。
发明内容
本发明的目的在于提供一种获取空间姿态数据的方法及系统,本发明能够获取精确的移动设备的空间姿态信息以提供给上层的应用程序使用,从而降低在移动设备上开发高级空间定位应用的门槛,缓解应用开发人员的负担,最大限度的发挥移动设备上传感器的硬件性能。为解决上述问题,本发明提供一种获取空间姿态数据的方法,包括:获取移动设备上传感器的ADC读数;将所述ADC读数去除误差并转化成物理量数据;根据所述物理量数据获取移动设备当前的空间姿态数据。
进一步的,在上述方法中,所述传感器为一个或多个。进一步的,在上述方法中,根据所述物理数据获取移动设备当前的空间姿态数据步骤中,包括将多个传感器的物理量数据进行融合获取移动设备当前的空间姿态数据。进一步的,在上述方法中,所述多个传感器的物理量数据进行融合的处理在移动设备的操作系统内进行。进一步的,在上述方法中,所述多个传感器的物理量数据进行融合的处理在移动设备的操作系统的中间层或操作系统内核中进行。进一步的,在上述方法中,所述多个传感器的物理量数据进行融合的处理的具体形式包括采用独立的系统服务进程或采用运行在被服务的应用程序地址空间内的函数库。进一步的,在上述方法中,采用Kalman Filter算法或Particle Filter算法将多个传感器的物理量数据进行融合获取移动设备当前的空间姿态数据。进一步的,在上述方法中,所述传感器包括重力传感器、陀螺仪、电子罗盘或GPS导航仪中的一种任意组合。进一步的,在上述方法中,所述重力传感器的物理量数据包括移动设备在X轴所受的重力加速度以及外力加速度的Ax分量、移动设备在Y轴所受的重力加速度以及外力加速度的Ay分量,以及移动设备在Z轴所受的重力加速度以及外力加速度的Az分量。进一步的,在上述方法中,所述陀螺仪的物理量数据包括移动设备在X轴上转动角速度的Gx分量、移动设备在Y轴上转动角速度的分量Gy,以及移动设备在Z轴上转动角速度的Gz分量。进一步的,在上述方法中,所述电子罗盘的物理量数据包括移动设备在X轴上外界磁场强度的Hx分量、移动设备在Y轴上外界磁场强度的Hy分量,以及移动设备在Z轴上外界磁场强度的Hz分量。进一步的,在上述方法中,所述空间姿态数据包括移动设备的俯仰角、翻滚角、方位角以及移动设备在X-Y-Z轴上的角速度。进一步的,在上述方法中,所述俯仰角根据重力传感器的Ax、Az分量或根据陀螺仪的Gy分量获取。进一步的,在上述方法中,所述俯仰角通过融合重力传感器的Ax、Az分量和陀螺仪的Gy分量后获取。进一步的,在上述方法中,所述翻滚角根据重力传感器的Ay、Az分量或根据陀螺仪的Gx分量获取。进一步的,在上述方法中,所述翻滚角通过融合重力传感器的Ay、Az分量和陀螺仪的Gx分量后获取。进一步的,在上述方法中,所述方位角根据电子罗盘Hx、Hy、Hz分量、俯仰角及翻滚角或根据陀螺仪的Gz分量获取。进一步的,在上述方法中,所述方位角通过融合电子罗盘Hx、Hy、Hz分量、俯仰角及翻滚角和陀螺仪的Gz分量后获取。进一步的,在上述方法中,所述移动设备在X-Y-Z轴上的角速度根据陀螺仪的Gx、Gy、Gz分量或融合所述俯仰角、翻滚角、方位角获取。根据本发明的另一面,提供一种获取空间姿态数据的系统,包括:
ADC模块,用于获取移动设备上传感器的ADC读数;物理量模块,用于将所述ADC读数去除误差并转化成物理量数据;空间姿态模块,用于根据所述物理量数据获取移动设备当前的空间姿态数据。进一步的,在上述系统中,所述ADC模块用于获取移动设备上一个或多个传感器的ADC读数。进一步的,在上述系统中,所述空间姿态模块包括:融合层单元,用于将多个传感器的物理量数据进行融合;空间姿态单元,用于根据融合后的的物理量数据获取当前的空间姿态数据。进一步的,在上述系统中,所述空间姿态模块采用Kalman Filter算法或ParticleFilter算法将多个传感器的物理量数据进行融合获取移动设备当前的空间姿态数据。进一步的,在上述系统中,所述ADC模块用于获取移动设备上重力传感器、陀螺仪、电子罗盘或GPS导航仪中的ADC读数。进一步的,在上述系统中,所述物理量模块转化的重力传感器的物理量数据包括移动设备在X轴所受的重力加速度及外力加速度的Ax分量、移动设备在Y轴所受的重力加速度及外力加速度的Ay分量,以及移动设备在Z轴所受的重力加速度及外力加速度的Az分量。进一步的,在上述系统中,所述物理量模块转化的陀螺仪的物理量数据包括移动设备在X轴上转动角速度的Gx分量、移动设备在Y轴上转动角速度的分量Gy,以及移动设备在Z轴上转动角速度的Gz分量。进一步的,在上述系统中,所述物理量模块转化的电子罗盘的物理量数据包括移动设备在X轴上外界磁场强度的Hx分量、移动设备在Y轴上外界磁场强度的Hy分量,以及移动设备在Z轴上外界磁场强度的Hz分量。进一步的,在上述系统中,所述空间姿态模块获取的空间姿态数据包括移动设备的俯仰角、翻滚角、方位角以及移动设备在X-Y-Z轴上的角速度。进一步的,在上述系统中,所述空间姿态模块根据重力传感器的Ax、Az分量或陀螺仪的Gy分量获取所述俯仰角。进一步的,在上述系统中,所述空间姿态模块融合重力传感器的Ax、Az分量和陀螺仪的Gy分量后获取所述俯仰角。进一步的,在上述系统中,所述空间姿态模块根据重力传感器的Ay、Az分量或根据陀螺仪的Gx分量获取所述翻滚角。进一步的,在上述系统中,所述空间姿态模块融合重力传感器的Ay、Az分量和陀螺仪的Gx分量后获取所述翻滚角。进一步的,在上述系统中,所述空间姿态模块根据电子罗盘Hx、Hy、Hz分量、俯仰角及翻滚角或根据陀螺仪的Gz分量获取所述方位角。进一步的,在上述系统中,所述空间姿态模块融合电子罗盘Hx、Hy、Hz分量、俯仰角及翻滚角和陀螺仪的Gz分量后获取所述方位角。进一步的,在上述系统中,所述空间姿态模块根据陀螺仪的Gx、Gy、Gz分量或融合所述俯仰角、翻滚角、方位角获取移动设备在X-Y-Z轴上的角速度。与现有技术相比,本发明通过获取移动设备上传感器的ADC读数,并将所述ADC读数去除误差并转化成物理量数据,以及将多个传感器的物理量数据进行融合获取移动设备当前的空间姿态数据,在移动设备的操作系统内对传感器的ADC读数进行处理,以获取精确的移动设备的空间姿态信息提供给上层的应用程序使用,从而降低在移动设备上开发高级空间定位应用的门槛,缓解应用开发人员的负担,最大限度的发挥移动设备上传感器的硬件性能。
图1是现有的传感器获取的姿态信息用于虚拟现实游戏的示意图;图2是本发明一实施例的获取空间姿态数据的方法的流程图;图3为本发明一实施例的融合处理在移动设备的操作系统内的结构图;图4为本发明一实施例的数据融合层作为独立的系统服务进程的形态图;图5为本发明一实施例的数据融合层作为运行在应用程序内的函数库的形态图;图6为本发明一实施例的采用Kalman Filter算法的物理量数据的融合过程图;图7为本发明一实施例的获取空间姿态数据的系统的模块图。
具体实施例方式为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式
对本发明作进一步详细的说明。图2是本发明一实施例的获取空间姿态数据的方法的流程图。如图2所示,本发明提供一种获取空间姿态数据的方法,包括:步骤SI,获取移动设备上传感器的ADC(模拟至数字转换器)读数;步骤S2,将所述ADC读数去除误差并转化成物理量数据;步骤S3,根据所述物理量数据获取移动设备当前的空间姿态数据。可选的,步骤SI中的所述传感器为一个或多个,所述传感器包括重力传感器、陀螺仪、电子罗盘或GPS导航仪等中的一种或任意组合,所述传感器可为惯性传感器,从多个传感器获取移动设备的空间姿态数据比直接从单个传感器获得的读数具有更高的精度和稳定性。当获取到移动设备上多个传感器的ADC读数时,相应的,步骤S2中将多个传感器的所述ADC读数去除误差并转化成物理量数据,所述误差如陀螺仪的零点漂移、重力传感器在设备运动时的误差,步骤S2中获得物理量数据可以供应用程序直接获取,以保证与现有操作系统的兼容性,同时,也可以将多个传感器的物理量数据进行融合后获取移动设备当前的空间姿态数据,即将这些物理量数据流入移动设备操作系统中间层的传感器数据融合层进行融合,得到融合后的空间姿态数据如χ-γ-ζ轴上的角速度、设备当前翻滚角(Roll)、俯仰角(Pitch)以及方位角(Yaw)。图3为本发明一实施例的融合处理在移动设备的操作系统内的结构图。图4为本发明一实施例的数据融合层作为独立的系统服务进程的形态图。图5为本发明一实施例的数据融合层作为运行在应用程序内的函数库的形态图。如图3所示,当获取到移动设备上多个传感器的ADC读数,传感器的ADC读数通过操作系统内核的对应驱动程序如传感器驱动35、36、37获得,并完成基本数据处理40包括去除杂波及ADC读数量化,这些数据处理与现有的操作系统中对重力传感器、陀螺仪、电子罗盘等的处理方式一致,即将传感器原始的ADC读数进行量化,换算成具体的物理量,例如重力传感器的g值分量,陀螺仪的角速度,电子罗盘的磁感分量以及地磁角度等,相应的,步骤S3中包括将多个传感器的物理量数据进行融合获取移动设备当前的空间姿态数据,其中,所述多个传感器的物理量数据进行融合的处理(数据融合层)34在移动设备的操作系统内进行,例如可以在移动设备的操作系统的中间层38或操作系统内核39中进行,图3中示出的是将所述多个传感器的物理量数据进行融合的处理(数据融合层)34放在移动设备的操作系统的中间层38中进行,这里将多个传感器数据物理量数据融合获取空间姿态数据的方法整合进移动设备的操作系统当中,由操作系统将经过融合处理得到的精确的空间姿态数据提供给上层的应用程序31,32、33使用,从而降低在移动设备上开发高级空间定位应用的门槛,缓解应用开发人员的负担,最终最大限度的发挥移动设备上传感器的硬件性能。如图4所示,所述多个传感器的物理量数据进行融合的处理(数据融合层)的具体形式可以采用独立的系统服务进程41,供多个进程如进程A、进程B共享访问,如图5所示,所述多个传感器的物理量数据进行融合的处理(数据融合层)的具体形式也可以采用运行在被服务的应用程序如进程A、进程B的地址空间内的函数库51、52。所述重力传感器的物理量数据包括移动设备在X轴所受的重力加速度以及外力加速度的Ax分量、移动设备在Y轴所受的重力加速度以及外力加速度的Ay分量,以及移动设备在Z轴所受的重力加速度以及外力加速度的Az分量。所述陀螺仪的物理量数据包括移动设备在X轴上转动角速度的Gx分量、移动设备在Y轴上转动角速度的分量Gy,以及移动设备在Z轴上转动角速度的Gz分量。所述电子罗盘的物理量数据包括移动设备在X轴上外界磁场强度的Hx分量、移动设备在Y轴上外界磁场强度的Hy分量,以及移动设备在Z轴上外界磁场强度的Hz分量。各类传感器所测量的物理量数据如下表所示:
权利要求
1.一种获取空间姿态数据的方法,其特征在于,包括: 获取移动设备上传感器的ADC读数; 将所述ADC读数去除误差并转化成物理量数据; 根据所述物理量数据获取移动设备当前的空间姿态数据。
2.如权利要求1所述的获取空间姿态数据的方法,其特征在于,所述传感器为一个或多个。
3.如权利要求2所述的获取空间姿态数据的方法,其特征在于,根据所述物理数据获取移动设备当前的空间姿态数据步骤中,包括将多个传感器的物理量数据进行融合获取移动设备当前的空间姿态数据。
4.如权利要求3所述的获取空间姿态数据的方法,其特征在于,所述多个传感器的物理量数据进行融合的处理在移动设备的操作系统内进行。
5.如权利要求4所述的获取空间姿态数据的方法,其特征在于,所述多个传感器的物理量数据进行融合的处理在移动设备的操作系统的中间层或操作系统内核中进行。
6.如权利要求5所述的获取空间姿态数据的方法,其特征在于,所述多个传感器的物理量数据进行融合的处理的具体形式包括采用独立的系统服务进程或采用运行在被服务的应用程序地址空间内的函数库。
7.如权利要求3所述的获取空间姿态数据的方法,其特征在于,采用KalmanFilter算法或Particle Filte r算法将多个传感器的物理量数据进行融合获取移动设备当前的空间姿态数据。
8.如权利要求7所述的获取空间姿态数据的方法,其特征在于,所述传感器包括重力传感器、陀螺仪、电子罗盘或GPS导航仪中的一种或任意组合。
9.如权利要求8所述的获取空间姿态数据的方法,其特征在于,所述重力传感器的物理量数据包括移动设备在X轴所受的重力加速度以及外力加速度的Ax分量、移动设备在Y轴所受的重力加速度以及外力加速度的Ay分量,以及移动设备在Z轴所受的重力加速度以及外力加速度的Az分量。
10.如权利要求9所述的获取空间姿态数据的方法,其特征在于,所述陀螺仪的物理量数据包括移动设备在X轴上转动角速度的Gx分量、移动设备在Y轴上转动角速度的分量Gy,以及移动设备在Z轴上转动角速度的Gz分量。
11.如权利要求10所述的获取空间姿态数据的方法,其特征在于,所述电子罗盘的物理量数据包括移动设备在X轴上外界磁场强度的Hx分量、移动设备在Y轴上外界磁场强度的Hy分量,以及移动设备在Z轴上外界磁场强度的Hz分量。
12.如权利要求11所述的获取空间姿态数据的方法,其特征在于,所述空间姿态数据包括移动设备的俯仰角、翻滚角、方位角以及移动设备在χ-γ-ζ轴上的角速度。
13.如权利要求12所述的获取空间姿态数据的方法,其特征在于,所述俯仰角根据重力传感器的Ax、Az分量或根据陀螺仪的Gy分量获取。
14.如权利要求12所述的获取空间姿态数据的方法,其特征在于,所述俯仰角通过融合重力传感器的Ax、Az分量和陀螺仪的Gy分量后获取。
15.如权利要求12所述的获取空间姿态数据的方法,其特征在于,所述翻滚角根据重力传感器的Ay、Az分量或根据陀螺仪的Gx分量获取。
16.如权利要求12所述的获取空间姿态数据的方法,其特征在于,所述翻滚角通过融合重力传感器的Ay、Az分量和陀螺仪的Gx分量后获取。
17.如权利要求12所述的获取空间姿态数据的方法,其特征在于,所述方位角根据电子罗盘Hx、Hy、Hz分量、俯仰角及翻滚角或根据陀螺仪的Gz分量获取。
18.如权利要求12所述的获取空间姿态数据的方法,其特征在于,所述方位角通过融合电子罗盘Hx、Hy、Hz分量、俯仰角及翻滚角和陀螺仪的Gz分量后获取。
19.如权利要求13至18任一项所述的获取空间姿态数据的方法,其特征在于,所述移动设备在X-Y-Z轴上的角速度根据陀螺仪的Gx、Gy、Gz分量或融合所述俯仰角、翻滚角、方位角获取。
20.一种获取空间姿态数据的系统,其特征在于,包括: ADC模块,用于获取移动设备上传感器的ADC读数; 物理量模块,用于将所述ADC读数去除误差并转化成物理量数据; 空间姿态模块,用于根据所述物理量数据获取移动设备当前的空间姿态数据。
21.如权利要求20所述的获取空间姿态数据的系统,其特征在于,所述ADC模块用于获取移动设备上一个或多个传感器的ADC读数。
22.如权利要求21所述的获取空间姿态数据的系统,其特征在于,所述空间姿态模块包括: 融合层单元,用于将多个传感器的物理量数据进行融合; 空间姿态单元,用于根据融合后的的物理量数据获取当前的空间姿态数据。
23.如权利要求22所述的获取空间姿态数据的系统,其特征在于,所述空间姿态模块采用Kalman Filter算法或Particle Filter算法将多个传感器的物理量数据进行融合获取移动设备当前的空间姿态数据。
24.如权利要求23所述的获取空间姿态数据的系统,其特征在于,所述ADC模块用于获取移动设备上重力传感器、陀螺仪、电子罗盘或GPS导航仪中的ADC读数。
25.如权利要求24所述的获取空间姿态数据的系统,其特征在于,所述物理量模块转化的重力传感器的物理量数据包括移动设备在X轴所受的重力加速度及外力加速度的Ax分量、移动设备在Y轴所受的重力加速度及外力加速度的Ay分量,以及移动设备在Z轴所受的重力加速度及外力加速度的Az分量。
26.如权利要求25所述的获取空间姿态数据的系统,其特征在于,所述物理量模块转化的陀螺仪的物理量数据包括移动设备在X轴上转动角速度的Gx分量、移动设备在Y轴上转动角速度的分量Gy,以及移动设备在Z轴上转动角速度的Gz分量。
27.如权利要求26所述的获取空间姿态数据的系统,其特征在于,所述物理量模块转化的电子罗盘的物理量数据包括移动设备在X轴上外界磁场强度的Hx分量、移动设备在Y轴上外界磁场强度的Hy分量,以及移动设备在Z轴上外界磁场强度的Hz分量。
28.如权利要求27所述的获取空间姿态数据的系统,其特征在于,所述空间姿态模块获取的空间姿态数据包括移动设备的俯仰角、翻滚角、方位角以及移动设备在X-Y-Z轴上的角速度。
29.如权利要求28所述的获取空间姿态数据的系统,其特征在于,所述空间姿态模块根据重力传感器的Ax、Az分量或陀螺仪的Gy分量获取所述俯仰角。
30.如权利要求28所述的获取空间姿态数据的系统,其特征在于,所述空间姿态模块融合重力传感器的Ax、Az分量和陀螺仪的Gy分量后获取所述俯仰角。
31.如权利要求28所述的获取空间姿态数据的系统,其特征在于,所述空间姿态模块根据重力传感器的Ay、Az分量或根据陀螺仪的Gx分量获取所述翻滚角。
32.如权利要求28所述的获取空间姿态数据的系统,其特征在于,所述空间姿态模块融合重力传感器的Ay、Az分量和陀螺仪的Gx分量后获取所述翻滚角。
33.如权利要求28所述的获取空间姿态数据的系统,其特征在于,所述空间姿态模块根据电子罗盘Hx、Hy、Hz分量、俯仰角及翻滚角或根据陀螺仪的Gz分量获取所述方位角。
34.如权利要求28所述的获取空间姿态数据的系统,其特征在于,所述空间姿态模块融合电子罗盘Hx、Hy、Hz分量、俯仰角及翻滚角和陀螺仪的Gz分量后获取所述方位角。
35.如权利要求28至35任一项所述的获取空间姿态数据的系统,其特征在于,所述空间姿态模块根据陀螺仪的Gx、Gy、Gz分量或融合所述俯仰角、翻滚角、方位角获取移动设备在X-Y-Z轴上的角 速度。
全文摘要
本发明涉及一种获取空间姿态数据的方法及系统,所述方法包括获取移动设备上传感器的ADC读数;将所述ADC读数去除误差并转化成物理量数据;以及将多个传感器的物理量数据进行融合获取移动设备当前的空间姿态数据。本发明能够在移动设备的操作系统内对传感器的ADC读数进行处理,以获取精确的移动设备的空间姿态信息提供给上层的应用程序使用,从而降低在移动设备上开发高级空间定位应用的门槛,缓解应用开发人员的负担,最大限度的发挥移动设备上传感器的硬件性能。
文档编号G01C1/00GK103185577SQ20111045371
公开日2013年7月3日 申请日期2011年12月29日 优先权日2011年12月29日
发明者陈士凯 申请人:盛乐信息技术(上海)有限公司