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