胡杰,唐笠雄,陳昱
(杭州電子科技大學(xué) 電子信息學(xué)院,浙江杭州,310018)
隨著全球人工智能技術(shù)的不斷提高,智能車輛技術(shù)得到了迅速的發(fā)展。但面對越來越復(fù)雜的交通環(huán)境,單個智能車表現(xiàn)出一定局限性,因此,多車協(xié)同控制的研究得到學(xué)者們廣泛的關(guān)注[1]。相比于單個智能車,多車協(xié)同系統(tǒng)具有更高的工作效率、更靈活的空間分布以及更好的魯棒性等優(yōu)勢[2],有助于解決道路擁堵、節(jié)能環(huán)保和交通安全等問題。隨著無人駕駛技術(shù)的成熟,漸漸無人駕駛領(lǐng)域正在不斷擴寬應(yīng)用面。在實際生活中,多車編隊的行駛方式可以節(jié)省司機的壓力和節(jié)約能源,減少廢氣和廢物的排放。多車編隊可以通過車輛間通訊,車輛間距離檢測,車路協(xié)同等方式來實現(xiàn),并且在很多限定場景中已經(jīng)得到了實現(xiàn)。本系統(tǒng)使用了藍牙通信和距離檢測等技術(shù),設(shè)計了一種基于多車編隊的自動控制系統(tǒng)。
系統(tǒng)整體方案設(shè)計如圖1 所示,系統(tǒng)的主控芯片使用沁恒CH32V307VCT6 單片機,CH32V307 是沁恒公司研發(fā)的基于 32 位 RISC-V 內(nèi)核設(shè)計的大容量通用微控制器,搭載 V4F 內(nèi)核,支持單精度浮點指令集,具有更高的運算性能,可以使用RT—Thread 進行嵌入式開發(fā)。主頻為144MHz,具有豐富的通信、定時器和控制外圍電路,充分滿足多車編隊自動控制系統(tǒng)的設(shè)計。該系統(tǒng)通過MCU 將各個模塊協(xié)同工作,來使得多車編隊在不發(fā)生碰撞情況下可以快速行駛[3]。
圖1 系統(tǒng)整體方案框圖
系統(tǒng)使用MT9V032 總鉆風(fēng)攝像頭采集和處理圖像,MT9V032 總鉆風(fēng)攝像頭是一款基于MT9V032 芯片設(shè)計的傳感器模塊,是最適合高速情況下的圖像采集的全局快門攝像頭。該攝像頭FPS 可調(diào),有著高性能動態(tài),可以進行自動曝光(自動曝光開啟時),曝光時間隨時可調(diào)(自動曝光關(guān)閉時)。總鉆風(fēng)內(nèi)部集成了驅(qū)動配置芯片,用戶不需要自己編寫驅(qū)動程序。
系統(tǒng)采用CH573 藍牙組網(wǎng)[4]作為車輛間通信的模塊。CH573 是集成 BLE 無線通訊的 RISC-V MCU 微控制器。片上集成低功耗藍牙 BLE 通訊模塊、全速 USB 主機和設(shè)備控制器及收發(fā)器等豐富的外設(shè)資源。CH573 藍牙組網(wǎng)封裝完善,使用串口就可以進行調(diào)用,并且通過上位機進行配對,不存在密鑰等配置,直接進行通信,收發(fā)一體,使用方便,發(fā)送距離遠,發(fā)送位數(shù)更多。
測距模塊使用了有來有去超聲波模塊,該模塊是由逐飛公司開發(fā)的超聲波模塊,封裝完善。其中有來模塊負責(zé)接收超聲波信息,通過串口讀取數(shù)據(jù),通過格式下的按位取與讀取信息。有去模塊負責(zé)發(fā)送超聲波信號,上電后將使能端上拉電平即可使用。
編碼器使用1024 線編碼器傳感器,其用來進行速度檢測反饋。由于1024 線進行編碼,精度高,靈敏度和準(zhǔn)確性更高,對于檢測得到的轉(zhuǎn)速信息更加準(zhǔn)備。編碼器安裝在有驅(qū)動電機的后輪上,通過齒輪咬合安裝來檢測轉(zhuǎn)速。
多車編隊由三輛小車組成,三輛小車的結(jié)構(gòu)相同,即將同樣的車模結(jié)構(gòu)復(fù)刻到三輛小車上。主要車模結(jié)構(gòu)是前輪的定位、舵機的安裝再加上編碼器和攝像頭等傳感器件的安裝和固定共同組成的。完整車模展示如圖2 所示。
圖2 整車結(jié)構(gòu)圖
前輪是轉(zhuǎn)向輪,它可通過調(diào)節(jié)主銷內(nèi)傾角、主銷后傾角、前輪外傾角和前輪前束等進行調(diào)整,如圖3 所示。
圖3 車模前輪定位
(1)主銷內(nèi)傾角
主銷內(nèi)傾角是指主銷裝在前軸略向內(nèi)傾斜的角度,它的作用是使前輪自動回正。角度越大前輪自動回正的作用就越強烈,但轉(zhuǎn)向時越費力,輪胎磨損增大。對于模型車,因此汽車的主銷內(nèi)傾角都有一個范圍,約5°~8°之間。
(2)前輪前束
前輪前束是指兩輪之間的后距離數(shù)值與前距離數(shù)值之差,也指前輪中心線與縱向中心線的夾角,作用是保證汽車的行駛性能,減少輪胎的磨損。內(nèi)八字前端小后端大的稱為“前束”, 反之則稱為“后束”或“負前束”。
舵機轉(zhuǎn)向機構(gòu)在小車的行駛中是極其重要的部分,因此合適的舵機的安裝位置和左右橫拉桿的長度極大地影響著舵機的靈敏度。為了使舵機轉(zhuǎn)向順滑,我們選擇架高舵機,即在其兩側(cè)選用銅柱將其架高并起兩側(cè)加固作用,在舵機上下部位加裝車模機械組裝物件中的鐵座并用螺絲固定以此起到舵機上下固定作用。其中需要注意的是,為保證舵機轉(zhuǎn)向精度,銅柱安裝打孔時務(wù)必要注意左右的對稱性。
系統(tǒng)電源電路如圖4 所示,本系統(tǒng)使用7.4V 鋰航模電池作為供電總電源,設(shè)計了三級降壓電路為不同外設(shè)進行供電。其中5V 供給有來有去超聲波模塊和MT9V032 總鉆風(fēng)攝像頭模塊,3.3V 作為單片機、OLED 顯示屏和聲光提示模塊的工作電壓。5V 電源選取使用了TI 公司的TPS5450 降壓芯片,3.3V 電源選取亞德諾半導(dǎo)體公司的ADM7172 這款線性電源,均具有噪聲小,帶負載能力強的優(yōu)點。
圖4 系統(tǒng)部分降壓電路
舵機驅(qū)動電路如圖5 所示,舵機額定工作電壓為6.0V,采用TI 公司的TPS5450 降壓芯片。單芯片的最大持續(xù)輸出電流高達5A。輸出電壓等于1.229×(R1/R2+1),經(jīng)過計算選取R1=130kΩ,R2=33kΩ。
圖5 舵機驅(qū)動電路
系統(tǒng)軟件流程圖如圖6 所示,系統(tǒng)收到攝像頭傳回的圖像,進行圖像處理,判斷道路類型,擬合前進的路線。根據(jù)擬合路徑與當(dāng)前的偏差,調(diào)整舵機的PWM 輸出來調(diào)整前進方向和后輪的相應(yīng)差速。超聲波檢測與前車之間的距離,不斷調(diào)整電機輸出,來調(diào)整速度控制車距。編碼器積分路徑長度,與判斷所得的道路類型一起通過藍牙傳輸出去。藍牙接收到的前車路程與本車的路程對比,大致得到車距,減小超聲波的誤差影響。根據(jù)道路類型,對環(huán)島等特殊道路元素,特殊判斷,特殊處理。并且通過設(shè)計,使編隊可以不碰撞情況下行駛[5]。
圖6 系統(tǒng)軟件主流程框圖
4.1.1 二值化處理
通過攝像頭每20ms 拍攝一次前面道路,采集到的圖像為灰度圖,為了方便圖像的處理需要進行二值化處理。在這里我們選用大津法來選取灰度閾值來進行黑白二值化處理,在單片機上使用大津且需要在20ms 內(nèi)完成,對于芯片算力要求過高,不可能保障50 的幀率和完整版的大津并存,所以這里對于大津進行了一定修改。大津算法,也被稱作最大類間方差法,是一種可以自動確定二值化中閾值的算法,從類內(nèi)方差和類間方差的比值計算得來,我們要分離度X 最大,在圖像灰度之中遍歷0-255,計算所有的分離度,則可以已找到最大的分離度,從而找到最佳的二值化閾值。在這里根據(jù)場地限制遍歷在0-OstuHigh 之間,再在灰度值抽取時,隔行隔列抽取,代碼如圖7 所示,保留數(shù)據(jù)還原度的同時,減少運算量。節(jié)約了四分之三左右的運算時間,將原本8ms計算的大津節(jié)約到2ms。
圖7 下位機大津代碼
4.1.2 上位機道路信息提取和擬合
通過編寫上位機,搭建了一個仿真編譯的環(huán)境,再將提取到的二值化后的圖像通過串口導(dǎo)入到上位機中,在上位機中編寫圖像擬合和仿真代碼,如圖8 所示。根據(jù)道路兩側(cè)的邊線等特征,來分析當(dāng)前道路類型。道路兩側(cè)邊線確實嚴(yán)重,則很可能是十字路口。單側(cè)丟線嚴(yán)重,且擬合后曲線方差大,另一側(cè)丟線少,擬合后曲線接近直線,方差很小,可以認為是環(huán)島。尋找到上頂角和左右兩側(cè)頂角,那么會認為是分岔路口。識別道路中央的黑白條紋間隙分布,可以分析出斑馬線,在斑馬線前可以停車等待。根據(jù)道路類型,做出對應(yīng)的擬合,擬合出行駛路徑。再將仿真代碼移植到下位機中,編隊就可以自動尋跡行駛。
圖8 上位機仿真擬合
防撞系統(tǒng)[6]的第一層設(shè)計是基于超聲波測距,通過有來有去超聲波模塊,接收到與前車之間的距離信息,距離信息單位是mm,精度很高,通過matlab 擬合速度與距離間的關(guān)系,如圖9 所示,通過PID 算法調(diào)整期望速度,再通過速度環(huán)控制電機,實現(xiàn)控距的目標(biāo)。第二層基于無線通訊傳輸?shù)玫降那败囆畔?,比如前車積分得到的路徑值和前方元素信息,如果積分得到的路程與前車傳輸來的相差較大,也通過調(diào)整速度,控制距離。如果前方是斑馬線,前車已經(jīng)停車等待,這時候后車也應(yīng)該減速至安全距離后停下。
圖9 距離與速度曲線擬合
在多車編隊的測試中,這是一個調(diào)試的過程,通過不斷修改PID 參數(shù)和圖像擬合代碼,根據(jù)不同道路情況分析處理,來實現(xiàn)多車編隊行駛。實測情況如圖10 所示。
圖10 多車編隊實測
最后測試了,30m、40m、50m 道路的實測情況,記錄編隊的成功情況,以及失敗的原因。測試發(fā)現(xiàn)系統(tǒng)存在的缺陷在于環(huán)島和十字的相撞問題,隨著路程的增長,發(fā)生相撞的概率更大[7]。
本系統(tǒng)是基于圖像識別的多車編隊自動控制系統(tǒng),目標(biāo)是實現(xiàn)在識別道路自動循跡的基礎(chǔ)上實現(xiàn)多車編隊,三輛小車間不發(fā)生碰撞,并且保持較高的行駛速度。在實際實踐中,對于防撞進行了結(jié)構(gòu)和算法上的改良,效果較好。但是仍然存在缺陷,超聲波檢測距離會存在盲區(qū)和一定的誤差,導(dǎo)致編隊有時候出現(xiàn)碰撞。后續(xù)可以通過改進和升級超聲波模塊,比如使用UWB[8]精準(zhǔn)定位。在圖像識別上,后車無法完全處理掉前車入鏡時候的圖像,可能影響尋跡,導(dǎo)致小車行駛不穩(wěn)定。可以通過涂裝前車或者更換芯片性能更好的MCU,以及改進圖像處理算法來濾除前車圖像的方式來做到。