免費下載!
[!--downpath--]序言
傳感的調試過程,通常按照原廠提供demo代碼,調試數據插口,將數據流打通即可,在VR中,當帶上頭顯設備,運行應用時,出現甩尾、延遲、不回歸問題,常常束手無策,解決那些小問題,常常占用好多的時間,希望通過自己整理的知識,明晰調試的方向,增強調試效率,達到好的調試療效。自己近幾年在平臺上導出過多種9軸傳感,做過一些內部分享加速度三個公式,并且近半年來從事VR開發工作,VR對9軸傳感要求比手機、平板嚴格更多,碰到的問題也更多,在開發過程中不斷學習和思索,與傳感原廠RD溝通和學習,對9軸傳感有了更深的認識,這整理、分享一下所學知識,希望這篇文章對你們理解9軸傳感有所幫助,:),歡迎你們批評見諒。
9軸傳感
9軸傳感包括3軸加速度計、3軸陀螺儀、3軸磁力計,在實際應用中,須要把這種數據須要經過融合算法后,才才能被應用程序使用,下邊對每種傳感功能、原理以及融合算法進行介紹。
加速度計
人們常說的G-,拿來測量化學在X、Y、Z軸上的重力加速度,單位:m/s^2.
以手機為例,X、Y、Z軸如右圖所示(左手座標系):
當手機平置于桌面時,Z軸指向天空,這時侯X、Y軸的數值接近為0,Z軸的重力加速度約為9.81m/s^2,將手機翻轉后,即屏幕面朝向桌面,此時的Z軸重力加速度約為-9.81m/s^2。
X、Y軸指向天空時加速度三個公式,與前面Z軸同理,有興趣的可以在手機上安裝一個”.apk”來抓取這種數據。
陀螺儀
一般稱為Gyro-,拿來檢測在X、Y、Z軸上的旋轉速度,單位:rad/s。
以手機為例,將手機平放桌面,屏幕朝上,以逆秒針方向旋轉手機,獲得到的是Z軸的加速度值。
有興趣可以安裝“.apk”工具,來查看X、Y、Z軸的加速度值。
磁力計融合算法
想想我們為何須要9軸的數據來確認物體的姿態呢?有了加速度計數據可以確定物體擺放的狀態,比如有加速度計的手機,可以按照手機的橫豎屏狀態來觸發屏幕相應的旋轉,但對于物體的翻轉、旋轉的快慢無從得悉,檢查不到物體的瞬時狀態,這時侯就須要加入陀螺儀,通過加速度和陀螺儀的積分運算(這部份估算可以看下邊的融合算法說明),可以獲得到物體的運動狀態,積分運算與真實狀態存在微小差值,短時間內影響很小,但這個偏差會始終累積,隨著使用時間降低,才會有顯著的偏離,6軸的設備,在轉動360度后,圖象并不能回到原點,就是這個緣由,如同人走散后找不著北一樣,這時侯就須要一個確切的方向,因而引入磁力計,來找到正確的方向進行校準。融合算法是通過這9軸的數據來估算出物體正確的姿態。目前9軸融合算法包括卡爾曼混頻、粒子混頻、互補檢波算法,對于開發者而言,所有的融合算法本基本都是丟入9軸傳感的數據和時間戳,之后獲取到融合算法輸出的四元素,應用所需的就是這組四元素,目前我這兒接觸到的算法包括:
傳感調試
這兒不對特定平臺(MCU、、Linux等),傳感通信插口(I2C、SPI等)、數據傳遞子系統(input、IIO等)詳盡說明,這部份代碼由各廠家直接提供,這兒主要說明一下調試基本流程和方式:
9軸方案選擇
里面主要對傳感的知識做了一些整理和歸納,下邊是我們在做9軸方案選擇的一些實驗,目前選擇市面上使用較多的兩家(ST和)9軸方案進行評估、測試,均是用官方建議最優方案,即:
ST:+
:+
對比內容包括靜態、動態對比以及結合應用體驗來評估2種傳感方案,測試數據包和測試視頻。
動態數據
應用體驗
推論:靜態數據2種方案相差不大,5分鐘內偏斜角度都在1度以內,且有磁力計可以糾正航向問題,都能滿足須要,但在動態數據上,顯著優于ST,在實際體驗中收斂快,能回歸,所以9軸方案優于ST。
參考鏈接
doc
Imu
goole
geek-
捷聯慣導算法心得