摘 要:本系統(tǒng)以Arduino單片機為主控器,利用直流減速電機提供動力,PWM控制L298N實現(xiàn)調(diào)速,利用Open MV攝像頭識別路線完成循跡。領(lǐng)頭小車和跟隨小車裝有藍牙模塊用于車間通信,跟隨小車車前裝有光電開關(guān)以實現(xiàn)避障和跟隨功能。兩車利用PID循跡算法實現(xiàn)小車沿黑線前進,采用區(qū)域色塊識別算法實現(xiàn)停車線的判斷。經(jīng)測試,小車功能穩(wěn)定,傳感器識別準確,很好地實現(xiàn)了設(shè)計要求。
關(guān)鍵詞:機器視覺;循跡;智能小車;Arduino單片機;L298N;Open MV4;光電開關(guān);PID
中圖分類號:TP274 文獻標識碼:A 文章編號:2095-1302(2024)03-0-02
0 引 言
無人控制自動循跡智能小車一直是行業(yè)研究的熱點,軌跡的識別性能對小車的循跡能力起著關(guān)鍵作用。隨著高性能芯片的升級換代及圖像識別算法研究的不斷深入,基于機器視覺的目標識別技術(shù)已在自動循跡智能小車上得到廣泛應(yīng)用。機器視覺是建立在計算機視覺理論工程化基礎(chǔ)上的一門學(xué)科,涉及到光學(xué)成像、視覺信息處理、人工智能以及機電一體化等相關(guān)技術(shù)[1]。當前,基于Open MV的機器視覺攝像頭應(yīng)用廣泛,Open MV以STM32H743 CPU為核心,集成OV5640攝像頭芯片,使用 Python 進行編程,在設(shè)計上有著小巧、輕便、易于組裝等特點[2]。
現(xiàn)要設(shè)計一種無人控制自動循跡智能小車跟隨行駛系統(tǒng)。該系統(tǒng)由一輛領(lǐng)頭小車和一輛跟隨小車組成,小車都具有循跡功能。領(lǐng)頭小車和跟隨小車從起始點出發(fā),沿著1.8 m(寬)×1.2 m(長)的圓角矩形路徑行駛,完成一圈行駛后領(lǐng)頭小車到達停車標記停車,跟隨小車應(yīng)及時停止且不能碰到前車。行駛場地為白色,行駛路徑用1 cm寬的黑色引導(dǎo)線來標記。軌跡上的起始點與停車標記為同一處,用垂直貼于路徑引導(dǎo)線的黑色標志線來標記,標志線寬2 cm、長5 cm。
本文采用Open MV機器視覺模塊作為圖像采集與處理平臺,通過Arduino控制智能小車實現(xiàn)上述功能。
1 系統(tǒng)方案的設(shè)計與選擇
1.1 系統(tǒng)結(jié)構(gòu)與設(shè)計思路
如圖1所示,本系統(tǒng)用攝像頭進行循跡,攝像頭安裝在小車車體中軸線上,鏡頭俯視黑線。以Arduino單片機為主控器,每輛小車利用兩只300轉(zhuǎn)/分直流減速電機提供動力,利用L298N電機驅(qū)動模塊實現(xiàn)電機運行,利用OPEN MV攝像頭識別路線完成循跡。主車設(shè)置鍵盤用于選擇功能,領(lǐng)頭小車和跟隨小車裝有HC-05藍牙模塊用于車間通信以實現(xiàn)一起開車和停車功能,從車利用紅外傳感器使跟隨小車與領(lǐng)頭小車保持一定的距離。兩車都利用攝像頭和PID循跡算法實現(xiàn)小車沿黑線前進,采用區(qū)域色塊識別算法實現(xiàn)停車線的判斷,利用PWM調(diào)速實現(xiàn)對兩小車速度的穩(wěn)定及調(diào)節(jié),同時設(shè)置LED燈、蜂鳴器等小型模塊。為了將電源電壓的變化對小車的運行狀態(tài)影響降到最低,本系統(tǒng)采用通過14.8 V鋰電池降壓后的9 V穩(wěn)定電壓給電機驅(qū)動單元供電。
1.2 攝像頭黑線位置算法設(shè)計
Open MV探測黑線并計算輸出黑線的位置。攝像頭設(shè)置的圖像像素大小為QQVGA灰度模式,并將圖像區(qū)域分為三個區(qū)域A、B、C,如圖2(a)所示,黑線圖像進入三個區(qū)域后會得到3個坐標值xA、xB、xC。三個區(qū)域A、B、C分別設(shè)置不同的權(quán)重kA、kB、kC。通過用不同的權(quán)重對最大色塊圖像中點x'坐標求平均值就可以算出相對黑線當前的位置,其中最大的權(quán)重分配給靠近圖像頂部的A區(qū),這個是由黑線左彎曲的特點決定的,可以更精確地判斷出黑線走向[3-5]。
按式(1)便可計算出黑線相對于中心點的角度,該角度數(shù)據(jù)利用串口輸出到單片機[6-7]。
(1)
1.3 小車運動控制算法設(shè)計
小車利用PID進行運動控制循跡。攝像頭不斷輸出黑線相對位置角度數(shù)據(jù)y(t),PID控制的偏差量為e(t)=y(t)-90。數(shù)字PID只用到了比例和微分,如公式(2)所示[8-9]。
(2)
式中:Kp為比例系數(shù);Kd為微分系數(shù);e(k)和e(k-1)分別為第k和第k-1時刻所得到的系統(tǒng)偏差信號。
根據(jù)黑線特點和車速要求,通過不斷整定可確定合適的比例系數(shù)和微分系統(tǒng);通過PID計算得出執(zhí)行量,若小車出現(xiàn)偏離,控制小車的兩個電機差速旋轉(zhuǎn),并朝著偏差減小的方向動作。在PID算法的控制下,小車可實現(xiàn)穩(wěn)定循跡[10-11]。
1.4 小車停車算法設(shè)計
在攝像頭成像范圍下方設(shè)置一個長100像素、寬20像素的矩形檢測區(qū)域,如圖3所示。在此范圍內(nèi)尋找寬度與停車標識相當?shù)暮谏珘K,若在此區(qū)域內(nèi)檢測到黑色色塊,則傳送信號到單片機中,主控制器判定為到達停車點。
2 系統(tǒng)程序設(shè)計
2.1 系統(tǒng)總體流程設(shè)計
加電后領(lǐng)頭小車和跟隨小車要進行初始化,包括設(shè)置攝像頭圖像像素大小為160×120,圖像格式為灰度圖;初始化單片機IO口,設(shè)置UART串口的波特率。領(lǐng)頭小車要初始鍵盤子程序并等待開車按鍵按下。當領(lǐng)頭小車收到開車指令后,小車啟動的同時會給跟隨小車發(fā)送一個開車指令,實現(xiàn)兩車同車前進。領(lǐng)頭小車和跟隨小車都具有獨立循跡功能,跟隨小車可利用光電開關(guān)不斷探測與領(lǐng)頭小車的距離并通過減速實現(xiàn)避障。領(lǐng)頭小車探測到停車線后停車并通過藍牙模塊發(fā)送停車指令,實現(xiàn)同時停車。
2.2 循跡子程序
小車通過攝像頭反饋的圖像對前方圖像進行識別。將各個區(qū)域內(nèi)檢測到的最大色塊的中心位置坐標的加權(quán)平均值與小車的相對位置進行比較,得出黑線與小車中心位置的偏差量;單片機利用該偏差量對數(shù)據(jù)進行PID計算得到控制量,控制小車左右輪轉(zhuǎn)速和轉(zhuǎn)向。當黑線位于左側(cè)時,程序控制小車左電機減速,右電機加速;當黑線位于右側(cè)時,程序控制小車左電機加速,右電機減速。加減速的量由控制量決定,從而使小車能夠始終沿著黑線方向前進,如圖4所示。
2.3 停車子程序
在攝像頭成像范圍下方設(shè)置一個長100像素、寬20像素的矩形區(qū)域,如圖3所示。在此范圍內(nèi)尋找寬度與停車標識相當?shù)暮谏珘K,若在此區(qū)域內(nèi)檢測到黑色色塊,則設(shè)置攝像頭中P2引腳為高電平,傳送信號到單片機中,主控制器判定為到達停車點。
2.4 小車間通信
領(lǐng)頭小車通電后,向跟隨小車發(fā)送行進路線設(shè)置數(shù)值以及內(nèi)外道的選擇數(shù)值,進行跟隨小車的初始化設(shè)置。領(lǐng)頭小車開始行進時向跟隨小車發(fā)送開始行進指令,小車行進過程中保持藍牙通信,領(lǐng)頭小車向跟隨小車發(fā)送指令,控制跟隨小車在路口處選擇路線以及在領(lǐng)頭小車到達終點處時停車。
3 結(jié) 語
本文提出的基于Open MV的雙車循跡跟隨行駛系統(tǒng),利用Open MV攝像頭實現(xiàn)了黑線的檢測。利用PID算法實現(xiàn)了小車運動控制,保證了小車在高速行駛中穩(wěn)定循跡。利用藍牙通信模塊實現(xiàn)兩個小車間通信,最終實現(xiàn)循跡和跟隨功能。經(jīng)過反復(fù)測試,本系統(tǒng)穩(wěn)定,達到設(shè)計的預(yù)期效果。
參考文獻
[1]朱云,凌志剛,張雨強. 機器視覺技術(shù)研究進展及展望[J].圖學(xué)學(xué)報,2020,41(6):871-890.
[2]星瞳科技. Open MV中國官網(wǎng)[EB/OL]. [2022-11-15]. http://OpenMV.cc.
[3]錢平,顧才東,馬建圓,等.基于OpenMV的水下機器人管道巡檢比賽策略研究[J].無線互聯(lián)科技,2021,18(1):100-101.
[4]劉杰,蔣沁宏. 基于Open MV的尋的賽車[J].電子技術(shù)與軟件工程,2018,7(14):74.
[5]周詩薇,龔家元,郄磊澎,等.基于OpenMV的云臺追蹤系統(tǒng)設(shè)計[J].湖北汽車工業(yè)學(xué)院學(xué)報,2019,33(4):54-56.
[6]李成勇,譚寒鐘,王莎,等.基于OpenMV的智能“尋的”小車控制系統(tǒng)[J].液晶與顯示,2020,35(8):870-876.
[7]蔣澤鑫,侯明,陳培錫,等.基于OpenMV的智能交通裝備[J].傳感器世界,2021,27(2):23-26.
[8]莊瓊云.基于OpenMV的智能尋跡小車設(shè)計與實現(xiàn)[J].黎明職業(yè)大學(xué)學(xué)報,2018,30(4):80-84.
[9]張文青,龍奕帆.基于Open MV視覺模塊的智能小車巡線系統(tǒng)設(shè)計[J].集成電路應(yīng)用,2021,10(38):231-233.
[10]顧禎婕,文哲,高宇杰. 基于OpenMv視覺識別的自主投籃機器人實現(xiàn)[J].無線互聯(lián)科技,2020,17(9):55-56.
[11]葉思言,張永寧,李錦,等.基于UWB定位和OpenMV識別的智能跟隨行李箱設(shè)計[J].成都工業(yè)學(xué)院學(xué)報,2020,23(3):29-33.