俞洋,李峰,繆奕揚
(江蘇理工學院 電氣信息工程學院,常州 213001)
汽車產業(yè)正在向“電動化、智能化、網聯(lián)化、共享化”的智能汽車方向快速發(fā)展[1-2].在智能汽車的研究領域,智能小車(下文簡稱智能車)相比于真實汽車有著專屬的特點和用途[3].智能車具有機械結構簡單輕便、駕駛模式低速安全、整車易于改造實現(xiàn)等特點,可以用于智能汽車核心控制系統(tǒng)的研發(fā)設計[4-5].而且智能車的設計涉及機械、電子信息、自動控制、人工智能等多個學科的知識和技術,是典型的復雜工程問題,因此很適合在本科工程人才培養(yǎng)中進行創(chuàng)新設計和實驗教學[6-7].本文通過嵌入式電子系統(tǒng)、圖像采集傳感器和電機驅動器等設計智能車硬件系統(tǒng),利用機器視覺和智能控制算法進行道路識別、智能車方向調整和速度調整,實現(xiàn)小型無人自動駕駛智能車實驗系統(tǒng),并提出符合復雜工程問題的實驗設計方案.
設計一輛能夠循跡全元素賽道的四輪智能車實驗系統(tǒng).以單片機為數(shù)據(jù)處理與系統(tǒng)控制的核心,利用CMOS攝像頭獲取賽道圖像并完成賽道信息識別,通過傳感器獲取小車后輪實時轉速;基于以上信息,設計智能車控制算法自動控制舵機打角及電機轉速,最終實現(xiàn)小車能穩(wěn)定且快速地循跡直道、彎道、坡道、十字、環(huán)島、三岔等賽道.為了實現(xiàn)實驗教學與學科競賽一體化,采用全國大學生智能汽車競賽的全元素賽道,如圖1所示.
圖1 全元素賽道Fig.1 All-element track
智能車實驗系統(tǒng)的整體設計方案如圖2所示.系統(tǒng)主要包括最小系統(tǒng)板、攝像頭、舵機、電機、編碼器、ips液晶屏等部分.
目前市面上主要有兩種四輪小車車模[8],分為B車模和C車模,如圖3所示.B車模配備的舵機為S-D5,雖然配了一款動力強勁RS-540電機,但由于這款舵機的力矩比較小,不能充分發(fā)揮電機的性能.當小車在急彎時,舵機會存在轉向不及時的問題.所以如果選用這款車模,當小車行駛到S彎時,速度達到一定程度,小車容易沖出賽道.同時B車模只裝有一個電機,后輪依靠機械差速,也無法在軟件上實現(xiàn)對后輪的差速控制.
圖3 B車模和C車模示意圖Fig.3 Schematic diagram of model B and model C
C車模擁有的S3010舵機,扭矩相比S-D5大了許多.另外車上配備的兩個RS-380電機也是C車模的優(yōu)勢,可以通過編程實現(xiàn)對智能小車的主動差速控制,從而能夠更好地應對不同曲率的賽道.為了更好地適應全元素賽道的行駛要求,選擇C車模作為本次設計的控制對象.
為了盡可能提高智能車在賽道上的速度,攝像頭就必須具有采集速度快、幀率高的特性.因此選擇采用CMOS攝像頭,相較于CCD攝像頭,該類攝像頭具有功耗低、幀率高、采集速度快等優(yōu)點.
市面上主流的兩款CMOS攝像頭數(shù)據(jù)對比如表1所示.
表1 攝像頭數(shù)據(jù)比較Tab.1 Camera data comparison
第一款OV7620型攝像頭采用卷簾曝光,由于對圖像進行逐行曝光,會造成一種“果凍效應”.智能車在高速移動時,使用該曝光方式,拍攝到的賽道圖像容易失真.
第二款MT9V034型攝像頭采用全局曝光,這種曝光方式是整幀圖像同時曝光,具有高動態(tài)成像的特點,比較適合高速運動中的智能車拍攝賽道.
為針對全元素賽道環(huán)境,適應環(huán)境光線可能過暗的情況,選擇感光度較高的攝像頭更為合適,因此選擇MT9V034攝像頭采集賽道圖像.
智能車實驗系統(tǒng)需要用到DMA模塊來驅動攝像頭和更多的外部資源.Infineon公司的TC264D芯片主頻可以達到200 MHz且內置了DMA模塊,在傳輸圖像的時候能夠較為流暢且不受CPU的管控,而且有容量為752 KB的RAM,用于存儲攝像頭的圖像信息.該芯片還同時擁有UART串口模塊、PWM輸出模塊GTM、GPT12脈沖計數(shù)模塊等,這些模塊使得軟件設計更加方便,所以選擇TC264D作為主控芯片,原理圖如圖4所示[9].
圖4 TC264D系統(tǒng)原理圖Fig.4 System schematic diagram of TC264D
編碼器作為小車的測速模塊,其分辨率的大小決定了電機的控制精度[10].分辨率即編碼器旋轉一周所輸出的脈沖數(shù).
編碼器的輸出頻率為:
公式(1)中R為編碼器分辨率,N表示輪子轉速.
為了保證控制精度,需將單片機的控制周期T設置為編碼器脈沖輸出周期的10倍以上,即:
電機轉速與車速的關系為:
公式(3)中v是智能車的速度,z為車輪與編碼器的傳動比,r則代表輪子半徑.
聯(lián)立公式(1)-(3)可得R的結果如公式(4)所示:
智能車的齒輪傳動比為7:3,車輪半徑為0.032 m.要求控制周期為5 ms,小車速度不低于0.3m/s.通過公式(4)計算編碼器的分辨率需大于574.市面上常見的編碼有256線、512線、1024線,為達到控制要求,因此采用1024線的編碼器.
賽道圖像的準確識別是智能車在賽道上實現(xiàn)自動駕駛的基礎,其中道路邊線檢測是賽道圖像識別的關鍵.賽道圖像識別算法流程如圖5所示,主要包括賽道邊線檢測、邊線提取和中線計算等3個步驟.
圖5 賽道圖像識別算法流程圖Fig.5 Flow chart of track image recognition algorithm
目前圖像邊界檢測有兩種主要的解決方案:1)基于圖像分割法中的動態(tài)閾值把賽道和背景分割開,從而得到目標邊界;2)使用邊緣檢測算子對圖像進行邊界信息提取,篩選賽道邊緣信息.這兩種方法在原圖像數(shù)據(jù)沒有信息缺失的情況下比較準確[11].但實際環(huán)境下賽道圖像會出現(xiàn)信息缺失或噪聲,如何提高在實際環(huán)境下賽道邊線信息識別的準確性,對智能車后續(xù)的運動控制至關重要.因此設計了基于多曝光圖像融合的算法改進實驗.
由于篇幅限制,這里僅介紹基于圖像分割原理的大津法[12].首先假想有一個最佳閾值,該閾值可以將所有像素分為前景和背景兩類,并且使兩者差別最大,而選擇衡量差別的標準就是最大類間方差.設T為前景和背景的分割閾值,前景總數(shù)占圖像比例為ω0,平均灰度為u0;背景總數(shù)占圖像比例為ω1,平均灰度為u1.圖像的總平均灰度如公式(5)所示:
根據(jù)平均灰度值,計算類間方差g如下:
重復使用公式(5)和(6),遍歷所有分割閾值T,選取全部類間方差中的最大值,該類間方差g所對應的閾值T,就是大津法所求的最佳閾值.利用該算法處理的效果如圖6所示.
圖6中兩幅圖分別為原始灰度圖和采用大津法二值化后的賽道圖像,并可以看出該方法能夠清晰地分割出賽道.
圖6 賽道灰度與二值化圖像Fig.6 Track image of gray scale and binary
如圖7所示,當賽道的左右邊線都完整時,可利用公式(7),基于賽道左右邊線的坐標進行中線M計算.
圖7 邊線完整的圖像Fig.7 Image with full edge
其中L為左邊線坐標,R為右邊線坐標.
如果遇到如圖8所示的賽道左側邊線丟失的情況,不能利用公式(7)直接計算出中線值.此時中線計算方法如公式(8)所示,即將右邊線向左平移進行補償,補償值為圖像缺失行的上一行賽道寬度的1/2.
圖8 左邊線缺失的圖像Fig.8 Image with missing left line
其中R為右邊線坐標,C為補償量.
智能車路徑控制決定著智能車不脫離全元素賽道和行駛路徑的好壞,具體算法流程如圖9所示,其核心是路徑方向的偏差計算和方向調整.
圖9 路徑控制算法流程圖Fig.9 Flow chart of path control algorithm
智能車方向控制的偏差來源于虛擬賽道中心線與圖像中心線的差值.由于攝像頭的分辨率為188×120,所以取第93列為圖像中線.將賽道中線數(shù)組與93逐行比較可以獲得多行偏差,但是并不能確定將哪一行偏差用于舵機打角控制方向.所以如何根據(jù)圖像處理獲得的虛擬賽道中線來計算偏差是智能小車方向控制的關鍵所在.
由于智能車實驗系統(tǒng)機械結構的限制,車模裝備的攝像頭因為角度問題,實際拍得的賽道圖像會產生一定的畸變,相較于正常圖像,遠處圖像會變小,近處圖像會變大,如圖10所示.
圖10 畸變的賽道圖像Fig.10 Distorted track image
鑒于圖像的這種特征,實驗系統(tǒng)引入分區(qū)加權的算法,能夠有效改善因圖像畸變導致圖像中線偏差偏小的問題,使計算得出的偏差更加貼近真實值.根據(jù)圖像中線的截止行,將截止行往下若干行的圖像中線分為幾個不同的區(qū)域,分別對各區(qū)域的中線值求平均后計算偏差,再賦予這些偏差不同的權值,最后求和得到最終偏差.具體計算方法如公式(9)和公式(10)所示:
公式(10)中e1、e2...ek為各區(qū)域偏差,middle[i]為中線數(shù)組,f1、f2...fk為各區(qū)域偏差的權值.
如果發(fā)生路徑偏移,智能車需要根據(jù)路徑的方向偏差信息,控制舵機打角實現(xiàn)路徑方向調整.基于實驗系統(tǒng),可以進行以下兩類實驗.(1)基礎實驗.如果智能車路徑發(fā)生偏移,采用位置式PD控制器調整舵機角度來調整路徑[13-14].(2)擴展實驗.智能車在循跡全元素賽道時,固定參數(shù)的位置式PD控制器不能很好的適應復雜賽道,比如對于S彎、三岔、環(huán)島等賽道,如果固定PD參數(shù)不夠大,會導致舵機打角不夠或者不及時,小車的路徑會變差,甚至還會沖出賽道;但是在直道、坡道時,過大的PD值又會導致小車高速行駛時抖動過大,穩(wěn)定性大大降低.為解決這個問題,如圖9中虛線部分所示,設計了基于模糊控制的舵機PD參數(shù)實時整定擴展實驗,如圖11所示.
圖11 基于模糊控制的智能車路徑調整框圖Fig.11 Intelligent car path adjustment block diagram based on fuzzy control
復雜工程問題必須具備表2中的特征1和其余特征中的至少任意兩條[15].根據(jù)這個原則,基于智能車實驗系統(tǒng)設計培養(yǎng)學生解決復雜工程問題能力的實驗,可以覆蓋以下復雜工程問題特征:(1)智能車是綜合性很高的實驗系統(tǒng),可以分解為系統(tǒng)方案設計與選取、電路系統(tǒng)設計、機械結構設計、道路識別算法設計和方向控制算法設計等相關的子問題;(2)運用電子系統(tǒng)設計、圖像處理、電機控制等工程原理知識及方法分析實驗基本原理;(3)實驗設計涉及到機械、電子、自動化和計算機等多學科知識與技術,車模機械結構與電控系統(tǒng)設計、速度控制與穩(wěn)定性控制等方面相互制約,需要系統(tǒng)考慮與設計;(4)從智能車的機械結構和運動控制等方面進行數(shù)學模型抽象與構建,使用Solidworks、Altium Designer和Matlab等現(xiàn)代化工具進行模型仿真;(5)隨著賽道環(huán)境的惡化,常用的賽道識別和方向控制算法無法實現(xiàn)良好的效果,需要查閱文獻,進行方法創(chuàng)新,設計能解決問題的非常規(guī)方法.下面介紹部分的實驗設計以及實驗效果.
表2 復雜工程問題的特征Tab.2 Characteristics of complex engineering problems
基于設計的實驗系統(tǒng),可以在低照度、正常照度以及高照度三種不同情況下進行賽道識別算法實驗,測試在不同照度環(huán)境下傳統(tǒng)賽道識別算法和改進算法的可行性與魯棒性.
圖12給出的是低照度情況下智能車識別的賽道圖像.可以看出即使是最高曝光值的圖像,也只能識別部分賽道信息.
圖12 傳統(tǒng)算法下低照度賽道的識別圖像Fig.12 Low illumination track recognition image
圖13和圖14分別給出的是采用改進多曝光圖像融合法的識別結果.可以看出在低照度情況下,多曝光圖像融合法可以清晰地提取出正確的賽道邊界.
圖14 多曝光圖像融合法低照度岔路賽道的識別圖像Fig.14 Low illumination switch track recognition image based on multi exposure image fusion method
為了定性的評價算法性能,設計了如表3所示的標準差(STD)、信息熵(EN)和平均梯度(AG)作為為客觀評價指標.表4給出了圖13和圖14的定量評價結果,可以看出采用Sobel算子的識別算法比采用Laplace算子的識別算法性能更優(yōu).
表3 算法性能定量評價指標Tab.3 Quantitative evaluation index of algorithm performance
表4 算法性能定量評價結果Tab.4 Quantitative evaluation results of algorithm performance
在賽道識別實驗的基礎上,為驗證方向偏差計算方法的正確性與可靠性,可以選擇不同的賽道元素來進行驗證.
環(huán)島賽道如圖15所示,將小車放在環(huán)島的不同位置進行測試.利用VisualScope虛擬示波器觀察環(huán)島各位置方向偏差波形如圖16所示.
圖15 環(huán)島賽道Fig.15 Roundabout track
由圖16偏差波形可見,智能車在環(huán)島內運行時偏差值較大且波動較小,其余位置偏差較小,說明根據(jù)賽道中線計算出偏差符合實際環(huán)島路徑.
圖16 環(huán)島方向偏差波形Fig.16 Roundabout direction deviation waveform
三岔賽道如圖17所示,將小車放入三岔路的不同位置進行測試,采集方向偏差變化波形如圖18所示.小車在三岔路中需要4次轉彎,從圖18的數(shù)據(jù)波形可看出偏差也出現(xiàn)了4次突變,符合三岔賽道的路況.
圖17 三岔賽道Fig.17 Three fork track
圖18 三岔方向偏差波形Fig.18 Three fork direction deviation waveform
在直道賽道和S彎賽道也可以做類似的實驗,綜合四種元素的方向偏差測試,可以驗證方向偏差計算方法的可靠性.
面對全元素賽道,智能車需要根據(jù)方向偏差值進行舵機控制,可以進行位置式PD參數(shù)整定的基礎實驗,以及基于模糊控制器實時整定PD參數(shù)的擴展實驗,實現(xiàn)更好的方向控制.
根據(jù)圖11所示的參數(shù),方向偏差值e的模糊規(guī)則設計為:
(1)若e負大,則p大;
(2)若e負中,則p中;
(3)若e負小,則p??;
(4)若e為0,則p為0;
(5)若e正小,則p??;
(6)若e正中,則p中;
(7)若e正大,則p大.
P、D項的模糊規(guī)則設計思路與e類似,根據(jù)以上規(guī)則可以建立P、D參數(shù)模糊規(guī)則表,分別如表5和表6所示.具體的PD參數(shù)實時整定結果如表7所示,通過實驗可以證明,根據(jù)賽道元素的不同,智能車可以很好地實時調整路徑方向.
表5 P模糊規(guī)則表Tab.5 Fuzzy rule table of P parameter
表6 D模糊規(guī)則表Tab.6 Fuzzy rule table of D parameter
表7 PD參數(shù)整定值Tab.7 Setting value of PD parameters
本文以智能車為背景,設計了基于機器視覺的全元素賽道智能車實驗系統(tǒng).以TC264D單片機為主控制器進行智能車的硬件設計,利用CMOS攝像頭對道路信息進行采集與分析,根據(jù)賽道虛擬中線計算得到偏差,并對智能小車的方向控制策略以及PD控制器進行控制算法的設計與改進.基于設計的智能車實驗系統(tǒng),進行符合復雜工程問題的實驗方案設計與測試,驗證了實驗系統(tǒng)設計方案有效性,可以有效地用于智能車創(chuàng)新設計與本科生解決復雜工程問題能力的培養(yǎng).