當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]輪式遙控機(jī)器人已經(jīng)應(yīng)用在地震、火災(zāi)等一些危險(xiǎn)的室內(nèi)區(qū)域進(jìn)行救援和探測,或執(zhí)行反恐任務(wù)。由于在這些特殊的環(huán)境下存在諸多的未知因素,且室內(nèi)無GPS信號,人們不得不依靠先進(jìn)的科學(xué)技術(shù)和儀器來獲取遙控機(jī)器人小車的導(dǎo)航信息

輪式遙控機(jī)器人已經(jīng)應(yīng)用在地震、火災(zāi)等一些危險(xiǎn)的室內(nèi)區(qū)域進(jìn)行救援和探測,或執(zhí)行反恐任務(wù)。由于在這些特殊的環(huán)境下存在諸多的未知因素,且室內(nèi)無GPS信號,人們不得不依靠先進(jìn)的科學(xué)技術(shù)和儀器來獲取遙控機(jī)器人小車的導(dǎo)航信息。但是目前輪式運(yùn)動小車主要采用的導(dǎo)航傳感方式有視覺、光電、超聲、里程計(jì)等,比較容易被外界環(huán)境干擾,不能滿足廣大市場的需求。

但是慣性導(dǎo)航裝備安置在運(yùn)載體內(nèi),工作時(shí)不依賴外界信息,也不向外界輻射能量,不容易遭到滋擾,是一種自立式導(dǎo)航系統(tǒng),優(yōu)于上述的導(dǎo)航傳感例子。 并且近年來MEMS(微機(jī)電系統(tǒng))結(jié)構(gòu)的慣性傳感器隨半導(dǎo)體技術(shù)的進(jìn)步得到了迅速發(fā)展,使其低成本而高精度的期望得到了實(shí)現(xiàn)。MEMS慣性傳感器組成的慣性導(dǎo)航裝置結(jié)合輪式小車的里程計(jì),能夠產(chǎn)生導(dǎo)航和定位信息,減少對外部環(huán)境的倚賴,實(shí)現(xiàn)在外部環(huán)境條件(例如光照、墻壁材質(zhì))未知情況下的導(dǎo)航。

由于是在室內(nèi)區(qū)域進(jìn)行勘測搜索,小車的運(yùn)行特點(diǎn)與一般的飛機(jī)、船、車不同,它的運(yùn)動軌跡變化較快,且在運(yùn)動時(shí)存在一定的振動,因此常用的卡爾曼濾波算法需要進(jìn)一步改進(jìn)才能應(yīng)用。慣性傳感器采集數(shù)據(jù)量大,且進(jìn)行慣性導(dǎo)航時(shí)需要大量的浮點(diǎn)運(yùn)算,因此本項(xiàng)目采用了具有強(qiáng)大數(shù)字信號處理功能的DSP 28335芯片和PC控制終端,實(shí)現(xiàn)慣性傳感器的數(shù)據(jù)采集、時(shí)序邏輯控制、與驅(qū)動系統(tǒng)通信和地圖顯示功能, 具有體積小、成本低、功耗低等優(yōu)點(diǎn)。

綜上所述,本文將選用低成本的MEMS器件,結(jié)合DSP和卡爾曼濾波算法,能實(shí)現(xiàn)較高精度的輪式小車導(dǎo)航和定位。

1 系統(tǒng)體系架構(gòu)

本文的目標(biāo)是研制一個(gè)輪式小車慣性導(dǎo)航系統(tǒng),能夠通過wifi實(shí)現(xiàn)PC終端和手持終端控制輪式小車行動以及小車所采集數(shù)據(jù)的傳輸。

TI公司的浮點(diǎn)DSP TMS320F28335芯片作為主數(shù)字信號處理器,采集各MEMS慣性傳感器的信號并處理,處理結(jié)果通過WIFI將數(shù)據(jù)輸送到PC終端;PC終端負(fù)責(zé)顯示定位結(jié)果和地圖顯示,并向小車驅(qū)動系統(tǒng)發(fā)送控制命令,同時(shí)接收驅(qū)動系統(tǒng)反饋的里程計(jì)信息。

2. 硬件計(jì)劃及詳細(xì)實(shí)現(xiàn)

