趙必武,黃佳源
(綿陽師范學院機電工程學院,四川綿陽 621000)
比賽過程中的智能小車,需采用飛思卡爾單片機作為控制器,進行軟硬件設計,利用攝像頭對賽道進行自主識別,并按照規定路線(路線賽前未知)行駛[1],本文智能小車主要基于于小白四輪組的參賽進行研究.系統中采用CMOS攝像頭作為賽道識別傳感器,增加了小車對線路的視野,實現了對賽道的提前預測,加快小車的行駛速度.系統通過PWM波調整兩個驅動輪電機的速度和轉向,光電編碼器監測電機轉速,利用PID控制策略,實現了整個行駛過程中的速度及轉彎控制,使其在道路上快速平穩的行駛.

圖1 硬件系統框圖Fig.1 Block diagram of hardware system
為了讓智能尋跡小車在賽道上穩定快速行駛,需要良好技術狀態的硬件電路作為支撐[2].系統采用了模塊化設計思路,可有效提高組裝速度,同時便于賽場維護.小車采用CMOS芯片的攝像頭,并配以魚眼鏡頭,有效提高了攝像頭的視野.車模的電路由飛思卡爾單片機最小系統、多電壓穩壓模塊、編碼器速度檢測模塊、雙路直流電機驅動模塊、舵機驅動模塊、圖像采集模塊和程序下載調試模塊等七部分組成.(圖1為硬件系統框圖)
MK60FN1M0VLQ15芯片組成的最小系統為系統的控制中心,主要實現小車的速度監測、賽道圖像處理、舵機和驅動電機的運行控制,保證各模塊的平穩運行.
電源模塊基本分為三大塊:一是電池電壓直接給電機驅動供電和轉5V之后供給伺服電機的供電;二是通過升壓芯片MC34063轉換為12V給電機驅動IC供電:三是穩壓芯片LM2937-33轉換為3.3V 電壓供給攝像頭、單片機、編碼器和液晶屏幕(圖2為穩壓芯片,圖3為升壓芯片硬件設計電路).

圖2 LM2937-33穩壓芯片Fig.2 LM2937-33 voltage regulator chip圖3 MC34063升壓芯片Fig.3 MC34063升壓芯片
攝像頭由鏡頭和圖像傳感器構成,CCD和CMOS為主要的圖像傳感器,CCD和CMOS受自身物理特性的影響,存在不同的優點和缺點.根據需求我們選擇用的攝像頭幀率要求高,分辨率要求較低,因此要根據實際情況合理選擇[3].
根據表1選用CMOS傳感器,主要為MT9V034芯片攝像頭.該攝像頭帶有硬件二值化電路,不在板上自行設計電路,使數據輸出平穩有利于后續算法處理.

表1 圖像傳感器對照Tab.1 Comparison table of image sensor
電機驅動采用MOS管驅動,可以有效減少集成電路的發熱量以及電流、功率的損耗,其具有使電源端到接地端不會有直接導通的路徑的優點.柵極驅動器選擇上用的是IR2104,采用半橋柵極驅動器設計的4N電極驅動電路,此設計可有效減少電樞電流脈動,柵極驅動電路使MOSFET的開關速度得到提高從而使PWM控制方式的調制頻率得到提升,且具有防同臂導通等優點,通過驅動電路實現電機旋轉和有效的制動,使電路工作更加穩定[4].
小車的閉環控制需通過速度檢測,主要通過加裝編碼器來實現.通過對機械特性和電路性能考量,選定龍邱的旋轉編碼器.速度檢測電路由龍邱ECM141803-SDZ512旋轉編碼器組成.這是一款增量式編碼器,其旋轉碼盤上為同心、均勻排布的縫隙,旋轉光柵運動時,兩組橫向排布的發光元件與感光元件通過旋轉光柵與固定光柵后產生具有一定相位差的脈沖信號.而單片機直接讀取一定周期的脈沖數,實現速度的檢測,為閉環反饋控制提供數據.

