簡體   English   中英

Android的“游戲旋轉矢量”傳感器是否忽略了繞垂直軸的旋轉?

[英]Does Android's “Game Rotation Vector” sensor ignore rotation around vertical axis?

我正在開發一款使用Android傳感器的應用程序,以幫助車輛在室內導航。 作為我對不同傳感器的評估過程的一部分,我想嘗試“旋轉矢量”傳感器。 由於各種原因,磁場讀數對我的位置不是很有用,因此我想嘗試“游戲旋轉矢量”傳感器(傳感器融合,可從API級別18及更高版本獲得)。 描述表明它與常規旋轉矢量傳感器相同,除了沒有使用磁場信息來校正垂直軸周圍的陀螺儀漂移。

在尋找有關旋轉矢量傳感器的信息時,我發現了Google的一個示例 ,他們使用3d立方體顯示旋轉矢量傳感器。 它工作得非常好,除了對局部磁場非常敏感(我遠北,更糟糕的是,因為這里的水平分量非常小)。

由於長期漂移可以通過其他參考數據(地圖信息)進行補償,我想為我的應用程序使用游戲旋轉矢量傳感器。 但是,在示例代碼中將所有引用從“TYPE_ROTATION_VECTOR”更改為“TYPE_GAME_ROTATION_VECTOR”時,立方體不再對圍繞垂直軸的旋轉做出反應(例如,我旋轉我的椅子,將設備放在我面前)。 在另外兩個方向上傾斜設備移動了立方體。 我也注意到這次立方體更加“遲鈍”,對任何運動反應都非常緩慢。

這是游戲旋轉矢量傳感器應該工作的方式(例如,忽略任何Z軸旋轉)? 這是有道理的,因為在后排座位上玩的游戲玩家不應該受到車輛轉彎的影響,但同時它與Google提供的描述(我的第一個鏈接)不同。 根據描述,我的印象是它會慢慢漂移,而不是忽略所有的旋轉。

對於這個問題的任何意見,我將深表感謝。

最好的祝福,

約翰

好的,萬一有人碰巧發現這個,這是我的發現:

游戲旋轉矢量傳感器確實檢測繞垂直軸的旋轉。 在大多數情況下它非常准確。

然而,它有幾個問題......首先,在靜止時它會加速水平漂移(即使基於陀螺儀的方向具有線性漂移)。 對於我的設備,游戲旋轉矢量開始很好,但加速,最后在一個小時內漂移超過400度。

其次,更令人不安的是,它似乎沒有忽略磁場,這與官方描述(在問題中相關)相反。 我試着在停車場周圍駕駛,我的設備固定在乘客座位上,游戲旋轉矢量很大程度上落后(在一次完整旋轉超過40秒后超過180度),而集成的陀螺儀數據准確無誤度。 當陀螺儀在零度左右徘徊時,它也顯示出旋轉的變化,這表明它實際上補償了(我認為是)磁場的變化。

我仍然不知道為什么它在我之前鏈接的測試應用程序中表現得很糟糕,但我已經決定使用互補濾波器來組合加速度計和陀螺儀數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM