CN103186688A - 一种模拟器磁力感应数据获取方法及装置 - Google Patents

一种模拟器磁力感应数据获取方法及装置 Download PDF

Info

Publication number
CN103186688A
CN103186688A CN2011104578093A CN201110457809A CN103186688A CN 103186688 A CN103186688 A CN 103186688A CN 2011104578093 A CN2011104578093 A CN 2011104578093A CN 201110457809 A CN201110457809 A CN 201110457809A CN 103186688 A CN103186688 A CN 103186688A
Authority
CN
China
Prior art keywords
attitude
equipment
analog machine
transient state
transformation matrix
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
Application number
CN2011104578093A
Other languages
English (en)
Inventor
孙元臻
冉放
董海峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN2011104578093A priority Critical patent/CN103186688A/zh
Publication of CN103186688A publication Critical patent/CN103186688A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种模拟器磁力感应数据获取方法及装置。一种模拟器磁力感应数据获取方法包括:获取模拟设备当前的模拟姿态信息,所述姿态信息包括:模拟设备在自身坐标系下相对于标准姿态的三轴旋转角度α、β、γ;根据α、β、γ计算得到模拟设备当前姿态相对于标准姿态的坐标变换矩阵;以所述坐标变换矩阵乘以模拟设备在标准姿态下的磁力向量,得到模拟设备在当前姿态下的磁力感应数据;将磁力感应数据发送至模拟器的模拟设备操作系统模块。应用本发明方案,使得在模拟器软件中,也可以实现对磁力感应操作方式的模拟。

Description