硬件設(shè)計(jì)上,主要分為核心板和驅(qū)動板。核心板包括DSP最小系統(tǒng),JTAG下載口設(shè)計(jì),系統(tǒng)電源供給電路和MEMS傳感器,WIFI模塊等。而驅(qū)動板主要設(shè)計(jì)的內(nèi)容是直流大電機(jī)的驅(qū)動模塊。

2.1 核心板設(shè)計(jì)

2.1.1 電源電路設(shè)計(jì)

TMS320F28335工作時(shí)需要的電壓不同:內(nèi)核電壓(1.9 V)與I/O供電電壓(3.3 V),對于電源比較敏感,所以電源部分利用兩路輸出電源器件TPS767D318來實(shí)現(xiàn)。同時(shí)根據(jù)仿真實(shí)驗(yàn)和實(shí)際焊接電路的測試,電源模塊輸出端最好使用一些容值不小于10uf的保護(hù)電容,且不能使用貼片電容,否則工作不穩(wěn)定。

在電源設(shè)計(jì)中,考慮到TPS767D318芯片可以產(chǎn)生復(fù)位信號,所以在核心板上并沒有再另外為DSP設(shè)計(jì)復(fù)位電路。

2.1.2 JTAG下載口電路設(shè)計(jì)

按照仿真器的通信引腳選擇14腳的仿真接口,同時(shí)要注意EMU0和EMUl信號必須通過上拉電阻連接至電源,其中上拉電阻為10kΩ。

2.2 小車驅(qū)動板設(shè)計(jì)

在本裝置中,我們采用BTS7960作為直流電機(jī)驅(qū)動芯片。BTS7960是集成的大電流半橋驅(qū)動,其內(nèi)部包含了一片NMOS、一片PMOS和一片半橋門集驅(qū)動,在IOUT = 9 A,VS= 13.5V,Tj = 25 °C 時(shí),其內(nèi)阻抗為17mΩ。裝置采用了兩個(gè)直流大電機(jī)。

在電機(jī)驅(qū)動這里,需要注意一個(gè)細(xì)節(jié),就是電機(jī)在轉(zhuǎn)動過程中有可能會產(chǎn)生反向的電動勢,使電流一瞬間過大,導(dǎo)致單片機(jī)復(fù)位甚至有可能燒壞芯片。因此在設(shè)計(jì)過程中,可以考慮在單片機(jī)PWM輸入到電機(jī)驅(qū)動接口的地方添加光耦器件隔離或者二極管。驅(qū)動板選擇了tlp521-4這種光耦器件設(shè)計(jì)隔離電路,減小電壓的干擾,減化電路的設(shè)計(jì),同時(shí)也把四路PWM的I/O電平從3.3上拉到5V。

3.軟件設(shè)計(jì)及具體實(shí)現(xiàn)

在軟件程序設(shè)計(jì)上,主要應(yīng)用九自由度慣性導(dǎo)航傳感器(ITG3200+ADXL345+HMC5883L ),結(jié)合DSP和卡爾曼濾波算法,能實(shí)現(xiàn)較高精度的輪式小車導(dǎo)航和定位。

3.1傳感器器件程序設(shè)計(jì)

九自由度慣性導(dǎo)航傳感器在許多領(lǐng)域都得到了實(shí)際的應(yīng)用,如無人機(jī),救災(zāi)機(jī)器人等。它包括ITG3200三軸陀螺儀,HMC5883L三軸磁感應(yīng)傳感器和ADXL345三軸加速度傳感器,所以可以得到加速度,角速度以及角度實(shí)時(shí)的數(shù)值。

ITG3200是MEMS三軸陀螺儀,可以測量小車的旋轉(zhuǎn)角速度,同時(shí)也可以通過積分把角速度轉(zhuǎn)換為小車的傾角。程序中,ITG3200的初始化如下:

unsigned char Init_ITG3200(void)

{

unsigned char Return1,Return2,Return3,Return4;

unsigned char Data;

Data = 0x00;

Return1 = IIC_WriteData(0xD0, 0x3E, &Data, 1);

Data = 0x07;

Return2 = IIC_WriteData(0xD0, 0x15, &Data, 1);

Data = 0x1E;

Return3 = IIC_WriteData(0xD0, 0x16, &Data, 1);

Data = 0x00;

Return4 = IIC_WriteData(0xD0, 0x17, &Data, 1);

if(Return1 && Return2 && Return3 && Return4)

return 1;

else

return 0;

}

