一種模擬器磁力感應數據獲取方法及裝置的製作方法
2023-05-25 00:11:21 2
專利名稱:一種模擬器磁力感應數據獲取方法及裝置的製作方法
技術領域:
本發明涉及模擬器技術領域,特別是涉及一種模擬器磁力感應數據獲取方法及裝置。
背景技術:
模擬器(emulator)也稱仿真器(simulator),是指通過軟體方式模擬硬體設備的功能和作業系統,建立起具有完整硬體功能的、運行在一個隔離環境中的虛擬系統。模擬器的形式多種多樣,常見的模擬器多是基於PC機的,例如在PC機中模擬各種遊戲機、便攜設備,甚至在PC機中模擬另外一臺或多臺PC機。模擬器的主要作用,一方面是使得在某種平臺上能夠運行其他平臺上的軟體,例如在PC機上玩遊戲機中的遊戲;另一方面是用軟體模擬的方式,提供用於測試設備的環境,以便於數據搜集,bug定位等等。對於遊戲機、手機等設備的模擬器而言,一個重要的功能就是實現操作方式的模擬,常見的方式是把遊戲機搖杆、按鍵、手機按鍵等映射到PC機上的鍵盤、滑鼠等操作設備,然而隨著技術的發展,現在各種設備上的輸入方式已經不僅僅限於簡單的按鍵操作,例如智慧型手機、平板電腦上的觸屏操作、軌跡球操作、感應操作等等都已經逐漸成為主流的操作方式。目前,觸屏操作和軌跡球操作已經可以用鍵盤或滑鼠的方式模擬實現,但是,對於感應操作而言,需要依賴設備中內置的感應器硬體設備(例如重力感應器、磁力感應器、姿態感應器、旋轉感應器等等)來實現,在現有的模擬器軟體中,還無法實現對各類感應操作方式的模擬。
發明內容
為解決上述技術問題,本發明實施例提供一種模擬器磁力感應數據獲取方法及裝置,以實現在模擬器軟體中對磁力感應操作方式的模擬,技術方案如下:一種模擬器磁力感應數據獲取方法,包括:獲取模擬設備當前的模擬姿態信息,所述姿態信息包括:模擬設備在自身坐標系下相對於標準姿態的三軸旋轉角度a、0、Y ;根據a、0、Y計算得到模擬設備當前姿態相對於標準姿態的坐標變換矩陣;以所述坐標變換矩陣乘以模擬設備在標準姿態下的磁力向量,得到模擬設備在當前姿態下的磁力感應數據;將磁力感應數據發送至模擬器的模擬設備作業系統模塊。根據本發明的一種實施方式,所述標準姿態為:設備正面朝上水平放置,且設備上側面朝向正北。根據本發明的一種實施方式,所述模擬設備自身坐標係為:X軸從設備左側面指向右側面、Y軸從設備下側面指向上側面、Z軸從設備的背面指向正面。
根據本發明的一種實施方式,所述a、P、Y分別為:設備圍繞X、Y、Z軸逆時針方向旋轉的角度。根據本發明的一種實施方式,所述根據a、P、Y計算得到模擬設備當前姿態相對於標準姿態的坐標變換矩陣,包括:根據Y計算得到從標準姿態變為第一暫態的坐標變換矩陣RZ,其中,設備從標準姿態圍繞Z軸旋轉角度Y後變為第一暫態;根據a計算得到從第一暫態變為第二暫態的坐標變換矩陣RX,其中,設備從第一暫態圍繞X軸旋轉角度a後變為第二暫態;根據0計算得到從第二暫態變為當前姿態的坐標變換矩陣RY,其中,設備從第二暫態圍繞Y軸旋轉角度P後變為當前姿態;則模擬設備當前姿態相對於標準姿態的坐標變換矩陣R = RyRxRz。一種模擬器磁力感應數據獲取裝置,包括:姿態信息獲取單元,用於獲取模擬設備當前的模擬姿態信息,所述姿態信息包括:模擬設備在自身坐標系下相對於標準姿態的三軸旋轉角度a、0、Y ;變換矩陣計算單元,用於根據a、P、Y計算得到模擬設備當前姿態相對於標準姿態的坐標變換矩陣;感應數據計算單元,用於以所述坐標變換矩陣乘以模擬設備在標準姿態下的磁力向量,得到模擬設備在當前姿態下的磁力感應數據;感應數據發送單元,用於將磁力感應數據發送至模擬器的模擬設備作業系統模塊。根據本發明的一種實施方式,所述標準姿態為:設備正面朝上水平放置,且設備上側面朝向正北。根據本發明的一種實施方式,所述模擬設備自身坐標係為:X軸從設備左側面指向右側面、Y軸從設備下側面指向上側面、Z軸從設備的背面指向正面。根據本發明的一種實施方式,所述a、P、Y分別為:設備圍繞X、Y、Z軸逆時針方向旋轉的角度。根據本發明的一種實施方式,所述變換矩陣計算單元,包括:第一計算子單元,用於根據Y計算得到從標準姿態變為第一暫態的坐標變換矩陣Rz,其中,設備從標準姿態圍繞Z軸旋轉角度Y後變為第一暫態;第二計算子單元,用於根據a計算得到從第一暫態變為第二暫態的坐標變換矩陣Rx,其中,設備從第一暫態圍繞X軸旋轉角度a後變為第二暫態;第三計算子單元,用於根據P計算得到從第二暫態變為當前姿態的坐標變換矩陣RY,其中,設備從第二暫態圍繞Y軸旋轉角度P後變為當前姿態;第四計算子單元,用於計算模擬設備當前姿態相對於標準姿態的坐標變換矩陣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所示,在地磁北極點,磁力線方向為垂直向下;在赤道附近,磁力線方向為水平指向北;在北京,磁力線與地面成一個夾角(角度與緯度相同)。此外,在不同地理位置的磁感應強度大小也不同。因此,如果定義設備正面朝上水平放置、上側面朝向正北的姿態為標準姿態,則在標準姿態下,設備收到的磁感應強度向量表示為:
權利要求
1.一種模擬器磁力感應數據獲取方法,其特徵在於,包括: 獲取模擬設備當前的模擬姿態信息,所述姿態信息包括:模擬設備在自身坐標系下相對於標準姿態的三軸旋轉角度a、P、Y ; 根據a、0、Y計算得到模擬設備當前姿態相對於標準姿態的坐標變換矩陣; 以所述坐標變換矩陣乘以模擬設備在標準姿態下的磁力向量,得到模擬設備在當前姿態下的磁力感應數據; 將磁力感應數據發送至模擬器的模擬設備作業系統模塊。
2.根據權利要求1所述的方法,其特徵在於,所述標準姿態為: 設備正面朝上水平放置,且設備上側面朝向正北。
3.根據權利要求1所述的方法,其特徵在於,所述模擬設備自身坐標係為: X軸從設備左側面指向右側面、Y軸從設備下側面指向上側面、Z軸從設備的背面指向正面。
4.根據權利要求1所述的方法,其特徵在於,所述a、P、Y分別為: 設備圍繞X、Y、Z軸逆時針方向旋轉的角度。
5.根據權利要求1所述的方法,其特徵在於,所述根據a、P、Y計算得到模擬設備當前姿態相對於標準姿態的坐標變換矩陣,包括: 根據Y計算得到從標準姿態變為第一暫態的坐標變換矩陣Rz,其中,設備從標準姿態圍繞Z軸旋轉角度Y後變為第 一暫態; 根據a計算得到從第一暫態變為第二暫態的坐標變換矩陣Rx,其中,設備從第一暫態圍繞X軸旋轉角度a後變為第二暫態; 根據3計算得到從第二暫態變為當前姿態的坐標變換矩陣RY,其中,設備從第二暫態圍繞Y軸旋轉角度P後變為當前姿態; 則模擬設備當前姿態相對於標準姿態的坐標變換矩陣R = RyRxRz。
6.一種模擬器磁力感應數據獲取裝置,其特徵在於,包括: 姿態信息獲取單元,用於獲取模擬設備當前的模擬姿態信息,所述姿態信息包括:模擬設備在自身坐標系下相對於標準姿態的三軸旋轉角度a、0、Y ; 變換矩陣計算單元,用於根據a、0、Y計算得到模擬設備當前姿態相對於標準姿態的坐標變換矩陣; 感應數據計算單元,用於以所述坐標變換矩陣乘以模擬設備在標準姿態下的磁力向量,得到模擬設備在當前姿態下的磁力感應數據; 感應數據發送單元,用於將磁力感應數據發送至模擬器的模擬設備作業系統模塊。
7.根據權利要求6所述的裝置,其特徵在於,所述標準姿態為: 設備正面朝上水平放置,且設備上側面朝向正北。
8.根據權利要求6所述的裝置,其特徵在於,所述模擬設備自身坐標係為: X軸從設備左側面指向右側面、Y軸從設備下側面指向上側面、Z軸從設備的背面指向正面。
9.根據權利要求6所述的裝置,其特徵在於,所述a、P、Y分別為: 設備圍繞X、Y、Z軸逆時針方向旋轉的角度。
10.根據權利要求6所述的裝置,其特徵在於,所述變換矩陣計算單元,包括:第一計算子單元,用於根據Y計算得到從標準姿態變為第一暫態的坐標變換矩陣Rz,其中,設備從標準姿態圍繞Z軸旋轉角度Y後變為第一暫態; 第二計算子單元,用於根據a計算得到從第一暫態變為第二暫態的坐標變換矩陣Rx,其中,設備從第一暫態圍繞X軸旋轉角度a後變為第二暫態; 第三計算子單元,用於根據0計算得到從第二暫態變為當前姿態的坐標變換矩陣ry,其中,設備從第二暫態圍繞Y軸旋轉角度P後變為當前姿態; 第四計算子單元,用於計算模擬設備當前姿態相對於標準姿態的坐標變換矩陣R =RyRxRz。
11.一種模擬器系統,其特徵在於,包括如權利要求6-10任一項所述的模擬器磁力感應數據獲取裝置以及模擬設備作業系統模塊; 所述模擬設備作業系統模塊,用於調用所述模擬器磁力感應數據獲取裝置所發送的磁力感應數據,將磁力 感應數據下發至運行於作業系統中的應用程式。
全文摘要
本發明公開了一種模擬器磁力感應數據獲取方法及裝置。一種模擬器磁力感應數據獲取方法包括獲取模擬設備當前的模擬姿態信息,所述姿態信息包括模擬設備在自身坐標系下相對於標準姿態的三軸旋轉角度α、β、γ;根據α、β、γ計算得到模擬設備當前姿態相對於標準姿態的坐標變換矩陣;以所述坐標變換矩陣乘以模擬設備在標準姿態下的磁力向量,得到模擬設備在當前姿態下的磁力感應數據;將磁力感應數據發送至模擬器的模擬設備作業系統模塊。應用本發明方案,使得在模擬器軟體中,也可以實現對磁力感應操作方式的模擬。
文檔編號G06F17/50GK103186688SQ201110457809
公開日2013年7月3日 申請日期2011年12月30日 優先權日2011年12月30日
發明者孫元臻, 冉放, 董海峰 申請人:百度在線網絡技術(北京)有限公司