基于超聲波傳感器的AGV避障模塊設計與實現
AGV全稱Automatecl Guided Vehicles,是一種裝有自動導引裝置,能夠沿規定的路徑行駛,具有編程和停車選擇裝置、安全保護裝置以及各種物料移載功能的自動導航車。障礙物檢測是自動導航車研究的一個基本問題,是實現安全、正常工作的前提。超聲波傳感器以其價格低廉、測距精度高、測量穩定、體積小等優點,被廣泛用于AGV的避障檢測。本文以超聲波傳感器為基礎,結合CAN總線技術,設計一種AGV避障模塊,實現準確、有效、穩定的障礙物檢測,確保AGV的安全運行。
本文引用地址:http://www.j9360.com/article/201610/308666.htm1 超聲波傳感器波束角測量
該避障模塊使用的超聲波傳感器內部以渡越時間法進行測距。并自帶溫度傳感器對測量結果進行校正,能夠對2 cm至4.5 m距離范圍內的障礙物實現準確的距離測量。開始測量時,控制器通過UART向超聲波傳感器的TX引腳輸入觸發信號,傳感器發送探頭啟動并發射超聲波脈沖,然后接收探頭進入回波檢測狀態。在接收探頭檢測到回波信號后,結合溫度補償計算測距結果,并通過傳感器的RX引腳輸出距離測量數據。
1.1 超聲波傳感器測距數據采集
由于超聲波傳感器的探測波束角較小,在其實際應用中,一般使用多個傳感器組成傳感器陣列,以擴大探測范圍。超聲波傳感器陣列的構建,須解決傳感器在AGV上的布局問題,具體來說就是傳感器數量和安裝間距的選擇問題。傳感器數量和安裝間距的選擇須根據最小盲區要求確定,而超聲波傳感器的探測波束角是計算盲區的重要參數,因此需要設計實驗測量傳感器的探測波束角。
如圖1的(a)所示,將超聲波傳感器固定于某點,在其前方選擇與傳感器探頭距離為d的某點放置障礙物,進行測距實驗并記錄測距值。為了使實驗結果能夠充分反映實際情況,實驗中選取不同距離d,且對于每個距離,以超聲波傳感器中軸線為原點,在左右兩側都選擇離中軸線距離為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]范圍內以相同間隔各選取10個點作為L的值。

1.2 超聲波傳感器測距數據處理
在圖1(a)的實驗中,利用勾股定理,可以得到障礙物實驗中擺放位置與超聲波傳感器的實際距離:

對實驗中的每一個測距值s’,結合式(1)和式(2)可計算出相應的相對誤差。將實驗數據導入至Matlab中,以L為橫坐標、d為縱坐標、σ為豎坐標,對其插值并作圖,如圖1(b)所示。
從實驗結果可以看出,將障礙物擺放于超聲波傳感器可檢測到的區域時,檢測結果的相對誤差都能夠滿足σ6%,因此在圖1(b)中選取相對誤差σ6%的區域,可得到超聲波傳感器的波束角約為θ=40°。
2 AGV避障傳感器布局設計
2.1 傳感器數量和布局方式選擇
AGV避障模塊檢測的盲區大小與超聲波傳感器的安裝數量、安裝間距有關,傳感器數量越多、安裝間距越小,檢測盲區就越小,反之則大。超聲波傳感器利用障礙物對聲波的反射作用進行距離檢測,這一特性也決定了交叉串擾現象的存在,即一個傳感器發射的聲波經障礙物反射后,能夠被相同檢測方向的傳感器接收到,從而產生錯誤的測距結果。因此在使用多個超聲波傳感器進行障礙物檢測的場合,常采用傳感器交替工作方式,即某一時刻有且只有一個超聲波傳感器在檢測障礙物。若傳感器安裝數量過多,AGV避障檢測周期就會增大,影響其檢測實時性,從而對AGV的安全工作產生不利因素。從減小盲區和提高避障檢測實時性兩方面綜合考慮,從實驗AGV的500 mm車寬出發,初步確定在所應用的實驗AGV的車頭安裝4個超聲波傳感器。由于實驗AGV不需要倒車和側向移動,所以其車尾和側面不需要安裝超聲波傳感器。
為了使每兩相鄰超聲波傳感器之間的檢測盲區大小保持一致,4個傳感器采用等距布局的方式,如圖2(a)所示。兩相鄰傳感器的距離為:

2.2 避障預警距離和檢測盲區計算
如圖2(b)所示,距離AGV兩側250 mm范圍內為側面安全距離。中間的2、3號超聲波傳感器作為主探測器,兩側的1、4號為輔助探測器。其中輔助探測器用于減小主探測器的測量肓區。主探測器和輔助探測器的預警距離分別為:

在AGV的避障檢測中,當障礙物進入2、3號超聲波傳感器的d3范圍或1、4號超聲波傳感器的d2范圍內時,AGV停車報警。
在圖2(b)中,AGV車頭前面的陰影部分為避障檢測模塊的檢測盲區區域,由多個三角形組成,該區域垂直距離(即三角形的高)為:
可見,在此布局方案中,AGV避障模塊的檢測盲區較小,配合安裝于車頭的防撞桿,能夠滿足AGV安全運行的要求。
3 AGV避障模塊硬件設計
3.1 避障模塊硬件結構
AGV避障模塊的硬件結構如圖3所示,模塊以AVR單片機為控制核心。在避障檢測時,由于每次只有一個超聲波傳感器處于工作狀態,所以4個超聲波傳感器可通過多路模擬選擇開關共享AVR單片機的UART接口。當避障模塊預警區域存在障礙物,AVR控制語音芯片播放語音提示,并通過CAN總線將預警狀態和障礙物距離發送到AGV的總控制器。