一种模拟器磁力感应数据获取方法及装置
技术领域
本发明涉及模拟器技术领域,特别是涉及一种模拟器磁力感应数据获取方法及装置。
背景技术
模拟器(emulator)也称仿真器(simulator),是指通过软件方式模拟硬件设备的功能和操作系统,建立起具有完整硬件功能的、运行在一个隔离环境中的虚拟系统。模拟器的形式多种多样,常见的模拟器多是基于PC机的,例如在PC机中模拟各种游戏机、便携设备,甚至在PC机中模拟另外一台或多台PC机。模拟器的主要作用,一方面是使得在某种平台上能够运行其他平台上的软件,例如在PC机上玩游戏机中的游戏;另一方面是用软件模拟的方式,提供用于测试设备的环境,以便于数据搜集,bug定位等等。
对于游戏机、手机等设备的模拟器而言,一个重要的功能就是实现操作方式的模拟,常见的方式是把游戏机摇杆、按键、手机按键等映射到PC机上的键盘、鼠标等操作设备,然而随着技术的发展,现在各种设备上的输入方式已经不仅仅限于简单的按键操作,例如智能手机、平板电脑上的触屏操作、轨迹球操作、感应操作等等都已经逐渐成为主流的操作方式。
目前,触屏操作和轨迹球操作已经可以用键盘或鼠标的方式模拟实现,但是,对于感应操作而言,需要依赖设备中内置的感应器硬件设备(例如重力感应器、磁力感应器、姿态感应器、旋转感应器等等)来实现,在现有的模拟器软件中,还无法实现对各类感应操作方式的模拟。
发明内容
为解决上述技术问题,本发明实施例提供一种模拟器磁力感应数据获取方法及装置,以实现在模拟器软件中对磁力感应操作方式的模拟,技术方案如下:
一种模拟器磁力感应数据获取方法,包括:
获取模拟设备当前的模拟姿态信息,所述姿态信息包括:模拟设备在自身坐标系下相对于标准姿态的三轴旋转角度α、β、γ;
根据α、β、γ计算得到模拟设备当前姿态相对于标准姿态的坐标变换矩阵;
以所述坐标变换矩阵乘以模拟设备在标准姿态下的磁力向量,得到模拟设备在当前姿态下的磁力感应数据;
将磁力感应数据发送至模拟器的模拟设备操作系统模块。
根据本发明的一种实施方式,所述标准姿态为:
设备正面朝上水平放置,且设备上侧面朝向正北。
根据本发明的一种实施方式,所述模拟设备自身坐标系为:
X轴从设备左侧面指向右侧面、Y轴从设备下侧面指向上侧面、Z轴从设备的背面指向正面。
根据本发明的一种实施方式,所述α、β、γ分别为:
设备围绕X、Y、Z轴逆时针方向旋转的角度。
根据本发明的一种实施方式,所述根据α、β、γ计算得到模拟设备当前姿态相对于标准姿态的坐标变换矩阵,包括:
根据γ计算得到从标准姿态变为第一暂态的坐标变换矩阵RZ,其中,设备从标准姿态围绕Z轴旋转角度γ后变为第一暂态;
根据α计算得到从第一暂态变为第二暂态的坐标变换矩阵RX,其中,设备从第一暂态围绕X轴旋转角度α后变为第二暂态;
根据β计算得到从第二暂态变为当前姿态的坐标变换矩阵RY,其中,设备从第二暂态围绕Y轴旋转角度β后变为当前姿态;
则模拟设备当前姿态相对于标准姿态的坐标变换矩阵R=RYRXRZ
一种模拟器磁力感应数据获取装置,包括:
姿态信息获取单元,用于获取模拟设备当前的模拟姿态信息,所述姿态信息包括:模拟设备在自身坐标系下相对于标准姿态的三轴旋转角度α、β、γ;
变换矩阵计算单元,用于根据α、β、γ计算得到模拟设备当前姿态相对于标准姿态的坐标变换矩阵;
感应数据计算单元,用于以所述坐标变换矩阵乘以模拟设备在标准姿态下的磁力向量,得到模拟设备在当前姿态下的磁力感应数据;
感应数据发送单元,用于将磁力感应数据发送至模拟器的模拟设备操作系统模块。
根据本发明的一种实施方式,所述标准姿态为:
设备正面朝上水平放置,且设备上侧面朝向正北。
根据本发明的一种实施方式,所述模拟设备自身坐标系为:
X轴从设备左侧面指向右侧面、Y轴从设备下侧面指向上侧面、Z轴从设备的背面指向正面。
根据本发明的一种实施方式,所述α、β、γ分别为:
设备围绕X、Y、Z轴逆时针方向旋转的角度。
根据本发明的一种实施方式,所述变换矩阵计算单元,包括:
第一计算子单元,用于根据γ计算得到从标准姿态变为第一暂态的坐标变换矩阵RZ,其中,设备从标准姿态围绕Z轴旋转角度γ后变为第一暂态;
第二计算子单元,用于根据α计算得到从第一暂态变为第二暂态的坐标变换矩阵RX,其中,设备从第一暂态围绕X轴旋转角度α后变为第二暂态;
第三计算子单元,用于根据β计算得到从第二暂态变为当前姿态的坐标变换矩阵RY,其中,设备从第二暂态围绕Y轴旋转角度β后变为当前姿态;
第四计算子单元,用于计算模拟设备当前姿态相对于标准姿态的坐标变换矩阵R=RYRXRZ
本发明还提供一种模拟器系统,包括如前所述的模拟器磁力感应数据获取装置以及模拟设备操作系统模块;
所述模拟设备操作系统模块,用于调用所述模拟器磁力感应数据获取装置所发送的磁力感应数据,将磁力感应数据下发至运行于操作系统中的应用程序。
本发明实施例所提供的技术方案,利用用户输入的模拟设备相对于标准姿态的三轴旋转角度信息,计算得到模拟设备在当前姿态下的磁力感应数据,该磁力感应数据可以直接发送至操作系统,供上层应用程序调用。相当于模拟了硬件磁力感应器的功能,使得在模拟器软件中,也可以实现对磁力感应操作方式的模拟。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为硬件设备的感应架构示意图;
图2为本发明实施例的模拟器系统架构示意图;
图3为本发明实施例的设备坐标系示意图;
图4为磁力方向随地理位置变化的示意图;
图5为本发明实施例模拟器磁力感应数据获取方法流程图;
图6为本发明实施例的坐标系变换示意图;
图7为本发明实施例模拟器磁力感应数据获取装置的结构示意图;
图8为Android设备的感应架构示意图;
图9为本发明实施例的Android模拟器系统架构示意图。
具体实施方式
为了使本领域技术人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本发明保护的范围。
图1所示为正常硬件设备的感应架构示意图:驱动层的作用是提供操作系统与感应器硬件的通信接口,获取感应器所获得的感应数据提供给应用程序进行调用。然而在模拟器中,并不具有感应器硬件,操作系统的驱动层无法获取到相应的感应数据,因而无法直接对需要感应数据作为输入的应用程序进行模拟运行或测试。
为解决以上问题,本发明提供一种模拟器系统,如图2所示,该系统包括模拟器感应数据获取装置110和模拟设备操作系统模块120,其中模拟器感应数据获取装置110的作用是将用户输入的模拟设备姿态数据转换为感应数据并传入操作系统,相当于模拟了硬件感应器的功能。模拟设备操作系统模块120则是以软件的方式模拟了设备的操作系统。
对于本发明而言,模拟器感应数据获取装置110的具体功能是将用户输入的模拟设备姿态数据转换为磁力感应数据。
磁力感应数据的含义是:首先定义设备自身的坐标系,在这个坐标系下,对应着一个设备所受磁力的向量表示;当设备的空间姿态发生变化时,坐标系的方向也会发生变化,相应的磁力向量也会发生变化,所谓磁力感应数据,就是数据处在各种姿态时,针对当前坐标系的磁感应强度向量表示。
为便于计算,一般还会定义一个设备标准姿态,一般习惯定义设备水平放置(正面朝上、背面朝下)时为标准状态。
根据一般习惯,可以把设备近似看做一个六面体,具有上侧面、下侧面、左侧面、右侧面、正面、背面六个面,定义X轴为从设备左侧面指向右侧面的方向、Y轴为从设备下侧面指向上侧面的方向、Z轴为从设备的背面指向正面的方向,参见图3所示。
需要说明的是,本发明方案中,仅考虑地球磁场对设备的影响,而忽略设备靠近磁铁时的特殊情况。因为在绝大多数应用中,仅仅是需要测量地磁的强度和方向。在地球磁场体系下,磁力感应数据与地理位置有关,参见图4所示,在地磁北极点,磁力线方向为垂直向下;在赤道附近,磁力线方向为水平指向北;在北京,磁力线与地面成一个夹角(角度与纬度相同)。此外,在不同地理位置的磁感应强度大小也不同。
因此,如果定义设备正面朝上水平放置、上侧面朝向正北的姿态为标准姿态,则在标准姿态下,设备收到的磁感应强度向量表示为:
B 0 → = 0 b cos φ b sin φ
其中,φ是设备所在地点的纬度,取值在
Figure BDA0000127438950000062
(以北纬为正角度、南纬为负角度),b为设备所在地点的磁感应强度大小,取值在40μT~60μT,当然,如果用户对这些数据并不敏感,也可以直接给定默认数据,例如北纬38度,50μT的磁感应强度。
目前,很多智能手机和平板电脑等便携设备均内置磁力感应器,利用磁力感应,可以实现如“方向定位”、“指南针”等的应用操作。
对于模拟器软件而言,模拟一台设备的姿态是易于实现的,用户通过命令行或图形界面等方式输入一系列姿态数据,就可以唯一确定出一台模拟设备的空间姿态,而本发明的方案,就是用户输入姿态数据,计算得到模拟设备在当前姿态下的磁力感应数据,这些磁力感应数据可以直接发送至操作系统,供上层应用程序调用。相当于模拟了硬件磁力感应器的功能,使得在模拟器软件中,也可以实现对磁力感应操作方式的模拟。
图5所示,为本发明实施例所提供的一种模拟器磁力感应数据获取方法,包括以下步骤:
S201,获取模拟设备当前的模拟姿态信息。
前面已经介绍过了标准姿态的概念,如果以标准姿态为参考,那么设备的任意一种空间姿态都可以由标准姿态围绕自身坐标系的三个坐标轴旋转3次得到。为了方便表示,定义α、β、γ三个角度:
α:设备围绕X轴旋转的角度,逆时针方向为正;
β:设备围绕Y轴旋转的角度,逆时针方向为正;
γ:手机围绕Z轴旋转的角度,逆时针方向为正;
定义设备在标准姿态时,α=β=γ=0。
需要说明的是,设备从标准姿态变换为当前姿态,需要经过三次旋转,而每次旋转都是针对当前位置的坐标轴而言的,因此三次旋转存在顺序问题,例如:
在标准姿态下的坐标轴为X0、Y0、Z0
经过1次旋转后,变为第一暂态,此时坐标轴为X’、Y’、Z’;
经过2次旋转后,变为第二暂态,此时坐标轴为X”、Y”、Z”;
经过3次旋转后,变为当前姿态。
假设定义旋转顺序为,先绕X旋转,然后绕Y轴旋转,最后绕Z轴旋转,那么实际旋转过程应该是:
在标准状态下,绕X0旋转α,变到第一暂态;
在第一暂态下,绕Y’旋转β,变到第二暂态;
在第二暂态下,绕Z”旋转γ,变到当前状态。
可以理解的是,设备从标准姿态变换为当前姿态,三次旋转的顺序,共有12种顺序,作为模拟器软件而言,具体应采用哪种顺序,应该由模拟设备的操作系统决定。例如,对于安卓(andriod)操作系统而言,定义三次旋转的顺序为Z→X→Y,在这种体系下,相应的旋转过程是:
在标准状态下,绕Z0旋转γ,变到第一暂态;
在第一暂态下,绕X’旋转α,变到第二暂态;
在第二暂态下,绕Y”旋转β,变到当前状态。
为便于说明,在本实施例中的后续内容中,将统一以这种旋转顺序为例进行说明。
S202,根据α、β、γ计算得到模拟设备当前姿态相对于标准姿态的坐标变换矩阵;
得到用户输入的α、β、γ数据之后,就可以得到模拟设备在当前姿态相对于标准姿态的坐标变换矩阵。在本实施例中,根据S201中所定义的旋转顺序Z→X→Y,可以按以下步骤计算得到变换矩阵:
S202a,根据γ计算得到从标准姿态变为第一暂态的坐标变换矩阵RZ,其中,设备从标准姿态围绕Z轴旋转角度γ后变为第一暂态;
参见图6所示,假设在X-Y坐标系中存在一个点A,坐标为(x,y),OA向量与X轴的夹角为θ,当设备围绕Z轴旋转γ角时,相当于坐标系旋转了γ角,设A点在新坐标系下的坐标变为(x’,y’),则在新的坐标系下,OA向量可以表示为[x′y′]T,其中:
x ′ = | OA → | cos ( θ - γ )
= | OA → | ( cos θ cos γ + sin θ sin γ )
= | OA → | × ( x | OA → | cos γ + y | OA → | sin γ )
= x cos γ + y sin γ
类似方法,可以得到:
y ′ = | OA → | sin ( θ - γ )
= - x sin γ + y cos γ
由于Z轴并未发生变化,因此有
z′=z
于是,可以得到从标准姿态变为第一暂态的坐标变换矩阵RZ
R z = cos γ sin γ 0 - sin γ cos γ 0 0 0 1
S202b,根据α计算得到从第一暂态变为第二暂态的坐标变换矩阵RX,其中,设备从第一暂态围绕X轴旋转角度α后变为第二暂态;
类似S202a的推导方法,可以得到:
R x = 1 0 0 0 cos α sin α 0 - sin α cos α
S202c,根据β计算得到从第二暂态变为当前姿态的坐标变换矩阵RY,其中,设备从第二暂态围绕Y轴旋转角度β后变为当前姿态;
同样类似S202a的推导方法,可以得到:
R y = cos β 0 - sin β 0 1 0 sin β 0 cos β
S202d,计算模拟设备当前姿态相对于标准姿态的坐标变换矩阵。
根据Z→X→Y的旋转顺序,可以得到对于标准姿态下的坐标(x,y,z),在经过三次旋转后的坐标变化为:
x ′ y ′ z ′ = R y R x R z x y z = R x y z
则模拟设备当前姿态相对于标准姿态的坐标变换矩阵R=RYRXRZ
S203,以所述坐标变换矩阵乘以模拟设备在标准姿态下的磁力向量,得到模拟设备在当前姿态下的磁力感应数据;
设模拟设备在标准姿态下的磁力向量为则在当前姿态下所受的磁力向量为:
B → = R y R x R z · B 0 →
= R · 0 b cos φ b sin φ
S204,将磁力感应数据发送至模拟器的模拟设备操作系统模块。
得到当前姿态下的磁力感应数据之后,进一步将磁力感应数据发送至模拟器的模拟设备操作系统模块,以供操作系统的各种上层应用程序调用,从而实现了在模拟器中生成磁力感应数据并对设备进行相应的操作。
需要说明的是,在上述实施例中,只是针对特定的设备坐标定义、标准姿态定义以及旋转顺序定义进行说明,这些定义不应该理解为对本发明方案的限制。本领域技术人员可以根据以上方案,得到在其他定义方式下的解决方案。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
相应于上面的方法实施例,本发明还提供一种模拟器磁力感应数据获取装置,参见图7所示,包括:
姿态信息获取单元310,用于获取模拟设备当前的模拟姿态信息,所述姿态信息包括:模拟设备在自身坐标系下相对于标准姿态的三轴旋转角度α、β、γ;
变换矩阵计算单元320,用于根据α、β、γ计算得到模拟设备当前姿态相对于标准姿态的坐标变换矩阵;
感应数据计算单元330,用于以所述坐标变换矩阵乘以模拟设备在标准姿态下的磁力向量,得到模拟设备在当前姿态下的磁力感应数据;
感应数据发送单元340,用于将磁力感应数据发送至模拟器的模拟设备操作系统模块。
在本发明的一种实施方式中,所述标准姿态为:
设备正面朝上水平放置,且设备上侧面朝向正北。
在本发明的一种实施方式中,所述模拟设备自身坐标系为:
X轴从设备左侧面指向右侧面、Y轴从设备下侧面指向上侧面、Z轴从设备的背面指向正面。
在本发明的一种实施方式中,所述α、β、γ分别为:
设备围绕X、Y、Z轴逆时针方向旋转的角度。
在本发明的一种实施方式中,所述变换矩阵计算单元,可以包括:
第一计算子单元,用于根据γ计算得到从标准姿态变为第一暂态的坐标变换矩阵RZ,其中,设备从标准姿态围绕Z轴旋转角度γ后变为第一暂态;
第二计算子单元,用于根据α计算得到从第一暂态变为第二暂态的坐标变换矩阵RX,其中,设备从第一暂态围绕X轴旋转角度α后变为第二暂态;
第三计算子单元,用于根据β计算得到从第二暂态变为当前姿态的坐标变换矩阵RY,其中,设备从第二暂态围绕Y轴旋转角度β后变为当前姿态;
第四计算子单元,用于计算模拟设备当前姿态相对于标准姿态的坐标变换矩阵R=RYRXRZ
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
Android是一种以Linux为基础的开放源码操作系统,主要使用于智能手机、平板电脑等便携设备。该系统采用Java语言开发,包括操作系统、中间件、用户界面和应用软件等组成部分。随着Android系统的不断发展,各大硬件厂商也在不断推出各种基于Android系统的产品,目前,基于Android系统产品已经在市场上占有重要地位。下面进一步结合Android系统的具体情况,对本发明的方案进行说明。
图8所示为正常android硬件设备的感应架构示意图:从上至下依次为:Java应用层(Java Application Layer)、Java框架层(Java Framework Layer)、感应器本地调用接口层(Sensor JNI Layer)、感应器硬件抽象层(SensorHardware Abstract Layer)、感应器驱动层(Sensor Driver Layer)。
图9为本发明所提供的一种Android模拟器系统架构图,对Sensor进行模拟,可以从Framework层或者Hardware Abstract Layer入手。考虑到对感应器的模拟更多是用作测试,如果在Framework层实现,那么测试时就无法发现针对Framework层的开发工作是否正常,所以,在本发明所提供的方案中,采用自定义的Sensor Mock Library替换原来的Sensor HAL和SensorDriver Layer。
对于本发明而言,可以在Sensor Mock Library的sSensorList[]数组中,添加Magnetometer的设备基本信息,主要可以包括以下字段:
.name    名称
.vendor    厂商
.version    版本
.handle    感应器的ID
.type    感应器的类型,在本实施例中值为SENSOR TYPE MAGNETIC FIELD
.maxRange    感应器最大测量范围,例如200.0f表示磁感应强度的最大测量值为200μT
.resolution    感应器的灵敏度,例如1.0f/16.0f,
.power    感应器的功耗信息,例如6.8f,表示传感器运行时的电流为6.8mA
.minDelay    两次上报数据的事件间隔,例如20.0f,表示两次上报的时间间隔为20ms
然后,在Sensor Mock Library的poll函数中,加入解析字符串数据的代码。字符串格式为“magnetic<x>:<y>:<z>”
Figure BDA0000127438950000121
考虑到模拟实现感应数据的模块Sensor Data Generator不应该属于Android OS的一部分,所以把它的实现部分放到了模拟器中,这样可以使Android系统中的用户性能测试的CPU统计工具不会把数据模拟的计算统计到Android系统负载当中,可以更加客观的反应Android OS的性能状况。
最后,在模拟器系统中,还提供了用户输入控制台Emulator Console,可以让用户按照自己的需求,修改姿态数据的值,以查看应用层App获取的数据是否正常,表现是否满足期望。其中,用户可以采用命令行或图形化操作界面的方式,输入模拟设备的姿态数据。
利用Emulator Console,添加设置姿态数据的命令后,用户可以输入姿态数据。然后,Magnetometer Sensor Data Generator将该数据转化成为Magnetometer数据,翻译成字符串的形式:“magnetic<x>:<y>:<z>”,发送给Sensor Mock Library。Sensor Mock Library接到该字符串后,解析字符串的数据,然后构造一个表示Gravity Sensor Data的结构体,传到上层,完成对感应数据的模拟。
应用本发明所提供的方案,可以使Android App运行在模拟器上后,得到Magnetometer Sensor的设备信息,并且及时获取Magnetometer Sensor的数据。更加重要的是,用户不需要直接控制磁力感应器的信息,而只需要将注意力集中在设备的姿态上,产生的感应器数据中,姿态感应器和磁力感应器的数据关系是符合物理意义的,不会发成冲突的情况。用户可以按照他们的期望修改姿态数据,模拟器产生相应的感应数据之后,正确地返回给上层App。
可以理解的是,在以上实施例中所提供的程序源代码并不构成对本申请方案的限定,例如,本领域技术人员可以在不脱离本申请原理的前提下,根据实际需求对方案进行改进。例如定义不同的函数名称及形式,采取不同的数据结构,等等,这些都不影响本申请方案的实现。
以上所述仅是本发明的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (11)