圖4 程序流程圖Fig.4 Program flow chart
軟件程序決定了硬件調節下能否達到速度上限,合理的軟件設計保證小車快速運行.本文的智能小車采用CMOS傳感器MT9V034芯片的攝像頭,整個程序的設計核心在道路類型識別,圖像采集與處理.要實現小車對道路的“前瞻性”,實現更快速的入彎過彎,我們使用PID控制算法,將理論計算與實際調試情況相結合,在轉向調控和速度調控過程中適當對PID參數進行修改.具體流程為:初始化過后,進行參數設定,開始圖像采集并進行速度檢測反饋,再進行圖像處理,實現自動控制,通過起始線來判定是否達完成比賽(圖4為程序流程圖).
小車沿賽道快速正確行駛須實現最優的邊線獲取,消除其它賽道的干擾影響.攝像頭遠處視角容易虛化,故采集距小車最近的行,有效減少旁邊賽道的影響.找邊線時從近向遠開始找,近處行的邊線作為遠處的基準,賽道的邊線是不容易突變的,因此用近處行的邊線取值范圍對遠處行的值劃定一個范圍.我們采用的方法為“比較法”,從最近沒有干擾的行開始初始尋找,圖像的中間依次向兩邊尋找白到黑的值的突變,并記錄入數組,然后繼續尋找,當初始尋找成功,在繼續尋找其他內容,主要為識別道路中的一些“特例”如十字路口、S型道路和U型彎道[5].
因為攝像頭角度的問題,我們需要采用逆透視變換的思路來對存在梯形形變的圖片做出處理,這將有利于后續的程序處理.首先對實地賽道進行測量,基于旋轉矩陣模型利用MATLAB仿真賽道信息,在線上調試(圖5和圖6為攝像頭采集到幾種典型賽道圖像).

圖5 普通彎道圖像Fig.5 General curve image圖6 普通直道圖像Fig.6 Normal straight line image
在復雜賽道中要進行特殊的賽道分析處理,當賽道的左右邊界都存在時直接求和平均出中心值.當只存在一邊時,根據圖像修正值確定中心值.當兩邊都無黑線時,可認為在十字交叉處按直行值處理.因為圖像的數據量過大,全部掃描較為浪費時間,因此只掃描了所用的近處的8~10行左右的信息,以提高執行效率[6].
在實際調試過程中還發現在對于校正后的圖像數據擬合的中心線,返校正到原來圖像中會出現多個中心點的情況,主要多出現在較遠視野中,因此我們增加視野前部圖像的權重,因中心點對權重的影響較大,調節不好小車容易沖出賽道.為解決相關問題,采用利用數學方法求中心線折點,對折點下的中心點做特殊處理,減少小車失控的情況.
比賽前的賽道是未知的,因此我們對智能小車在不同道路及不同環境的情況做了程序的微調.攝像頭受光線強度影響黑白閾值會有改變,在不同的光線強度下,小車程序中設置對比度加減鍵,及時修正對比度值,使小車在不同的光線強度下依舊能正常行駛.在競賽中還易出現對停車線等的賽道特殊元素產生誤判使小車沖出賽道,因此我們設計了不同的方案來針對特殊元素,在十字路口中使用上文的“比較法”,在S彎中使用擬合中線規劃最短路徑,避免小車因轉彎而降速,通過不同的方案對賽道元素進行判別,從而縮短完成時間.在極端環境如太陽暴曬賽道等情況下,我們將舍棄PID調速,采用開環跑的策略,保證智能小車完成競賽的任務要求.

