基于超聲波傳感器的AGV避障模塊設計與實現(xiàn)
AGV全稱Automatecl Guided Vehicles,是一種裝有自動導引裝置,能夠沿規(guī)定的路徑行駛,具有編程和停車選擇裝置、安全保護裝置以及各種物料移載功能的自動導航車。障礙物檢測是自動導航車研究的一個基本問題,是實現(xiàn)安全、正常工作的前提。超聲波傳感器以其價格低廉、測距精度高、測量穩(wěn)定、體積小等優(yōu)點,被廣泛用于AGV的避障檢測。本文以超聲波傳感器為基礎,結合CAN總線技術,設計一種AGV避障模塊,實現(xiàn)準確、有效、穩(wěn)定的障礙物檢測,確保AGV的安全運行。
本文引用地址:http://m.butianyuan.cn/article/201610/308666.htm1 超聲波傳感器波束角測量
該避障模塊使用的超聲波傳感器內(nèi)部以渡越時間法進行測距。并自帶溫度傳感器對測量結果進行校正,能夠?qū)? cm至4.5 m距離范圍內(nèi)的障礙物實現(xiàn)準確的距離測量。開始測量時,控制器通過UART向超聲波傳感器的TX引腳輸入觸發(fā)信號,傳感器發(fā)送探頭啟動并發(fā)射超聲波脈沖,然后接收探頭進入回波檢測狀態(tài)。在接收探頭檢測到回波信號后,結合溫度補償計算測距結果,并通過傳感器的RX引腳輸出距離測量數(shù)據(jù)。
1.1 超聲波傳感器測距數(shù)據(jù)采集
由于超聲波傳感器的探測波束角較小,在其實際應用中,一般使用多個傳感器組成傳感器陣列,以擴大探測范圍。超聲波傳感器陣列的構建,須解決傳感器在AGV上的布局問題,具體來說就是傳感器數(shù)量和安裝間距的選擇問題。傳感器數(shù)量和安裝間距的選擇須根據(jù)最小盲區(qū)要求確定,而超聲波傳感器的探測波束角是計算盲區(qū)的重要參數(shù),因此需要設計實驗測量傳感器的探測波束角。
如圖1的(a)所示,將超聲波傳感器固定于某點,在其前方選擇與傳感器探頭距離為d的某點放置障礙物,進行測距實驗并記錄測距值。為了使實驗結果能夠充分反映實際情況,實驗中選取不同距離d,且對于每個距離,以超聲波傳感器中軸線為原點,在左右兩側(cè)都選擇離中軸線距離為L的多個點來放置障礙物。實驗AGV對避障模塊所要求的檢測距離為0~2.5 m, 實驗中選取的d序列為[100,200,300,400,600,800,1 200,1 600,2 400] mm;常用的超聲波傳感器波束角一般小于60°,所以對于每個距離d,在離中軸線[-0.6xd,0]和[0,0.6xd]范圍內(nèi)以相同間隔各選取10個點作為L的值。
1.2 超聲波傳感器測距數(shù)據(jù)處理
在圖1(a)的實驗中,利用勾股定理,可以得到障礙物實驗中擺放位置與超聲波傳感器的實際距離:
對實驗中的每一個測距值s’,結合式(1)和式(2)可計算出相應的相對誤差。將實驗數(shù)據(jù)導入至Matlab中,以L為橫坐標、d為縱坐標、σ為豎坐標,對其插值并作圖,如圖1(b)所示。
從實驗結果可以看出,將障礙物擺放于超聲波傳感器可檢測到的區(qū)域時,檢測結果的相對誤差都能夠滿足σ6%,因此在圖1(b)中選取相對誤差σ6%的區(qū)域,可得到超聲波傳感器的波束角約為θ=40°。
2 AGV避障傳感器布局設計
2.1 傳感器數(shù)量和布局方式選擇
AGV避障模塊檢測的盲區(qū)大小與超聲波傳感器的安裝數(shù)量、安裝間距有關,傳感器數(shù)量越多、安裝間距越小,檢測盲區(qū)就越小,反之則大。超聲波傳感器利用障礙物對聲波的反射作用進行距離檢測,這一特性也決定了交叉串擾現(xiàn)象的存在,即一個傳感器發(fā)射的聲波經(jīng)障礙物反射后,能夠被相同檢測方向的傳感器接收到,從而產(chǎn)生錯誤的測距結果。因此在使用多個超聲波傳感器進行障礙物檢測的場合,常采用傳感器交替工作方式,即某一時刻有且只有一個超聲波傳感器在檢測障礙物。若傳感器安裝數(shù)量過多,AGV避障檢測周期就會增大,影響其檢測實時性,從而對AGV的安全工作產(chǎn)生不利因素。從減小盲區(qū)和提高避障檢測實時性兩方面綜合考慮,從實驗AGV的500 mm車寬出發(fā),初步確定在所應用的實驗AGV的車頭安裝4個超聲波傳感器。由于實驗AGV不需要倒車和側(cè)向移動,所以其車尾和側(cè)面不需要安裝超聲波傳感器。
為了使每兩相鄰超聲波傳感器之間的檢測盲區(qū)大小保持一致,4個傳感器采用等距布局的方式,如圖2(a)所示。兩相鄰傳感器的距離為:
2.2 避障預警距離和檢測盲區(qū)計算
如圖2(b)所示,距離AGV兩側(cè)250 mm范圍內(nèi)為側(cè)面安全距離。中間的2、3號超聲波傳感器作為主探測器,兩側(cè)的1、4號為輔助探測器。其中輔助探測器用于減小主探測器的測量肓區(qū)。主探測器和輔助探測器的預警距離分別為:
在AGV的避障檢測中,當障礙物進入2、3號超聲波傳感器的d3范圍或1、4號超聲波傳感器的d2范圍內(nèi)時,AGV停車報警。
在圖2(b)中,AGV車頭前面的陰影部分為避障檢測模塊的檢測盲區(qū)區(qū)域,由多個三角形組成,該區(qū)域垂直距離(即三角形的高)為:
可見,在此布局方案中,AGV避障模塊的檢測盲區(qū)較小,配合安裝于車頭的防撞桿,能夠滿足AGV安全運行的要求。
3 AGV避障模塊硬件設計
3.1 避障模塊硬件結構
AGV避障模塊的硬件結構如圖3所示,模塊以AVR單片機為控制核心。在避障檢測時,由于每次只有一個超聲波傳感器處于工作狀態(tài),所以4個超聲波傳感器可通過多路模擬選擇開關共享AVR單片機的UART接口。當避障模塊預警區(qū)域存在障礙物,AVR控制語音芯片播放語音提示,并通過CAN總線將預警狀態(tài)和障礙物距離發(fā)送到AGV的總控制器。
3.2 語音預警功能電路
AGV避障模塊語音預警功能電路如圖4。當障礙物進入預警區(qū)域,AVR單片機通過三線串口控制WT588D-U語音芯片讀取內(nèi)部的音頻文件,并輸出相應音頻信號,經(jīng)LM386功率放大后輸出到小型喇叭。通過調(diào)節(jié)R7變阻器調(diào)節(jié)端可改變語音預警的音量大小。
3.3 超聲波傳感器控制電路
如圖5所示,AVR單片機通過CD4052多路模擬選擇開關對四個超聲波傳感器進行控制。ChaSelA和ChaSelB信號的四個不同狀態(tài)組合分別代表模擬開關的四個通道。CSB_TrigN和CSB_EchoN分別是超聲波傳感器觸發(fā)信號輸入端和測距數(shù)據(jù)輸出端。工作時,利用ChaSelA和ChaSelB信號選擇所要控制的超聲波傳感器,模塊控制器通過TXD引腳向所選定的傳感器發(fā)送觸發(fā)信號,傳感器即向前方發(fā)送聲波,并在接收到回波信號后,向控制器發(fā)送測距數(shù)據(jù)。
3.4 CAN總線通訊電路
AGV避障模塊引入了CAN總線技術,能夠?qū)㈩A警狀態(tài)和測距數(shù)據(jù)上傳到總控制器,實現(xiàn)分布式控制。CAN總線通信電路主要由CAN通信控制器MCP2515、CAN總線收發(fā)器PCA82C251及相應的復位、時鐘電路組成,如圖6所示。避障模塊控制器通過SPI接口將預警狀態(tài)和測距數(shù)據(jù)發(fā)送到CAN總線控制器MCP2515,由MCP2515轉(zhuǎn)換成異步信號輸送到CAN總線收發(fā)器PCA82C251,并最終發(fā)送到CAN總線上。
4 AGV避障模塊軟件設計
避障模塊所應用的AGV平臺基于CAN總線構建其車載分布式控制系統(tǒng),控制系統(tǒng)的CAN應用層協(xié)議采用問答模式,即CAN通訊網(wǎng)絡的某個節(jié)點主動發(fā)起的數(shù)據(jù)幀傳輸(詢問幀),必須得到數(shù)據(jù)幀接收節(jié)點的應答(應答幀),否則將進行重發(fā)。問答模式提高了控制系統(tǒng)運行的可靠性。
AGV運行時,當障礙物進入預警范圍,避障模塊播放語音提示,并通過CAN總線向控制系統(tǒng)總控制器發(fā)送預警消息??刂葡到y(tǒng)總控制器接收到預警消息后,向避障模塊發(fā)送應答幀,并控制電機減速或停車。此外,控制系統(tǒng)總控制器能夠向避障模塊發(fā)送詢問幀,控制其關閉或開啟避障檢測和語音提示功能,因此AGV在運行時,避障模塊通過CAN總線發(fā)送的消息有兩類:主動發(fā)起的詢問幀和對其他節(jié)點發(fā)來的詢問幀的應答幀;通過CAN總線接收的消息也為兩類:其他節(jié)點發(fā)來的應答幀和詢問幀。
該避障模塊的軟件基于鏈表創(chuàng)建了兩個CAN消息隊列:CAN發(fā)送隊列和CAN待應答隊列。發(fā)送詢問幀時,創(chuàng)建發(fā)送結點,掛接到CAN發(fā)送隊列中,并同時創(chuàng)建對應的待應答結點,兩者通過指針成員相互綁定。發(fā)送應答幀時,創(chuàng)建發(fā)送結點并掛接到CAN發(fā)送隊列,此時不需要創(chuàng)建待應答結點。如圖7所示,主函數(shù)輪詢CAN發(fā)送隊列是否為空,若不為空,取出發(fā)送結點并執(zhí)行CAN數(shù)據(jù)幀的發(fā)送。如果發(fā)送結點為詢問幀,執(zhí)行發(fā)送后,將綁定的待應答結點掛接到CAN待應答隊列,等待數(shù)據(jù)幀接收節(jié)點的應答。軟件使用定時器作為系統(tǒng)時鐘,在定時器中斷函數(shù)中對CAN待應答隊列中每個待應答結點的等待時間進行計時。若某個待應答結點等待超時,移出待應答隊列并將綁定的發(fā)送結點重新掛接到CAN發(fā)送隊列,執(zhí)行重發(fā)。在多次重發(fā)都沒有得到應答時,刪除該待應答結點和綁定的發(fā)送結點。若某個詢問幀等待應答超時前接收到應答幀,表示該次CAN詢問幀傳輸成功,并且在CAN數(shù)據(jù)幀接收處理函數(shù)中刪除相應的待應答結點和綁定的發(fā)送結點。
如圖8所示,CAN數(shù)據(jù)幀接收處理函數(shù)也對避障模塊接收到的其他CAN節(jié)點發(fā)送的詢問幀進行解釋,執(zhí)行相應操作,并創(chuàng)建應答幀掛接到CAN發(fā)送隊列。軟件使用SCI中斷函數(shù)輪詢4個超聲波傳感器的檢測數(shù)據(jù),并在完成一次輪詢后對檢測數(shù)據(jù)進行融合,根據(jù)數(shù)據(jù)融合處理的結果判斷障礙物是否進入預警距離。當障礙物進入預警距離,對預警消息創(chuàng)建發(fā)送結點和待應答結點,并將發(fā)送結點掛接到CAN發(fā)送隊列,同時播放語音提示。
5 實驗應用
將所設計的避障模塊安裝到實驗AGV上,使AGV上電運行,并在運行中進行障礙物檢測測試。在測試時,使用車載觸摸屏的狀態(tài)顯示界面能夠讀取、顯示超聲波傳感器檢測數(shù)據(jù)和避障預警信息。當在AGV前進路徑上放置障礙物時,避障模塊能夠準確檢測到障礙物距離,當障礙物進入預警范圍時,及時向總控制器上報預警信息。通過實際應用發(fā)現(xiàn),該避障模塊測距結果準確。工作穩(wěn)定可靠。
6 結論
該避障模塊采用超聲波傳感器為探測器,通過實驗測量,結合Matlab處理得到傳感器檢測波束角,最終確定超聲波傳感器在AGV上布局方式。以AVR單片機為控制核心,融入語音提示功能和CAN總線技術,對避障模塊的硬件和軟件進行開發(fā),能夠?qū)㈩A警狀態(tài)和檢測數(shù)據(jù)上傳到AGV總控制器,實現(xiàn)分布式控制。實驗應用表明,該模塊具有運行穩(wěn)定、工作可靠等特點,達到了設計要求。該模塊已應用到實驗AGV上,檢障效果良好,運行穩(wěn)定,可靠性高,能夠確保AGV的安全工作,達到了設計要求。
評論