1.一种模拟器磁力感应数据获取方法,其特征在于,包括:
获取模拟设备当前的模拟姿态信息,所述姿态信息包括:模拟设备在自身坐标系下相对于标准姿态的三轴旋转角度α、β、γ;
根据α、β、γ计算得到模拟设备当前姿态相对于标准姿态的坐标变换矩阵;
以所述坐标变换矩阵乘以模拟设备在标准姿态下的磁力向量,得到模拟设备在当前姿态下的磁力感应数据;
将磁力感应数据发送至模拟器的模拟设备操作系统模块。
2.根据权利要求1所述的方法,其特征在于,所述标准姿态为:
设备正面朝上水平放置,且设备上侧面朝向正北。
3.根据权利要求1所述的方法,其特征在于,所述模拟设备自身坐标系为:
X轴从设备左侧面指向右侧面、Y轴从设备下侧面指向上侧面、Z轴从设备的背面指向正面。
4.根据权利要求1所述的方法,其特征在于,所述α、β、γ分别为:
设备围绕X、Y、Z轴逆时针方向旋转的角度。
5.根据权利要求1所述的方法,其特征在于,所述根据α、β、γ计算得到模拟设备当前姿态相对于标准姿态的坐标变换矩阵,包括:
根据γ计算得到从标准姿态变为第一暂态的坐标变换矩阵RZ,其中,设备从标准姿态围绕Z轴旋转角度γ后变为第一暂态;
根据α计算得到从第一暂态变为第二暂态的坐标变换矩阵RX,其中,设备从第一暂态围绕X轴旋转角度α后变为第二暂态;
根据β计算得到从第二暂态变为当前姿态的坐标变换矩阵RY,其中,设备从第二暂态围绕Y轴旋转角度β后变为当前姿态;
则模拟设备当前姿态相对于标准姿态的坐标变换矩阵R=RYRXRZ
6.一种模拟器磁力感应数据获取装置,其特征在于,包括:
姿态信息获取单元,用于获取模拟设备当前的模拟姿态信息,所述姿态信息包括:模拟设备在自身坐标系下相对于标准姿态的三轴旋转角度α、β、γ;
变换矩阵计算单元,用于根据α、β、γ计算得到模拟设备当前姿态相对于标准姿态的坐标变换矩阵;
感应数据计算单元,用于以所述坐标变换矩阵乘以模拟设备在标准姿态下的磁力向量,得到模拟设备在当前姿态下的磁力感应数据;
感应数据发送单元,用于将磁力感应数据发送至模拟器的模拟设备操作系统模块。
7.根据权利要求6所述的装置,其特征在于,所述标准姿态为:
设备正面朝上水平放置,且设备上侧面朝向正北。
8.根据权利要求6所述的装置,其特征在于,所述模拟设备自身坐标系为:
X轴从设备左侧面指向右侧面、Y轴从设备下侧面指向上侧面、Z轴从设备的背面指向正面。
9.根据权利要求6所述的装置,其特征在于,所述α、β、γ分别为:
设备围绕X、Y、Z轴逆时针方向旋转的角度。
10.根据权利要求6所述的装置,其特征在于,所述变换矩阵计算单元,包括:
第一计算子单元,用于根据γ计算得到从标准姿态变为第一暂态的坐标变换矩阵RZ,其中,设备从标准姿态围绕Z轴旋转角度γ后变为第一暂态;
第二计算子单元,用于根据α计算得到从第一暂态变为第二暂态的坐标变换矩阵RX,其中,设备从第一暂态围绕X轴旋转角度α后变为第二暂态;
第三计算子单元,用于根据β计算得到从第二暂态变为当前姿态的坐标变换矩阵RY,其中,设备从第二暂态围绕Y轴旋转角度β后变为当前姿态;
第四计算子单元,用于计算模拟设备当前姿态相对于标准姿态的坐标变换矩阵R=RYRXRZ
11.一种模拟器系统,其特征在于,包括如权利要求6-10任一项所述的模拟器磁力感应数据获取装置以及模拟设备操作系统模块;
所述模拟设备操作系统模块,用于调用所述模拟器磁力感应数据获取装置所发送的磁力感应数据,将磁力感应数据下发至运行于操作系统中的应用程序。
CN2011104578093A 2011-12-30 2011-12-30 一种模拟器磁力感应数据获取方法及装置 Pending CN103186688A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2011104578093A CN103186688A (zh) 2011-12-30 2011-12-30 一种模拟器磁力感应数据获取方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2011104578093A CN103186688A (zh) 2011-12-30 2011-12-30 一种模拟器磁力感应数据获取方法及装置

