你的位置:首頁 > 傳感技術 > 正文

基于超聲波傳感器的移動機器人導航設計

發(fā)布時間:2019-02-25 責任編輯:wenwei

【導讀】該機器人的最小系統(tǒng)為,觸摸屏模塊,超聲波模塊,攝像頭圖像采集模塊,直流電機閉環(huán)控制系統(tǒng),在整個系統(tǒng)中測距是最總要的一環(huán),它直接影響電機運行距離的精度,在有效范圍內的圖像采集控制。整個系統(tǒng)都是在ARM9 與linux 平臺中完成,每個模塊都是用設備驅動的方式實現使得模塊的控制更加方便。
 
1、引言
 
在項目開發(fā)中采用從英國進口的SRF05 超聲波傳感器,它的回波反饋與測距方式與通常使用的超聲波傳感器相比較特別, 在ARM中實現也稍有難度, 但該傳感器精度很高可達到1cm, 因此用該傳感器去掉了用于近距離測距的紅外測距模塊節(jié)約了硬件資源。
 
該機器人的最小系統(tǒng)為,觸摸屏模塊,超聲波模塊,攝像頭圖像采集模塊,直流電機閉環(huán)控制系統(tǒng),在整個系統(tǒng)中測距是最總要的一環(huán),它直接影響電機運行距離的精度,在有效范圍內的圖像采集控制。整個系統(tǒng)都是在ARM9 與linux 平臺中完成,每個模塊都是用設備驅動的方式實現使得模塊的控制更加方便。
  
2、SRF05 超聲波測距方法
 
提供一個10us 的脈沖觸發(fā)超聲波傳感器,SRF05 會發(fā)出8 個周期的頻率為40khz 的超頻脈沖,此時在echo 也是就回波口上的電平變?yōu)楦?,此時定時器開始計時,等到echo 變?yōu)榈碗娖阶C明有障礙物此時停止計時,高脈沖的寬度有測距的距離成正比,該超聲波的有效測距范圍為1cm~4m, 因此如果沒有障礙物或障礙物大于4m,echo 依然會變?yōu)榈碗娖酱藭r定時器的時間為30ms, 因此在測距時定時器的周期應大于30ms 這樣才能有效測距。
 
基于超聲波傳感器的移動機器人導航設計
原理如圖1 所示。
 
3、超聲波測距軟件實現
 
基于超聲波傳感器的移動機器人導航設計
如圖2 為超聲波測距的流程圖。
 
3.1 回波檢測的采集方法
 
超聲波的回波的檢測是個難點, 因為在ARM中一個端口設置中斷只能設置一種觸發(fā)方式, 如果設為上升沿觸發(fā)可以打開定時器定時但無法捕獲下降沿,也就無法關閉定時器,從而不能測距, 因此用軟件的方式實現。首先設置兩個時間延遲函數usdelay()和msdelay(),這樣可以在給出高脈沖10us 后等超聲波觸發(fā)再打開定時期計時,在設置一個外部中斷eint1 接到超聲波傳感器的echo 口并設置為下降沿觸發(fā),等下降沿來臨關閉定時器讀出值既為脈寬的時間長度,然后根據障礙物的距離=(ECHO高電平的時間)* 聲納速度/2 得出距離??諝庵衯 與溫度關系:v=331.5√1+T/273 m/s,T 為攝氏溫度。一般情況下超聲波速近似聲速,在室內溫度影響下取約343.2m/s。
 
3.2 超聲波觸發(fā)的實現
 
利用數字示波器精確設計一個軟件計時函數usdelay (),具體實現如下。
 
基于超聲波傳感器的移動機器人導航設計
 
則usdelay(1)既為10us,該函數用于在給出激發(fā)高脈沖后延續(xù)10us 然后關脈沖。
 
還要設計一個msdelay()用于控制整個測距周期的時間值。
 
msdelay(1000)在主函數數中用于延遲1s,這樣定時器可以完全有足夠的回波檢測時間同時也不會對其它三路超聲波信號造成干擾。
 
如下所示。
 
基于超聲波傳感器的移動機器人導航設計
 
3.3 超聲波回波檢測的實現
 