其具體功能實(shí)現(xiàn)可以在主程序中通過SCI讀取其值。所讀取的值為角速度,不會受到小車運(yùn)動的影響,因此該信號噪聲很小,同時(shí)可以由它積分得到小車傾斜角度,可以平滑信號使其更加穩(wěn)定。

由于裝置是要在不同的室內(nèi)區(qū)域進(jìn)行勘測搜索,再加上未知的環(huán)境,所以角速度信號可能存在一定的偏差,會導(dǎo)致積分后的角度出現(xiàn)大的誤差,無法得到實(shí)際的數(shù)值。為了消除這個(gè)由于偏差而產(chǎn)生的累積誤差,裝置上加上ADXL345三軸加速度傳感器對于獲得的角度信息進(jìn)行校正。ADXL345初始化如下:

unsigned char Init_ADXL345(void)

{

unsigned char Return1,Return2,Return3,Return4;

unsigned char Data;

Data = 0x0b;

byReturn1 = IIC_WriteData(0xA6, 0x31, &Data, 1);

Data = 0x08;

Return2 = IIC_WriteData(0xA6, 0x2c, &Data, 1);

Data = 0x08;

Return3 = IIC_WriteData(0xA6, 0x2d, &Data, 1);

Data = 0x80;

Return4 = IIC_WriteData(0xA6, 0x2e, &Data, 1);

Data = 0x00;

Return4 = IIC_WriteData(0xA6, 0x1e, &Data, 1);

Data = 0x00;

Return4 = IIC_WriteData(0xA6, 0x1f, &Data, 1);

Data = 0x05;

Return4 = IIC_WriteData(0xA6, 0x20, &Data, 1);

if(Return1&&Return2&&Return3&&Return4)

return 1;

else

return 0;

}

通過ADXL345所得到的角度,和陀螺儀積分后的角度進(jìn)行對比,然后使用它們的偏差改變陀螺儀的輸出,從而積分后的角度慢慢校正到實(shí)際的角度,HMC5883L三軸磁感應(yīng)傳感器的作用相當(dāng)于羅盤,在水平情況下,無需借助其他傳感器便可以計(jì)算出航向。其初始化如下:

unsigned char Init_HMC5883(void)

{

unsigned char Return1;

unsigned char Data;

// Bit4 Bit3 等于11時(shí),選擇2000度/秒的量程

Data = 0x00;

Return1 = IIC_WriteData(0x3C, 0x02, &Data, 1);

if(Return1)

return 1;

else

return 0;

}

由于裝置是要在不同環(huán)境下進(jìn)行工作的,所以其并不能保持時(shí)刻水平,就需要加速度傳感器來糾正由于傾斜引起的誤差。

3.2 卡爾曼濾波算法應(yīng)用

于是裝置在室內(nèi)區(qū)域進(jìn)行勘測搜索,小車的運(yùn)行特點(diǎn)與一般的飛機(jī)、船、車不同,它的運(yùn)動變化快,軌跡不定,而且要適用于不同的環(huán)境下工作,因此常用的卡爾曼濾波算法需要進(jìn)一步改進(jìn)才能應(yīng)用??柭^濾是用前一個(gè)估計(jì)值和最近一個(gè)觀察數(shù)據(jù),來估計(jì)信號的當(dāng)前值,它是用狀態(tài)方程和遞推的方法進(jìn)行估計(jì)的,它的解是以估計(jì)值形式給出的。其運(yùn)用在加速度器和陀螺儀上的卡爾曼濾波程序如下:

// float gyro_m:陀螺儀測得的量(角速度)

//float incAngle:加速度器測得的角度值

#define dt 0.0015//卡爾曼濾波采樣頻率

#define R_angle 0.71 //測量噪聲的協(xié)方差(即是測量偏差)

#define Q_angle 0.0001//過程噪聲的協(xié)方差

#define Q_gyro 0.0003 //過程噪聲的協(xié)方差 過程噪聲協(xié)方差為一個(gè)一行兩列矩陣