Publications (1)

Publication Number Publication Date
CN103186688A true CN103186688A (zh) 2013-07-03

Family

ID=48677855

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011104578093A Pending CN103186688A (zh) 2011-12-30 2011-12-30 一种模拟器磁力感应数据获取方法及装置

Country Status (1)

Country Link
CN (1) CN103186688A (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007061746A2 (en) * 2005-11-18 2007-05-31 Cardiac Pacemakers, Inc. Posture detector calibration and use
WO2011100422A1 (en) * 2010-02-15 2011-08-18 Cardiac Pacemakers, Inc. Methods for constructing posture calibration matrices

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007061746A2 (en) * 2005-11-18 2007-05-31 Cardiac Pacemakers, Inc. Posture detector calibration and use
WO2011100422A1 (en) * 2010-02-15 2011-08-18 Cardiac Pacemakers, Inc. Methods for constructing posture calibration matrices

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
刘吉富等: "重力传感器水平度测量仪原理分析", 《微计算机信息》, vol. 24, no. 71, 31 July 2008 (2008-07-31), pages 159 - 161 *
李宁: "Android/OPhone开发完全讲义", 《ANDROID/OPHONE开发完全讲义》, 30 June 2010 (2010-06-30), pages 1 - 8 *

Similar Documents

Publication Publication Date Title
CN106227935B (zh) 一种卫星姿态控制一体化仿真的系统及实现方法
CN103370690B (zh) 一种用于配置第一应用和第二应用的方法
CN103415834B (zh) 动态跨环境应用配置
CN102197377B (zh) 多触摸对象惯性模拟
CN101520702A (zh) 利用单指点设备模拟多点手势
CN107038112A (zh) 应用界面的调试方法及装置
CN102968377A (zh) 一种基于虚拟机技术的机载软件系统测试通用平台
CN102915232B (zh) 一种3d控件的交互方法及通信终端
CN104007844A (zh) 电子设备和用于电子设备的可穿戴式输入装置
CN109697002A (zh) 一种在虚拟现实中对象编辑的方法、相关设备及系统
JP2012146278A (ja) 三次元操作インターフェースのシミュレーション方法およびシステム
CN103185573B (zh) 一种模拟器三轴陀螺仪感应数据获取方法及装置
CN108573093A (zh) 一种中轨敏捷遥感卫星在线实时演示系统及演示方法
CN113091769A (zh) 姿态校准方法、装置、存储介质及电子设备
CN100461231C (zh) 一种基于gnss/gis/gprs的综合交通导航教学仪器
CN103186257B (zh) 一种模拟器旋转向量感应数据获取方法及装置
Wang et al. Mixed reality technology applications in construction equipment operator training
CN102929683A (zh) 输入设备的全自动化仿真系统
CN103186687A (zh) 一种模拟器重力感应数据获取方法及装置
CN103186688A (zh) 一种模拟器磁力感应数据获取方法及装置
CN104570741A (zh) 一种柔性机械臂横向振动pd边界控制模拟方法
CN110457227B (zh) 辅助开发人员或学生进行vr应用开发的系统及开发方法
Suk et al. A study on the effect of the use of augmented reality on students' quantity take-off performance
CN102081521A (zh) 一种通用的武器装备操作界面开发平台
CN101887671A (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
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20130703