潘瀟 劉勇 吳文池 劉國(guó)華杭州電子科技大學(xué)電子信息學(xué)院
?
光電智能車過(guò)彎控制算法的研究
潘瀟 劉勇 吳文池 劉國(guó)華
杭州電子科技大學(xué)電子信息學(xué)院
摘要:針對(duì)智能車過(guò)彎的穩(wěn)定性問(wèn)題,本文從賽道信息采集、速度控制、懸掛舵機(jī)安裝與控制等方面進(jìn)行了研究,并提出了一種方向與懸掛舵機(jī)控制相結(jié)合的控制算法。通過(guò)測(cè)試,提升了智能小車過(guò)彎時(shí)的穩(wěn)定性和靈活性,提高了綜合速度。
關(guān)鍵字:智能車 速度控制 穩(wěn)定性
近幾年來(lái)的“飛思卡爾”杯全國(guó)大學(xué)生智能車競(jìng)賽,規(guī)則不斷調(diào)整,對(duì)智能車總體的要求越來(lái)越高,主要體現(xiàn)在速度和穩(wěn)定性兩項(xiàng)指標(biāo)上。因此,對(duì)智能車速度與穩(wěn)定性的提升是每一輛參賽小車都要面臨的問(wèn)題,解決這一問(wèn)題的有效方法之一是設(shè)計(jì)具有高度適應(yīng)性的小車過(guò)彎算法。好的算法結(jié)合硬件設(shè)計(jì)方案可有效地提升小車的穩(wěn)定性與極限速度。本文提出的方案,主要針對(duì)光電循跡智能車,通過(guò)對(duì)CCD采集的信號(hào)的處理、對(duì)智能車速度的控制以及對(duì)懸掛舵機(jī)的控制,來(lái)實(shí)現(xiàn)智能車穩(wěn)定迅速的過(guò)彎。
系統(tǒng)總體設(shè)計(jì)方案如圖1所示,此方案由五個(gè)部分組成:賽道信息采集部分,采用光電傳感器CCD來(lái)實(shí)現(xiàn)對(duì)賽道信息的采集,CCD有128 個(gè)水平感光點(diǎn),可采集前方的賽道信息。同時(shí),CCD的采集視角寬度由采用的鏡頭決定,分別為 60° 和90°。車速監(jiān)控部分,采用300 或500 線編碼器、PIT 模塊以及脈沖計(jì)數(shù)器模塊相互結(jié)合的方式。編碼器架設(shè)在電機(jī)處,通過(guò)對(duì)單位時(shí)間內(nèi)編碼器輸出的脈沖計(jì)數(shù),來(lái)實(shí)現(xiàn)對(duì)智能車速度的監(jiān)控。懸掛舵機(jī)控制部分,采用安裝伺服電機(jī)的方法,可通過(guò)控制舵機(jī)來(lái)控制小車自身的重心。速度控制部分,通過(guò)對(duì)PWM波占空比的控制,實(shí)現(xiàn)對(duì)驅(qū)動(dòng)電機(jī)的控制。
2.1 算法流程設(shè)計(jì)
算法流程,首先采集賽道信息,然后判斷CCD 是否能掃描到黑線,當(dāng)CCD 已經(jīng)掃描不到黑線,若符合彎道丟線的條件,則參考上一次能夠掃描到黑線時(shí)的狀態(tài)并結(jié)合彎道的方向?qū)囎舆M(jìn)行彎道丟線控制,否則控制車子向前直行。若能夠掃描到黑線,則與前幾次采集到的信息結(jié)合,共同判斷前方是否有彎道以及彎道的半徑。在進(jìn)入彎道前,車子應(yīng)盡快減速到預(yù)設(shè)的速度,同時(shí),在出彎時(shí)應(yīng)提早加速??赏ㄟ^(guò)車子與中線的偏差量來(lái)設(shè)置車子的理想速度。同時(shí),應(yīng)進(jìn)行對(duì)速度的監(jiān)測(cè),確保車子的當(dāng)前速度與設(shè)置的理想速度相吻合。此外,為提升智能車過(guò)彎時(shí)的穩(wěn)定性,該算法中加入了對(duì)懸掛舵機(jī)的控制。
2.2 速度監(jiān)控
本設(shè)計(jì)方案采用飛思卡爾公司的MC9S12XS128單片機(jī),該CPU 自帶PIT模塊與輸入捕捉模塊,這兩個(gè)模塊聯(lián)合使用時(shí),使單片機(jī)記錄一定時(shí)間內(nèi)編碼器輸出的脈沖數(shù)。通過(guò)單位時(shí)間內(nèi)記錄的脈沖次數(shù),可以計(jì)算出智能車的當(dāng)前速度,從而實(shí)現(xiàn)對(duì)速度的監(jiān)控。同時(shí),為避免采集過(guò)程中可能出現(xiàn)干擾,可取一定時(shí)間內(nèi)的平均值作為當(dāng)前速度進(jìn)行計(jì)算。
2.3 彎道速度控制
為防止速度過(guò)快而造成側(cè)滑或側(cè)翻,在即將駛出彎道時(shí),智能車應(yīng)緩慢提高速度,在保持小車穩(wěn)定性的同時(shí),提高車子的過(guò)彎速度。為此,文中提出了一個(gè)優(yōu)化過(guò)的過(guò)彎速度控制算法:V=VB-d×α-(d-d’)×β (1)式中,V 代表車子的目標(biāo)速度,VB代表車子在直道上的速度,d 代表車子所在位置與賽道中線的偏差量,d ’ 代表上一次掃描時(shí)車子所在位置與賽道中線的偏差量,α代表偏差量所乘系數(shù),β代表本次偏差量與上次偏差量的差所乘的系數(shù)。在車子進(jìn)彎時(shí),偏差量會(huì)逐次增大,上述算法會(huì)使車子盡快減速。當(dāng)車子出彎時(shí),偏差量逐次減小,上述算法可使車子逐次加速,減少過(guò)彎的時(shí)間。經(jīng)過(guò)測(cè)試,本控制算法可在保持小車穩(wěn)定性的前提下,減少小車經(jīng)過(guò)彎道所耗費(fèi)的時(shí)間。在智能車出彎時(shí)提前進(jìn)行加速,也可減少車子在直道加速所花費(fèi)的時(shí)間,從而整體提升智能車的速度。
速度控制算法的主要代碼如下:
Speed_Want=Speed_Data-Speed_Minus*(Steering_Data-Centre_Number)/800;//車子速度隨車子與中線的偏差的增大而減小Speed_Minus_D=modulus((LX+RX),128)-modul
us((I_Old_Line+K_Old_Line),128) ;// 入彎提前減速,出彎提前加速
if(Speed_Minus_D>0)Speed_Want= Speed_Want-Speed_ Minus_D * 10 ;
else Speed_Want=Speed_Want- Speed_Minus_D * 4 ;
2.4 懸掛舵機(jī)控制
智能車過(guò)彎速度較高時(shí),由于慣性與摩擦力等原因,可能會(huì)造成車子向外側(cè)滑或側(cè)翻等情況。為解決這一問(wèn)題,可在過(guò)彎時(shí)對(duì)懸掛舵機(jī)進(jìn)行控制,對(duì)車子施加一個(gè)向內(nèi)傾斜的力,來(lái)抵消車子過(guò)彎時(shí)的離心力,從而使車子在更高的速度下平穩(wěn)過(guò)彎。懸掛舵機(jī)所轉(zhuǎn)的角度,視所過(guò)彎道與車子當(dāng)前的速度而定。此外,當(dāng)懸掛舵機(jī)所轉(zhuǎn)的角度過(guò)大時(shí),也會(huì)造成車子過(guò)度內(nèi)切,車子甩尾以及車輪翹起等問(wèn)題。
2.5 過(guò)彎丟線
由于光電組所用的CCD只能采集到一條線上的賽道信息,車子在過(guò)小半徑的彎道時(shí),可能出現(xiàn)CCD掃描不到黑線的情況,在這種情況下,智能車可能因?yàn)闊o(wú)法做出正確判斷而沖出賽道。CCD完全掃不到黑線只有兩種情況,一種是遇到了十字交叉口,另一種是過(guò)彎時(shí)掃到了外界的背景。兩種情況下CCD采集的圖像如圖3所示,采回的數(shù)值有較大不同。因此,可在CCD未掃空時(shí),記錄CCD掃到白色跑道的數(shù)值,將該數(shù)值與完全丟線后的數(shù)值進(jìn)行
比較,判斷是否是過(guò)彎時(shí)的丟線。若是過(guò)彎丟線,可使車子保持丟線前的狀態(tài)繼續(xù)前行,直CCD能夠重新掃描到黑線。
本設(shè)計(jì)綜合了圖像采集與處理、懸掛舵機(jī)控制以及速度控制等方面,具有過(guò)彎速度快、穩(wěn)定性高以及魯棒性強(qiáng)等優(yōu)點(diǎn)。其中涉及的控制方法在實(shí)際測(cè)試中都有較良好的效果,對(duì)于提升智能車行駛過(guò)程中的速度與穩(wěn)定性的作用顯著。
參考文獻(xiàn)
[1] 劉嘉豪,劉海剛,張建偉,等.智能車圖像處理與識(shí)別算法研究[J].工業(yè)控制計(jì)算機(jī),2014(8): 19-22.
[2] 施鶴遠(yuǎn),彭凱,申正衛(wèi),等.基于Cortex-M4的光電智能車路徑識(shí)別最優(yōu)化研究[J].計(jì)算技術(shù)與自動(dòng)化,2014(2):112-114.