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