智能車(chē)的誕生為人類(lèi)提供了一種全新的緩解城市交通擁堵、提高車(chē)輛安全性的交通工具。在眾多的智能車(chē)導(dǎo)航方案中,視覺(jué)導(dǎo)航由于與人類(lèi)的駕駛方式最為接近,成為智能車(chē)研究熱點(diǎn)之一。目前,視覺(jué)導(dǎo)航方法在高速公路環(huán)境中已經(jīng)獲得了初步成功,這類(lèi)環(huán)境結(jié)構(gòu)化程度較高,道路曲率有限、路況相對(duì)簡(jiǎn)單。然而,隨著城市環(huán)境智能車(chē)研究的興起,視覺(jué)導(dǎo)航面臨了新的挑戰(zhàn)。城市環(huán)境中的道路不僅種類(lèi)多,而且轉(zhuǎn)彎半徑大,常常會(huì)因視野有限而導(dǎo)致道路跟蹤失敗。本文將從該智能車(chē)總體方案、路徑識(shí)別方案選擇、轉(zhuǎn)向和驅(qū)動(dòng)控制及路徑記憶算法等方面進(jìn)行介紹。
智能車(chē)總體方案
智能車(chē)系統(tǒng)以飛思卡爾公司的MC68S912DP256為核心,由電源模塊、傳感器模塊、直流電機(jī)驅(qū)動(dòng)模塊、轉(zhuǎn)向電機(jī)控制模塊、控制參數(shù)選擇模塊、單片機(jī) 模塊等組成,如圖1所示。智能車(chē)系統(tǒng)工作電壓由+1.6V、+5V、7.2V三個(gè)系統(tǒng)混合組成,其中7.2V用于給驅(qū)動(dòng)電機(jī)和轉(zhuǎn)向舵機(jī)供電,5V給車(chē)速傳 感器、MCU以及光電傳感器接收管供電,1.6V給發(fā)光管供電。為了在線控制參數(shù)的調(diào)整方便,還設(shè)置了一個(gè)控制參數(shù)選擇模塊,可以通過(guò)幾個(gè)按鍵的設(shè)置,調(diào) 用不同的程序或控制參數(shù),以適應(yīng)不同場(chǎng)地條件的要求。
圖1 智能車(chē)總體結(jié)構(gòu)
智能車(chē)的工作模式是:光電傳感器探測(cè)賽道信息,轉(zhuǎn)速傳感器檢測(cè)當(dāng)前車(chē)速,電池電壓監(jiān)測(cè)電路檢測(cè)電池電壓,并將這些信息輸入單片機(jī)進(jìn)行處理。通過(guò)控制算法對(duì)賽車(chē)發(fā)出控制命令,通過(guò)轉(zhuǎn)向舵機(jī)和驅(qū)動(dòng)電機(jī)對(duì)賽車(chē)的運(yùn)動(dòng)軌跡和速度進(jìn)行實(shí)時(shí)控制。
路徑識(shí)別方案選擇與電路設(shè)計(jì)
路徑識(shí)別方案是首先需要確定的,主要有以下幾個(gè)問(wèn)題。
*光電識(shí)別還是攝像頭識(shí)別;
*傳感器如何排列?間隔多大、形狀如何、單排還是雙排;
*傳感器可向前探測(cè)的遠(yuǎn)度;
*電路上如何實(shí)現(xiàn)。
由于光電識(shí)別方案簡(jiǎn)單可靠,因此本文采用了光電識(shí)別方案。
數(shù)字式光電識(shí)別與模擬式光電識(shí)別
光電式傳感器是以光電器件作為轉(zhuǎn)換元件的傳感器。它可用于檢測(cè)直接引起光量變化的非電量,如光強(qiáng)、光照度、輻射測(cè)溫、氣體成分分析等;也可用來(lái)檢測(cè)能轉(zhuǎn)換成光量變化的其他非電量,如零件直徑、表面粗糙度、應(yīng)變、位移、振動(dòng)、速度、加速度,以及物體的形狀、工作狀態(tài)的識(shí)別等。光電式傳感器具有非接觸、響應(yīng)快、性能可靠等特點(diǎn),因此在工業(yè)自動(dòng)化裝置和機(jī)器人中獲得廣泛應(yīng)用。近年來(lái),新的光電器件不斷涌現(xiàn),特別是CCD圖像傳感器的誕生,為光電傳感器的進(jìn)一步應(yīng)用開(kāi)創(chuàng)了新的一頁(yè)。
模擬式光電傳感器從理論上可以大大提高路徑探測(cè)精度。模擬式光電傳感器的發(fā)光和接收都是錐角一定的圓錐形空間,其電壓大小與傳感器距離黑色路徑標(biāo)記線的水 平距離有定量關(guān)系:離黑線越近,電壓越低,離黑線越遠(yuǎn),則電壓越高(具體的對(duì)應(yīng)關(guān)系與光電管型號(hào)以及離地高度有關(guān)),如圖2所示。
圖2 傳感器電壓與偏移距離關(guān)系示意圖
因此,只要掌握了傳感器電壓-偏移距離特性關(guān)系,就可以根據(jù)傳感器電壓大小確定各傳感器與黑色標(biāo)記線的距離(而不是僅僅粗略判斷該傳感器是否在線上),進(jìn)而獲得車(chē)身縱軸線相對(duì)路徑標(biāo)記線的位置,得到連續(xù)分布的路徑信息。
根據(jù)實(shí)車(chē)試驗(yàn),可以將路徑探測(cè)的精度提高到1mm.這樣傳感器采集的信息就能保證了單片機(jī)可以獲得精確的賽道信息,從而為提高賽車(chē)的精確控制提供了保證。
雙排排列與前瞻設(shè)計(jì)
本文開(kāi)發(fā)了智能車(chē)性能仿真平臺(tái)[2],對(duì)傳感器的布局進(jìn)行了深入研究[3]。由于轉(zhuǎn)向舵機(jī)、電機(jī)和車(chē)都是高階慣性延遲環(huán)節(jié),從輸入到輸出需要一定的時(shí)間, 越早知道前方道路的信息,就越能減小從輸入到輸出的滯后。檢測(cè)車(chē)前方一定距離的賽道就叫前瞻,在一定的前瞻范圍內(nèi),前瞻越大的傳感器方案,其極限速度就會(huì) 越高,其高速行駛過(guò)程中對(duì)引導(dǎo)線的跟隨精度也相對(duì)較高,系統(tǒng)的整體響應(yīng)性能較好。因此路徑識(shí)別模塊設(shè)計(jì)成抬起與地面形成一個(gè)夾角,前排傳感器用于前瞻,后 排傳感器對(duì)賽道始點(diǎn)進(jìn)行識(shí)別、計(jì)算車(chē)身縱軸線與賽道中心線的偏差斜率,以利于更好地調(diào)整車(chē)輛的姿態(tài)。
為了保證在離地間隙盡可能大的情況下光電傳感器仍然有足夠大的發(fā)光強(qiáng)度,本文采用了大電流脈沖觸發(fā)發(fā)光的控制方式。
根據(jù)實(shí)驗(yàn)測(cè)試,發(fā)光管在發(fā)光時(shí),經(jīng)過(guò)的電流約為0.5A.如果用15個(gè)傳感器,則瞬時(shí)電流為7.5A.這樣大的電流肯定會(huì)對(duì)電池電壓造成一定的 沖擊,不利于整個(gè)系統(tǒng)的正常運(yùn)行。因此將前后排傳感器的發(fā)光時(shí)間錯(cuò)開(kāi),通過(guò)兩套觸發(fā)電路來(lái)控制發(fā)光。這樣就有效減小了紅外發(fā)光管發(fā)光時(shí)對(duì)電池電壓的沖擊。
轉(zhuǎn)向和驅(qū)動(dòng)控制與路徑記憶算法
驅(qū)動(dòng)電機(jī)控制
本文在電機(jī)輸出軸上加一齒盤(pán),電機(jī)輸出軸的轉(zhuǎn)動(dòng)帶動(dòng)齒盤(pán)的轉(zhuǎn)動(dòng)。將對(duì)射光偶發(fā)光和接受管放在碼盤(pán)兩側(cè)。碼盤(pán)轉(zhuǎn)動(dòng)時(shí),由于碼盤(pán)上的齒經(jīng)過(guò)發(fā)光管發(fā)出的光線時(shí),會(huì)阻礙光線傳播。所以接收管兩端的電阻會(huì)有很大的變化,這樣,在電路中采樣電阻兩端的電壓就會(huì)有很大的變化。
用處理器上的脈沖捕捉端口采集電壓脈沖單位時(shí)間內(nèi)的個(gè)數(shù),就會(huì)獲得電機(jī)轉(zhuǎn)速,從而獲得車(chē)速。
電機(jī)驅(qū)動(dòng)采用的是飛思卡爾公司的MC33886.所不同的是本文采用了三片MC33886 并聯(lián),一方面可以減小導(dǎo)通電阻,提高電機(jī)驅(qū)動(dòng)能力,并且MC33886的發(fā)熱情況也有了很大的好轉(zhuǎn);另一方面減小MC33886 內(nèi)部的過(guò)流保護(hù)電路對(duì)電機(jī)啟動(dòng)及制動(dòng)時(shí)的影響。
電機(jī)采用PID閉環(huán)控制,可以根據(jù)不同負(fù)載狀況及時(shí)調(diào)整PWM的占空比,使車(chē)輛迅速地跟蹤目標(biāo)速度。
為了盡量提高車(chē)速,采用在直道上設(shè)定最高目標(biāo)車(chē)速,定速控制,接近彎道處開(kāi)始降速,正式轉(zhuǎn)入彎道時(shí),將車(chē)速調(diào)整到過(guò)彎極限車(chē)速,將要出彎道時(shí)提前加速。
轉(zhuǎn)向控制
根據(jù)目前采用的雙排模擬式光電傳感器布局,可以得到車(chē)身縱軸線距離賽道中心線的偏移量,還可以得到中心線相對(duì)于車(chē)身縱軸線的斜率,從而得知當(dāng)前狀態(tài)下車(chē)身的姿態(tài),進(jìn)而進(jìn)行轉(zhuǎn)向控制。
這里設(shè)定根據(jù)前排傳感器信號(hào)得到的轉(zhuǎn)角為θ1,根據(jù)前后排傳感器信號(hào)得到的縱軸線斜率信息而得到的轉(zhuǎn)角為θ2,最終的轉(zhuǎn)向角度的確定公式為:
θ=k1θ1+k2θ2
采用這樣的控制策略,可以實(shí)現(xiàn)對(duì)車(chē)實(shí)際姿態(tài)的加權(quán)控制,大大提高過(guò)彎速度,減少由于探測(cè)精度問(wèn)題帶來(lái)的決策累積誤差。另外,大前瞻與雙排的雙重組合,達(dá)到了對(duì)正常彎道提前轉(zhuǎn)彎,對(duì)于S彎道遲滯轉(zhuǎn)向的特性。
為了使舵機(jī)更好地對(duì)給定的轉(zhuǎn)角值做出響應(yīng),采用了PID調(diào)節(jié),通過(guò)道路試驗(yàn)進(jìn)行參數(shù)整定,使得車(chē)輛在高速時(shí)保持了很高的穩(wěn)定性。
路徑記憶算法
由于比賽規(guī)則要求車(chē)輛在跑道上行駛兩圈,因此車(chē)輛第一圈時(shí)通過(guò)記錄轉(zhuǎn)速傳感器采集到的脈沖數(shù)、轉(zhuǎn)向舵機(jī)的轉(zhuǎn)角等信息,來(lái)判斷區(qū)分直道、彎道、S 彎道以及轉(zhuǎn)彎的方向與轉(zhuǎn)彎半徑等等信息。根據(jù)第一圈記錄的數(shù)據(jù)信息,可以對(duì)第二圈的各個(gè)道路點(diǎn)進(jìn)行分段處理。直道上采用最高速加速,在進(jìn)入彎道之前提前進(jìn) 行減速,減至過(guò)彎的極限最高車(chē)速,對(duì)于不同半徑的彎道,選擇不同的車(chē)速。路徑記憶算法的優(yōu)勢(shì)在于對(duì)于復(fù)雜的S彎道,可以實(shí)現(xiàn)類(lèi)似CCD探測(cè)頭達(dá)到的效果, 選用小的轉(zhuǎn)向角度通過(guò),這樣可以大大縮短時(shí)間。具體算法請(qǐng)見(jiàn)[4]。
經(jīng)驗(yàn)及結(jié)論
本文的智能車(chē)開(kāi)發(fā)工作經(jīng)過(guò)6輪開(kāi)發(fā)迭代,從最初的小前瞻單排數(shù)字式傳感器,發(fā)展成脈沖發(fā)光、大前瞻、雙排排列、模擬式傳感器方案;控制策略從單純的PID控制升級(jí)到路徑記憶控制,使得車(chē)輛的導(dǎo)航性能有了很大提高。通過(guò)智能車(chē)開(kāi)發(fā)過(guò)程,得出一些經(jīng)驗(yàn)。
*開(kāi)發(fā)之初需要對(duì)光電傳感器特性、轉(zhuǎn)向舵機(jī)特性、驅(qū)動(dòng)電機(jī)特性、車(chē)輛機(jī)械性能、轉(zhuǎn)向側(cè)滑特性、電池特性等進(jìn)行實(shí)際的檢測(cè)。
*根據(jù)汽車(chē)?yán)碚搶?duì)車(chē)輛進(jìn)行規(guī)則容許范圍之內(nèi)的結(jié)構(gòu)調(diào)整,使之達(dá)到較佳的機(jī)械性能。
*組委會(huì)開(kāi)發(fā)了仿真平臺(tái),應(yīng)該充分利用該仿真工具對(duì)基于光電傳感器的路徑識(shí)別方案進(jìn)行研究,結(jié)合硬件的選型和自身在控制及電子方面的經(jīng)驗(yàn),確定路徑識(shí)別方案。前瞻距離較遠(yuǎn)的方案有助于提高車(chē)輛的通過(guò)速度。
*車(chē)輛的控制采用PID即可滿(mǎn)足要求,參數(shù)的整定需要結(jié)合道路試驗(yàn)進(jìn)行。車(chē)速的加快和減慢不要太劇烈,平穩(wěn)的控制也可以取得很好的效果。
評(píng)論
查看更多