3.2 語音預警功能電路
AGV避障模塊語音預警功能電路如圖4。當障礙物進入預警區域,AVR單片機通過三線串口控制WT588D-U語音芯片讀取內部的音頻文件,并輸出相應音頻信號,經LM386功率放大后輸出到小型喇叭。通過調節R7變阻器調節端可改變語音預警的音量大小。

3.3 超聲波傳感器控制電路
如圖5所示,AVR單片機通過CD4052多路模擬選擇開關對四個超聲波傳感器進行控制。ChaSelA和ChaSelB信號的四個不同狀態組合分別代表模擬開關的四個通道。CSB_TrigN和CSB_EchoN分別是超聲波傳感器觸發信號輸入端和測距數據輸出端。工作時,利用ChaSelA和ChaSelB信號選擇所要控制的超聲波傳感器,模塊控制器通過TXD引腳向所選定的傳感器發送觸發信號,傳感器即向前方發送聲波,并在接收到回波信號后,向控制器發送測距數據。

3.4 CAN總線通訊電路
AGV避障模塊引入了CAN總線技術,能夠將預警狀態和測距數據上傳到總控制器,實現分布式控制。CAN總線通信電路主要由CAN通信控制器MCP2515、CAN總線收發器PCA82C251及相應的復位、時鐘電路組成,如圖6所示。避障模塊控制器通過SPI接口將預警狀態和測距數據發送到CAN總線控制器MCP2515,由MCP2515轉換成異步信號輸送到CAN總線收發器PCA82C251,并最終發送到CAN總線上。

4 AGV避障模塊軟件設計
避障模塊所應用的AGV平臺基于CAN總線構建其車載分布式控制系統,控制系統的CAN應用層協議采用問答模式,即CAN通訊網絡的某個節點主動發起的數據幀傳輸(詢問幀),必須得到數據幀接收節點的應答(應答幀),否則將進行重發。問答模式提高了控制系統運行的可靠性。
AGV運行時,當障礙物進入預警范圍,避障模塊播放語音提示,并通過CAN總線向控制系統總控制器發送預警消息??刂葡到y總控制器接收到預警消息后,向避障模塊發送應答幀,并控制電機減速或停車。此外,控制系統總控制器能夠向避障模塊發送詢問幀,控制其關閉或開啟避障檢測和語音提示功能,因此AGV在運行時,避障模塊通過CAN總線發送的消息有兩類:主動發起的詢問幀和對其他節點發來的詢問幀的應答幀;通過CAN總線接收的消息也為兩類:其他節點發來的應答幀和詢問幀。
該避障模塊的軟件基于鏈表創建了兩個CAN消息隊列:CAN發送隊列和CAN待應答隊列。發送詢問幀時,創建發送結點,掛接到CAN發送隊列中,并同時創建對應的待應答結點,兩者通過指針成員相互綁定。發送應答幀時,創建發送結點并掛接到CAN發送隊列,此時不需要創建待應答結點。如圖7所示,主函數輪詢CAN發送隊列是否為空,若不為空,取出發送結點并執行CAN數據幀的發送。如果發送結點為詢問幀,執行發送后,將綁定的待應答結點掛接到CAN待應答隊列,等待數據幀接收節點的應答。軟件使用定時器作為系統時鐘,在定時器中斷函數中對CAN待應答隊列中每個待應答結點的等待時間進行計時。若某個待應答結點等待超時,移出待應答隊列并將綁定的發送結點重新掛接到CAN發送隊列,執行重發。在多次重發都沒有得到應答時,刪除該待應答結點和綁定的發送結點。若某個詢問幀等待應答超時前接收到應答幀,表示該次CAN詢問幀傳輸成功,并且在CAN數據幀接收處理函數中刪除相應的待應答結點和綁定的發送結點。

如圖8所示,CAN數據幀接收處理函數也對避障模塊接收到的其他CAN節點發送的詢問幀進行解釋,執行相應操作,并創建應答幀掛接到CAN發送隊列。軟件使用SCI中斷函數輪詢4個超聲波傳感器的檢測數據,并在完成一次輪詢后對檢測數據進行融合,根據數據融合處理的結果判斷障礙物是否進入預警距離。當障礙物進入預警距離,對預警消息創建發送結點和待應答結點,并將發送結點掛接到CAN發送隊列,同時播放語音提示。

5 實驗應用
將所設計的避障模塊安裝到實驗AGV上,使AGV上電運行,并在運行中進行障礙物檢測測試。在測試時,使用車載觸摸屏的狀態顯示界面能夠讀取、顯示超聲波傳感器檢測數據和避障預警信息。當在AGV前進路徑上放置障礙物時,避障模塊能夠準確檢測到障礙物距離,當障礙物進入預警范圍時,及時向總控制器上報預警信息。通過實際應用發現,該避障模塊測距結果準確。工作穩定可靠。
6 結論
該避障模塊采用超聲波傳感器為探測器,通過實驗測量,結合Matlab處理得到傳感器檢測波束角,最終確定超聲波傳感器在AGV上布局方式。以AVR單片機為控制核心,融入語音提示功能和CAN總線技術,對避障模塊的硬件和軟件進行開發,能夠將預警狀態和檢測數據上傳到AGV總控制器,實現分布式控制。實驗應用表明,該模塊具有運行穩定、工作可靠等特點,達到了設計要求。該模塊已應用到實驗AGV上,檢障效果良好,運行穩定,可靠性高,能夠確保AGV的安全工作,達到了設計要求。
評論