張燕,陳華
(1.南京大學金陵學院,南京210089;2.南京五十中)
引 言
近年來,移動機器人的研究及相關技術應用得到了前所未有的發展。其中移動機器人研究的關鍵技術主要有三種,分別是避障、導航以及路徑規劃。
對未知環境中特別是一些動態環境下的環境辨識和自身定位是當前亟待解決的一個問題。定位技術能夠獲得在任何時刻移動機器人的相對位置,因此是實現導航和保證機器人自主導航的關鍵[1],而移動機器人定位技術中角度信息的獲取就非常重要。目前,常用來獲取角度信息的傳感器是電子羅盤以及陀螺儀,陀螺儀通過對角速度積分獲取角度,存在的問題是容易產生零漂。電子羅盤一般情況下獲取角度信息比較準確,但是遇到周圍有磁場干擾的情況就會出現大的角度偏移產生誤差。本文針對電子羅盤的角度如何糾正的問題進行了研究。
論文研究的平臺是由陀螺儀L3G4200D、三軸MEMS加速度計ADX345、三軸電子羅盤HMC5883以及單片機ATmega128組成一個嵌入式姿態測量系統。在此系統獲取的數據基礎上編寫了上位機軟件,實現了各個傳感器數據的分離,并對電子羅盤獲取的角度信息如何糾正著重進行了研究。
本系統主要由三軸數字陀螺儀L3G4200D、三軸MEMS加速度計ADX345、三軸電子羅盤HMC5883以及單片機ATmega128組成。嵌入式角度測量系統結構框圖如圖1所示。

圖1 嵌入式角度測量系統結構框圖
姿態測量系統的陀螺儀、加速度計、電子羅盤數據通過I2C總線與ATmega128進行通信,下位機ATmega128通過串口將數據上傳到上位機上。上位機采用LabWindows CVI軟件編寫代碼實時讀取串口數據且顯示在界面上。顯示界面如圖2所示。

圖2 上位機顯示傳感器數據
圖2顯示的數據是字符格式,下一步的工作便是編寫代碼將各個部分的數據分離出來。
對于單片機傳輸到上位機的數據設置的格式是:S羅盤角度、陀螺儀x軸角速度、y軸角度、z軸角速度、加速度計x軸加速度、y軸加速度、z軸加速度。
數據分離的流程圖見圖3。打開文件后,首先判斷獲取的字符是否是$,如果不是則繼續獲取下一個字符,直到獲取$符號,接下來讀取$和“;”之間的數據,存儲到字符數組中。接著讀取各個“;”之間的數據存儲到存儲傳感器各個數據的字符數組,直到讀取的字符是回車符,重新讀取第二輪數據存儲到各個字符數組中,當讀取的字符為文件結束符時結束文本讀取。

圖3 傳感器數據分離流程圖
由于電子羅盤讀取的數據受到周圍磁場的干擾非常嚴重,需要對電子羅盤的數據進行修正,目前常用的電子羅盤糾正方式有橢圓假設法和八方向二乘法。
電子羅盤的誤差主要包括硬鐵干擾和軟鐵干擾。由于地磁場是弱磁場,并且地磁場可以認為在一定范圍內是均勻的。硬鐵干擾產生于永久磁鐵或被磁化的金屬,這種干擾與羅盤的相對位置固定,相當于在羅盤的輸出值上增加了一個定值,使羅盤輸出曲線圖的圓心偏移了。軟鐵本身沒有磁性,它被地磁場磁化后獲得磁性,軟鐵干擾產生于地球磁場和羅盤附近的任何磁性材料之間的相互作用,其干擾程度與羅盤的方向有關,使羅盤的輸出曲線畸變成一橢圓。[2-5]

