程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 自學習循路的移動機器人模型設計與實現

自學習循路的移動機器人模型設計與實現

編輯:關於C語言
 

介紹了一種具有自學習循路功能的輪式移動機器人模型的設計方法。該模型由兩後輪作驅動輪來控制前進速度和方向,並可在道路學習時以數據形式記錄和存儲兩輪的瞬時速率,然後再由微控制器MCU輸出控制信號來驅動後輪以實現道路的循跡。

關鍵詞:MCU;機器人;學習記憶;循路

隨著科學技術的不斷發展,機器人技術在航天、海洋、軍事、建築、交通、工業及服務業等領域已經取得廣泛的應用和發展。而在一些特殊場合(如航天、深海作業及核工業等領域),以無人探察車、無人排險車及無人運輸車等為代表的機器人技術越來越受到關注。為此,筆者設計了一種具有道路記憶功能、使用靈活方便、應用范圍較廣的輪式移動機器人模型。

該機器人模型以微控制器MCU為核心,先由人對機器人模型按照所要行走的路線進行訓練,即讓機器人模型記憶該路線(將路線數據存儲在存儲器中)。以後機器人模型就可沿此路線重復行走。其記憶路線的方式靈活方便,可根據不同的要求和需要對其進行不同的路線訓練以完成不同的任務。

該模型可以應用於一些人類不宜活動或較難控制的場合(如微型核反應堆的金屬罐管系統、火場探測、輻射、消防、有毒、易燃、易爆物體場所的探測等),也可作為室內服務機器人使用,以代替人完成家務勞動、廠區貨物搬運、醫院病歷及資料的傳遞等。

該機器人模型具有以下特性:


具有道路學習記憶和道路循跡重復功能;
可模擬地圖仿真訓練,輸出放大倍數可按需要設定;
在實際工作時,如遇到障礙物可采用道路轉移法繞過障礙物並沿原學習道路繼續前進;
工作時無人控制;
光線較暗時會自動打開光源;
前進距離可用LCD實時顯示
運動狀態可用指示燈實時顯示;
具有系統故障報警功能。
 

1、系統硬件設計

系統硬件設計框圖如圖1所示,核心控制部分采用Atmel公司的普及型8位MCU AT89C51?作為一款目前廣泛應用的MCU,AT89C51提供有電機控制?LCD驅動顯示以及傳感信息等多種驅動功能和接口,另一方面,該MCU價格低廉,有很高的性價比?外接存儲模塊采用容量為256kB的24LC256閃存芯片,當然,也可以根據實際需要選用其它容量的閃存芯片?感光探測選用光敏電阻即可感應外界光線的強弱?障礙物探測采用美國邦納工程有限公司的PicoDot PD系列激光傳感器,該傳感器能對被測物體進行精確的到位檢測?定位和計數?

201007231.gif

2、系統設計要點

輪式移動機器人模型的速度及方向可由兩個後輪作為驅動輪來控制,MCU通過驅動芯片L293B驅動兩個後輪電機?AT89C5可通過兩個後輪對應的兩個計速器來分別控制這兩個後輪的轉速,從而實現模型的前進和轉向功能?

2.1 計速部分

系統計速部分由光電開關及帶有均勻分布小孔的圓盤組成,其電路及皮帶輪連接示意圖如圖2所示?當光電開關中間有黑色物體擋住時,輸出電平為0;無遮擋時,輸出電平為1?當均勻分布小孔的圓盤邊緣在光電開關的槽中轉動時,可根據輸出的一系列脈沖及圓盤上的孔數計算出圓盤的轉速N?皮帶輪1與圓盤粘在一起,因而轉速相同;皮帶輪2與模型後驅動輪同軸,速度相同;皮帶輪1?皮帶輪2由皮帶相連?假設皮帶輪2周長是皮帶輪1周長的5倍,則皮帶輪2的轉速為N/5,即車輪轉速為N/5?

201007232.gif

2.2 道路學習記憶

計數芯片選用7級二進制串行計數器CD4024,光電開關的輸出波形經施密特觸發器整形為標准脈沖波形可使CD4024計數更方便?設每隔T時間記錄到脈沖數M,那麼,T時間內圓盤轉速N=M/(LT)(設L為圓盤上的孔數),則車輪的速率為N/5=M/(5LT)?由於T越小,結果越精確,故T取幾至幾十毫秒?記錄的數據經微控制器MCU送至外接閃存24LC256儲存起來,供輸出使用?通過上述過程可對模型進行道路訓練,即每隔T時間將兩個後輪速率分別記入閃存?訓練結束後,閃存內存儲的是兩個後輪每隔T時間一次的速率,這樣就可實現對訓練道路的記憶?

