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