自學(xué)習(xí)循路的移動(dòng)機(jī)器人模型設(shè)計(jì)與實(shí)現(xiàn)
摘要:介紹了一種具有自學(xué)習(xí)循路功能的輪式移動(dòng)機(jī)器人模型的設(shè)計(jì)方法。該模型由兩后輪作驅(qū)動(dòng)輪來控制前進(jìn)速度和方向,并可在道路學(xué)習(xí)時(shí)以數(shù)據(jù)形式記錄和存儲(chǔ)兩輪的瞬時(shí)速率,然后再由微控制器MCU輸出控制信號來驅(qū)動(dòng)后輪以實(shí)現(xiàn)道路的循跡。
關(guān)鍵詞:MCU;機(jī)器人;學(xué)習(xí)記憶;循路
隨著科學(xué)技術(shù)的不斷發(fā)展,機(jī)器人技術(shù)在航天、海洋、軍事、建筑、交通、工業(yè)及服務(wù)業(yè)等領(lǐng)域已經(jīng)取得廣泛的應(yīng)用和發(fā)展。而在一些特殊場合(如航天、深海作業(yè)及核工業(yè)等領(lǐng)域),以無人探察車、無人排險(xiǎn)車及無人運(yùn)輸車等為代表的機(jī)器人技術(shù)越來越受到關(guān)注。為此,筆者設(shè)計(jì)了一種具有道路記憶功能、使用靈活方便、應(yīng)用范圍較廣的輪式移動(dòng)機(jī)器人模型。
該機(jī)器人模型以微控制器MCU為核心,先由人對機(jī)器人模型按照所要行走的路線進(jìn)行訓(xùn)練,即讓機(jī)器人模型記憶該路線(將路線數(shù)據(jù)存儲(chǔ)在存儲(chǔ)器中)。以后機(jī)器人模型就可沿此路線重復(fù)行走。其記憶路線的方式靈活方便,可根據(jù)不同的要求和需要對其進(jìn)行不同的路線訓(xùn)練以完成不同的任務(wù)。
該模型可以應(yīng)用于一些人類不宜活動(dòng)或較難控制的場合(如微型核反應(yīng)堆的金屬罐管系統(tǒng)、火場探測、輻射、消防、有毒、易燃、易爆物體場所的探測等),也可作為室內(nèi)服務(wù)機(jī)器人使用,以代替人完成家務(wù)勞動(dòng)、廠區(qū)貨物搬運(yùn)、醫(yī)院病歷及資料的傳遞等。
該機(jī)器人模型具有以下特性:
●具有道路學(xué)習(xí)記憶和道路循跡重復(fù)功能;
●可模擬地圖仿真訓(xùn)練,輸出放大倍數(shù)可按需要設(shè)定;
●在實(shí)際工作時(shí),如遇到障礙物?可采用道路轉(zhuǎn)移法繞過障礙物并沿原學(xué)習(xí)道路繼續(xù)前進(jìn);
●工作時(shí)無人控制;
●光線較暗時(shí)會(huì)自動(dòng)打開光源;
●前進(jìn)距離可用LCD實(shí)時(shí)顯示;
●運(yùn)動(dòng)狀態(tài)可用指示燈實(shí)時(shí)顯示;
●具有系統(tǒng)故障報(bào)警功能。
1 系統(tǒng)硬件設(shè)計(jì)
系統(tǒng)硬件設(shè)計(jì)框圖如圖1所示,核心控制部分采用Atmel公司的普及型8位MCU AT89C51。作為一款目前廣泛應(yīng)用的MCU,AT89C51提供有電機(jī)控制、LCD驅(qū)動(dòng)顯示以及傳感信息等多種驅(qū)動(dòng)功能和接口,另一方面,該MCU價(jià)格低廉,有很高的性價(jià)比。外接存儲(chǔ)模塊采用容量為256kB的24LC256閃存芯片,當(dāng)然,也可以根據(jù)實(shí)際需要選用其它容量的閃存芯片。感光探測選用光敏電阻即可感應(yīng)外界光線的強(qiáng)弱。障礙物探測采用美國邦納工程有限公司的PicoDot PD系列激光傳感器,該傳感器能對被測物體進(jìn)行精確的到位檢測、定位和計(jì)數(shù)。
2 系統(tǒng)設(shè)計(jì)要點(diǎn)
輪式移動(dòng)機(jī)器人模型的速度及方向可由兩個(gè)后輪作為驅(qū)動(dòng)輪來控制,MCU通過驅(qū)動(dòng)芯片L293B驅(qū)動(dòng)兩個(gè)后輪電機(jī)。AT89C5可通過兩個(gè)后輪對應(yīng)的兩個(gè)計(jì)速器來分別控制這兩個(gè)后輪的轉(zhuǎn)速,從而實(shí)現(xiàn)模型的前進(jìn)和轉(zhuǎn)向功能。
2.1 計(jì)速部分
系統(tǒng)計(jì)速部分由光電開關(guān)及帶有均勻分布小孔的圓盤組成,其電路及皮帶輪連接示意圖如圖2所示。當(dāng)光電開關(guān)中間有黑色物體擋住時(shí),輸出電平為0;無遮擋時(shí),輸出電平為1。當(dāng)均勻分布小孔的圓盤邊緣在光電開關(guān)的槽中轉(zhuǎn)動(dòng)時(shí),可根據(jù)輸出的一系列脈沖及圓盤上的孔數(shù)計(jì)算出圓盤的轉(zhuǎn)速N。皮帶輪1與圓盤粘在一起,因而轉(zhuǎn)速相同;皮帶輪2與模型后驅(qū)動(dòng)輪同軸,速度相同;皮帶輪1、皮帶輪2由皮帶相連。假設(shè)皮帶輪2周長是皮帶輪1周長的5倍,則皮帶輪2的轉(zhuǎn)速為N/5,即車輪轉(zhuǎn)速為N/5。
2.2 道路學(xué)習(xí)記憶
計(jì)數(shù)芯片選用7級二進(jìn)制串行計(jì)數(shù)器CD4024,光電開關(guān)的輸出波形經(jīng)施密特觸發(fā)器整形為標(biāo)準(zhǔn)脈沖波形可使CD4024計(jì)數(shù)更方便。設(shè)每隔T時(shí)間記錄到脈沖數(shù)M,那么,T時(shí)間內(nèi)圓盤轉(zhuǎn)速N=M/(LT)(設(shè)L為圓盤上的孔數(shù)),則車輪的速率為N/5=M/(5LT)。由于T越小,結(jié)果越精確,故T取幾至幾十毫秒。記錄的數(shù)據(jù)經(jīng)微控制器MCU送至外接閃存24LC256儲(chǔ)存起來,供輸出使用。
通過上述過程可對模型進(jìn)行道路訓(xùn)練,即每隔T時(shí)間將兩個(gè)后輪速率分別記入閃存。訓(xùn)練結(jié)束后,閃存內(nèi)存儲(chǔ)的是兩個(gè)后輪每隔T時(shí)間一次的速率,這樣就可實(shí)現(xiàn)對訓(xùn)練道路的記憶。
2.3 道路循跡重復(fù)
在對該模型進(jìn)行輸出控制時(shí),先由微控制器MCU從閃存中讀取數(shù)據(jù),再將每隔T時(shí)間的轉(zhuǎn)速數(shù)據(jù)通過脈沖輸出,并通過L293B芯片驅(qū)動(dòng)兩后輪電機(jī)的轉(zhuǎn)動(dòng)。為保證輸出的轉(zhuǎn)速與原記錄的轉(zhuǎn)速一致,可用反饋控制的方法在后輪驅(qū)動(dòng)電機(jī)轉(zhuǎn)動(dòng)的同時(shí),由計(jì)速器模塊同時(shí)檢測兩個(gè)后輪的轉(zhuǎn)速,然后分別比較兩個(gè)后輪的轉(zhuǎn)速是否與原記錄轉(zhuǎn)速相同:若小于原記錄轉(zhuǎn)速,可調(diào)用加速子程序;若大于,則調(diào)用減速子程序。
由于計(jì)數(shù)時(shí)間T較小,再加上反饋控制的作用,就可保證輸出的運(yùn)動(dòng)軌跡精確接近于原訓(xùn)練道路,誤差很小。實(shí)際運(yùn)行時(shí),可在保證記錄和輸出精度的前提下把訓(xùn)練的道路模擬成與實(shí)際道路按比例縮小的地圖,即在地圖上對模型進(jìn)行道路訓(xùn)練,按比例倍數(shù)放大輸出,即可使機(jī)器人在實(shí)際道路上按訓(xùn)練道路運(yùn)動(dòng)。由于輸出放大倍數(shù)由程序決定,因而可按不同的需要設(shè)置,靈活性很高。
2.4 道路轉(zhuǎn)移法繞障
該機(jī)器人模型在訓(xùn)練完成后,即可從預(yù)設(shè)地點(diǎn)開始行走。模型在前進(jìn)過程中,當(dāng)傳感器探測到前方有障礙物時(shí),可調(diào)用繞障礙物程序繞過障礙物并返回到原記錄道路繼續(xù)前進(jìn)。其繞障過程示意圖如圖3所示,當(dāng)模型傳感器在A點(diǎn)探測到前方有障礙物時(shí),會(huì)將障礙物模擬成一邊與當(dāng)時(shí)模型方向垂直的矩形物體(見圖中虛線矩形)。然后中斷從閃存中讀取路線數(shù)據(jù),并使模型在A點(diǎn)左轉(zhuǎn)90°,接著以勻速v直線前進(jìn)t1時(shí)間到B點(diǎn),再在B點(diǎn)右轉(zhuǎn)90°,接著從原中斷處調(diào)用原記錄路線數(shù)據(jù)前進(jìn)t2時(shí)間到達(dá)C點(diǎn)。之后再在C點(diǎn)以方向 C 1 轉(zhuǎn)動(dòng) C1與 C2方向的夾角θ(θ=90°-兩車輪前進(jìn)距離差/兩車輪間距),模型方向 從 C1轉(zhuǎn)動(dòng)到 C2 ,然后再以勻速v直線前進(jìn)t1時(shí)間到D點(diǎn),此時(shí)方向?yàn)?d2方向,然后再以C1到C2的相反方向從 d2轉(zhuǎn)θ角到 d1方向,即 d1 // C1。實(shí)際上,在沒有障礙物的情況下,模型依所記錄路線應(yīng)沿AD段前進(jìn),到達(dá)D點(diǎn)方向?yàn)?d1方向。由圖可見,BC段的運(yùn)動(dòng)情況完全等同于AD段的運(yùn)動(dòng)情況,也就是說,在遇到障礙物時(shí),機(jī)器人會(huì)將AD段轉(zhuǎn)移到實(shí)際的BC段運(yùn)動(dòng)以繞開障礙物,同時(shí)保持它應(yīng)有的運(yùn)動(dòng)狀態(tài)并返回原記錄路線。其中t1、t2的選取與虛線矩形的大?。ù碚系K物的大?。┯嘘P(guān),它可由傳感器探測到的障礙物大小來確定。
2.5 附加功能
應(yīng)用時(shí)也可根據(jù)特殊需要,在模型上安裝攝像機(jī)以實(shí)時(shí)觀察或安裝自動(dòng)拍照的數(shù)碼像機(jī)來記錄工作區(qū)域周圍的情況。當(dāng)模型探測到周圍環(huán)境的光線比較暗時(shí),還可由微控制器MCU打開光源,以便為像機(jī)提供照明。
此外,模型上還設(shè)計(jì)了工作指示燈來實(shí)時(shí)指示模型的工作狀態(tài),不同指示燈分別指示其正常、左轉(zhuǎn)、右轉(zhuǎn)及出錯(cuò)狀態(tài),以方便使用者及時(shí)了解模型的工作情況。外接LCD可實(shí)時(shí)顯示模型的前進(jìn)距離,每個(gè)車輪前進(jìn)的距離=記錄的車輪的轉(zhuǎn)數(shù)×車輪的周長,再取兩個(gè)車輪前進(jìn)距離的平均值作為模型的前進(jìn)距離,這樣可方便使用者及時(shí)了解模型的進(jìn)程。
若模型在工作過程中發(fā)生故障(如不能前進(jìn)、失控等),也可通過警鈴和警燈提醒用戶及時(shí)檢修。
3 系統(tǒng)軟件設(shè)計(jì)
圖4、圖5分別為機(jī)器人模型道路學(xué)習(xí)記憶、循跡重復(fù)的軟件流程。本程序中,道路學(xué)習(xí)記憶時(shí)的記錄時(shí)間間隔T取30ms,輸出控制時(shí),在每一個(gè)記錄周期內(nèi)比較6次(每5ms計(jì)一次數(shù),再乘以6與原記錄數(shù)相比較,以判斷應(yīng)加速還是減速),以使輸出更精確于原記錄數(shù)據(jù)。圖6為繞障礙物程序流程圖,其中模型方向轉(zhuǎn)過一定角度可由一輪靜止、另一輪運(yùn)動(dòng)時(shí)的兩輪間距×轉(zhuǎn)動(dòng)角弧度的距離來實(shí)現(xiàn)。
4 結(jié)束語
該機(jī)器人模型相比無線遙控操作機(jī)器人的優(yōu)勢在于,可工作在電磁波屏蔽的場合;而相比有線遙控操作機(jī)器人來說,其優(yōu)點(diǎn)是工作過程中無需人實(shí)時(shí)控制,可自主完成活動(dòng),并具有活動(dòng)精度高、效率高的特點(diǎn);相比固定軌道機(jī)器人,該模型能夠擺脫固定軌道的限制,其活動(dòng)路線靈活易變,適應(yīng)范圍更廣