2.3 道路循跡重復

在對該模型進行輸出控制時,先由微控制器MCU從閃存中讀取數據,再將每隔T時間的轉速數據通過脈沖輸出,並通過L293B芯片驅動兩後輪電機的轉動?為保證輸出的轉速與原記錄的轉速一致,可用反饋控制的方法在後輪驅動電機轉動的同時,由計速器模塊同時檢測兩個後輪的轉速,然後分別比較兩個後輪的轉速是否與原記錄轉速相同:若小於原記錄轉速,可調用加速子程序;若大於,則調用減速子程序?

由於計數時間T較小,再加上反饋控制的作用,就可保證輸出的運動軌跡精確接近於原訓練道路,誤差很小?實際運行時,可在保證記錄和輸出精度的前提下把訓練的道路模擬成與實際道路按比例縮小的地圖,即在地圖上對模型進行道路訓練,按比例倍數放大輸出,即可使機器人在實際道路上按訓練道路運動?由於輸出放大倍數由程序決定,因而可按不同的需要設置,靈活性很高?

2.4 道路轉移法繞障

該機器人模型在訓練完成後,即可從預設地點開始行走?模型在前進過程中,當傳感器探測到前方有障礙物時,可調用繞障礙物程序繞過障礙物並返回到原記錄道路繼續前進?其繞障過程示意圖如圖3所示,

201007233.gif

當模型傳感器在A點探測到前方有障礙物時,會將障礙物模擬成一邊與當時模型方向垂直的矩形物體(見圖中虛線矩形)?然後中斷從閃存中讀取路線數據,並使模型在A點左轉90°,接著以勻速v直線前進t1時間到B點,再在B點右轉90°,接著從原中斷處調用原記錄路線數據前進t2時間到達C點?之後再在C點以方向 C 1 轉動 C1與 C2方向的夾角θ(θ=90°-兩車輪前進距離差/兩車輪間距),模型方向 從 C1轉動到 C2 ,然後再以勻速v直線前進t1時間到D點,此時方向為 d2方向,然後再以C1到C2的相反方向從 d2轉θ角到 d1方向,即 d1 // C1?實際上,在沒有障礙物的情況下,模型依所記錄路線應沿AD段前進,到達D點方向為 d1方向?由圖可見,BC段的運動情況完全等同於AD段的運動情況,也就是說,在遇到障礙物時,機器人會將AD段轉移到實際的BC段運動以繞開障礙物,同時保持它應有的運動狀態並返回原記錄路線?其中t1?t2的選取與虛線矩形的大小(代表障礙物的大小)有關,它可由傳感器探測到的障礙物大小來確定?

2.5 附加功能

應用時也可根據特殊需要,在模型上安裝攝像機以實時觀察或安裝自動拍照的數碼像機來記錄工作區域周圍的情況?當模型探測到周圍環境的光線比較暗時,還可由微控制器MCU打開光源,以便為像機提供照明?此外,模型上還設計了工作指示燈來實時指示模型的工作狀態,不同指示燈分別指示其正常?左轉?右轉及出錯狀態,以方便使用者及時了解模型的工作情況?外接LCD可實時顯示模型的前進距離,每個車輪前進的距離=記錄的車輪的轉數×車輪的周長,再取兩個車輪前進距離的平均值作為模型的前進距離,這樣可方便使用者及時了解模型的進程?若模型在工作過程中發生故障(如不能前進?失控等),也可通過警鈴和警燈提醒用戶及時檢修?

3、系統軟件設計

圖4、圖5分別為機器人模型道路學習記憶、循跡重復的軟件流程。本程序中,道路學習記憶時的記錄時間間隔T取30ms,輸出控制時,在每一個記錄周期內比較6次(每5ms計一次數,再乘以6與原記錄數相比較,以判斷應加速還是減速),以使輸出更精確於原記錄數據。

201007234.gif

201007235.gif

圖6為繞障礙物程序流程圖,其中模型方向轉過一定角度可由一輪靜止、另一輪運動時的兩輪間距×轉動角弧度的距離來實現。

201007236.gif

4、結束語

該機器人模型相比無線遙控操作機器人的優勢在於,可工作在電磁波屏蔽的場合;而相比有線遙控操作機器人來說,其優點是工作過程中無需人實時控制,可自主完成活動,並具有活動精度高、效率高的特點;相比固定軌道機器人,該模型能夠擺脫固定軌道的限制,其活動路線靈活易變,適應范圍更廣。

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved