李文海 郭偉 宋莉
摘要:設(shè)計實現(xiàn)了一種基于樹莓派4B的循跡避障智能小車系統(tǒng),以快速、準(zhǔn)確地完成交通標(biāo)識識別、避障、循跡任務(wù)作為研究目標(biāo)。智能小車?yán)肔eNet網(wǎng)絡(luò)架構(gòu)進行交通標(biāo)識識別,超聲波測距傳感器進行避障決策,攝像頭模組進行循跡行駛。實驗結(jié)果表明,智能小車能夠在實際搭建的環(huán)境下,完成交通標(biāo)識識別、避障、循跡的任務(wù),且具有準(zhǔn)確率高、穩(wěn)定性好、泛化能力強的特點。
關(guān)鍵詞:循跡避障;目標(biāo)檢測;交通標(biāo)識識別;智能車
中圖分類號:TP393文獻標(biāo)志碼:A文章編號:1008-1739(2022)19-53-05
隨著科學(xué)技術(shù)的高速發(fā)展和人工智能技術(shù)的興起,無人駕駛領(lǐng)域技術(shù)逐漸引起學(xué)術(shù)界和工業(yè)界的極大關(guān)注[1]。循跡與避障[2]作為無人駕駛領(lǐng)域的基本技術(shù)模塊,對于循跡與避障算法的研究具有很高的研究意義與社會價值。
在無人駕駛領(lǐng)域,無人駕駛汽車在遇到緊急情況時必須做出正確反應(yīng),而且達到高效且正確分析狀況的決策能力,從而避免事故發(fā)生。如無人駕駛汽車觀察到快要撞向行人時,要能夠采取緊急制動措施;檢測到路面濕滑時,要適當(dāng)減緩車速;遇到急救車在后方,需及時避讓。無人駕駛汽車通過多模態(tài)多傳感器系統(tǒng)處理器對采集到的數(shù)據(jù)進行實時分析,自動規(guī)劃行駛策略。無人車傳統(tǒng)避障策略使用的是激光雷達等傳感器[3],存在造價高、泛化能力弱、實驗結(jié)果不理想等問題。
相較于傳統(tǒng)單獨依賴于傳感器,利用LeNet網(wǎng)絡(luò)架構(gòu)[4]進行交通標(biāo)識識別,超聲波測距傳感器進行避障決策,攝像頭模組進行循跡行駛,最終完成交通標(biāo)識識別、避障、循跡的任務(wù),具有泛化能力強、避障效果更好等優(yōu)勢。
樹莓派4B開發(fā)板架構(gòu)如圖1所示,系統(tǒng)模型結(jié)構(gòu)以樹莓派4B開發(fā)板為核心。系統(tǒng)模型硬件組成部分主要包括HC-SR04超聲波傳感器、直流電機、L298N驅(qū)動板以及OV5647攝像頭模組等模塊。系統(tǒng)模型軟件組成部分是將樹莓派與PC服務(wù)器之間開啟3條線程,數(shù)據(jù)傳輸流程如圖2所示,即視頻畫面?zhèn)鬏數(shù)絇C服務(wù)器,同時超聲波傳感器數(shù)據(jù)也傳輸?shù)絇C服務(wù)器,PC服務(wù)器得出決策傳輸?shù)綐漭?B。樹莓派4B通過攝像頭和超聲波傳感器采集當(dāng)前環(huán)境數(shù)據(jù),通過TCP與主機建立連接。當(dāng)采集到的畫面和障礙物距離數(shù)據(jù)傳輸?shù)街鳈C時,根據(jù)反饋的數(shù)據(jù),PC服務(wù)器開啟多線程處理,一部分通過OpenCV[5]進行圖像分析處理,另一部分對道路交通標(biāo)志進行檢測,綜合兩部分信息進行決策,再通過TCP傳輸決策到樹莓派4B開發(fā)版。樹莓派4B再通過引腳傳輸信號給L298N驅(qū)動電機。
1.1超聲波測距模塊
1.2 L298N驅(qū)動模塊
L298N的驅(qū)動模塊能夠驅(qū)動直流電機和步進電機的驅(qū)動器,具有過熱保護和自我反饋檢測功能[8]。樹莓派4B的GPIO口與驅(qū)動模塊用杜邦線相連,通過控制主控芯片上的I/O輸入端,實現(xiàn)低電平(low)與高電平(high)的轉(zhuǎn)換,從而實現(xiàn)電機的轉(zhuǎn)向,電機驅(qū)動邏輯方案如表1所示。
理論研究發(fā)現(xiàn),速度過快容易碰撞障礙物,速度過慢避障用時不理想,所以合理控制速度尤為關(guān)鍵?;诖?,在L298N驅(qū)動模塊上使用脈寬調(diào)制(PWM)[9-10]。電壓是以一種脈沖序列被加到負(fù)載上去的,接通是high,斷開是low,可通過在一個周期內(nèi)high與low的占比不同,得到不同的電壓,進而控制速度[11]。
1.3樹莓派4B主板
作為智能小車的核心組件,必須具有控件體積小、性能優(yōu)、價格低等條件。項目主控板選擇Raspberry Pi 4B,是一款基于ARM架構(gòu)的微型處理機主板,目前樹莓派最新發(fā)布了第4代產(chǎn)品RaspberryPi 4B。樹莓派4B和3B+性能對比如表2所示,無論是處理器速度,還是視頻輸出能力和內(nèi)存大小都有顯著提高。同桌面級電腦相比體積更小,外輪廓尺寸僅有85 mm×56mm。
Raspberry Pi 4B集成了40個GPIO接口,類似于Arduino數(shù)字或模擬端口,通過這些引腳,可與不同的模塊交互。樹莓派接口有2種編碼方案:WiringPi編碼和BCM編碼,本文采用BCM編碼。L298N驅(qū)動板可通過PWM對電機進行調(diào)速,通道A使能接入GPIO.20,通道B使能接入GPIO.21,邏輯輸入接入GPIO.0~GPIO.3端口。HC-SR04超聲波模塊的TRIGGER和ECHO端接入GPIO.4和GPIO.5端口。
1.4麥克納姆輪
麥克納姆輪[12]由上下交替排列的條狀輥子組成,固定方式與車輪中軸線成45°安裝。麥克納姆輪有著全方位移動、防滑的特點,相比傳統(tǒng)的膠輪,所承受的質(zhì)量更大,更加平穩(wěn),機動性強且靈活性更高,能夠在原地實現(xiàn)自轉(zhuǎn)。綜合以上優(yōu)點,選用麥克納姆輪作為智能車底盤。
當(dāng)直流電機驅(qū)動麥克納姆輪時,驅(qū)動力繞軸轉(zhuǎn)動,從動使麥輪轉(zhuǎn)動,由于產(chǎn)生了摩擦力,反作用力迫使麥輪進行前進、后退、旋轉(zhuǎn)等運動[13]。麥克納姆輪單個無法實現(xiàn)全方位移動,共需要控制4個麥克納姆輪的不同狀態(tài)實現(xiàn)全方位移動。麥克娜姆輪運動分析如表3所示,共計有正前進、左方向、左轉(zhuǎn)、斜左上方前進、斜右上方前進、正后退、右方向、右轉(zhuǎn)、斜右下角后退、斜左下角后退10種方向狀態(tài)[15],共同實現(xiàn)了全方位移動。
2.1目標(biāo)識別算法設(shè)計
智能小車需要攝像頭采集交通標(biāo)識圖片,并且能夠識別并執(zhí)行相關(guān)指令。數(shù)據(jù)集采用公開交通標(biāo)識數(shù)據(jù)集,數(shù)據(jù)集類別分布如圖4所示,分為43種交通標(biāo)識,共計34 799張,包含左轉(zhuǎn)、右轉(zhuǎn)、直行等類別,各類別的交通標(biāo)識數(shù)量差距較大,最大類別差距可達1 000多張。根據(jù)先驗知識可知,數(shù)據(jù)集類別數(shù)據(jù)方差越大,對網(wǎng)絡(luò)模型影響越大,越容易出現(xiàn)過擬合或欠擬合現(xiàn)象。針對這一問題,在原有數(shù)據(jù)集上,采用數(shù)據(jù)增強的方式豐富數(shù)據(jù)集,即對圖像進行隨機旋轉(zhuǎn)、隨機遮擋、亮度增強等操作。最終,按照9:1的比例分為訓(xùn)練集和驗證集,共計訓(xùn)練集45 000張,驗證集5 000張。
目標(biāo)識別交通標(biāo)識采用的LeNet網(wǎng)絡(luò)架構(gòu)如圖5所示,總體分為7層,由一個圖像輸入層、2個卷積層、2個池化層和2個全連接層所構(gòu)成。數(shù)據(jù)集圖像尺寸為32×32×3輸入圖像,首先達到第一層卷積層,該層有6個卷積核,每個卷積核的尺寸為28×28;由卷積層處理之后的圖像到達第2層池化層,池化尺寸為14×14×6;池化處理后的圖像再到達第3層卷積層,該層有16個卷積核,每個卷積核的尺寸為10×10;卷積層處理后的圖像再到達第4層池化層,池化尺寸為5×5×16;處理后的圖像到達全連接層,由120個和84個全連接點組成;最后一層為輸出層,輸出分類結(jié)果以及準(zhǔn)確率。
LeNet分類網(wǎng)絡(luò)在交通標(biāo)識訓(xùn)練數(shù)據(jù)集以及驗證數(shù)據(jù)集上的訓(xùn)練準(zhǔn)確率和損失變化曲線如圖6和圖7所示。從圖中可以看出,經(jīng)過10個輪次的訓(xùn)練后,在訓(xùn)練集和測試集上損失平穩(wěn)下降,同時準(zhǔn)確率也平穩(wěn)升高,LeNet分類模型可以達到98.4%的準(zhǔn)確率,能夠達到業(yè)務(wù)場景的應(yīng)用要求。
2.2障礙物檢測模塊設(shè)計
通過HC-SR04超聲波測距模塊,得出發(fā)出高電平與接收低電平之間的時間差,計算出當(dāng)前小車前端與障礙物之間的距離。當(dāng)距離達到閾值之間,且有距離越來越近的趨勢時,障礙物檢測系統(tǒng)發(fā)出右轉(zhuǎn)或左轉(zhuǎn)一定角度的指令,左轉(zhuǎn)說明道路右側(cè)有障礙物,右轉(zhuǎn)說明道路左側(cè)有障礙物。轉(zhuǎn)向后,測距模塊反饋數(shù)值突增,再次發(fā)出左轉(zhuǎn)或右轉(zhuǎn)一定角度的指令,使得智能小車與軌道平行。當(dāng)智能小車越過障礙物時,將會回歸原始軌道,再次沿軌行駛并檢測障礙物,從而達到避開障礙物的效果。若距離超出閾值,說明前方無障礙物或者障礙物距離較遠,不必提前避障,可安全通行。
2.3循跡模塊設(shè)計
循跡模塊使智能小車按照固定的行駛軌跡來模擬真實的車道環(huán)境。鑒于實驗結(jié)果的準(zhǔn)確性,采用顏色鮮明且容易處理的顏色,即白色或黑色的2種軌道顏色。功能設(shè)計流程如圖8所示,多線程開啟時,樹莓派開啟攝像頭采集路面信息,PC服務(wù)器收到圖像后,首先將圖片轉(zhuǎn)化為灰度圖像,使得圖像處理時延降低,處理速度加快。通過圖像處理得出當(dāng)前黑色或白色軌道的最優(yōu)路線,遇到障礙物,小車偏離軌道時會記錄當(dāng)前指令(如左轉(zhuǎn)、右轉(zhuǎn)),當(dāng)穿過障礙物時,自動發(fā)送相反指令(如右轉(zhuǎn)、左轉(zhuǎn)),使智能小車再次沿軌道行駛。
實驗軌道模型如圖9所示,采用2條雙直線軌道。一條軌道障礙物放置軌道中間以右,另一條軌道放置軌道中間以左,每條軌道做3組重復(fù)實驗,以免實驗誤差。1指智能小車遇到障礙物時發(fā)生偏轉(zhuǎn)開始的時間,2指智能小車再次與軌道平行終止的時間。通過2- 1得到,即偏軌時間。在時間內(nèi)智能小車通過與中心軌道平行的距離,即偏軌距離。
實驗數(shù)據(jù)如表4所示,智能小車對于軌道中間以左的障礙物避開的時效性比軌道中間以右的障礙物時效性要高。綜合來看,小車能夠在實際搭建的環(huán)境下,靠近交通標(biāo)識時做出相應(yīng)指令,面對障礙物時避開障礙物,按照指定軌跡選擇最優(yōu)路徑行駛,能夠完成交通標(biāo)識識別、避障、循跡的任務(wù),且具有準(zhǔn)確率高、穩(wěn)定性好、泛化能力強的特點。
以樹莓派4B為微型控制終端,L298N作為驅(qū)動模塊,麥克納姆輪為智能車運動底盤,通過PC服務(wù)器處理并傳達指令的循跡避障智能小車系統(tǒng)。通過實驗測定,設(shè)計的循跡模塊能夠按照指定軌道行駛;目標(biāo)識別模塊,對于交通標(biāo)識的識別準(zhǔn)確率較高且性能穩(wěn)定;障礙物檢測模塊,測距精度高且速度快,能夠?qū)崿F(xiàn)避障功能。
[1]潘福全,亓榮杰,張璇,等.無人駕駛汽車研究綜述與發(fā)展展望[J].科技創(chuàng)新與應(yīng)用,2017(2):27-28.
[2]許鑫.基于磁導(dǎo)航導(dǎo)覽機器人循跡與避障的研究與實現(xiàn)[D].蘭州:蘭州理工大學(xué),2019.
[3]馬興.無人駕駛汽車中的幾種重要傳感器應(yīng)用研究[J].數(shù)字技術(shù)與應(yīng)用,2020,38(5):107.
[4]王濟民,魏怡,周宇,等.基于LeNet-5卷積神經(jīng)網(wǎng)絡(luò)和顏色特征的限速標(biāo)志識別[J].計算機科學(xué),2021,48(S2):345-350.[5]朱科風(fēng).基于OpenCV的自動循跡無人機[D].長沙:長沙理工大學(xué),2018.
[6]田文成.超聲波測距系統(tǒng)的研究與實現(xiàn)[D].南京:南京郵電大學(xué),2017.
[7]呂杰.自動導(dǎo)盲小車設(shè)計[J].河南科技,2019(32):64-66.
[8]張秉森,馬吉忠,楊一飛,等.基于樹莓派的自動避障小車的設(shè)計與實現(xiàn)[J].南方農(nóng)機,2021,52(3):23-24.
[9]程皓.建筑直流微電網(wǎng)的故障特性分析及診斷[D].北京:北京交通大學(xué),2021.
[10]馬文俊.基于L298N生物傳感器溫控系統(tǒng)的設(shè)計[D].北京:北京化工大學(xué),2011.
[12]鄭兵.基于麥克納姆輪移動平臺的激光導(dǎo)航關(guān)鍵技術(shù)研究[D].天津:天津大學(xué),2018.
[13]朱艷杰.基于麥克納姆輪全向車設(shè)計與性能研究[D].秦皇島:燕山大學(xué),2016.
[14]張磊.基于ROS的麥克納姆輪機器人室內(nèi)導(dǎo)航系統(tǒng)設(shè)計[D].秦皇島:河北科技師范學(xué)院,2022.
[15]沄劉卓,盧桂萍,彭崗舉.基于向量分析法對麥克納姆輪全向移動平臺的研究[J].機電工程技術(shù),2022,51(5):147-149.