感謝大神分享:https://zhuanlan.zhihu.com/p/131342530
1. 概述
标定的本質是參數辨識。首先明确哪些參數可辨識,其次弄清怎樣辨識。
參數包括陀螺儀和加速度計各自的零偏、标度因數、安裝誤差。
辨識就比較豐富了,如果讓各位先不局限于标定任務,想一想你了解的辨識方法有哪些,常見的回答應該有這樣幾個:
1)解析法或最小二乘
2)濾波(kalman等)
3)梯度下降疊代優化
确實沒錯,标定裡用的就是這些方法。這說明标定其實就是一個普通的參數辨識問題,它和你遇到的其他參數辨識任務比,并沒有特殊在哪裡。
本篇文章我們先分析标定的 誤差參數、誤差模型,然後介紹第一種參數辨識方法。這種方法要知道真實的加速度和角速度輸入,
一般要有轉台才能具備這個條件,是以可以把它歸類為基于轉台的标定。其他的标定方法,我們下一篇文章再讨論。
2. 标定參數分析
1) 零偏
這個比較好了解,就是輸出比輸入多了一個常值誤差。
需要注意的是,我們之前通過Allan方差分析,得到了器件的 量化噪聲、角度随機遊走、角速率随機遊走、零偏不穩定性噪聲、速率斜坡,
仔細看,這些都是對零偏品質的分析,也可以直覺的了解為零偏的波動和漂移程度,這裡面并沒有分析零偏本身的大小,而這個才是我們标定裡要去估計的那個常值誤差。
加速度計的零偏在這裡表示為
陀螺儀的零偏在這裡表示為
2) 标度因數誤差
假設器件輸出的是标準機關角速度,那麼輸出和輸入的比就是1。如果不是,就得需要标定,并修正這個比例。
可惡的是,這個誤差不一定是常值,它會随着輸入大小的不同而發生變化,這個就是标度因數的非線性。如果非線性程度比較大,
則需要在标定之前先拟合該非線性曲線,并補償成線性再去做标定。加速度計的标度因數這裡表示如下:
陀螺儀的标度因數這裡表示為:
3) 安裝誤差
一圖勝千言,上圖吧 !
這裡面b坐标系是正交的imu坐标系,g坐标系的三個軸是分别對應三個陀螺儀。由于加工工藝原因,陀螺儀的三個軸并不正交,
和我們導航中使用的正交軸不重合。我們需要仔細想一想,這個安裝誤差怎麼在陀螺輸出中展現出來的,因為我們标定時隻能
采集到陀螺的輸出,而無法直接去測量安裝誤差。理論上,在陀螺坐标軸和b系重合的情況下,我們沿b系某一個坐标軸旋轉,
那麼其他兩個軸是不會有角速度輸出的,而有了安裝誤差以後,便有了輸出,據此,我們就可以建立輸出和誤差之間的關系了。
以圖中一項誤差為例,Sgxy表示的就是y軸的機關輸入,在x陀螺上由安裝誤差造成的輸出。由此,我們可以把所有的安裝誤差都成矩陣形式,即:
加速度計的安裝誤差原理和它一樣,直接給出公式。
這樣一共有12項安裝誤差參數。有的時候,可以簡化為9項,但在其他标定方法中使用比較多,本次的方法不使用,是以等後面用到時再詳細分析。
3. 誤差模型
通過上面的參數分析,我們已經可以很容易地寫出誤差模型了。
陀螺儀:
其中W是陀螺輸出,ω是各坐标軸真實輸入。
加速度計:
其中A是加速度計輸出,a是三個軸真實輸入。
展開來看,就是這樣的:
陀螺儀:
加速度計:
4. 基于轉台的标定
1) 标定原理
在說标定之前,我們先看幾個簡單的小問題。
第一個問題,假如給你下面的方程組,你會怎麼解
應該都能想到,用2式減去1式,得到y=1,然後帶入1式,得到x=0。
第二個問題,下面的式子裡,你可以随意給定a和b的值,并同時會得到c的結果,這個x和y怎麼解。
也很簡單,首先a=1,b=0,得到x,然後把a=0,b=1得到y。
第三個問題,下面式子,同樣是輸入a和b,得到c1和c2,怎麼解。
其實就是前兩個問題的結合,先讓a=0,轉成問題1,得到x和y,随後讓a=1,得到z。
第四個問題,給你下面的式子,可以随意更改ax、ay和az,怎麼解。
想必憑各位的冰雪聰明,一定知道我在說什麼了。到這裡,雖然還沒講标定,但你已經懂标定了;标定就是通過改變輸入,來建構方程組,去解這個方程。
2) 标定方法
轉台等同于真實輸入,當把IMU安裝在轉台上時,IMU坐标系每個軸上的真實角速度和加速度都是已知的(這裡是在轉台經過調平和對準的情況下)。
你轉動轉台的過程,就是建構方程去求解參數的過程。舉個例子,當把IMU豎直向上放的時候,有
我們可以得到:
豎直向下放的時候,可以得到:
這樣就很容易解出Kaz和加速度計零位了。
經過多次這樣的操作,就可以求解所有參數,這就是我們看到的标定資料裡全是多位置轉位方案的原因。另外,可以看出,
我們每次隻給一個軸輸入,另外兩個軸為零,這樣做的好處是每一次得到的方程就隻包含一小部分參數,使求解變得簡單。
這也就是為什麼我們看到的多位置标定方案都是以90度為機關進行旋轉的原因。
另外,需要注意的是,由于器件有噪聲,是以輸出值都是用一段時間的資料取平均,而不是隻選擇一個時間點的值。
5. 拓展思考
1) 最小二乘的使用
理論上,能夠解析求解的,都能夠用最小二乘求解。都學過線性代數,把系數矩陣提取出來,建構多組輸入輸出,就可以計算了,
前提是系數矩陣要滿秩。各位如果感興趣,可以根據标定誤差模型,自己寫一下誤差參數的系數矩陣。
我們能夠想到一點,既然在最小二乘的方法裡,不需要自己去解析求解方程了,那麼其實就沒必要隻給一個軸輸入了,而現實中為什麼不這樣做呢?
因為它沒有帶來額外的好處,對于改變了雖然也能實作,但沒有額外好處的做法,工程中一般不會主動去做,是以還是沿用原來的了。
此處留一個小小的問題,供大家思考:由于最小二乘要一次性求解參數,即系數矩陣要滿秩,那麼我們應該怎樣多次旋轉和停放轉台才能夠使它滿秩呢?
進一步,旋轉和停放的次數最少是多少呢?
2) 包含未知輸入
我們在介紹标定方法的時候,是在假設轉台經過調平和對準的前提下。所謂轉台調平,就是轉台安裝面和地面平行,這樣地球重力加速度在IMU各
個軸上的輸入才是已知的,否則,如果轉台和水準面有個夾角,且夾角未知,那麼儀表的真實輸入就不可計算了。所謂轉台對準,是指轉台的方向
和地理系北向是對齊的,這樣地球自轉角速度在陀螺儀上的分量就是已知的,反之則未知。
這個問題是能夠解決的,但是我們先不直接給出方法,而是同樣用解方程的方式來表達這種思路。我們看下面的方程,可以輸入任意a和b,得到c,裡面x、y、m、n都是未知的。
可以看出,我們能夠計算出x和y,而不能分别算出m和n。但是換一個角度,如果我們隻需要x和y呢,也就是說,
在一個不完全可解的方程裡,如果我們想要的恰恰是那些可解的參數,也足夠了。
回到标定的問題,如果轉台沒有調平和對準,引入了未知數,那麼是否也一樣能識别出要标定的參數呢?
這時候最小二乘方法是否仍然可以使用?這作為本篇文章的第二個問題,供大家思考。