摘 要: 特殊物品儲(chǔ)運(yùn)記錄儀是能夠?qū)囕v行駛速度、路線進(jìn)行記錄存儲(chǔ),并通過慣性器件自主導(dǎo)航的智能裝置。以往的儲(chǔ)運(yùn)設(shè)備只能粗略記錄物品受沖擊力的狀況,針對(duì)這一問題,提出一種基于慣性導(dǎo)航系統(tǒng)的儲(chǔ)運(yùn)記錄儀。實(shí)驗(yàn)結(jié)果表明,設(shè)計(jì)的基于MEMS器件的捷聯(lián)式慣性導(dǎo)航系統(tǒng)能夠輸出滿足要求的載體瞬時(shí)速度、加速度、姿態(tài)、位置等,可以明顯加強(qiáng)危險(xiǎn)品、敏感材料的運(yùn)輸監(jiān)控力度。
關(guān)鍵詞: 慣性導(dǎo)航; MEMS; 四元數(shù)法; 初始對(duì)準(zhǔn)
中圖分類號(hào): TN965.7?34 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2015)03?0131?04
Design and realization of transportation recorder for special goods
ZHANG Hai?ning, WANG Bo
(School of Electronics and Information Engineering, Xi’an Technological University, Xi’an 710032, China)
Abstract: In The special goods transportation recorder is an intelligent device which can record the vehicle speed and route, and realize autonomous navigation by inertial devices. The available transportation equipments can only make a rough record on the state when the goods is impacted. A transportation recorder based on inertial navigation system is proposed in this paper to solve this problem. The experimental results show that the designed SINS (strap down inertial navigation system) based on MEMS is able to output instantaneous velocity, acceleration, attitude, position, etc. It can significantly strengthen the monitoring of dangerous goods transportation.
Keywords: inertial navigation; MEMS; quaternion algorithm; initial alignment
0 引 言
本文首先根據(jù)四元數(shù)姿態(tài)角更新算法,求解慣性導(dǎo)航的姿態(tài)角,將MEMS器件的輸出結(jié)果經(jīng)過濾波后進(jìn)行比力變換與積分,求得位置參數(shù)。基于ARM處理器,本文描述了慣性導(dǎo)航系統(tǒng)的硬件設(shè)計(jì)方法,設(shè)計(jì)了基于ITG?3200陀螺儀、ADXL345加速度計(jì)、HMC5843電子羅盤的外圍電路。在導(dǎo)航軟件設(shè)計(jì)方面,采用了嵌入式Linux操作系統(tǒng),詳細(xì)描述了MEMS器件數(shù)據(jù)采集,導(dǎo)航計(jì)算,位置信息輸出任務(wù)的設(shè)計(jì)方法。
1 導(dǎo)航系統(tǒng)硬件部分
1.1 導(dǎo)航處理器
主處理器承擔(dān)著大量數(shù)據(jù)運(yùn)算以及實(shí)時(shí)處理的任務(wù),它的選型尤為重要。本文采用韓國(guó)三星公司32位的RISC微處理器[1]S3C2440作為主處理器。S3C2440微處理器是一款由Samsung公司為手持設(shè)備設(shè)計(jì)的低功耗、高集成度的基于ARM920T核的微處理器。它適用于多種領(lǐng)域,比如嵌入控制、消費(fèi)教育類多媒體、DSP和移動(dòng)式應(yīng)用等。
S3C2440微處理器基于ARM920T內(nèi)核的,0.13 μm CMOS標(biāo)準(zhǔn)單元和存儲(chǔ)單元復(fù)合體。它功耗小,簡(jiǎn)單,穩(wěn)定的設(shè)計(jì)非常適合用于對(duì)電源要求較高的產(chǎn)品上。 它采用了新的總線構(gòu)架(AMBA),提供了杰出的特性。因?yàn)槠鋬?nèi)核為32 b的先進(jìn)處理器,ARM920T 實(shí)現(xiàn)了哈佛緩存體系構(gòu)架,主頻可達(dá)到400 MHz?;谝陨显?,S3C2440微處理器可承擔(dān)傳感器數(shù)據(jù)采集,導(dǎo)航數(shù)據(jù)運(yùn)算,數(shù)據(jù)保存的任務(wù)。
1.2 MEMS器件選擇與外圍電路
慣性測(cè)量組合[2](Inertial Measurement Unit,IMU)是慣性導(dǎo)航的硬件基礎(chǔ)。一般包含三軸正交的陀螺儀和三軸正交的加速度計(jì),分別用來測(cè)量運(yùn)載體的三自由度角運(yùn)動(dòng)和三自由度線加速度。在MEMS傳感器中,目前已經(jīng)研究成熟的產(chǎn)品有壓力、力矩、加速度、流量、磁場(chǎng)、溫度等。本文選擇MEMS加速度計(jì)、陀螺儀和電子羅盤。
MPU?6050對(duì)陀螺儀和加速度計(jì)分別采用了3個(gè)16位的ADC,為了精確跟蹤快速和慢速的運(yùn)動(dòng),傳感器測(cè)量范圍可控,為±250 (°)/s,±500 (°)/s,±1 000 (°)/s,加速度可測(cè)范圍為±16 g。
圖1 陀螺儀電路圖
電子羅盤是通過地磁場(chǎng)來確定方向的傳感器?;裟犴f爾公司的數(shù)字羅盤芯片HMC5843可測(cè)出三個(gè)軸向的地磁強(qiáng)度信息,進(jìn)而可以計(jì)算出運(yùn)動(dòng)物體從北方算起的航向角。
1.3 硬件總體設(shè)計(jì)
所選用的運(yùn)動(dòng)傳感器MPU?6050和數(shù)字羅盤HMC5843均可掛接在S3C2440C處理器的I2C總線上,無需復(fù)雜的信號(hào)調(diào)理電路,其結(jié)構(gòu)圖[3]如圖2所示。
圖2 系統(tǒng)總體結(jié)構(gòu)圖
2 導(dǎo)航算法
2.1 捷聯(lián)慣導(dǎo)系統(tǒng)的基本原理
捷聯(lián)式慣性導(dǎo)航系統(tǒng)(SINS)是指慣性傳感器沒有經(jīng)過物理平臺(tái)進(jìn)行載體角運(yùn)動(dòng)的隔離,而是直接將陀螺儀和加速度計(jì)安裝在載體上,采用計(jì)算機(jī)導(dǎo)航平臺(tái)完成制導(dǎo),其系統(tǒng)原理圖如圖3所示。
陀螺儀測(cè)得的角加速度是載體坐標(biāo)系相對(duì)導(dǎo)航坐標(biāo)系轉(zhuǎn)動(dòng)的加速度在載體坐標(biāo)系三軸上的投影[ωbnb。]加速度計(jì)測(cè)得的數(shù)據(jù)是根據(jù)載體坐標(biāo)系相對(duì)慣性坐標(biāo)系運(yùn)動(dòng)加速度在載體坐標(biāo)系三軸上的投影[fbib。]捷聯(lián)式慣導(dǎo)中的導(dǎo)航計(jì)算是在導(dǎo)航坐標(biāo)系中完成[ωbin]的,因此,需要將慣性元件在載體坐標(biāo)系中的測(cè)量值轉(zhuǎn)換到慣性坐標(biāo)系中。這種轉(zhuǎn)換需要捷聯(lián)矩陣完成。捷聯(lián)矩陣通過數(shù)學(xué)平臺(tái)計(jì)算得到的,具體方法是利用陀螺儀值,減去導(dǎo)航計(jì)算機(jī)計(jì)算出的導(dǎo)航坐標(biāo)系相對(duì)于慣性坐標(biāo)系轉(zhuǎn)動(dòng)的角速度在載體坐標(biāo)系中的投影[ωbin,]得到載體坐標(biāo)系相對(duì)于導(dǎo)航坐標(biāo)系轉(zhuǎn)動(dòng)的角速度在載體坐標(biāo)系中的投影,進(jìn)而得出姿態(tài)矩陣,得到姿態(tài)矩陣后,就可以把加速度計(jì)輸出的載體的比力信息轉(zhuǎn)換到導(dǎo)航坐標(biāo)系軸向,方便展開后續(xù)計(jì)算。
2.2 四元數(shù)基本理論
姿態(tài)解算[4]屬于慣性導(dǎo)航的核心部分。如果姿態(tài)解算能夠?qū)崟r(shí)地反應(yīng)出車輛的狀態(tài),那么對(duì)于速度位置測(cè)算而言就相對(duì)比較容易。姿態(tài)轉(zhuǎn)化有很多種表示方法,例如歐拉角法、方向余弦矩陣法、四元數(shù)法、旋轉(zhuǎn)矢量法等。本文采用的是應(yīng)用廣泛的四元數(shù)法,而旋轉(zhuǎn)矢量法則是一種基于四元數(shù)法的改進(jìn)四元數(shù)法。
四元數(shù)本是用于描述四維空間向量的一種方法,對(duì)于他的線性變換也就是在四維空間中的拉伸和旋轉(zhuǎn),顯而易見,我們用四元數(shù)的向量乘法來表示三維空間中的旋轉(zhuǎn)是綽綽有余的。
根據(jù)歐拉定理,作定點(diǎn)旋轉(zhuǎn)運(yùn)動(dòng)的剛體內(nèi)存在惟一固定的轉(zhuǎn)軸[U,]圍繞該轉(zhuǎn)軸以惟一確定的轉(zhuǎn)角[?,]使得剛體由坐標(biāo)系[a]旋轉(zhuǎn)到坐標(biāo)系[b,]設(shè)[u]為單位矢量,[ξ]是圍繞[U]的轉(zhuǎn)角,定義四元數(shù)為:
x2.4 系統(tǒng)仿真
捷聯(lián)慣性導(dǎo)航[6]系統(tǒng)的研究、設(shè)計(jì)、分析可以先采取計(jì)算機(jī)仿真的方法進(jìn)行驗(yàn)證。這樣做的目的是排除硬件系統(tǒng)本身的誤差對(duì)算法的驗(yàn)證造成的干擾。這些誤差的存在不利于對(duì)捷聯(lián)慣性導(dǎo)航系統(tǒng)及其核心捷聯(lián)算法的調(diào)試和分析。為此,在本文提出的慣性導(dǎo)航研究中,先進(jìn)行仿真。
本文利用Matlab/GUI工具箱存儲(chǔ)車輛運(yùn)行中產(chǎn)生的各項(xiàng)數(shù)據(jù),對(duì)四元數(shù)算法以及速度求解過程進(jìn)行仿真,為后面軟硬件設(shè)計(jì)提供堅(jiān)實(shí)的基礎(chǔ)。
Matlab是美國(guó)MathWorks公司出品的商業(yè)數(shù)學(xué)軟件,用于算法開發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析以及數(shù)值計(jì)算的高級(jí)技術(shù)計(jì)算語言和交互式環(huán)境。
本文將加速度計(jì)和陀螺儀輸出的數(shù)據(jù)由單片機(jī)采集,通過串口發(fā)送給PC機(jī)。Matlab將這些數(shù)據(jù)以txt文件的形式記錄并存儲(chǔ)下來。仿真的結(jié)果與真實(shí)的行駛軌跡相比較,從而判斷數(shù)學(xué)模型的合理性以及算法的正確性。
慣性導(dǎo)航系統(tǒng)是一種航位推算系統(tǒng)[7],運(yùn)行時(shí)需要標(biāo)定10個(gè)初始條件:2個(gè)初始位置坐標(biāo),2個(gè)初始速度坐標(biāo),3個(gè)平臺(tái)失準(zhǔn)角,3個(gè)平臺(tái)失準(zhǔn)角速度。微分方程的解和初始條件緊密相關(guān),慣性導(dǎo)航的精度和初始條件的準(zhǔn)確性更是密不可分。因此,必須明確標(biāo)定加速度計(jì)測(cè)量軸相對(duì)重力加速度矢量的方向和真北方向,以及運(yùn)載體的初始位置和初始速度。
表1 慣性導(dǎo)航初始值設(shè)定
[初始高度 /m\加速度常量 /(m/s)\自轉(zhuǎn)角速度 /(rad/s)\0\9.780 327\7.292 115×10-5\地球長(zhǎng)軸 /m\地球扁率\載體初始速度 /(m/s)\6 378 137\[1298.257]\0\]
3 軟件設(shè)計(jì)
根據(jù)嵌入式軟件的開發(fā)特點(diǎn),首先完成引導(dǎo)程序設(shè)計(jì)[8]、操作系統(tǒng)內(nèi)核移植以及根文件系統(tǒng)制作三個(gè)步驟。內(nèi)核的大小對(duì)目標(biāo)系統(tǒng)的穩(wěn)定性和運(yùn)行效率有著至關(guān)重要的作用。內(nèi)核的裁剪需要針對(duì)目標(biāo)硬件系統(tǒng)。針對(duì)導(dǎo)航硬件系統(tǒng),內(nèi)核支持:ARM處理器、Frame Buffer設(shè)備、ext2文件系統(tǒng)、串口設(shè)備等。對(duì)于可能用到的功能或各有側(cè)重的相似功能可設(shè)置成加載模塊。
在創(chuàng)建了rootfs目錄[9]后,在該目錄下按照文件系統(tǒng)的組織結(jié)構(gòu)建立子目錄。通過busybox的配置,在bin目錄下實(shí)現(xiàn)了shell命令和支持庫(kù),并配置后續(xù)所需的文件編輯、數(shù)據(jù)壓縮等工具。在完成對(duì)配置文件的修改后,通過mkcramfs工具來制作cramfs根文件系統(tǒng)。
在應(yīng)用程序看來,硬件設(shè)備只是一個(gè)設(shè)備文件,應(yīng)用程序可以如同操作普通文件一樣對(duì)硬件進(jìn)行操作。它的功能是對(duì)設(shè)備初始化,把數(shù)據(jù)從內(nèi)核傳送到硬件并讀取硬件數(shù)據(jù);讀取程序傳送給設(shè)備文件的數(shù)據(jù)并回傳程序請(qǐng)求的數(shù)據(jù)。
根據(jù)上面的電氣連接關(guān)系可以看出,要想操作MCU?6050,必須要做兩方面的驅(qū)動(dòng)。
(1) S3C2440中I2C控制器的驅(qū)動(dòng),有了這部分驅(qū)動(dòng),才可以操作控制器來產(chǎn)生I2C的時(shí)序信號(hào),來發(fā)送數(shù)據(jù)和接收數(shù)據(jù)。
(2) MCU?6050的驅(qū)動(dòng),有了這部分驅(qū)動(dòng),才能使用控制器正確操作芯片,從而讀取和存放數(shù)據(jù)。
在Linux系統(tǒng)中,對(duì)上述第(1)的實(shí)現(xiàn)稱為I2C總線驅(qū)動(dòng)[10],對(duì)第(2)的實(shí)現(xiàn)稱作I2C設(shè)備驅(qū)動(dòng)[7]。一般來說,如果CPU中集成了I2C控制器并且Linux內(nèi)核支持這個(gè)CPU,那么總線驅(qū)動(dòng)方面不用另做改動(dòng),內(nèi)核已經(jīng)完成了這部分的功能。但如果CPU中沒有I2C控制器而是外接,那么就需要自己實(shí)現(xiàn)總線驅(qū)動(dòng)。本文選用的S3C2440微處理器具有I2C控制器,所以只需編寫MCU?6050的驅(qū)動(dòng)程序即可。利用Qt制作操作界面,選擇軌跡顯示選項(xiàng),輸入當(dāng)?shù)亟?jīng)緯度參數(shù),即可顯示出行駛軌跡,完成導(dǎo)航任務(wù)。如圖4所示。
4 結(jié) 語
本文在三星S3C2440 ARM9處理器的基礎(chǔ)上,分別采用MPU?6050、電子羅盤HMC5843設(shè)計(jì)了捷聯(lián)式慣性導(dǎo)航硬件系統(tǒng)。結(jié)合慣性導(dǎo)航算法,在Matlab中建立了數(shù)學(xué)模型,并進(jìn)行了車輛的運(yùn)行軌跡仿真。同時(shí)將仿真軌跡與事先設(shè)定的行駛軌跡函數(shù)相比較,得出了導(dǎo)航算法可行的結(jié)論。軟件方面給出了嵌入式Linux操作系統(tǒng)移植的過程以及設(shè)備驅(qū)動(dòng)開發(fā)的過程。32位的ARM9處理器極高的運(yùn)算速度完全符合導(dǎo)航算法大運(yùn)算量的需求,ARM9豐富的接口特性使得本文設(shè)計(jì)的導(dǎo)航系統(tǒng)可方便地移植到其他平臺(tái)上,進(jìn)而參與組合導(dǎo)航的使用。
參考文獻(xiàn)
[1] 徐望,黃浩,劉勇,等.某型方位旋轉(zhuǎn)平臺(tái)慣導(dǎo)系統(tǒng)轉(zhuǎn)速模型分析與驗(yàn)證[J].海軍航空工程學(xué)院學(xué)報(bào),2014(4):319?322.
[2] 劉宇,陳志興,宋娟.基于STM32的慣性導(dǎo)航系統(tǒng)軟硬件設(shè)計(jì)[J].科技視界,2014,22(13):102?104.
[3] 馬霞,杜增,李渝.慣性導(dǎo)航的誤差建模與仿真研究[J].中國(guó)電子科學(xué)研究院學(xué)報(bào),2014,10(1):97?100.
[4] 周紅進(jìn),鐘云海,易成濤.MEMS慣性導(dǎo)航傳感器[J].艦船科學(xué)技術(shù),2014,13(1):115?121.
[5] 張樹俠,孫靜.捷聯(lián)式慣性導(dǎo)航系統(tǒng)[M].北京:電子工業(yè)出版社,2010.
[6] 高鐘毓.慣性導(dǎo)航系統(tǒng)技術(shù)[M].北京:清華大學(xué)出版社,2012.
[7] 李文亮.四元數(shù)矩陣[M].長(zhǎng)沙:國(guó)防科技大學(xué)出版社,2010.
[8] 孫楓,袁贛南,張曉紅.組合導(dǎo)航系統(tǒng)[M].哈爾濱:哈爾濱工程大學(xué)出版社,2012.
[9] 劉崢嶸.嵌入式Linux應(yīng)用開發(fā)詳解[M].北京:機(jī)械工業(yè)出版社,2011.
[10] 袁太生,張素琴.嵌入式環(huán)境下Linux移植問題的探討[J].計(jì)算機(jī)應(yīng)用研究,2013,13(8):333?334.