float kalmanUpdate(const float gyro_m,const float incAngle

{

float K0;//含有卡爾曼增益的另外一個(gè)函數(shù),用于計(jì)算最優(yōu)估計(jì)值

float K1;//含有卡爾曼增益的函數(shù),用于計(jì)算最優(yōu)估計(jì)值的偏差

float Y0;

float Y1;

float Rate;//去除偏差后的角速度

float Pdot[4];//過程協(xié)方差矩陣的微分矩陣

float angle_err;//角度偏量

float E;//計(jì)算的過程量

static float angle = 0; //下時(shí)刻最優(yōu)估計(jì)值角度

static float q_bias = 0; //陀螺儀的偏差

static float n[2][2] = {{ 1, 0 }, { 0, 1 }};//過程協(xié)方差矩陣

Rate = gyro_m - q_bias;

//計(jì)算過程協(xié)方差矩陣的微分矩陣

Pdot[0] = Q_angle - P[0][1] - P[1][0];

Pdot[1] = - n[1][1];

Pdot[2] = - n[1][1];

Pdot[3] = Q_gyro;

angle += Rate * dt; //角速度積分得出角度

n[0][0] += Pdot[0] * dt; //計(jì)算協(xié)方差矩陣

n[0][1] += Pdot[1] * dt;

n[1][0] += Pdot[2] * dt;

n[1][1] += Pdot[3] * dt;

angle_err = incAngle - angle; //計(jì)算角度偏差

E = R_angle + P[0][0];

K0 = n[0][0] / E; //計(jì)算卡爾曼增益

K1 = n[1][0] / E;

Y0 = n[0][0];

Y1 = n[0][1];

n[0][0] -= K0 * Y0; //跟新協(xié)方差矩陣

n[0][1] -= K0 * Y1;

n[1][0] -= K1 * Y0;

n[1][1] -= K1 * Y1;

angle += K0 * angle_err; //給出最優(yōu)估計(jì)值

q_bias += K1 * angle_err;//跟新最優(yōu)估計(jì)值偏差

return angle;

通過濾波時(shí)數(shù)據(jù)平滑將加速度輸出電壓附近產(chǎn)生的波動噪聲濾掉。

4 實(shí)驗(yàn)測試與結(jié)果分析

在裝置硬件和軟件搭建完成后,通過原先設(shè)計(jì)好的PC端軟件和平板安卓軟件,搜索到Wi-Fi,自動連入局域網(wǎng)。在實(shí)驗(yàn)室測試環(huán)境下,小車可以自由行駛并反饋回實(shí)時(shí)的數(shù)據(jù)并進(jìn)行測試比較。

4.1 航向角數(shù)據(jù)測試

HMC5883L采集到的航向角存在隨機(jī)波動性,因此可以對于進(jìn)行多次采集平均值濾波,以提高系統(tǒng)輸出的數(shù)據(jù)穩(wěn)定性。如圖6為一定時(shí)間內(nèi)濾波前和濾波后航向角的數(shù)據(jù)。

航向所采集到的數(shù)據(jù)進(jìn)行平均值采樣濾波優(yōu)化后誤差大大減小,比原有數(shù)據(jù)穩(wěn)定許多,說明濾波效果明顯。

4.2 角度數(shù)據(jù)測試

在角度獲得的數(shù)據(jù),可以使用ADXL345和ITG3200所得的數(shù)據(jù),轉(zhuǎn)換為橫滾角和俯仰角。再結(jié)合卡爾曼濾波對數(shù)據(jù)進(jìn)行濾波以達(dá)到更準(zhǔn)確的實(shí)驗(yàn)結(jié)果。

5 結(jié)束語

 

本文所設(shè)計(jì)的輪式小車室內(nèi)慣性導(dǎo)航裝置,分析了該軟件設(shè)計(jì)的各個(gè)模塊的具體實(shí)現(xiàn)方法。經(jīng)實(shí)驗(yàn)結(jié)果表明,該設(shè)計(jì)能夠?qū)崟r(shí)監(jiān)測到移動機(jī)器人的位置信息,并對其能實(shí)現(xiàn)有效控制。同時(shí)其低成本、高精度、易操作的特點(diǎn)將進(jìn)一步應(yīng)用于例如巡邏機(jī)器人、救援機(jī)器人等專業(yè)領(lǐng)域,必將吸引國內(nèi)外眾多的投資商對其投資并進(jìn)行更進(jìn)一步的研發(fā)與應(yīng)用,使其有著十分廣大的創(chuàng)新創(chuàng)業(yè)前景、應(yīng)用前景和市場前景。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