專利名稱:一種模擬器重力感應數(shù)據(jù)獲取方法及裝置的制作方法
技術領域:
本發(fā)明涉及模擬器技術領域,特別是涉及一種模擬器重力感應數(shù)據(jù)獲取方法及裝置。
背景技術:
模擬器(emulator)也稱仿真器(simulator),是指通過軟件方式模擬硬件設備的功能和操作系統(tǒng),建立起具有完整硬件功能的、運行在一個隔離環(huán)境中的虛擬系統(tǒng)。模擬器的形式多種多樣,常見的模擬器多是基于PC機的,例如在PC機中模擬各種游戲機、便攜設備,甚至在PC機中模擬另外一臺或多臺PC機。模擬器的主要作用,一方面是使得在某種平臺上能夠運行其他平臺上的軟件,例如在PC機上玩游戲機中的游戲;另一方面是用軟件模擬的方式,提供用于測試設備的環(huán)境,以便于數(shù)據(jù)搜集,bug定位等等。對于游戲機、手機等設備的模擬器而言,一個重要的功能就是實現(xiàn)操作方式的模擬,常見的方式是把游戲機搖桿、按鍵、手機按鍵等映射到PC機上的鍵盤、鼠標等操作設備,然而隨著技術的發(fā)展,現(xiàn)在各種設備上的輸入方式已經(jīng)不僅僅限于簡單的按鍵操作,例如智能手機、平板電腦上的觸屏操作、軌跡球操作、感應操作等等都已經(jīng)逐漸成為主流的操作方式。目前,觸屏操作和軌跡球操作已經(jīng)可以用鍵盤或鼠標的方式模擬實現(xiàn),但是,對于感應操作而言,需要依賴設備中內(nèi)置的感應器硬件設備(例如重力感應器、磁力感應器、姿態(tài)感應器、旋轉感應器等等)來實現(xiàn),在現(xiàn)有的模擬器軟件中,還無法實現(xiàn)對各類感應操作方式的模擬。
發(fā)明內(nèi)容
為解決上述技術問題,本發(fā)明實施例提供一種模擬器重力感應數(shù)據(jù)獲取方法及裝置,以實現(xiàn)在模擬器軟件中對重力感應操作方式的模擬,技術方案如下:一種模擬器重力感應數(shù)據(jù)獲取方法,包括:獲取模擬設備當前的模擬姿態(tài)信息,所述姿態(tài)信息包括:模擬設備在自身坐標系下相對于標準姿態(tài)的三軸旋轉角度α、β、Y ;根據(jù)α、β、Y計算得到模擬設備當前姿態(tài)相對于標準姿態(tài)的坐標變換矩陣;以所述坐標變換矩陣乘以模擬設備在標準姿態(tài)下的重力向量,得到模擬設備在當前姿態(tài)下的重力感應數(shù)據(jù);將重力感應數(shù)據(jù)發(fā)送至模擬器的模擬設備操作系統(tǒng)模塊。根據(jù)本發(fā)明的一種實施方式,所述標準姿態(tài)為:設備正面朝上水平放置,且設備上側面朝向正北。根據(jù)本發(fā)明的一種實施方式,所述模擬設備自身坐標系為:X軸從設備左側面指向右側面、Y軸從設備下側面指向上側面、Z軸從設備的背面指向正面。
根據(jù)本發(fā)明的一種實施方式,所述α、β、Y分別為:設備圍繞X、Y、Z軸逆時針方向旋轉的角度。根據(jù)本發(fā)明的一種實施方式,所述根據(jù)α、β、Y計算得到模擬設備當前姿態(tài)相對于標準姿態(tài)的坐標變換矩陣,包括:根據(jù)Υ計算得到從標準姿態(tài)變?yōu)榈谝粫簯B(tài)的坐標變換矩陣RZ,其中,設備從標準姿態(tài)圍繞Z軸旋轉角度Υ后變?yōu)榈谝粫簯B(tài);根據(jù)α計算得到從第一暫態(tài)變?yōu)榈诙簯B(tài)的坐標變換矩陣RX,其中,設備從第一暫態(tài)圍繞X軸旋轉角度α后變?yōu)榈诙簯B(tài);根據(jù)β計算得到從第二暫態(tài)變?yōu)楫斍白藨B(tài)的坐標變換矩陣RY,其中,設備從第二暫態(tài)圍繞Y軸旋轉角度β后變?yōu)楫斍白藨B(tài);則模擬設備當前姿態(tài)相對于標準姿態(tài)的坐標變換矩陣R = RYRXRZ。一種模擬器重力感應數(shù)據(jù)獲取裝置,包括:姿態(tài)信息獲取單元,用于獲取模擬設備當前的模擬姿態(tài)信息,所述姿態(tài)信息包括:模擬設備在自身坐標系下相對于標準姿態(tài)的三軸旋轉角度α、β、Y ;變換矩陣計算單元,用于根據(jù)α、β、Y計算得到模擬設備當前姿態(tài)相對于標準姿態(tài)的坐標變換矩陣;感應數(shù)據(jù)計算單元,用于以所述坐標變換矩陣乘以模擬設備在標準姿態(tài)下的重力向量,得到模擬設備在當前姿態(tài)下的重力感應數(shù)據(jù);感應數(shù)據(jù)發(fā)送單元,用于將重力感應數(shù)據(jù)發(fā)送至模擬器的模擬設備操作系統(tǒng)模塊。根據(jù)本發(fā)明的一種實施方式,所述標準姿態(tài)為:設備正面朝上水平放置,且設備上側面朝向正北。根據(jù)本發(fā)明的一種實施方式,所述模擬設備自身坐標系為:X軸從設備左側面指向右側面、Y軸從設備下側面指向上側面、Z軸從設備的背面指向正面。根據(jù)本發(fā)明的一種實施方式,所述α、β、Y分別為:設備圍繞X、Y、Z軸逆時針方向旋轉的角度。根據(jù)本發(fā)明的一種實施方式,所述變換矩陣計算單元,包括:第一計算子單元,用于根據(jù)Y計算得到從標準姿態(tài)變?yōu)榈谝粫簯B(tài)的坐標變換矩陣Rz,其中,設備從標準姿態(tài)圍繞Z軸旋轉角度Υ后變?yōu)榈谝粫簯B(tài);第二計算子單元,用于根據(jù)α計算得到從第一暫態(tài)變?yōu)榈诙簯B(tài)的坐標變換矩陣Rx,其中,設備從第一暫態(tài)圍繞X軸旋轉角度α后變?yōu)榈诙簯B(tài);第三計算子單元,用于根據(jù)β計算得到從第二暫態(tài)變?yōu)楫斍白藨B(tài)的坐標變換矩陣RY,其中,設備從第二暫態(tài)圍繞Y軸旋轉角度β后變?yōu)楫斍白藨B(tài);第四計算子單元,用于計算模擬設備當前姿態(tài)相對于標準姿態(tài)的坐標變換矩陣R=RyRxRz。本發(fā)明還提供一種模擬器系統(tǒng),包括如前所述的模擬器重力感應數(shù)據(jù)獲取裝置以及模擬設備操作系統(tǒng)模塊;所述模擬設備操作系統(tǒng)模塊,用于調(diào)用所述模擬器重力感應數(shù)據(jù)獲取裝置所發(fā)送的重力感應數(shù)據(jù),將重力感應數(shù)據(jù)下發(fā)至運行于操作系統(tǒng)中的應用程序。本發(fā)明實施例所提供的技術方案,利用用戶輸入的模擬設備相對于標準姿態(tài)的三軸旋轉角度信息,計算得到模擬設備在當前姿態(tài)下的重力感應數(shù)據(jù),該重力感應數(shù)據(jù)可以直接發(fā)送至操作系統(tǒng),供上層應用程序調(diào)用。相當于模擬了硬件重力感應器的功能,使得在模擬器軟件中,也可以實現(xiàn)對重力感應操作方式的模擬。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明中記載的一些實施例,對于本領域普通技術人員來講,還可以根據(jù)這些附圖獲得其他的附圖。圖1為硬件設備的感應架構示意圖;圖2為本發(fā)明實施例的模擬器系統(tǒng)架構示意圖;圖3為本發(fā)明實施例的設備坐標系示意圖;圖4為本發(fā)明實施例模擬器重力感應數(shù)據(jù)獲取方法流程圖;圖5為本發(fā)明實施例的坐標系變換示意圖;圖6為本發(fā)明實施例模擬器重力感應數(shù)據(jù)獲取裝置的結構示意圖;圖7為Android設備的感應架構示意圖;圖8為本發(fā)明實施例的Android模擬器系統(tǒng)架構示意圖。
具體實施例方式為了使本領域技術人員更好地理解本發(fā)明中的技術方案,下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行詳細地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領域普通技術人員所獲得的所有其他實施例,都應當屬于本發(fā)明保護的范圍。圖1所示為正常硬件設備的感應架構示意圖:驅(qū)動層的作用是提供操作系統(tǒng)與感應器硬件的通信接口,獲取感應器所獲得的感應數(shù)據(jù)提供給應用程序進行調(diào)用。然而在模擬器中,并不具有感應器硬件,操作系統(tǒng)的驅(qū)動層無法獲取到相應的感應數(shù)據(jù),因而無法直接對需要感應數(shù)據(jù)作為輸入的應用程序進行模擬運行或測試。為解決以上問題,本發(fā)明提供一種模擬器系統(tǒng),如圖2所示,該系統(tǒng)包括模擬器感應數(shù)據(jù)獲取裝置110和模擬設備操作系統(tǒng)模塊120,其中模擬器感應數(shù)據(jù)獲取裝置110的作用是將用戶輸入的模擬設備姿態(tài)數(shù)據(jù)轉換為感應數(shù)據(jù)并傳入操作系統(tǒng),相當于模擬了硬件感應器的功能。模擬設備操作系統(tǒng)模塊120則是以軟件的方式模擬了設備的操作系統(tǒng)。對于本發(fā)明而言,模擬器感應數(shù)據(jù)獲取裝置110的具體功能是將用戶輸入的模擬設備姿態(tài)數(shù)據(jù)轉換為重力感應數(shù)據(jù)。重力感應數(shù)據(jù)的含義是:首先定義設備自身的坐標系,在這個坐標系下,對應著一個設備所受重力加速度的向量表示;當設備的空間姿態(tài)發(fā)生變化時,坐標系的方向也會發(fā)生變化,相應的重力加速度向量也會發(fā)生變化,所謂重力感應數(shù)據(jù),就是數(shù)據(jù)處在各種姿態(tài)時,針對當前坐標系的重力加速度向量表示。
為便于計算,一般還會定義一個設備標準姿態(tài),在標準姿態(tài)下,設備僅受到在一個坐標軸方向的、大小為g 9.8的重力加速度分量,而在其他坐標軸方向的重力加速度分量為O。一般習慣定義設備水平放置(正面朝上、背面朝下)時為標準狀態(tài)。根據(jù)一般習慣,可以把設備近似看做一個六面體,具有上側面、下側面、左側面、右側面、正面、背面六個面,定義X軸為從設備左側面指向右側面的方向、Y軸為從設備下側面指向上側面的方向、Z軸為從設備的背面指向正面的方向,參見圖3所示。此外,定義設備正面朝上水平放置、上側面朝向正北的姿態(tài)為標準姿態(tài),則在標準姿態(tài)下,設備收到的重力加速度向量表示為:
權利要求
1.一種模擬器重力感應數(shù)據(jù)獲取方法,其特征在于,包括: 獲取模擬設備當前的模擬姿態(tài)信息,所述姿態(tài)信息包括:模擬設備在自身坐標系下相對于標準姿態(tài)的三軸旋轉角度α、β、Y ; 根據(jù)α、β、Υ計算得到模擬設備當前姿態(tài)相對于標準姿態(tài)的坐標變換矩陣; 以所述坐標變換矩陣乘以模擬設備在標準姿態(tài)下的重力向量,得到模擬設備在當前姿態(tài)下的重力感應數(shù)據(jù); 將重力感應數(shù)據(jù)發(fā)送至模擬器的模擬設備操作系統(tǒng)模塊。
2.根據(jù)權利要求1所述的方法,其特征在于,所述標準姿態(tài)為: 設備正面朝上水平放置,且設備上側面朝向正北。
3.根據(jù)權利要求1所述的方法,其特征在于,所述模擬設備自身坐標系為: X軸從設備左側面指向右側面、Y軸從設備下側面指向上側面、Z軸從設備的背面指向正面。
4.根據(jù)權利要求1所述的方法,其特征在于,所述α、β、Y分別為: 設備圍繞X、Y、Z軸逆時針方向旋轉的角度。
5.根據(jù)權利要求1所述的方法,其特征在于,所述根據(jù)α、β、Y計算得到模擬設備當前姿態(tài)相對于標準姿態(tài)的坐標變換矩陣,包括: 根據(jù)Y計算得到從標準姿態(tài)變?yōu)榈谝粫簯B(tài)的坐標變換矩陣Rz,其中,設備從標準姿態(tài)圍繞Z軸旋轉角度Y后變?yōu)榈谝粫簯B(tài); 根據(jù)α計算得到從第一暫態(tài)變?yōu)榈诙簯B(tài)的坐標變換矩陣Rx,其中,設備從第一暫態(tài)圍繞X軸旋轉角度α后變?yōu)榈诙簯B(tài); 根據(jù)β計算得到從第二暫態(tài)變?yōu)楫斍白藨B(tài)的坐標變換矩陣Ry,其中,設備從第二暫態(tài)圍繞Y軸旋轉角度β后變?yōu)楫斍白藨B(tài); 則模擬設備當前姿態(tài)相對于標準姿態(tài)的坐標變換矩陣R = RYRXRZ。
6.一種模擬器重力感應數(shù)據(jù)獲取裝置,其特征在于,包括: 姿態(tài)信息獲取單元,用于獲取模擬設備當前的模擬姿態(tài)信息,所述姿態(tài)信息包括:模擬設備在自身坐標系下相對于標準姿態(tài)的三軸旋轉角度α、β、Y ; 變換矩陣計算單元,用于根據(jù)α、β、Υ計算得到模擬設備當前姿態(tài)相對于標準姿態(tài)的坐標變換矩陣; 感應數(shù)據(jù)計算單元,用于以所述坐標變換矩陣乘以模擬設備在標準姿態(tài)下的重力向量,得到模擬設備在當前姿態(tài)下的重力感應數(shù)據(jù); 感應數(shù)據(jù)發(fā)送單元,用于將重力感應數(shù)據(jù)發(fā)送至模擬器的模擬設備操作系統(tǒng)模塊。
7.根據(jù)權利要求6所述的裝置,其特征在于,所述標準姿態(tài)為: 設備正面朝上水平放置,且設備上側面朝向正北。
8.根據(jù)權利要求6所述的裝置,其特征在于,所述模擬設備自身坐標系為: X軸從設備左側面指向右側面、Y軸從設備下側面指向上側面、Z軸從設備的背面指向正面。
9.根據(jù)權利要求6所述的裝置,其特征在于,所述α、β、Y分別為: 設備圍繞X、Y、Z軸逆時針方向旋轉的角度。
10.根據(jù)權利要求6所述的裝置,其特征在于,所述變換矩陣計算單元,包括:第一計算子單元,用于根據(jù)Y計算得到從標準姿態(tài)變?yōu)榈谝粫簯B(tài)的坐標變換矩陣Rz,其中,設備從標準姿態(tài)圍繞Z軸旋轉角度Y后變?yōu)榈谝粫簯B(tài); 第二計算子單元,用于根據(jù)α計算得到從第一暫態(tài)變?yōu)榈诙簯B(tài)的坐標變換矩陣Rx,其中,設備從第一暫態(tài)圍繞X軸旋轉角度α后變?yōu)榈诙簯B(tài); 第三計算子單元,用于根據(jù)β計算得到從第二暫態(tài)變?yōu)楫斍白藨B(tài)的坐標變換矩陣RY,其中,設備從第二暫態(tài)圍繞Y軸旋轉角度β后變?yōu)楫斍白藨B(tài); 第四計算子單元,用于計算模擬設備當前姿態(tài)相對于標準姿態(tài)的坐標變換矩陣R =RyRxRz。
11.一種模擬器系統(tǒng),其特征在于,包括如權利要求6-10任一項所述的模擬器重力感應數(shù)據(jù)獲取裝置以及模擬設備操作系統(tǒng)模塊; 所述模擬設備操作系統(tǒng)模塊,用于調(diào)用所述模擬器重力感應數(shù)據(jù)獲取裝置所發(fā)送的重力感應數(shù)據(jù),將重力感應數(shù)據(jù)下發(fā)至運行于操作系統(tǒng)中的應用程序。
全文摘要
本發(fā)明公開了一種模擬器重力感應數(shù)據(jù)獲取方法及裝置。一種模擬器重力感應數(shù)據(jù)獲取方法包括獲取模擬設備當前的模擬姿態(tài)信息,所述姿態(tài)信息包括模擬設備在自身坐標系下相對于標準姿態(tài)的三軸旋轉角度α、β、γ;根據(jù)α、β、γ計算得到模擬設備當前姿態(tài)相對于標準姿態(tài)的坐標變換矩陣;以所述坐標變換矩陣乘以模擬設備在標準姿態(tài)下的重力向量,得到模擬設備在當前姿態(tài)下的重力感應數(shù)據(jù);將重力感應數(shù)據(jù)發(fā)送至模擬器的模擬設備操作系統(tǒng)模塊。應用本發(fā)明方案,使得在模擬器軟件中,也可以實現(xiàn)對重力感應操作方式的模擬。
文檔編號G06F17/50GK103186687SQ20111045663
公開日2013年7月3日 申請日期2011年12月30日 優(yōu)先權日2011年12月30日
發(fā)明者孫元臻, 冉放, 董海峰 申請人:百度在線網(wǎng)絡技術(北京)有限公司