4 磁方向角的定義
設電子羅盤有兩個相互垂直的軸,分別稱為OX 軸和OY 軸,如圖4所示。Ψ 表示電子羅盤測得的磁方向角,定義為從ON 到OX 順時針轉過的角度。設地磁場的水平分量為H0,則磁場分量為Hx=H0cosψ (1)Hy=-H0sinψ (2)
ψ可以由ψ=-arctan(C=(Hy/Hx)求出。
當電子羅盤有誤差時,就會反映在Hx和Hy的變化上。設有誤差時Hx、Hy變為Hx1、Hy1,它們的關系可以寫成:

當角度從0°~360°變化一周時,Hx和Hy合成向量的頂點在平面上的軌跡是個圓,由于誤差的影響,Hx變成了Hx1,Hy變成了Hy1,而Hx1和Hy1合成向量的頂點在平面上的軌跡不再是圓。為了確定該軌跡,我們提出橢圓假設,假設Hx1和Hy1合成向量的頂點在平面上的軌跡是個橢圓,則式(3)改寫為:

即假設對角陣K、正交陣φs和對稱陣φp的乘積等于M,首先正交陣將圓轉了一個角度φs,對稱陣使圓變成一個橢圓,對角陣將橢圓轉了一個角度φs,N 的作用是改變橢圓的中心位置。我們根據橢圓假設在某方向對電子羅盤采樣一組數據Hx1和Hy1,其對應橢圓上的一點,則橢圓方程可以表示成:

式(5)中有5個未知數,讓電子羅盤在5個方向上采樣數據,我們要求5個方向為均勻方向,即0°~360°采集0°、72°、144°、216°和288°這5個方向的數據。設采樣數據為Hx1i和Hy1i(i=1,2,…,5),根據式(5)可列出方程組

其中:

只要采樣方向在0°~360°內大致均勻分布,方程組(6)就有唯一解A、B、C、D、E。它們與式(4)中各系數之間的關系為[6]:

其中,Δ由采樣數據求出,且

只要求出φp、Kx、Ky、bx、by,就可以把橢圓還原成圓。再根據式(4)求得補償校正之后X 軸和Y 軸真實的磁場強度,從而求得準確的航向角。
最小二乘法是一種數據擬合建模法[7],通常是用最小二乘法原理[8]及用最小化誤差的平方和找到一組數據的最佳函數匹配,求出未知函數的最可信賴值作為測量結果。
基于八方向二乘法的電子羅盤誤差補償原理和實現:羅差是地磁場測量值時羅盤所固有的誤差,其對測量精度的影響最大,同時在不同的測試環境下其值是變化的。羅差是由外界干擾而產生的航向誤差,可以分為兩大類:硬磁材料引起的羅差和軟磁材料引起的羅差。
硬磁干擾可以認為是一種永久磁鐵干擾,認為硬磁材料所引起的磁場是均勻分布的,其產生的誤差在航向角0°~360°之間為近似正弦曲線,硬磁羅差△1表示:

式中:φ為補償前羅盤的輸出航向值,B、C 為羅差補償系數。
軟磁材料的本身是不產生磁場的,但是它會被周圍的磁場環境給磁化,從而影響周圍的磁場,它所引起的誤差大小可以分解為兩部分:一是圓周誤差,二是象限羅差,用△2表示:

式中:A、D、E為羅差補償系數。
綜上所述,△φ表示總羅差,所以


由以上分析可以得出,我們的主要工作是求出誤差補償系數,即A、B、C、D、E。具體方法如下:因為一共需要求5個值,為了計算方便,在0°~360°之間取5個實驗點進行誤差測量即可求出補償系數,把后面測得的數據帶入公式就可以得到精確的航向角。
記誤差方程:
UC=H
其中:

根據矩陣的性質,可以求出羅差的補償系數:

本文設計了一個完整的數據獲取、存儲以及電子羅盤數據糾正軟件系統。運行系統首先顯示的界面如圖5所示,接收字符界面可以實時顯示接收的數據,點擊保存可以將數據存儲到文本文件中。下面有兩個按鍵,分別可以彈出電子羅盤角度進行糾正算法處理的兩個界面。

圖5 上位機串口接收界面
點擊圖5中的“角度處理(橢圓羅差法)”按鈕可以彈出如圖6所示的界面。

圖6 橢圓羅差法顯示界面
該界面可以選擇數據采集環境,點擊“補償前”按鈕可以從文本文件中讀取電子羅盤采集的磁場信息,同時能夠顯示在某一環境下采集的磁場數據繪制的電子羅盤的磁場信息;點擊”補償后”按鈕則可以繪制補償后的磁場信息;點擊“退出”按鈕可以退出當前界面,回到主界面。
橢圓羅差法糾正數據對比圖略——編者注。
八方向二乘法數據顯示界面略——編者注。點擊“誤差曲線”按鈕可以顯示數據處理前和處理后與實際數據的區別。點擊“退出”按鈕,可以退出當前界面、回到主界面。
圖7中黑色粗線是糾正前讀取的數據,黑色細線為電子羅盤糾正后的數據。從圖中可以看出,在干擾較小的情況下,電子羅盤讀出來的數據基本與實際數據吻合。

圖7 八方向二乘法數據處理結果
結 語
本文設計了基于多傳感器進行姿態測量的定位系統的上位機軟件,可以實現下位機通過串口將傳感器的數據傳輸到上位機功能,編寫上位機顯示界面顯示下位機獲取的數據。在此基礎上研究了電子羅盤誤差糾正的兩種方式,并且編寫代碼實現了兩種糾正算法的代碼,在此基礎上編寫界面顯示糾正算法的處理結果。實驗結果顯示,經過電子羅盤算法處理之后的數據能夠比較準確地顯示當前的數據信息。
編者注:本文為期刊縮略版,全文見本刊網站www.mesnet.com.cn。
[1]張燕,夏慶鋒,謝鵬飛.基于多傳感器的姿態測量系統設計[J].機器人技術,2013(3).
[2]蔣賢志.數字電子羅盤誤差分析及較正技術研究[J].現代雷達,2005,27(6):39-40.
[3]Robert Smith,Andy Frost,Penny Probert.ASensor Sy stem for the Naviga tion of an Under water Vehicle[J].The Interna tional Journal of Robotiics Research,1999,18(7):697-710.
[4]張愛軍,王昌明,趙輝.三軸電子羅盤的磁航向角誤差補償研究[J].傳感器與微系統,2008,27(8):3-35.
[5]張靜,金志華,田蔚風.無航向基準時數字式磁羅盤的自差校正[J].上海交通大學學報2004,38(10):1757-1860.
[6]劉詩斌、馮曉毅、李宏.基于橢圓假設的電子羅盤誤差補償方法[J].傳感器技術,2002(10).
[7]馬文.磁羅盤誤差補償及數據處理方法研究[D].上海:上海交通大學,2006.
[8]張愛軍,王昌明.趙輝.三軸電子羅盤的磁航向角誤差補償研究[J].傳感器與微系統,2008(8).