王 創,梁 偉,管 啟,丁德銳
(上海理工大學 光電信息與計算機工程學院 上海 200093)
微電子機械系統(MEMS)技術的發展使慣性傳感器行業發生了革命性的變化,這使大規模生產超低成本慣性傳感器成為可能。今天人們可以通過花費十幾塊錢就能夠買到一個具有幾平方毫米的慣性測量單元(IMU)。這些低成本小尺寸的IMU,使得構建大型的IMU陣列成為了可能,科研人員通過融合來自IMU陣列輸出的數據信息,就能獲得單個IMU不可比擬的性能,有關更多IMU陣列系統的具體內容請參見文獻[1]。
低成本的MEMS 類型IMU的輸出數據通常是未經校準補償的[2-4]。集成電路在進行制造和封裝過程中的缺陷,往往導致IMU的靈敏軸沒有完全對齊,從而產生了軸失準誤差和比例誤差,這些誤差項的存在導致了IMU輸出數據的不準確。因此在融合來自IMU的信息前,應該對IMU進行校正補償。在工業界,對IMU進行標定校準需要昂貴的機械校正平臺[5-7]。在實驗室級別的使用過程中,研究者們提出了不需要旋轉機的簡化標定方法[8-10]。這些方法利用重力矢量大小的先驗知識來對未知參數進行估計,但僅限于單個IMU的校正。
近年來,由低成本的IMU組成的慣性傳感器陣列受到越來越多的研究人員的關注。越來越多的研究人員把由低成本IMU組成的慣性傳感器陣列應用在機器人的自主導航中。但是在使用由低成本IMU組成的慣性傳感器陣列進行組合導航時,必須對慣性傳感器陣列進行標定。在對慣性傳感器陣列的標定的過程中不僅要對組成陣列的單個IMU進行標定,還要對慣性傳感器陣列中IMU相對與標準坐標系的偏角進行標定。對單個IMU的校正建模已經非常成熟,但是對IMU陣列的校正模型研究比較少。
鑒于上述分析,本文首先對單個IMU的校正模型進行了分析和建模,然后在單個IMU校正模型的基礎上,根據IMU陣列的特殊性建立了慣性傳感器陣列的校正模型,該模型不僅包含了單個IMU的尺度、偏置和靈敏軸誤差,還包含了慣性傳感器陣列中IMU間的坐標系非對齊誤差。由于慣性傳感器陣列校正模型的非線性,本文構造了基于最小二乘法的代價函數,采用L-M算法來求解校正參數。在進行非線性求解的過程中需要足夠多的外部激勵,為此本文設計了一個具有20面的標準多面體,該20面體采用3D打印機獲取。
在理想情況下IMU的3軸加速度計和3軸陀螺儀使用了同一個正交三維坐標系。加速度計能感知不同方向上的加速度,而陀螺儀能測量圍繞同一軸的角速度。不幸的是,由于IMU的封裝過程的不準確,導致加速度坐標系和陀螺儀坐標系形成兩個不同的非正交坐標系,見圖1。

圖1 IMU的軸失準誤差
由于加速度計的3個靈敏軸和陀螺儀的3個靈敏軸與平臺坐標軸的正交坐標系僅相差較小的角度,則在加速度計坐標中的比力測量可轉化為平臺坐標中的比力估計值
(1)
式中,sp表示平臺坐標系下的加速計受的比力或陀螺儀的角速度,ss表示加速計坐標系下的比力或陀螺儀坐標系下的角速度。這里βij是加速度計或陀螺儀的第i個敏感軸繞第j個平臺正交軸的微小旋轉角。
理想的平臺坐標系是正交的,通過使平臺坐標軸的xp和加速度計坐標的xa靈敏軸重合,則平臺坐標系的yp軸就會落在由xa和ya所成的平面上,那么公式(1)中角βxz、βxy和βyx變為零,加速度計坐標系和平臺坐標的關系可以重新寫為如下形式:
(2)
公式(1)中的β表示加速度計和陀螺儀通用的誤差角,在公式(2)中用α表示適用于加速度計的情況。
如前所述,陀螺儀和加速度計的測量應該共用相同的參考系,由公式(2)可以得到陀螺儀的相關表達:
(3)
其中:wp和wg分別表示平臺坐標系下的角速度和陀螺儀坐標系下的角速度,γij表示第i個陀螺儀敏感軸繞第j個平臺軸的微小旋轉角。
圖1中的xa,ya,za表示加速度計的敏感軸,xp,yp,zp表示理想的正交軸,理想的正交軸和加速計靈敏軸的偏角可以表示為αxy,αxz,αyx,αyz,αzx,αzy。
MEMS類型的傳感器輸出的信息是和電壓成比例的電信號,輸出電壓和作用在傳感器靈敏度軸上物理量之間的關系由制造商的數據表給出,由于MEMS傳感器的固有非線性導致輸出電壓和傳感器測量的信號之間的真實比例不同,我們稱此不同為刻度系數誤差或者比例誤差。此外,MEMS傳感器的輸出信號中通常會含有一個小小的偏差,具體的表現是,即使沒有力作用在傳感器上,傳感器也會有非零的輸出,稱該非零輸出為偏置。
對加速度計和陀螺儀都受到偏差和刻度系數誤差進行如下的建模,其中刻度系數矩陣可以表示為:
(4)
偏置向量建模為:
(5)
針對上述的誤差進行整體的數學建模,則完整的傳感器誤差模型可以用下式表示:
(6)

