除塵競(jìng)賽機(jī)器人及其控制策略研究
摘要:采用嵌入式微處理器、傳感器和直流電機(jī)控制技術(shù),設(shè)計(jì)基于16位高性能微處理器MSP430的除塵競(jìng)賽機(jī)器人。MSP4130F5418微處理器通過紅外傳感器和電子指南針分別獲得障礙物和角度信息,進(jìn)行處理后控制機(jī)器人的避障和轉(zhuǎn)向,通過各模塊的協(xié)同工作使機(jī)器人順利完成除塵任務(wù)。在第四屆江蘇省大學(xué)生機(jī)器人大賽除塵比賽中,除塵面積覆蓋率達(dá)到80%以上,并取得一等獎(jiǎng),表明該除塵競(jìng)賽機(jī)器人具有成本低、可靠性高的特點(diǎn),達(dá)到了設(shè)計(jì)要求。
關(guān)鍵詞:MSP430 F5418;紅外傳感器;電子指南針;控制策略;除塵競(jìng)賽機(jī)器人
目前機(jī)器人的發(fā)展已經(jīng)成為衡量各個(gè)國(guó)家科技力量的重要標(biāo)準(zhǔn),歐美、日本等發(fā)達(dá)國(guó)家機(jī)器人設(shè)計(jì)已日趨成熟,種類繁多、功能強(qiáng)大。我國(guó)也投入了大量的人、財(cái)力進(jìn)行機(jī)器人的研究和開發(fā),非常重視機(jī)器人的教學(xué),把機(jī)器人作為小學(xué)、中學(xué)和大學(xué)的實(shí)訓(xùn)、實(shí)踐課程,大力開展國(guó)家、省和市級(jí)各種學(xué)生競(jìng)賽,極大地推進(jìn)了機(jī)器人在我國(guó)的普及,為機(jī)器人的研究打下了堅(jiān)實(shí)的基礎(chǔ)。
競(jìng)賽機(jī)器人的設(shè)計(jì)出現(xiàn)了百花齊放的景象,結(jié)構(gòu)上有人形機(jī)器人、輪式機(jī)器人、足式機(jī)器人和履帶機(jī)器人等;完成任務(wù)上有服務(wù)機(jī)器人、滅火機(jī)器人、除塵機(jī)器人、游景點(diǎn)機(jī)器人等。針對(duì)不同的任務(wù),具有各自的特點(diǎn),除塵競(jìng)賽機(jī)器人的主要性能指標(biāo)是除塵面積的覆蓋率及完成的時(shí)間。本文采用16位微處理器MSP430F5418微控制器,設(shè)計(jì)輪式機(jī)器人,通過四路直流電機(jī)控制機(jī)器人的避障和運(yùn)動(dòng),完成競(jìng)賽任務(wù)。
1 總體結(jié)構(gòu)
由于除塵競(jìng)賽機(jī)器人完成的任務(wù)較單一,并對(duì)其體積的大小有嚴(yán)格的規(guī)定,所以機(jī)器人的設(shè)計(jì)應(yīng)盡量簡(jiǎn)潔實(shí)用,避免不必要的冗余設(shè)計(jì)。為此,本文采用模塊化方法設(shè)計(jì)除塵競(jìng)賽機(jī)器人,可根據(jù)實(shí)際需要靈活地增加模塊、完善系統(tǒng),完成規(guī)定的任務(wù);系統(tǒng)主要由主控制板、電源管理模塊、紅外測(cè)距模塊、電子指南針及電機(jī)控制板等組成,其系統(tǒng)結(jié)構(gòu)如圖1所示。
主控制器采用16位微控制器MSP430F5418,因該器件具有較高的運(yùn)算速度、豐富的外圍接口以及低廉的價(jià)格而廣泛地被使用,負(fù)責(zé)對(duì)傳感器采集到的數(shù)據(jù)進(jìn)行處理,根據(jù)獲得的有效信息對(duì)電機(jī)的運(yùn)動(dòng)進(jìn)行控制。電源管理模塊主要負(fù)責(zé)為整個(gè)系統(tǒng)中各個(gè)模塊提供獨(dú)立穩(wěn)定的電源;紅外測(cè)距傳感器負(fù)責(zé)采集環(huán)境的障礙物信息,為機(jī)器人的避障提供依據(jù);電子指南針獲得角度信息來控制機(jī)器人的轉(zhuǎn)向;電機(jī)驅(qū)動(dòng)板負(fù)責(zé)驅(qū)動(dòng)控制直流電機(jī)。
2 系統(tǒng)實(shí)現(xiàn)
系統(tǒng)主要有主控制板、電源管理模塊、紅外測(cè)距模塊、電子指南針及電機(jī)控制板等組成,紅外測(cè)距和電子指南針模塊是系統(tǒng)實(shí)現(xiàn)的關(guān)鍵。
2.1 紅外測(cè)距傳感器
紅外傳感器主要負(fù)責(zé)測(cè)量機(jī)器人與障礙物之間的距離,為了可靠獲得場(chǎng)地及環(huán)境信息,紅外測(cè)距傳感器的位置部署很關(guān)鍵,7個(gè)傳感器部署的俯視圖側(cè)視圖分別如圖2和圖3所示。
圖2左端為除塵機(jī)器人頭部,機(jī)器人頭部安裝紅外傳感器1、2、3,它們分別呈45°、90°、135°放置,用來探測(cè)機(jī)器人頭部正前方以及兩側(cè)的障礙物,由于除塵競(jìng)賽機(jī)器人大賽場(chǎng)地的平臺(tái)高度比較低,為了能夠檢測(cè)平臺(tái)的周邊,傳感器1、2、3安裝在較低的位置。機(jī)器人兩側(cè)的紅外傳感器4、5用來保證機(jī)器人在進(jìn)入房間進(jìn)行轉(zhuǎn)向時(shí)整個(gè)車身處于寬闊地帶,如果僅靠紅外傳感器1或3,判斷前方的空白區(qū)域可能會(huì)出現(xiàn)機(jī)器人過早進(jìn)行轉(zhuǎn)向,撞到墻壁的情況。紅外傳感器7傾斜45°安裝,當(dāng)機(jī)器人在平臺(tái)上運(yùn)行時(shí)可以通過檢測(cè)平臺(tái)邊緣高度的突變來感知路況。紅外傳感器6用來獲得機(jī)器人后方的信息作為輔助信息。
2.2 電子指南針
電子指南針是除塵機(jī)器人設(shè)計(jì)的關(guān)鍵部件,角度信息的處理直接關(guān)系到能否對(duì)機(jī)器人的轉(zhuǎn)向進(jìn)行精確控制。電子指南針的設(shè)計(jì)結(jié)構(gòu)如圖4所示。
HMC1022作為新一代磁傳感器,具有靈敏度高(<0.1°)、響應(yīng)時(shí)間快(<1μs)、輸出頻率高(1 000 Hz)、體積小及固態(tài)封裝等優(yōu)點(diǎn),電路中IRF7105為HMC1022磁阻芯片提供置位/復(fù)位脈沖,HMC1022磁阻傳感器根據(jù)地磁場(chǎng)的施加方向,產(chǎn)生兩路差分模擬信號(hào),經(jīng)過兩路AD620放大電路進(jìn)行差分放大,得到兩路模擬電壓AD0和AD1,經(jīng)過微控制器LPC938的10位高精度A/D轉(zhuǎn)換后獲得數(shù)字信號(hào),再進(jìn)行數(shù)字濾波后計(jì)算出機(jī)器人的角度值,最后將其角度值通過UART串口傳送給MSP430F5418主控制器。UART串口協(xié)議由起始字(0x24),角度值高8位,角度值低8為,結(jié)束同步字(0x55)組成。
3 軟件設(shè)計(jì)
軟件是機(jī)器人系統(tǒng)的靈魂,軟件的好壞直接關(guān)系到機(jī)器人能否穩(wěn)定的工作,除塵競(jìng)賽軟件的設(shè)計(jì)要充分考慮到場(chǎng)地的具體環(huán)境,采取有效地路徑規(guī)劃。江蘇省機(jī)器人大賽除塵比賽的場(chǎng)地模型如圖5所示。
3.1 路徑規(guī)劃
為了使機(jī)器人的遍歷面積達(dá)到最大化,要對(duì)其運(yùn)行路徑進(jìn)行合理的規(guī)劃。為此,將場(chǎng)地劃分為圖中的4個(gè)房間,機(jī)器人的運(yùn)行路徑為1->2->3->4->3->1。機(jī)器人運(yùn)行策略的流程如圖6所示。
機(jī)器人的運(yùn)行流程可以分為6個(gè)步驟:
1)機(jī)器人在1號(hào)房間內(nèi)進(jìn)行折返式遍歷,從起點(diǎn)出發(fā)向圖中左方前進(jìn),遇到擋板180°返回,如此反復(fù),直到檢測(cè)到2號(hào)房間門口的黑線為止,這樣可以確保1號(hào)房間的遍歷面積達(dá)到最大。
2)機(jī)器人進(jìn)入2號(hào)房間后,以圓柱型障礙物為中心,逆時(shí)針方向運(yùn)行一圈即可達(dá)到最大遍歷面積。
3)機(jī)器人從2號(hào)房間出來進(jìn)入3號(hào)房間時(shí),由于4號(hào)房間是凸出的平臺(tái),可以直接沿4號(hào)房間和斜坡的邊沿運(yùn)行,進(jìn)入4號(hào)房間,3號(hào)房間剩余的面積可以在返回時(shí)進(jìn)行遍歷。
4)由于4號(hào)房間是平臺(tái),且必須遍歷平臺(tái)的三分之一以上的面積,4號(hào)房間的遍歷面積才有效,所以機(jī)器人在平臺(tái)上遍歷兩圈,首先,機(jī)器人沿著墻壁和平臺(tái)邊沿在平臺(tái)上進(jìn)行外圈的遍歷,然后在第二次遇到相應(yīng)的墻壁和平臺(tái)邊沿時(shí),進(jìn)行適當(dāng)?shù)暮笸?,進(jìn)行內(nèi)圈的遍歷達(dá)到較大的遍歷面積。
5)機(jī)器人從平臺(tái)下來以后再次進(jìn)入房間3,可以根據(jù)墻壁和障礙物的信息,對(duì)步驟3中剩下的面積進(jìn)行遍歷。
6)采用沿墻走策略安全回到起始點(diǎn)。
3.2 轉(zhuǎn)角控制
電子指南針為機(jī)器人的運(yùn)行提供角度信息,在實(shí)際應(yīng)用中,除塵機(jī)器人轉(zhuǎn)動(dòng)的角度有45°、90°、180°三種大角度。電子指南針模塊輸出0°~360°的角度信息,考慮到競(jìng)賽場(chǎng)地方向的不確定性,通常采用相對(duì)角度而非絕對(duì)值。即采用獲取當(dāng)前的角度值,然后預(yù)設(shè)要轉(zhuǎn)過的角度,對(duì)采集到的角度信息進(jìn)行查詢比較,當(dāng)?shù)竭_(dá)或超過預(yù)設(shè)角度時(shí)就停止轉(zhuǎn)角工作,進(jìn)入下一步的任務(wù)。在調(diào)試過程中,發(fā)現(xiàn)機(jī)器人在轉(zhuǎn)角的過程中會(huì)出現(xiàn)連續(xù)打轉(zhuǎn)的非正常情況。經(jīng)過分析研究發(fā)現(xiàn),主要原因是信息獲取的抖動(dòng)以及環(huán)境的影響,為此,將具體的預(yù)設(shè)角度擴(kuò)展為一個(gè)范圍,一般情況下機(jī)器人轉(zhuǎn)動(dòng)一定角度的原理如圖7所示。將具體的預(yù)設(shè)角度擴(kuò)展為一個(gè)范圍又引入了新的問題,這是預(yù)設(shè)角度范圍存在從360°到0°突變,也就是經(jīng)過360°(0°)的臨界點(diǎn)造成的,預(yù)設(shè)角跨越臨界角度示意圖如圖8所示。
角度控制的流程分為以下4個(gè)步驟,控制算法實(shí)現(xiàn)的程序框圖如圖9所示。
1)循環(huán)獲取起始角度信息,當(dāng)前后兩次獲取信息絕相差小于5°時(shí),得到穩(wěn)定的起始角度值start_angle。
2)根據(jù)當(dāng)前的角度值start_angle和需要旋轉(zhuǎn)的角度值,計(jì)算得到預(yù)設(shè)的角度值set_value。
為了避免預(yù)設(shè)角度值在獲取時(shí)被錯(cuò)過的情況發(fā)生,可以在預(yù)設(shè)角度值的基礎(chǔ)上進(jìn)行5°的增幅,獲得預(yù)設(shè)角度范圍angle_little-angle_ big,當(dāng)angle_little<angle_big說明角度范圍沒有經(jīng)過360°-0°度的突變,否則角度范圍存在突變。
3)當(dāng)angle_little<angle_big時(shí),機(jī)器人的預(yù)設(shè)角度范圍如圖7中①,因?yàn)闄C(jī)器人根據(jù)相應(yīng)的方向設(shè)定進(jìn)行旋轉(zhuǎn)時(shí),存在越過360°~0°的突變,所以又將除預(yù)設(shè)范圍外的部分分別化為②和③,在程序中將當(dāng)前的角度值保存為result。
當(dāng)機(jī)器人順時(shí)針旋轉(zhuǎn)時(shí),滿足以下一個(gè)條件即可判斷為機(jī)器人達(dá)到預(yù)設(shè)角度值:
a)當(dāng)前角度值result在預(yù)設(shè)角度范圍內(nèi)。
b)當(dāng)機(jī)器人的起始位置start_angle在圖7中區(qū)域②中,而當(dāng)前位置result在在圖中7區(qū)域③中。
c)當(dāng)機(jī)器人的起始位置start_angle在圖7中區(qū)域③中時(shí),而當(dāng)前位置result>angle_little并且result<start_angle。
當(dāng)機(jī)器人逆時(shí)針旋轉(zhuǎn)時(shí)。滿足以下其中一個(gè)條件即可判斷為機(jī)器人達(dá)到預(yù)設(shè)角度值:
a)當(dāng)前角度值result在預(yù)設(shè)角度范圍內(nèi)。
b)當(dāng)機(jī)器人的起始位置start_angle在圖7區(qū)域②中,而當(dāng)前位置result<angle_little并且result>start_angle。
c)當(dāng)機(jī)器人的起始位置start_angle在圖7區(qū)域③中時(shí),而當(dāng)前位置result在圖7區(qū)域②。
4)當(dāng)angle_little<angle_big時(shí),機(jī)器人的角度預(yù)設(shè)范圍經(jīng)過360°-0°的突變值,為了區(qū)別變化,如圖8要將預(yù)設(shè)區(qū)間分為①和②兩個(gè)區(qū)間進(jìn)行考慮,將剩余的區(qū)域化為③。然后機(jī)器人根據(jù)相應(yīng)的方向設(shè)定進(jìn)行旋轉(zhuǎn),并將當(dāng)前的角度值保存為result。
當(dāng)機(jī)器人順時(shí)針旋轉(zhuǎn)時(shí)滿足以下其中一個(gè)條件即可判斷為機(jī)器人達(dá)到預(yù)設(shè)角度值:
a)當(dāng)前角度值result在圖8區(qū)域①或區(qū)域②其中一個(gè)預(yù)設(shè)角度范圍內(nèi)。
b)當(dāng)機(jī)器人的起始位置start_angle在圖8區(qū)域③中,而result>angle_big并且result<start_angle。
當(dāng)機(jī)器人逆時(shí)針旋轉(zhuǎn)時(shí)滿足以下其中一個(gè)條件即可判斷為機(jī)器人達(dá)到預(yù)設(shè)角度值:
a)當(dāng)前角度值result在圖8區(qū)域①或區(qū)域②其中一個(gè)預(yù)設(shè)角度范圍內(nèi)。
b)當(dāng)機(jī)器人的起始位置start_angle在圖8區(qū)域③中,而result<angle_little并且result>start_angle。
4 結(jié)束語
將該控制策略用于控制機(jī)器人轉(zhuǎn)角,可靠性和穩(wěn)定性得到了極大的提高,成功率可達(dá)到100%,完全可以滿足競(jìng)賽的要求。在此基礎(chǔ)上設(shè)計(jì)的除塵競(jìng)賽機(jī)器人具有成本低、可靠性高的特點(diǎn),在第四屆江蘇省機(jī)器人大賽除塵比賽中,除塵面積覆蓋率達(dá)到80%以上,并取得一等獎(jiǎng)。