IMU 標定 | 工業界和學術界有什麼不一樣?

點擊「計算機視覺life」關注,置頂更快接收消息! 因爲格式問題最好在公衆號上觀看《IMU 標定-工業界和學術界有什麼不一樣?》 本文主要介紹了IMU基本結構原理和偏差的相關概念,IMU偏差模型,並較詳細介紹了商用產品和學術文獻提到的兩種IMU標定方法。 本文閱讀時間約8分鐘html

瞭解IMU和偏差

IMU(Inertial Measurement Unit)是測量運動物體慣性運動,輸出三軸加速度和三軸角速度等信息的電子元件,用於姿態角和運動路徑等測量。IMU經常還包含了磁力計、壓力計、溫度計和GPS等輔助單元,相互配合完成更復雜的任務。git

IMU的應用普遍。放圖說明,姿態角肯定,慣性導航,SLAM,動做捕捉,無人機鏡頭防抖(實現雞頭相似的效果github

gif1.gif

gif2.gif

gif4.gif

六軸IMU的結構以下圖,座標軸通常遵循右手定則,理想狀況下XYZ軸相互正交,加速度計和陀螺儀的軸相互重合。可是一般狀況下,IMU存在必定的誤差。例如,從Inven Sense的MPU-9250芯片內部結構圖能夠看到該加速度計(XY、Z軸)和陀螺儀分開製造,所以加速度計和陀螺儀的座標軸中心並不嚴格重合,甚至加速度計不一樣軸也是分開加工,座標軸也不能保證徹底正交。並且,加工過程或多或少有偏差,如對稱度很差,產生零偏。另外,IMU的內部參數還會隨時間、溫度變化,產生溫漂。算法

pic1.png

IMU出廠時存在參數偏差不可避免,而參數偏差經常會形成嚴重問題:函數

  • 偏置異常,會形成數據漂移嚴重。
  • 軸向正交性和尺度異常,x-,y-,z-軸不正交或尺度不一致,會形成同一失量的模在不一樣方向上不一致。
  • 另外,噪聲也會使測量值失真。

IMU偏差模型

IMU中x-y-z軸的偏置偏差$\mathbf{b}^a$能夠表示爲不一樣軸的零點偏置,即 $$ \mathbf{b}^a = \begin{bmatrix} b_x \ b_y \ b_z \ \end{bmatrix} $$ IMU中x-y-z軸的正交偏差$\mathbf{T}^a $和尺度偏差$\mathbf{K}^a $能夠經過下圖表示。$\mathbf{x}^B$-$\mathbf{y}^B$-$\mathbf{z}^B$爲外部座標系正交歸一的三個軸(能夠理解爲$ |\mathbf{x}^B| = 1$,$ |\mathbf{y}^B| = 1$,$ |\mathbf{z}^B| = 1$),而 $\mathbf{x}^S$ 表示傳感器x軸的放大係數(相比$\mathbf{x}^B$),$\beta_{\mathbf{x}\mathbf{y}}$ 表示x軸在x-y平面內順時針偏離了$\beta_{\mathbf{x}\mathbf{y}}$弧度(小角度近似),其餘參數同理。工具

pic3.png

正交偏差$\mathbf{T}^a$ 一般能夠表示爲 $$ \mathbf{T}^a = \begin{bmatrix} 1 & -\beta_{\mathbf{y}\mathbf{z}} & \beta_{\mathbf{z}\mathbf{y}} \ \beta_{\mathbf{x}\mathbf{z}} & 1 & -\beta_{\mathbf{z}\mathbf{x}} \ -\beta_{\mathbf{x}\mathbf{y}} & \beta_{\mathbf{y}\mathbf{x}} & 1 \ \end{bmatrix} $$ 尺度偏差$\mathbf{K}^a$ 一般能夠表示爲 $$ \mathbf{K}^a = \begin{bmatrix} \mathbf{x}^S & 0 & 0 \ 0 & \mathbf{y}^S & 0 \ 0 & 0 & \mathbf{z}^S \ \end{bmatrix} $$ 在忽略噪聲偏差的條件下,加速度計的偏置偏差$\mathbf{b}^a$、正交偏差$\mathbf{T}^a $和尺度偏差$\mathbf{K}^a$的模型能夠表示爲 $$ \mathbf{a}^O = \mathbf{T}^a \mathbf{K}^a \begin{pmatrix} \mathbf{a}^S + \mathbf{b}^a \end{pmatrix} $$ 其中$\mathbf{a}^S$是加速度計的原始測量值,$\mathbf{a}^O$是加速度計偏差補償後的值。同理,陀螺的偏差模型能夠表示爲 $$ \mathbf{\omega}^O = \mathbf{T}^g \mathbf{K}^g \begin{pmatrix} \mathbf{\omega}^S + \mathbf{b}^g \end{pmatrix} $$ 其中$\mathbf{\omega}^S$是陀螺的原始測量值,$\mathbf{\omega}^O$是陀螺偏差補償後的值。性能

較方便的標定方法

在看嚴謹的標定操做以前,看一下商用產品大疆Spark無人機的標定流程學習

pic2.png

官方給的方法是在水平面上,按照圖片提示六個位置靜止放置片刻,即自動獲得標定參數。因爲重力方向和大小不變,這六個位置分別(近似)是IMU的X、-X、Y、-Y、Z和-Z朝向下的方向,所以至少能夠擬合出加速度計三個軸的尺度因子、偏置以及陀螺儀的偏置。該標定方法有如下的假設測試

  • 重力不變且垂直向下。
  • 保持靜止,能夠測量陀螺儀的偏置。

對於外行人這樣的標定流程簡潔、快捷,適合商用級產品,可是因爲標定數據太少,標定偏差會較大,不利於高精度測量和導航應用,如SLAM等。優化

更精確標定方法

爲了更深刻了解標定原理過程,文獻A robust and easy to implement method for IMU calibration without external equipments 給出了一種更爲精確的IMU標定方法,GitHub上也有相應的Matlab源代碼實現,親試可用,還有動態演示效果不錯。相比商用產品的簡易標定流程,該標定方法有如下幾點不一樣:

  • 給出了加速度計和陀螺儀更復雜的模型。
  • 利用Allan方差的定義,標定陀螺儀的偏置。
  • 大量冗餘數據,保證最優化收斂。利用數十次測量數據而不是僅僅6個位置。
  • 利用Runge-Kutta積分和四元數表示法,實現陀螺儀的軸向誤差和尺度因子的標定。

標定流程圖:

pic4.png

標定首先經過Allan方差定義測試出IMU標定靜止的時間T,等待T時間後,旋轉IMU並靜止,靜止時獲取加速度數據,旋轉時獲取陀螺數據,循環屢次後(36-50次)完成標定操做,隨後算法自動完成標定。

算法首先標定加速度計,利用加速度計測量值的模和重力加速度真實g的方差構建損失函數,利用LM算法,使得最優化快速收斂,獲得$\mathbf{b}^a$、$\mathbf{T}^a $和$\mathbf{K}^a$ 參數。

在標定完加速度計的基礎上,標定陀螺,得到陀螺座標相對於加速度計參考座標的正交偏差,最後偏置和尺度偏差也能經過最優化算法求出。此處有一個處理的小技巧,利用四元數的超複數表示方法,能夠經過積分的辦法,方便地求出一個時序角速度產生的總的角度變化,並利用加速度計獲得的角度和積分得出的角度比較,獲得損失函數,並一樣用LM算法求出陀螺的偏差參數。

實際標定操做和算法處理過程當中,有幾點很重要。

一、和深度學習訓練樣本同樣,IMU標定的最優化過程也須要樣本的平衡性。和複雜一些的非線性最優化相似,IMU參數標定算法通常也是基於LevenbergMarquardt參數算法的擬合算法。而旋轉操做可讓IMU數據(如加速度計)在三維數據空間中造成橢球形,數據均勻分佈在橢球面上可以避免某一軸向的擬合權重過大,形成擬合橢球變形。

二、傳感器對溫度敏感(特別是陀螺儀),所以在沒有溫度計而且溫度補償的條件下,保證IMU的熱平衡很重要。陀螺儀除了零點偏置,還有零點偏置漂移等更多偏差,所以動態調節。

三、對加速度數據積分的起點和終點很關鍵。因爲是人爲轉動IMU產生的抖動比較嚴重,所以轉動的開始和結束不是很清晰,能夠經過濾波減小積分偏差。

四、標定器材配套很重要。手持式標定會引入人爲振動,所以最好爲IMU設計相應穩定可靠的標定裝置,好比具備相似地球儀的旋轉結構,而且帶有刻度、有水平儀的儀器,這樣可以實現垂直狀態和特定角度轉動。

五、利用Allan方差定義,可獲得等待時間。但仍然存在問題,不一樣軸陀螺的Allan方差不同,甚至可能差異很大。

六、IMU的座標絕對基準仍是不能標定獲得。

以上兩種方法制做的輕量級標定工具適用於通常的研究或產品,但對於一些高性能傳感器,它們自身偏差甚至小於標定參數精度,以上標定方法再也不適用。須要不少價格不菲的精密儀器去標定,即提供絕對基準。

推薦閱讀

從零開始一塊兒學習SLAM | 爲何要學SLAM? 從零開始一塊兒學習SLAM | 學習SLAM到底須要學什麼? 從零開始一塊兒學習SLAM | SLAM有什麼用? 從零開始一塊兒學習SLAM | C++新特性要不要學? 從零開始一塊兒學習SLAM | 爲何要用齊次座標? 從零開始一塊兒學習SLAM | 三維空間剛體的旋轉 從零開始一塊兒學習SLAM | 爲啥須要李羣與李代數? 從零開始一塊兒學習SLAM | 相機成像模型 從零開始一塊兒學習SLAM | 不推公式,如何真正理解對極約束? 從零開始一塊兒學習SLAM | 神奇的單應矩陣 從零開始一塊兒學習SLAM | 你好,點雲 從零開始一塊兒學習SLAM | 給點雲加個濾網 從零開始一塊兒學習SLAM | 點雲平滑法線估計 零基礎小白,如何入門計算機視覺? SLAM領域牛人、牛實驗室、牛研究成果梳理 我用MATLAB擼了一個2D LiDAR SLAM 可視化理解四元數,願你再也不掉頭髮 最近一年語義SLAM有哪些表明性工做? 視覺SLAM技術綜述

歡迎關注公衆號:計算機視覺life,一塊兒探索計算機視覺新世界~

相關文章
相關標籤/搜索