式(6)是對IMU的確定性誤差的建模,該模型適用于所有的類型的IMU。但是MEMS類型的IMU不僅包含式(6)中包含的確定性誤差,還包含由微電子結構特性造成的隨機誤差,隨機誤差主要是指MEMS類型IMU輸出數據所包含的高斯白噪聲和bias隨機游走。本文僅僅對MEMS類型IMU陣列的確定性誤差進行校正。
上一節對MEMS類型IMU的確定性誤差進行了數學建模,本小節主要對IMU陣列的確定誤差進行了數學模型的建立。IMU陣列所包含的誤差不僅含有來自單個IMU的靈敏軸失準誤差、偏置和刻度誤差,還包括IMU陣列中不同IMU之間的非對齊誤差。


(7)

通過以上對IMU陣列獨有的誤差項的分析,本文在單個IMU確定性誤差模型的基礎上建立了IMU陣列的誤差模型,在IMU陣列的誤差模型中假設陣列中第i個加速度計的輸出可以看做為第j個加速度計的輸入和參數θ(j)的函數:
(8)
其中:

(9)

根據上述對參數的物理化解釋,IMU陣列校正的參數模型表示如下:

(10)
通過觀察式(10)可以知道當j=i時,需要估計的參數就是單個IMU校正的參數,此時的IMU陣列校正模型退化成了單個IMU校正;當j≠i時,校正的參數是包含IMU陣列不同IMU間的非對齊誤差。

圖1 IMU陣列校正流程
在上一節中本文建立了IMU陣列的誤差模型,通過公式(10)可以知道參數θ(j),j∈(1.M)包含了IMU陣列中單個IMU的軸失準誤差、偏置、刻度誤差和IMU陣列中IMU間的非對齊誤差。通過建模分析可知校正的參數θ(j)的維度是15維。傳統的六面標定法顯然不能夠為IMU陣列的校正提供如此多的校正激勵,為此本文針對IMU陣列的校正設計了一個20面體校正裝置,該校正裝置能夠為IMU陣列校正提供充足的外部激勵。
在IMU陣列誤差模型和本文所設計的校正裝置基礎上設計了如圖1所示的校正方案。


(11)
式中,c代表余弦函數,s代表正弦函數,φ表示偏航角、φ表示俯仰角、ψ表示翻滾角。
(12)
式中,φn和ψn分別表示第i個IMU的俯仰角和翻滾角。g是當地的重力加速度。
當IMU陣列靜止時,輸入矢量只有2自由度,而每個加速度計提供了一個在3中的重力矢量的估計值。這意味15維的校正參數通過式(12)的變換,減少了3維,只要能夠在校正過程中提供至少12個非共面的方向激勵,參數θ(j)就能夠得到估計。
假設式(8)中的測量噪聲為高斯白噪聲,且不同IMU之間的噪聲互不相關,通過求解如下代價函數最小值來得到參數θ(j)的最優估計:
(13)

(14)
式中,[a]k,k∈(x,y,z)表示向量a中的第k個元素。
通過上述的分析可以知道IMU陣列需要校正的參數有15維,經過公式(12)對輸入的重力加速的簡單變換,使IMU陣列的校正激勵輸入從15維降低到了12維。針對12維的校正激勵輸入,傳統的六面標定法顯然已經不能夠滿足IMU陣列的校正需求,這主要是由于六面法提供的激勵不能夠使方程校正方程(13)滿秩,方程不滿秩就會導致校正參數結果的不唯一,這顯然不是IMU陣列參數校正需要的結果。
為了保證在IMU陣列校正的過程中獲得充足的方向激勵,本文設計了一個如圖2所示的正20面球體。該球體是由20個平面組成,它能夠提供20個不同方向的平面,每個平面都能為IMU陣列的校正提供方向上的激勵。