回波檢測計算脈寬的時間需要用到定時器和外部中斷,外部中斷接超聲波的echo 并設置為下降沿觸發(fā)。定時器的初始化如下。
 
rTCFG0=0x9595; //預分頻值為95
 
rTCFG1=0x00000; //分割值1/2
 
rTCNTB0=10000; /
 
根據T=[TCNTB0*(TCFG0+1)*(1/TCFG1)]/50MHZ 得出定時器的周期為60ms 在這個時間段里足以計算回波時間。
 
外部中斷1 初始化如下
 
rGPFCON=0xaa; //GPF1 設置為EINT1
 
rINTMOD=0x0; //設置為普通中斷
 
rGPFUP=0xf; //禁止GPF0 上拉電阻
 
pISR_EINT1=(unsigned)Eint1Handler; //建立中斷向量
 
EnableIrq(BIT_EINT1); //使能中斷
 
rEXTINT0 =0x492; // EINT1 下降沿觸發(fā)
 
根據T=[TCNTB0*(TCFG0+1)*(1/TCFG1)]/50MHZ 得出定時器的周期為60ms 在這個時間段里足以計算回波時間。
 
3.4 在外部中斷中計算機距離
 
基于超聲波傳感器的移動機器人導航設計
 
3.5 循環(huán)控制與輪詢測距
 
由于超聲波之間有干擾,采用輪詢的方式依次打開超聲波,每次只測一個,這樣可以有效地避免干擾,為了提高實時性可以控制定時器周期,比如設置為35ms,這樣四路超聲波輪詢一次大約為140ms,足以滿足實時要求。
 
4、機器人控制的實現
 
圖3 為利用超聲波的反饋信息控制機器人直流電機閉環(huán)系統(tǒng)的總體結構圖。
 
基于超聲波傳感器的移動機器人導航設計
 
linux 系統(tǒng)中超聲波傳感器為只讀的字符設備,具體應用為在應用程序下打開超聲波設備,然后在驅動中測距,測得的數據傳到應用程序,應用程序中有超聲波的避障算法,根據算法判斷障礙物的位置給直流電機控制信號進行避障導航。
 
觸摸屏中的圖形界面中含有機器人的指令設置, 可以設置運行速度,圖像采集與超聲波模塊的打開與關閉,是否開啟機器人模糊算法運行軌跡還是使用普通的PID 調節(jié), 這使得機器人有很多種方案可以選擇。
 
機器人的每一次行為都是根據超聲波傳感器測得的值和當前機器人運行的即時速度來來給出將要運行的時間, 在遇到障礙物時(0<t<30us 等于30 微秒時達到超聲波的最大探測距離), 開啟攝像頭圖像采集模塊, 這時攝像頭會拍下障礙物的圖像,并利用無線MODEM把圖像傳回控制電腦,這樣用戶就可以知道前方是什么障礙物, 該系統(tǒng)實現了移動機器人的自主避障和采集障礙物信息的作用,可以用來探測未知環(huán)境。
 
5、結論
 
本文采用新型的超聲波傳感器,在ARM9 與嵌入式linux 為平臺的移動機器人上實現了超聲波的測距, 并利用超聲波傳感器控制運動系統(tǒng)和圖像采集系統(tǒng)。該機器人目前已經成功應用與本項目的開發(fā)并取得良好的效果。
 
本文創(chuàng)新點:采用一種精度高的新型超聲波傳感器,用軟件方法克服了它在ARM9 中不利于檢測回波的問題,成功應用于移動機器人的運行軌跡控制, 使得機器人無論在行走和圖像采集的即時性上都得到了很大的高。
 
 
推薦閱讀:
 
深度解析紅外傳感器檢測紅外輻射的原理
超聲波風速傳感器在氣象領域中有何作用?
超聲波傳感器把每臺風機變成測風塔
超聲波傳感器在汽車制造天窗玻璃檢測中應用
激光測距傳感器在工業(yè)制造中的應用
要采購傳感器么,點這里了解一下價格!
特別推薦
技術文章更多>>
技術白皮書下載更多>>
熱門搜索
?

關閉

?

關閉