一种模拟器旋转向量感应数据获取方法及装置的制作方法

文档序号:6444637阅读:225来源:国知局
专利名称:一种模拟器旋转向量感应数据获取方法及装置的制作方法
技术领域
本发明涉及模拟器技术领域,特别是涉及一种模拟器旋转向量感应数据获取方法及装置。
背景技术
模拟器(emulator)也称仿真器(simulator),是指通过软件方式模拟硬件设备的功能和操作系统,建立起具有完整硬件功能的、运行在一个隔离环境中的虚拟系统。模拟器的形式多种多样,常见的模拟器多是基于PC机的,例如在PC机中模拟各种游戏机、便携设备,甚至在PC机中模拟另外一台或多台PC机。模拟器的主要作用,一方面是使得在某种平台上能够运行其他平台上的软件,例如在PC机上玩游戏机中的游戏;另一方面是用软件模拟的方式,提供用于测试设备的环境,以便于数据搜集,bug定位等等。对于游戏机、手机等设备的模拟器而言,一个重要的功能就是实现操作方式的模拟,常见的方式是把游戏机摇杆、按键、手机按键等映射到PC机上的键盘、鼠标等操作设备,然而随着技术的发展,现在各种设备上的输入方式已经不仅仅限于简单的按键操作,例如智能手机、平板电脑上的触屏操作、轨迹球操作、感应操作等等都已经逐渐成为主流的操作方式。目前,触屏操作和轨迹球操作已经可以用键盘或鼠标的方式模拟实现,但是,对于感应操作而言,需要依赖设备中内置的感应器硬件设备(例如重力感应器、磁力感应器、姿态感应器、旋转向量感应器等等)来实现,在现有的模拟器软件中,还无法实现对各类感应操作方式的模拟。

发明内容
为解决上述技术问题,本发明实施例提供一种模拟器旋转向量感应数据获取方法及装置,以实现在模拟器软件中对旋转向量感应操作方式的模拟,技术方案如下:一种模拟器旋转向量感应数据获取方法,包括:获取模拟设备从第一姿态到第二姿态的姿态变化信息,所述姿态变化信息包括:在模拟设备自身坐标系下,第二姿态相对于第一姿态的三轴旋转角度α、β、Y ;根据α、β、Y计算得到模拟设备第二姿态相对于第一姿态的坐标变换矩阵;利用四元数旋转向量表示所述坐标变换矩阵并构成方程组,求解得到模拟设备第二姿态相对于第一姿态的旋转向量感应数据;将旋转向量感应数据发送至模拟器的模拟设备操作系统模块。根据本发明的一种实施方式,所述模拟设备自身坐标系为:X轴从设备左侧面指向右侧面、Y轴从设备下侧面指向上侧面、Z轴从设备的背面指向正面。根据本发明的一种实施方式,所述α、β、Y分别为:设备围绕X、Y、Z轴逆时针方向旋转的角度。
根据本发明的一种实施方式,所述根据α、β、Y计算得到模拟设备第二姿态相对于第一姿态的坐标变换矩阵,包括:根据Υ计算得到从第一姿态变为第一暂态的坐标变换矩阵RZ,其中,设备从第一姿态围绕Z轴旋转角度Υ后变为第一暂态;根据α计算得到从第一暂态变为第二暂态的坐标变换矩阵RX,其中,设备从第一暂态围绕X轴旋转角度α后变为第二暂态;根据β计算得到从第二暂态变为第二姿态的坐标变换矩阵RY,其中,设备从第二暂态围绕Y轴旋转角度β后变为第二姿态;则模拟设备第二姿态相对于第一姿态的坐标变换矩阵R = RYRXRZ。一种模拟器旋转向量感应数据获取装置,包括:姿态信息获取单元,用于获取模拟设备从第一姿态到第二姿态的姿态变化信息,所述姿态变化信息包括:在模拟设备自身坐标系下,第二姿态相对于第一姿态的三轴旋转角度α、β、Y ;变换矩阵计算单元,用于根据α、β、Y计算得到模拟设备第二姿态相对于第一姿态的坐标变换矩阵;感应数据计算单元,用于利用四元数旋转向量表示所述坐标变换矩阵并构成方程组,求解得到模拟设备第二姿态相对于第一姿态的旋转向量感应数据;感应数据发送单元,用于将旋转向量感应数据发送至模拟器的模拟设备操作系统模块。根据本发明的一种实施方式,所述模拟设备自身坐标系为:X轴从设备左侧面指向右侧面、Y轴从设备下侧面指向上侧面、Z轴从设备的背面指向正面。根据本发明的一种实施方式,所述α、β、Y分别为:设备围绕X、Y、Z轴逆时针方向旋转的角度。根据本发明的一种实施方式,所述变换矩阵计算单元,包括:第一计算子单元,用于根据Y计算得到从第一姿态变为第一暂态的坐标变换矩阵Rz,其中,设备从第一姿态围绕Z轴旋转角度Υ后变为第一暂态;第二计算子单元,用于根据α计算得到从第一暂态变为第二暂态的坐标变换矩阵Rx,其中,设备从第一暂态围绕X轴旋转角度α后变为第二暂态;第三计算子单元,用于根据β计算得到从第二暂态变为第二姿态的坐标变换矩阵RY,其中,设备从第二暂态围绕Y轴旋转角度β后变为第二姿态;第四计算子单元,用于计算模拟设备第二姿态相对于第一姿态的坐标变换矩阵R=RyRxRz。本发明还提供一种模拟器系统,包括如前所述的模拟器旋转向量感应数据获取装置以及模拟设备操作系统模块;所述模拟设备操作系统模块,用于调用所述模拟器旋转向量感应数据获取装置所发送的旋转向量感应数据,将旋转向量感应数据下发至运行于操作系统中的应用程序。本发明实施例所提供的技术方案,利用用户输入的模拟设备相对于标准姿态的三轴旋转角度信息,计算得到模拟设备的第二姿态相对于第一姿态的旋转向量感应数据,该旋转向量感应数据可以直接发送至操作系统,供上层应用程序调用。相当于模拟了旋转向量感应器的功能,使得在模拟器软件中,也可以实现对旋转向量感应操作方式的模拟。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。图1为硬件设备的感应架构示意图;图2为本发明实施例的模拟器系统架构示意图;图3为本发明实施例的设备坐标系示意图;图4为本发明实施例模拟器旋转向量感应数据获取方法流程图;图5为本发明实施例的坐标系变换示意图;图6为本发明实施例模拟器旋转向量感应数据获取装置的结构示意图;图7为Android设备的感应架构示意图;图8为本发明实施例的Android模拟器系统架构示意图。
具体实施例方式为了使本领域技术人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本发明保护的范围。图1所示为正常硬件设备的感应架构示意图:驱动层的作用是提供操作系统与感应器硬件的通信接口,获取感应器所获得的感应数据提供给应用程序进行调用。然而在模拟器中,并不具有感应器硬件,操作系统的驱动层无法获取到相应的感应数据,因而无法直接对需要感应数据作为输入的应用程序进行模拟运行或测试。为解决以上问题,本发明提供一种模拟器系统,如图2所示,该系统包括模拟器感应数据获取装置110和模拟设备操作系统模块120,其中模拟器感应数据获取装置110的作用是将用户输入的模拟设备姿态数据转换为感应数据并传入操作系统,相当于模拟了硬件感应器的功能。模拟设备操作系统模块120则是以软件的方式模拟了设备的操作系统。对于本发明而言,模拟器感应数据获取装置110的具体功能是将用户输入的模拟设备姿态数据转换为旋转向量感应数据。旋转向量的几何含义是:对于某个物体,通过围绕自身坐标系的三轴分别旋转α,β,Υ角度后,从姿态I改变为姿态2,这时,总可以找到一个旋转向量,使物体围绕这个向量旋转V角,直接从姿态I转化为姿态2。旋转向量在数学上习惯用四元数表示,定义如下:
权利要求
1.一种模拟器旋转向量感应数据获取方法,其特征在于,包括: 获取模拟设备从第一姿态到第二姿态的姿态变化信息,所述姿态变化信息包括:在模拟设备自身坐标系下,第二姿态相对于第一姿态的三轴旋转角度α、β、Y ; 根据α、β、Υ计算得到模拟设备第二姿态相对于第一姿态的坐标变换矩阵; 利用四元数旋转向量表示所述坐标变换矩阵并构成方程组,求解得到模拟设备第二姿态相对于第一姿态的旋转向量感应数据; 将旋转向量感应数据发送至模拟器的模拟设备操作系统模块。
2.根据权利要求1所述的方法,其特征在于,所述模拟设备自身坐标系为: X轴从设备左侧面指向右侧面、Y轴从设备下侧面指向上侧面、Z轴从设备的背面指向正面。
3.根据权利要求1所述的方法,其特征在于,所述α、β、Y分别为: 设备围绕X、Y、Z轴逆时针方向旋转的角度。
4.根据权利要求1所述的方法,其特征在于,所述根据α、β、Y计算得到模拟设备第二姿态相对于第一姿态的坐标变换矩阵,包括: 根据Y计算得到从第一姿态变为第一暂态的坐标变换矩阵Rz,其中,设备从第一姿态围绕Z轴旋转角度Y后变为第一暂态; 根据α计算得到从第一暂态变为第二暂态的坐标变换矩阵Rx,其中,设备从第一暂态围绕X轴旋转角度α后变为 第二暂态; 根据β计算得到从第二暂态变为第二姿态的坐标变换矩阵Ry,其中,设备从第二暂态围绕Y轴旋转角度β后变为第二姿态; 则模拟设备第二姿态相对于第一姿态的坐标变换矩阵R = RYRXRZ。
5.一种模拟器旋转向量感应数据获取装置,其特征在于,包括: 姿态信息获取单元,用于获取模拟设备从第一姿态到第二姿态的姿态变化信息,所述姿态变化信息包括:在模拟设备自身坐标系下,第二姿态相对于第一姿态的三轴旋转角度α、β、Y ; 变换矩阵计算单元,用于根据α、β、Υ计算得到模拟设备第二姿态相对于第一姿态的坐标变换矩阵; 感应数据计算单元,用于利用四元数旋转向量表示所述坐标变换矩阵并构成方程组,求解得到模拟设备第二姿态相对于第一姿态的旋转向量感应数据; 感应数据发送单元,用于将旋转向量感应数据发送至模拟器的模拟设备操作系统模块。
6.根据权利要求5所述的装置,其特征在于,所述模拟设备自身坐标系为: X轴从设备左侧面指向右侧面、Y轴从设备下侧面指向上侧面、Z轴从设备的背面指向正面。
7.根据权利要求5所述的装置,其特征在于,所述α、β、Y分别为: 设备围绕X、Y、Z轴逆时针方向旋转的角度。
8.根据权利要求5所述的装置,其特征在于,所述变换矩阵计算单元,包括: 第一计算子单元,用于根据Y计算得到从第一姿态变为第一暂态的坐标变换矩阵Rz,其中,设备从第一姿态围绕Z轴旋转角度Y后变为第一暂态;第二计算子单元,用于根据α计算得到从第一暂态变为第二暂态的坐标变换矩阵Rx,其中,设备从第一暂态围绕X轴旋转角度α后变为第二暂态; 第三计算子单元,用于根据β计算得到从第二暂态变为第二姿态的坐标变换矩阵RY,其中,设备从第二暂态围绕Y轴旋转角度β后变为第二姿态; 第四计算子单元,用于计算模拟设备第二姿态相对于第一姿态的坐标变换矩阵R =RyRxRz。
9.一种模拟器系统,其特征在于,包括如权利要求6-10任一项所述的模拟器旋转向量感应数据获取装置以及模拟设备操作系统模块; 所述模拟设备操作系统模块,用于调用所述模拟器旋转向量感应数据获取装置所发送的旋转向量感应数据,将旋转向量感应数据下发至运行于操作系统中的应用程序。
全文摘要
本发明公开了一种模拟器旋转向量感应数据获取方法及装置。一种模拟器旋转向量感应数据获取方法包括获取模拟设备从第一姿态到第二姿态的姿态变化信息,所述姿态变化信息包括在模拟设备自身坐标系下,第二姿态相对于第一姿态的三轴旋转角度α、β、γ;根据α、β、γ计算得到模拟设备第二姿态相对于第一姿态的坐标变换矩阵;利用四元数旋转向量表示所述坐标变换矩阵并构成方程组,求解得到模拟设备第二姿态相对于第一姿态的旋转向量感应数据;将旋转向量感应数据发送至模拟器的模拟设备操作系统模块。应用本发明方案,使得在模拟器软件中,也可以实现对旋转向量感应操作方式的模拟。
文档编号G06F3/0346GK103186257SQ20111045691
公开日2013年7月3日 申请日期2011年12月30日 优先权日2011年12月30日
发明者孙元臻, 冉放, 董海峰 申请人:百度在线网络技术(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1