楊志清+張翠+王孫洪+龐永業(yè)+謝金輝
【摘 要】系統(tǒng)以K60單片機作為核心,以第十屆全國大學(xué)生“飛思卡爾杯”智能車競賽C車模作為車體,分別從硬件設(shè)計、機械結(jié)構(gòu)改進設(shè)計、圖像和控制算法方面介紹了智能車的設(shè)計過程;采用帶有硬件二值化的攝像頭進行元素識別,黑線提取和障礙檢測;使用閉環(huán)PID控制策略對整車進行控制;通過實驗驗證智能車的穩(wěn)定性。
【關(guān)鍵詞】智能車 攝像頭 PID控制 圖像檢測 障礙檢測
【中圖分類號】G 【文獻標識碼】A
【文章編號】0450-9889(2016)05C-0191-02
隨著科學(xué)技術(shù)的發(fā)展,智能控制技術(shù)在各行各業(yè)得到廣泛應(yīng)用,為了培養(yǎng)人才和激發(fā)大學(xué)生從事研究與探索的興趣和潛能,“全國大學(xué)生智能車競賽”要求在標準技術(shù)平臺下完成智能車軟硬件系統(tǒng)的設(shè)計,且以CCD傳感器自動識別賽道路線。通過智能車的軟硬件的配合,使智能車完成尋跡檢測功能,沿著白色賽道行進。
智能車主要由電源、主控板、舵機、編碼器、攝像頭和電機等六部分組成。如圖1所示。
智能車的工作原理如下:攝像頭獲取寒道數(shù)據(jù),主控板起到總線作用,獲得攝像頭采集的賽道數(shù)據(jù),然后根據(jù)賽道信息來控制舵機和電機使小車運動,在運行的同時主控板從編碼器中讀取小車速度作為反饋數(shù)據(jù),處理后送達電機,形成閉環(huán)??刂品椒ㄈ鐖D2所示。
一、智能車的硬件設(shè)計
智能車硬件主要由K60最小系統(tǒng)、驅(qū)動電路、電源模塊組成,對于K60最小系統(tǒng)一般不需要自己制作,使用成品模塊即可。
(一)電機驅(qū)動電路BTN7960
在電機驅(qū)動電路中,一般采用的是由驅(qū)動芯片組成的H橋的全橋電路結(jié)構(gòu),以保證電機對電流的需求。電機位于H橋的中間位置,只需控制兩組斜對角的驅(qū)動芯片即可實現(xiàn)對電機的正反轉(zhuǎn),對于電機的轉(zhuǎn)速則可以通過對驅(qū)動芯片施加PWM信號實現(xiàn)。由于驅(qū)動芯片通過電流較大,可能會產(chǎn)生大量的熱能,對電路造成影響,可以給功率管安裝散熱片,改善它們的工作條件,提高他們的過載能力。另一方面為了避免電機瞬間正轉(zhuǎn)或反轉(zhuǎn)引起的電流反沖導(dǎo)致主控芯片燒毀,在信號輸入端需要加光耦隔離芯片保護主控芯片。
電機驅(qū)動電路的電源可以直接使用電池兩端的電壓,最好加上二極管和保險絲以避免電池反接和短接,還可以防止調(diào)試過程中不小心短接和誤觸碰等。智能車在啟動的過程中往往會產(chǎn)生很大的瞬態(tài)電流,對電路的干擾和單片機的正常工作會有很大影響,可以在電源中增加容值較大的電解電容來保護電路的安全。
(二)電源模塊
智能車工作電源由7.2V的鎳鎘蓄電池供電,由于各個模塊工作所需要的工作電壓不同,因此需要進行電壓轉(zhuǎn)換,轉(zhuǎn)成各個模塊所需要的電壓。
攝像頭模塊,K60,OLED顯示屏使用的是3.3V供電,該電壓由LM2940芯片加REG1117-3.3芯片提供,該芯片自帶過壓過流保護,兩者都可以輸出1A的最大電流,而且穩(wěn)定性高,電壓擺幅小,所需外圍電路少,電路簡單。在溫度升高的情況下長時間的工作,輸出電壓能保持較好的穩(wěn)定性,非常適宜高頻率工作器件。
編碼器模塊和燈塔接收模塊使用的是5V供電,該電壓也由LM2940芯片提供,為了避免LM2940芯片過載導(dǎo)致的發(fā)熱和非線性失真等問題,將3.3V和5V分為兩路單獨工作,這樣可以避免單個模塊工作不正常造成的影響。
二、智能車機械結(jié)構(gòu)改進設(shè)計
本文中的車模的攝像頭組所使用的車模為C型車模,尺寸為28.5×16×8cm,為了提高車模整體的精度,減輕車身重量,最大程度優(yōu)化小車的機械結(jié)構(gòu),我們在規(guī)則的約束內(nèi)對小車做了如下的改進設(shè)計。
(一)前輪定向
轉(zhuǎn)向輪的定位主要由主銷內(nèi)傾(角)、主銷后傾(角)、前輪外傾(角)和前輪前束四個因素決定,它們反映了轉(zhuǎn)向輪、主銷和前軸等三者在車架上的位置關(guān)系,對于主銷內(nèi)傾(角),主要作用是產(chǎn)生與轉(zhuǎn)向相反的力矩,讓車轉(zhuǎn)彎后的回正性增強,同時在轉(zhuǎn)彎時車輪與地面的接觸情況會更好。對于主銷后傾(角),主要作用是在高速行駛時,保持直線行駛的穩(wěn)定性,有助于“自動回正”。出于對回正能力、車輪受力面積和靈活性的角度分析檢驗,我們把前輪調(diào)整為主銷內(nèi)傾。
(二)舵機的安裝
前輪轉(zhuǎn)向舵機有立式和臥式兩種安裝方案(這里以舵機轉(zhuǎn)軸為參考對象,立式:轉(zhuǎn)軸處于水平方向。臥式:轉(zhuǎn)軸處于豎直方向)。
舵機立式安裝方式的優(yōu)點:轉(zhuǎn)向響應(yīng)速度快,轉(zhuǎn)向角較為符合阿克曼轉(zhuǎn)向原理,它由舵機臂豎直平面的運動轉(zhuǎn)化為拉桿水平方向的運動,減少了在同一平面上運動的死區(qū)。方便安裝舵機臂,有利于調(diào)節(jié)賽車轉(zhuǎn)向的中心值。
舵機立式安裝方式的缺點:不好安裝固定;安裝后較高,占用豎直方向的空間;重心較高。
舵機臥式安裝方式的優(yōu)點:轉(zhuǎn)向響應(yīng)速度較快;高度較低;重心低。
舵機臥式安裝方式的缺點:轉(zhuǎn)向角部分符合阿克曼轉(zhuǎn)向原理(轉(zhuǎn)角小時),舵機臂和拉桿都在水平平面內(nèi)運動,當(dāng)舵機臂長度與轉(zhuǎn)角臂長度相等時會導(dǎo)致內(nèi)、外側(cè)輪不符合阿克曼轉(zhuǎn)角。
(三)攝像頭的安裝
攝像頭的支撐架應(yīng)盡量使用較輕的材料,以減輕車體的重量使其更加輕巧,且安裝的位置應(yīng)該在滿足前瞻的情況下,盡量安裝在質(zhì)心位置,并保證支架的垂直和穩(wěn)固。這樣才能保證小車在行駛的途中,車體和攝像頭之間不會來回晃動,造成攝像頭采集的圖像失真。攝像頭還要架在一個合理的高度上,且與支撐架成一定夾角,只有這樣才能擁有較低的重心,和有利的前瞻。
(四)車模重心和底盤加固
車體重心位置對賽車加減速性能、轉(zhuǎn)向性能和穩(wěn)定性都有較大影響。車身重心前移,會增加轉(zhuǎn)向,但降低轉(zhuǎn)向的靈敏度,同時降低后輪的抓地力,影響加減速性能;重心后移,會減少轉(zhuǎn)向,但增大轉(zhuǎn)向靈敏度,后輪抓地力也會增加,提高加減速性能。因此,確定合適的車體重心,讓車模更加適應(yīng)比賽賽道是很關(guān)鍵的。今年我們在前輪位置增加了墊片,降低重心,還減低了電池的高度,同時把攝像頭安裝在中間,底盤做了加固。增加了賽車的轉(zhuǎn)向靈活度,減少了車在行駛過程中產(chǎn)生的震蕩。
三、智能車算法
(一)賽道邊界提取
為了后續(xù)方便對圖像做類型的分析,我們先把賽道兩邊的邊界提取出來,提取的方法有很多種,較為常用的是黑線跟蹤法,黑線跟蹤法的具體步驟為:先確定幾行無錯的邊界所在位置;根據(jù)上一行邊界所在的位置,在下一行的附近進行查找;如果連續(xù)多行找不到左右邊界或圖像數(shù)據(jù)分析完畢,則即可結(jié)束查找。黑線跟蹤法可以極大的節(jié)省單片機時間,加快圖像處理的速度。
(二)賽道類型的識別
提取出賽道后,即可對賽道類型進行分析,分析方法也有很多種,較為簡單的是對圖像的固定區(qū)域位置進行檢測,例如圖3所示。
對圖中兩條黑線(為了方便顯示黑線上半部分采用反色)所在區(qū)域進行判斷,可以得到左邊黑線和賽道的交點,比右邊賽道黑線與賽道的交點要高,即可得出前方為左拐彎道(實際情況可能較為復(fù)雜,需要具體問題具體分析,本文給出了主要思想)。此方法在使用時,需要預(yù)先確定兩條黑線的區(qū)域位置,如果太靠近將導(dǎo)致左右黑線與賽道的交點高低難以判斷,離太遠又容易有多個交點(如左邊黑線如果太靠近左邊會和賽道產(chǎn)生3個交點)造成混淆,所以黑線的位置需要根據(jù)自己的實際情況來選定,只要方便判斷不易誤判即可。
(三)障礙的識別
對于有障礙的賽道來說,對圖像做邊界處理之后,障礙元素信息就會丟失,所以在識別障礙的時候需要分兩個步驟完成:先做邊界提取獲取賽道類型;對原始圖像做障礙分析。對于第一步使用黑線跟蹤算法即可,對于第二步,可以在圖像的上半部分(提前預(yù)判)每隔5個像素做一次橫向掃描,如果連續(xù)掃到多個像素為黑色,且在賽道中(可根據(jù)第一步獲得的邊界信息進行判斷),然后對其縱向掃描,計算出上下間距,如果在設(shè)定值之間即可判定為障礙。設(shè)定值取決于障礙大小和對小車之間的距離。需要根據(jù)實際情況進行分析,之所以需要進行橫縱兩方面掃描,是為和小S,直角標記線等元素進行區(qū)分。
四、系統(tǒng)調(diào)試
為了使舵機能更快更好的對給定的轉(zhuǎn)角值做出響應(yīng),我們采用位置式PID控制器,電機采用增量式PD調(diào)節(jié),通過不斷改變P、I、D三個參數(shù)進行試湊實驗,得到了一組響應(yīng)較好的參數(shù),可以使得車在高速行駛時能保持很好的穩(wěn)定性,從而大大消除由于傳感器帶來的誤差,控制方法如式一:
△u(n)=Kp[e(n)-e(n-1)]+KIe(n)+KD[e(n)-2e(n-1)+e(n-2)] (式一)
各個參數(shù)對小車的影響:
比例Kp:適當(dāng)?shù)谋壤苎杆俜磻?yīng)誤差,從而減小誤差,但是比例不能消除穩(wěn)態(tài)誤差,比例的加大會引起系統(tǒng)的不穩(wěn)定。
積分Ki:積分的作用就是只要系統(tǒng)存在誤差,就不斷的累積誤差,直到消除誤差。但是如果積分作用太強會使系統(tǒng)超調(diào)加大,甚至出現(xiàn)震蕩。
微分Kd:微分可以減小調(diào)整時間,從而改善系統(tǒng)的動態(tài)性能。
經(jīng)過多次測試,智能車可以完成快速穩(wěn)定的行進,本文在通過圖像識別技術(shù)對道路識別進行改進,利用PID控制器進行控制,對參數(shù)進行調(diào)整后,系統(tǒng)可以執(zhí)行正確的指令,智能車行進得更穩(wěn),并且車速上有一定提升,經(jīng)過實驗驗證,該系統(tǒng)工作穩(wěn)定,尋跡準確,小車的運行速度快。
【參考文獻】
[1]于海生.計算機控制技術(shù)[M].北京:機械工業(yè)出版社,2007
[2]盧京朝.自動控制原理[M].西安:西北工業(yè)大學(xué)出版社,2009
[3]卓晴,黃開勝,邵貝貝.學(xué)做智能車[M].北京:北京航天航空大學(xué)出版社,2007
[4]楊素行.模擬電子技術(shù)基礎(chǔ)簡明教程[M].北京:高等教育出版社,2005
【基金項目】2014年度廣西高等教育教學(xué)改革工程項目(2014JGZ189)