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