ADISl6300四自由度IMU在姿態(tài)測(cè)量中的應(yīng)用
近年來,微機(jī)電系統(tǒng)(MEMS)技術(shù)廣泛用于汽車的系統(tǒng)和穩(wěn)定系統(tǒng)、醫(yī)學(xué)系統(tǒng)、便攜式照相機(jī)、運(yùn)動(dòng)裝置和三維鼠標(biāo)等領(lǐng)域。簡(jiǎn)單和小體積的慣性測(cè)量系統(tǒng)尤其受到關(guān)注,因此,基于MEMS的高精度、重量輕、小體積的姿態(tài)測(cè)量系統(tǒng)將得到廣泛的應(yīng)用。本文將介紹一種ADI公司的慣性傳感器以及由其組成的微小姿態(tài)測(cè)量系統(tǒng)。
1 ADISl6300簡(jiǎn)介
ADISl6300四自由度(4DoF)IMU是一個(gè)完整的慣性測(cè)量傳感器,其內(nèi)置單軸陀螺儀和三軸加速計(jì),每個(gè)傳感器都實(shí)現(xiàn)了iMEMS(Motion Sig-nal Processing Technology)技術(shù)與信號(hào)調(diào)理技術(shù)的完美結(jié)合,可提供最優(yōu)化的動(dòng)態(tài)性能。工廠校準(zhǔn)為每個(gè)傳感器提供靈敏度、偏置、對(duì)準(zhǔn)和線性加速度特性。因此,每個(gè)傳感器都擁有自身的動(dòng)態(tài)補(bǔ)償,從而可以在4.75~5.25 V的電源范圍內(nèi)進(jìn)行精確的傳感器測(cè)量。由于AD-ISl6300所有必要的運(yùn)動(dòng)檢測(cè)與校準(zhǔn)都是在工廠完成,大幅縮短了系統(tǒng)集成時(shí)間,并降低了測(cè)試設(shè)備成本。ADISl6300采用改進(jìn)的SPI接口,可提供更快的數(shù)據(jù)收集與配置控制,用戶實(shí)現(xiàn)就像供電及連接SPI(串行外設(shè)接口)端口一樣簡(jiǎn)單。ADISl6300采用23 mmx31 mmX7.5 mm封裝,具有2 000 g額定耐沖強(qiáng)度,并提供了一個(gè)標(biāo)準(zhǔn)的連接接口,使其能方便水平或垂直安裝。
ADISl6300角速度檢測(cè)的動(dòng)態(tài)范圍具有±75、±150以及±300(°)/s 3種選項(xiàng),三軸加速度的動(dòng)態(tài)范圍為±3 g,可提供350 Hz帶寬,高達(dá)1 200次/秒的采樣速率,并具有嵌入式與可編程數(shù)字濾波功能。ADISl6300其價(jià)格僅為其他同級(jí)產(chǎn)品的1/10,可廣泛應(yīng)用于醫(yī)療儀器、機(jī)器人、慣性測(cè)量單元、導(dǎo)航控制等領(lǐng)域。
2 ADISl6300結(jié)構(gòu)功能
如圖1所示,圖(a)為ADISl6300的坐標(biāo)系,其標(biāo)出了每個(gè)慣性傳感器(陀螺儀和加速度計(jì))的測(cè)量朝向。圖(b)為ADISl6300的標(biāo)準(zhǔn)接口引腳配置圖,引腳16,17,18,19,22,23,24是沒有連接的預(yù)留引腳;引腳10,11,12為電源VCC;引腳13,14,15為電源GND;引腳3,4,5,6分別為SPI接口的時(shí)鐘,數(shù)據(jù)輸出,數(shù)據(jù)輸入和器件選擇引腳;引腳1,2,7,9分別為配置數(shù)據(jù)輸入/輸出引腳;引腳8為復(fù)位引腳;引腳21,22分別為12位的ADC輸入和DAC輸出引腳。
ADISl6300功能模塊框圖如圖2所示,溫度傳感器、MEMS角速度傳感器和三軸MEMS加速度傳感器分別感知環(huán)境溫度、器件所受角速度和三維加速度,將信號(hào)調(diào)理并轉(zhuǎn)換,經(jīng)校準(zhǔn)和數(shù)字信號(hào)處理后將數(shù)據(jù)存入輸出寄存器供外部SPI主控器件讀取。ADISl6300是一個(gè)智能的傳感器,傳感器上電后便自動(dòng)以819.2次/秒采樣速率進(jìn)行慣性測(cè)量。每個(gè)采樣周期結(jié)束后,傳感器測(cè)量結(jié)果存放至輸出寄存器,并且DI01引腳向器件外產(chǎn)生一個(gè)脈沖,表示一個(gè)完整的新慣性測(cè)量數(shù)據(jù)已經(jīng)采集準(zhǔn)備好,可供外部SPI主控器件讀取。
3 ADISl6300基本操作
3.1 ADISl6300的SPI連接
ADISl6300是一個(gè)全數(shù)字接口的智能傳感器系統(tǒng),其SPI接口與各種微處理器SPI主控制器件接線如圖3所示。微處理器作為SPI主器件各引腳功能分別為:
為從器件選擇;IRQ為中斷請(qǐng)求;MOSI為主器件輸出,從器件輸入;MISO為器件輸入,從器件輸出;SCLK為連續(xù)時(shí)鐘。AD-ISl6300對(duì)SPI時(shí)鐘需滿足:正常模式下SCLK不高于2 MHz:數(shù)據(jù)進(jìn)發(fā)模式下SCLK不高于1 MHz;在低電壓模式下SCLK不高于300 kHz。
3.2 傳感器數(shù)據(jù)讀取
通過ADISl6300的SPI接口可讀取其傳感器的供電電壓,陀螺儀值,X,Y,Z軸加速度值,溫度值,縱搖角,橫搖角等數(shù)據(jù)。根據(jù)ADISl63 00讀取數(shù)據(jù)時(shí)序,讀取每個(gè)寄存器的內(nèi)容分為兩步,即2個(gè)16位的時(shí)序:第1個(gè)16位時(shí)序向ADISl6300寫入讀取命令和寄存器地址;第2個(gè)16位時(shí)序?qū)?duì)應(yīng)寄存器內(nèi)容發(fā)送至DOUT數(shù)據(jù)線上。例如:如果第1個(gè)16位時(shí)序DIN=0x0A00,那么第2個(gè)時(shí)序時(shí),XACCL_OUT(X軸加速度值)將被發(fā)送到DOUT數(shù)據(jù)線上。
數(shù)據(jù)進(jìn)發(fā)模式是連續(xù)讀取ADISl6300數(shù)據(jù)的最好方式。在10個(gè)連續(xù)的時(shí)序周期內(nèi),9個(gè)常用寄存器數(shù)據(jù)可方便讀到,它們分別是:SUPPLY _0UT(供電電壓)、GYRO_OUT(陀螺儀)、XACCL_OUT(X軸加速度)、YACCL_0UT(Y軸加速度)、ZACCL_0UT(Z軸加速度)、TEMP_0UT(溫度)、PITCH_ 0UT(俯仰角)、0LL_OUT(橫滾角)和AUX_ADC(ADC轉(zhuǎn)換結(jié)果)。數(shù)據(jù)進(jìn)發(fā)模式操作為:在連續(xù)10個(gè)時(shí)序周期內(nèi),DIN引腳對(duì)應(yīng)的10個(gè)輸入數(shù)據(jù)以0011 111O 0000 0000(Ox3E00)開始,之后9個(gè)數(shù)據(jù)可任選,同時(shí)在DOUT引腳上依次輸出如上所述9個(gè)輸出寄存器內(nèi)的數(shù)據(jù)。
3.3 數(shù)據(jù)處理
表1說明了ADISl6300數(shù)據(jù)輸出的格式和比例因子。從表1中可知,SUPPLY_0UT和AUX_ADC數(shù)據(jù)格式都為12位的二進(jìn)制數(shù)據(jù),各慣性傳感器輸出的數(shù)據(jù)格式均為14位2的補(bǔ)碼,溫度傳感器輸出數(shù)據(jù)格式和AUX_ADC數(shù)據(jù)格式都是12位2的補(bǔ)碼,而橫搖角和縱搖角數(shù)據(jù)格式為13位的2的補(bǔ)碼。也就是說0x0000是0LSB.0x0001是+1 LSB,2n-1(n=12,13,14)為-1 LSB,LSB為滿量程輸入范圍的最小單位。若為GYRO_0UT時(shí),1 LSB=O.05(°)/s。下式可用來將輸出數(shù)據(jù)轉(zhuǎn)換成浮點(diǎn)形式的姿態(tài)數(shù)據(jù)。
式中,DATA_OUTi為表1中輸出數(shù)據(jù),OUTi為轉(zhuǎn)換后浮點(diǎn)形式的姿態(tài)數(shù)據(jù),Scale為表1中最小單位,n為表1中數(shù)據(jù)位數(shù)。
例如:GYR0_0UT=0x384A,由于
,則角速率Rate=(0x4000-Ox384A)×(-0.05)(°)/s=1206x(-0.05)(°)/s=-60.3(°)/s。因此,根據(jù)傳感器方向坐標(biāo)定義,當(dāng)GYRO 0UT為0x384A時(shí),表示傳感器z軸以60.3(°)/s的角速率逆時(shí)鐘旋轉(zhuǎn)。
4 姿態(tài)測(cè)量系統(tǒng)設(shè)計(jì)
ADISl6300是四自由度(4DoF)慣性檢測(cè)系統(tǒng),能提供三軸加速度以及Z軸旋轉(zhuǎn)角速率,此外還輸出了橫搖角、縱搖角和溫度數(shù)據(jù),能應(yīng)用于醫(yī)療儀器、機(jī)器人、慣性測(cè)量單元、導(dǎo)航控制領(lǐng)域等。介紹基于C8051F330和ADISl6300的姿態(tài)測(cè)量系統(tǒng),該系統(tǒng)采用C805lF330單片機(jī)的SPI接口讀取ADISl6300的數(shù)據(jù)。再將采集到的數(shù)據(jù)通過串行RS-232接口輸出。
4.1 硬件設(shè)計(jì)
姿態(tài)測(cè)量系統(tǒng)的硬件連接如圖4所示,器件ADISl6300無需其他外圍電路,本設(shè)計(jì)僅采用0.1μF和10μF電容并聯(lián)入器件供電電路進(jìn)行電源退耦。C8051F330是美國(guó)Slincon公司生產(chǎn)的一款高性能的8051內(nèi)核單片機(jī),它具有增強(qiáng)波特率配置的全雙工UART和增強(qiáng)型SPI端口,采用4 mm×4 mmx0.9 mm封裝。C8051F330的IO口允許0~5 V電平,且ADISl6300的SPI接口輸入高電平只需2.0 V,因此C8051F330和ADISl6300雖是不同工作電源器件,但它們的接口電平兼容,可采取直接連接的方式直接連接。RS-232電平轉(zhuǎn)換采用MAX3232,它是一款3~5.5 V單通道RS-232線路驅(qū)動(dòng)器/接收器。電源電路可提供+5 V和+3.3 V電壓,分別為ADISl6300和C8051F330提供電源。
4.2 軟件設(shè)計(jì)
姿態(tài)測(cè)量系統(tǒng)單片機(jī)的SPI接口采用數(shù)據(jù)進(jìn)發(fā)模式讀取ADISl6300數(shù)據(jù),根據(jù)ADISl6300數(shù)據(jù)進(jìn)發(fā)模式定義,在10個(gè)連續(xù)時(shí)序周期下,9個(gè)輸出寄存器內(nèi)的數(shù)據(jù)依次輸出到DOUT引腳上。程序流程如圖5所示,程序啟動(dòng)進(jìn)入系統(tǒng)初始化.包括IO口、SPI和串口等。對(duì)ADISl6300的操作程序首先向其寫入0x3E00,并讀取返回的數(shù)據(jù),此次數(shù)據(jù)為SPI之前的數(shù)據(jù),之后向ADISl6300連續(xù)寫9次0x0000,便可連續(xù)讀到9個(gè)輸出寄存器內(nèi)數(shù)據(jù)。完成9個(gè)數(shù)據(jù)讀取后,按上述數(shù)據(jù)處理中介紹的數(shù)據(jù)處理方法解算9個(gè)數(shù)據(jù),最后通過串口輸出。
5 試驗(yàn)及數(shù)據(jù)分析
為了能對(duì)由C8051F330和ADISl6300傳感器組成的姿態(tài)測(cè)量系統(tǒng)進(jìn)行簡(jiǎn)單的測(cè)定,該試驗(yàn)采用姿態(tài)與航向參考系統(tǒng)(attitude and heading reference system)AHRS500GA-226作為參考傳感器。該傳感器可測(cè)量被安裝物體的歐拉方位角(航向、縱搖角與橫搖角),其內(nèi)置三軸磁場(chǎng)計(jì)、3個(gè)陀螺儀和3個(gè)加速度計(jì),能高精度、高靈敏地測(cè)出360°范圍的方位角,±180°橫滾角,±90°俯仰角。試驗(yàn)中將兩系統(tǒng)固定安裝在同一平臺(tái)上,使平臺(tái)運(yùn)動(dòng)并用計(jì)算機(jī)同時(shí)保存兩系統(tǒng)輸出的姿態(tài)數(shù)據(jù)。兩系統(tǒng)輸出的航向角速率、X軸加速度、Y軸加速度、Z軸加速度四組姿態(tài)數(shù)據(jù)利用Matlab軟件圖形顯示如圖6所示。
從圖中可以看出,利用ADISl6300所測(cè)量的航向角速率、X軸加速度、Y軸加速度和Z軸加速度4個(gè)空間姿態(tài)數(shù)據(jù)與AHRS所測(cè)量的姿態(tài)數(shù)據(jù)基本一致,其中ADISl6300輸出的航向角速率、X軸加速度、Y軸加速度和Z軸加速度平均誤差分別為0.469(°)/s、O.009 m/s2、O.010m/ s2、O.003 m/s2。ADISl6300數(shù)據(jù)的噪聲較大,這是由于它的數(shù)據(jù)輸出未經(jīng)濾波處理和融合算法處理,而AHRS經(jīng)過復(fù)雜的融合算法和濾波處理。因此,要使用ADISl6300獲取更準(zhǔn)確、更平滑的姿態(tài)數(shù)據(jù)還需將其數(shù)據(jù)進(jìn)行融合或?yàn)V波處理,如卡爾曼算法。
6 結(jié)論
四自由度IMU慣性測(cè)量傳感器ADISl6300可準(zhǔn)確測(cè)量空間姿態(tài),采用C805lF330與ADISl6300組成的姿態(tài)測(cè)量系統(tǒng)能夠?qū)崿F(xiàn)準(zhǔn)確測(cè)量空間姿態(tài)。ADISl6300輸出的航向角速率、X軸加速度、Y軸加速度和Z軸加速度4個(gè)空間姿態(tài)的平均誤差分別為0.469(°)/s、0.009m/s2、0.01 0m /s2、0.003 m/s2。然而姿態(tài)數(shù)據(jù)的噪聲需濾波和融合算法來消除,以獲得更為平滑、精確的空間姿態(tài)數(shù)據(jù)。