劉曉萌
摘 要:智能循跡小車(chē)的設(shè)計(jì)包括車(chē)的機(jī)械結(jié)構(gòu)設(shè)計(jì),硬件電路設(shè)計(jì)和控制算法設(shè)計(jì)三個(gè)方面。文章采用模糊控制和PID算法進(jìn)行電機(jī)和舵機(jī)的控制,完成智能循跡小車(chē)的控制算法設(shè)計(jì)。該控制算法能夠使得智能循跡小車(chē)在指定賽道內(nèi)完成自動(dòng)行駛的功能,達(dá)到設(shè)計(jì)要求。
關(guān)鍵詞:算法設(shè)計(jì);智能循跡小車(chē);行駛控制
中圖分類(lèi)號(hào):TP872 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):2095-2945(2017)27-0010-02
引言
隨著人工智能技術(shù)的發(fā)展,智能行車(chē)軟件開(kāi)發(fā)已成為計(jì)算機(jī)科學(xué)領(lǐng)域的研究熱點(diǎn)之一,許多的實(shí)驗(yàn)平臺(tái)和駕駛輔助系統(tǒng)已經(jīng)開(kāi)發(fā)出來(lái)。
自動(dòng)駕駛的實(shí)現(xiàn)需要依靠人工智能、視覺(jué)計(jì)算、雷達(dá)、監(jiān)控裝置和全球定位系統(tǒng)協(xié)同合作,讓電腦可以在沒(méi)有任何人類(lèi)主動(dòng)的操作下,自動(dòng)安全地操作機(jī)動(dòng)車(chē)輛?;跀z像頭的智能循跡小車(chē)的設(shè)計(jì)與控制軟件研發(fā)是探索自動(dòng)駕駛技術(shù)的一種有效途徑,它以攝像頭為路況監(jiān)測(cè)傳感器,完成在指定道路上的不同任務(wù)。
智能循跡小車(chē)的設(shè)計(jì)與控制軟件研發(fā)主要包含三個(gè)基本方面[1-3]:機(jī)械結(jié)構(gòu)的設(shè)計(jì)、硬件系統(tǒng)的搭建、軟件系統(tǒng)的編寫(xiě)。機(jī)械結(jié)構(gòu)調(diào)整模仿汽車(chē)的機(jī)械結(jié)構(gòu),包括重心調(diào)整,前輪定位等。硬件電路的設(shè)計(jì)遵從可靠性,穩(wěn)定性和完整性,設(shè)計(jì)出一套符合要求的硬件電路。軟件設(shè)計(jì)通過(guò)道路識(shí)別算法和控制算法完成控制,同時(shí)以大量的賽道數(shù)據(jù)為基礎(chǔ)保證了智能車(chē)的穩(wěn)定性。
1 智能循跡小車(chē)的機(jī)械結(jié)構(gòu)
小車(chē)的機(jī)械結(jié)構(gòu)主要由電機(jī),底盤(pán),舵機(jī)和攝像頭四個(gè)部分構(gòu)成。
在智能車(chē)底板與后驅(qū)動(dòng)模塊之間增加墊片可以降低底盤(pán)離地的間隙,為了保證智能車(chē)在彎道行駛時(shí)不發(fā)生側(cè)滑,底盤(pán)離地的間隙應(yīng)該是越小越好,但還要考慮車(chē)模在坡道處底盤(pán)不會(huì)碰到賽道,經(jīng)過(guò)實(shí)驗(yàn)設(shè)置底盤(pán)離地間隙為8mm。
舵機(jī)采用前置懸置方式安裝,使擺臂和舵機(jī)始終處于同一個(gè)水平面,有利于轉(zhuǎn)向的靈活性,縮短舵機(jī)反應(yīng)時(shí)間。
智能車(chē)CMOS攝像頭的安裝主要考慮了三個(gè)因素[4-5]:首先,保證攝像頭的位置絕對(duì)居中且正對(duì)前方;其次,在安裝高度上要盡量高,獲取足夠多的路況信息;最后,近瞻距離智能車(chē)20CM之內(nèi),用來(lái)保證智能車(chē)不偏離賽道。遠(yuǎn)瞻在1M左右,在高速行駛的時(shí)候能夠提前判斷出前方賽道的類(lèi)型。
2 智能循跡小車(chē)的硬件設(shè)計(jì)
系統(tǒng)硬件電路由K60最小系統(tǒng)、電源模塊,驅(qū)動(dòng)模塊和傳感器模塊電路構(gòu)成,各個(gè)模塊都集成在一塊PCB板上,相比較各個(gè)模塊分離減輕了整車(chē)重量,同時(shí)保證了各個(gè)模塊在同時(shí)工作時(shí)的穩(wěn)定性。
智能車(chē)的控制芯片采用恩智浦公司的32位微處理器MK60FN1M,該芯片具有GPIO模塊FTM占空比(PWM)模塊、中斷模塊、A/D(模數(shù))轉(zhuǎn)換模塊和串口通信(UART)模塊。最小系統(tǒng)模塊包括輸入電源、復(fù)位電路、下載接口以及50MHz有源晶振,單片機(jī)最小工作電壓為3.3V。
3 控制軟件設(shè)計(jì)
智能循跡小車(chē)通過(guò)CMOS攝像頭獲取黑白的賽道圖像,利用黑線(xiàn)提取算法提取賽道并計(jì)算賽道中心位置,通過(guò)比較智能車(chē)位置與賽道中線(xiàn)的偏移量的大小來(lái)控制舵機(jī)的打角,實(shí)現(xiàn)對(duì)智能車(chē)方向的控制。此外,在速度控制上采用不同的賽道類(lèi)型對(duì)應(yīng)不同的速度來(lái)確保智能車(chē)在各種賽道上的穩(wěn)定性,速度控制的算法采用模糊控制法,通過(guò)采集編碼器獲得的脈沖值的多少計(jì)算當(dāng)前速度值,用來(lái)實(shí)現(xiàn)速度的閉環(huán)控制。
3.1 圖像矯正與黑線(xiàn)提取的計(jì)算
由于攝像頭采集到的圖像是一幅發(fā)散式的圖像,會(huì)產(chǎn)生縱向和橫向畸變,如果不進(jìn)行矯正,無(wú)法保證采集到的賽道圖像的正確性,會(huì)影響對(duì)賽道類(lèi)型的判斷,嚴(yán)重時(shí)還會(huì)造成智能車(chē)沖出賽道,無(wú)法完成任務(wù)。
由于攝像頭的畸變是梯形畸變,先不考慮縱向的畸變,攝像頭的橫向畸變近似為一個(gè)梯形。梯形矯正的方法為圖像最近一行為基準(zhǔn),假設(shè)賽道寬度為50個(gè)像素點(diǎn),那么第二行也要把賽道寬度拓展成50個(gè)像素點(diǎn),進(jìn)行逐行矯正,這樣最后得到的圖像就是等寬的。
賽道中線(xiàn)提取算法基本思路:(1)掃描最底部三行數(shù)據(jù),找出賽道的黑線(xiàn)坐標(biāo);(2)利用前一行的黑線(xiàn)位置判斷下一行黑線(xiàn)的大概位置,確定一個(gè)掃描的范圍,避免進(jìn)行逐行掃描,節(jié)省大量時(shí)間;(3)根據(jù)掃描到的賽道寬度,判斷是否符合真正賽道的寬度,消除噪聲干擾。
3.2 分類(lèi)賽道控制算法
(1)直道的方向控制算法。直道是所有賽道元素中最簡(jiǎn)單最容易識(shí)別的元素,也是智能車(chē)速度最快的路段。在直道中的方向控制是很好實(shí)現(xiàn)的,當(dāng)智能車(chē)偏離賽道一個(gè)偏移量時(shí),通過(guò)計(jì)算賽道中心的位置與預(yù)定中心位置的差值,將這個(gè)差值反饋到PID方向控制上,智能車(chē)就會(huì)慢慢的回到賽道中心位置,這樣就實(shí)現(xiàn)了智能車(chē)在直道路段的方向控制。(2)大彎的方向控制算法。在賽道中遇到彎道需要轉(zhuǎn)彎時(shí)要考慮多個(gè)因素:彎道的彎曲程度、當(dāng)前的速度值和距離彎道的距離。由于舵機(jī)的轉(zhuǎn)向有一定的延時(shí),為了減小延時(shí)增大舵機(jī)的電壓為最大電壓。由于智能車(chē)的速度很快,舵機(jī)轉(zhuǎn)過(guò)一定的角度過(guò)程中智能車(chē)已經(jīng)行駛了一段距離,所以遇到彎道時(shí)要提前轉(zhuǎn)彎,而且速度越快就要越提前轉(zhuǎn)彎,智能車(chē)提前轉(zhuǎn)彎多少由速度來(lái)決定,而轉(zhuǎn)彎轉(zhuǎn)多少由賽道的彎曲程度決定,賽道越彎轉(zhuǎn)過(guò)的角度就越大,同時(shí)速度要控制的越低,不然會(huì)發(fā)生側(cè)滑甚至側(cè)翻的情況。通過(guò)大量的實(shí)驗(yàn)獲取了豐富的數(shù)據(jù),通過(guò)工具分析數(shù)據(jù)得到了彎曲程度、智能車(chē)速度和距離彎道距離之間的關(guān)系,通過(guò)實(shí)際的測(cè)試此關(guān)系完全滿(mǎn)足設(shè)計(jì)要求。(3)急彎的方向控制算法。遇到急彎的處理方式和大彎的處理方式相似,需要提前減速和轉(zhuǎn)彎,轉(zhuǎn)彎的轉(zhuǎn)向角也相應(yīng)增大,急彎的方向控制更加困難,要更加注意。(4)“小S型“道的方向控制算法。“小S型”彎道是一段類(lèi)似于“S”形狀的來(lái)回彎道組成的,智能車(chē)通過(guò)時(shí)如果不做處理就會(huì)連續(xù)打彎,增加通過(guò)的時(shí)間。如果遇到“小S型”彎道時(shí)能從中間直線(xiàn)通過(guò)就好了,能大大減少通過(guò)的時(shí)間。因此找到“小S型”彎道的中心非常重要,只有找到了中心位置,智能車(chē)才能全速通過(guò),如果找不準(zhǔn)中心位置,那么智能車(chē)就很容易沖出賽道。具體方法是“小S型”彎道的圖像通過(guò)掃描黑線(xiàn)的算法可以?huà)呙璧阶詈笠恍?,此時(shí)賽道的中線(xiàn)都能計(jì)算出來(lái),然后把賽道所有的中線(xiàn)進(jìn)行加權(quán)平均就能得到通過(guò)“小S型”彎道的最佳路徑。
4 結(jié)束語(yǔ)
只有出色的控制算法才能使智能車(chē)的各個(gè)部分完美配合,完成預(yù)定的任務(wù)。本文在基于攝像頭的智能循跡小車(chē)結(jié)構(gòu)設(shè)計(jì)與硬件電路設(shè)計(jì)的基礎(chǔ)上,進(jìn)行了控制算法的設(shè)計(jì),為下一步整車(chē)系統(tǒng)的開(kāi)發(fā)與調(diào)制奠定了基礎(chǔ)。
參考文獻(xiàn):
[1]尹杰,楊宗帥,聶海,等.基于紅外反射式智能循跡遙控小車(chē)系統(tǒng)設(shè)計(jì)[J].電子設(shè)計(jì)工程,2013,23:178-184.
[2]黃春平,萬(wàn)其明,葉林.基于51單片機(jī)的智能循跡小車(chē)的設(shè)計(jì)[J].儀表技術(shù),2011(2):54-56.
[3]陸曉琳.基于PIC16F648的智能尋跡小車(chē)設(shè)計(jì)與實(shí)現(xiàn)[J].電測(cè)與儀表,2011,7:65-68.
[4]宮紀(jì)波.基于紅外反射循跡小車(chē)的傳感器布局研究[J].工業(yè)控制計(jì)算機(jī),2009,8:97.
[5]陳華偉,熊慧.智能循跡小車(chē)硬件設(shè)計(jì)及路徑識(shí)別算法[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2010,12:26-31.endprint