圖2 IMU陣列校正裝置
多面體的提供的方向數量決定了校正的精度,精度和校正時間符合正相關的關系。因此在標定實驗過程中,用戶可以根據實際的需求來選取合適的校正方向數和靜止時間。本文所設計的20面體另一個好處是它能夠平均一些隨機誤差和一些未建模的誤差。
為了驗證本文所提的校正方案的有效性,本文對如圖3所示的IMU陣列進行了校正,該IMU陣列集成了來自Invensense的32個MPU-9250型IMU和一個來自Atmel的AT32UC3C2512微控制器。

圖3 IMU陣列單元

由于選取的IMU陣列單元中的IMU個數太多,本文只對陣列中的前6個IMU的參數做了展示。表1中,刻度系數kx,ky,kz沒有單位,加速度計偏置量bax,bay,baz的單位為m/s2,IMU的安裝誤差角lyz,lzy,lzx的單位為rad,坐標系對齊誤差ξx,ξy,ξz的單位為rad,陀螺儀偏置量bgx,bgy,bgz的單位為rad/s。表1中編號為1的IMU所在的坐標系定義為IMU陣列的參考坐標系。即,編號為1的IMU沒有估計IMU之間額外對齊誤差。通過分析表1中的校正均值校正結果的量程值表明,校正結果的一致性。
為了說明校正參數的準確性,本文參考了Invensense公司的MPU-9250技術手冊,并使用了第一個IMU估計參數的結果和官方所給的參數進行了比較,結果如表2和表3所示。

表1 數據表

IMUlzylzxξxξyξzbgxbgybgz1-0.003 66-0.005 34000-0.509 62-0.390 780.182 87622.23E-050.005 440.001 538-0.002 66-0.003 75-0.190 83-0.532 95-1.121 763-0.001 18-0.002 39-0.004 960.001 218-0.002 171.385 679-0.076 150.129 85240.002 520.000 8970.000 9610.001 83-0.005 22-0.699 93-0.462 8-0.407 5350.002 1450.003 183-0.002 690.002 1730.000 744-1.311 58-0.655 980.840 20860.008 1060.025 504 20.000 5810.002 468-0.007 394-0.183 961.006 5840.126 783

表2 加速度計比例因子誤差

表3 敏感軸失準誤差

表4 加速計和陀螺儀的偏置
表2和表3的左邊是經過所提校正方案得到的校正結果,右邊是MPU-9250技術手冊提供的加速度計的比例因子誤差和敏感軸失準誤差的范圍,由于MEMS類型的傳感器受環境溫度的影響,不同的校正環境的溫度會導致不同的校正結果,但是兩者的校正的數量級還在同一個級別,這證明了所提校正方法的有效性。
對于MEMS型的IMU,它的加速度計和陀螺儀的偏置是隨機游走的,還不能針對長時間的偏置給出一個長時間的標定輸出,表4僅僅給出了在室溫為25 ℃的環境下,對加速計和陀螺儀的偏置的標定結果。
本文首先分析了單個IMU的確定性誤差,并對單個IMU的確定性誤差建立了數學模型。然后在單個IMU誤差數學模型的基礎上,考慮到IMU陣列的特殊性,設計了一套基于IMU陣列確定性誤差的標定方案。該標定方案主要是利用當地的重力加速度作為校正過程的系統輸入,并利用該輸入構造了關于IMU陣列校正參數最小二乘問題,由于在求解過程中需要外接提供充足的方向激勵,本文又設計了20面球體,如圖2所示。該20面球體不僅能夠為IMU陣列的校正提供充足的外部激勵還能夠平均一些隨機誤差和非建模的誤差。為了測試標定的實驗結果本文采用了由32個IMU組成的IMU陣列作為標定對象,標定結果見表一。把經過標定的結果和Invensense公司的MPU-9250技術手冊所提供的標定結果進行了比較,結果表明本文所提的標定方案能夠提供一個較好的標定結果。本文所提的標定方案不僅適合于IMU陣列的標定,同時也適合單個IMU的標定。