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