圖7 PID調節原理框圖FIg.7 Block diagram of PID adjustment principle
PID 控制技術結構成熟,使用便捷,是最早被應用于實踐的控制技術,經典PID控制算法主要應用于工業,反饋理論的閉環控制主要應用于自動控制方面,在當今比較流行.輸出的控制量由比例、積分、微分共同作用合成,PID控制器是實現被控對象在控制量作用下輸出,接近目標的輸出值過程的裝置[7].
當通過各種傳感器得到的輸出和目標輸出進行對比產生偏差,將這個偏差通過P、I、D的作用來實現對控制器的調節,所以對比例、積分、微分的參數調節至關重要,如圖7,y(t)為實際輸出,r(t)為給定輸入,u(t)為廣義被控對象,e(t)為偏差值,e(t)= r(t)- y(t)(圖7為PID控制器框圖).
智能小車采用整點化來減少單片機的運算量.PID控制器算法在經過整點化后不會對單片機的運算造成負擔,其整點化思路為使用int32_t來運算.整點化運算在PID這種無除法算法中造成的運算誤差是比較小的,智能小車傳感器輸入值與PID控制器輸出值都為整數值,小數主要為K(p),K(i),K(d)這三個參數.這三個參數的整點化思路為:初始化參數將其放大10n,迭代計算是除以10n,n為保留參數小數位數.
2.3.1 速度調整控制 為實現對不同種類的賽道的有效識別,使智能車高速行駛.優秀的彎道處理可有效減少時間,入彎是彎道的重中之重,通過觀測發現長直道后的大于90度的急彎,影響彎道速度較大.當設置直道速度過高時,所需設置的彎道速度差值就需提高,減速值也要升高.當小車進入彎道出彎時需加速行駛,當系統判定出彎道時,相較于小車全部出彎時在加速,對比小車出彎瞬時加速到直道速度的值,可以明顯縮短總體完成時間.保持在彎道中的穩定低速行駛和在直道內以最短時間加速度到速度限定值,這幾個因素共同決定了速度調整控制.
2.3.2 位置式PID控制算法 PID控制調節應用于自動尋線智能小車需要一些優化,對于經典PID算法一般都是應用于惰性系統,如溫度控制系統這種變化較慢,控制周期較長的系統,而對于智能小車這樣復雜的非線性系統較為不利,為了提高其競速表現,通過刪除I來提高PID控制系統的響應速度,因此我們使用位置式PID控制算法.我們控制舵機要求反應迅速,有快速精確的打角,利用MATLAB構造函數模型,獨立變量為圖像的平均偏差選擇控制,通過觀察調試發現I值設置為0只保留PD兩個參數便可達到一個穩定的控制效果,即便存在少量靜態誤差,也不影響結果.經過后期長時間調試發現小車在出彎后會在直道上出現搖擺,這就需要對PD參數結合實際進行調整,因此我們采用算法值固定,而不采用動態算法,雖然較為保守但可以保證小車的穩定性.PD參數設置需要聯合調試兩項相互影響,決定了最后的行駛結果,D項與偏差變化率相關聯,影響舵機打角的預判,當P的調試確定后,D項的變化同樣會影響其行徑過程的穩定性[8].在調試下,U型彎、S型彎等多種道路元素均可適用這種算法,但對于一些比較特殊道路的元素還是會有左右搖擺的情況.為減少完成時間,保證穩定,我們引入偏差加權平均算法來處理特殊道路元素.
本文就軟件設計、硬件電路設計兩部分詳細介紹了四川省大學生智能汽車競賽小白四輪組的智能小車的設計方案和器件選擇,形成自身的創新,首次參賽就取得不錯的成績.通過在四川省大學生智能汽車大賽中汲取的經驗,利用多種思路調試使多模塊緊密配合.在機械調整方面,選擇合適的小車重心,攝像頭的安裝設計卡扣方便其反復調試拆裝,使小車重心降低過彎更穩定快速,選擇合適芯片,PCB布線格局合理優化,使其適合車模的形狀,讓各模塊合理有序的工作.在程序軟件設計方面,我們通過不同思路的對比,選擇最合適的程序設計進行圖像處理,速度控制等,使小車高速的完成既定任務.