基于線性CCD的尋線智能車設(shè)計
摘要:本設(shè)計以第八屆“飛思卡爾”杯全國大學(xué)生智能車競賽為背景,提出了一種根據(jù)線性CCD采集圖像引導(dǎo)直立小車循跡行駛的方案。本文介紹了這一方案的基本思想,所依據(jù)的物理原理,并重點介紹在雙速度控制算法下對轉(zhuǎn)向及障礙問題的優(yōu)化處理,并根據(jù)方案實際制作了小車。實踐證明該方案是可行的,并且效果較好。
本文引用地址:http://cafeforensic.com/article/201610/309992.htm關(guān)鍵詞:智能車;直立;速度控制;Kinetis K10;TSL1401CL
引言
以往的智能車競賽分為光電組、攝像頭組及電磁組。在本屆比賽中,光電組首次嘗試小車直立行走,并且首次采用線性CCD作為圖像采集傳感器。本文介紹以飛思卡爾Kinetis K10為主控芯片,如何使用線性CCD所采集的圖像進行數(shù)據(jù)處理的過程以及基于獨創(chuàng)的雙速度控制算法,從速度控制上解決了智能車過障礙的問題。
1 設(shè)計原理
1.1 數(shù)據(jù)采集算法
檢測路徑參數(shù)可以使用多種傳感器件,如光電管陣列、CCD圖像傳感器、激光掃描器等。各種檢測方法都有相應(yīng)優(yōu)缺點,其中最常使用的方法為光電管陣列和CCD圖像傳感器。如何有效利用單片機內(nèi)部資源進行路徑參數(shù)檢測,是確定檢測方案的關(guān)鍵。
CCD傳感器是一種新型光電轉(zhuǎn)換器件,它能存儲由光產(chǎn)生的信號電荷。當(dāng)對它施加特定時序的脈沖時,其存儲的信號電荷便可在CCD內(nèi)作定向傳輸而實現(xiàn)自掃描。CCD有面陣和線陣之分,面陣是把CCD像素排成1個平面的器件;而線陣是把CCD像素排成1直線的器件。本設(shè)計中使用線性CCD作為圖像傳感元件。
在本設(shè)計中選用TSL1401CL線性CCD,TSL1401CL線性傳感器陣列由一個128×1的光電二極管陣列、相關(guān)的電荷放大器電路和一個內(nèi)部的像素數(shù)據(jù)保持器構(gòu)成。該陣列由128個像素組成,其中每一個像素的光敏面積為3 524.3μm2,像素之間的間隔是8μm。該芯片操作簡單,只需要一個串行輸入信號和一個時鐘信號即可進行數(shù)據(jù)的讀取。
在CCD采集上,所采用的曝光時間自適應(yīng)策略如圖1所示。
從圖1可看出,該曝光時間自適應(yīng)策略就是一個典型的閉環(huán)控制,控制對象是線性CCD模塊的曝光時間,反饋是線性CCD感應(yīng)到的曝光量。調(diào)節(jié)的目標(biāo)是設(shè)定曝光量。控制器的工作原理是將設(shè)定的曝光量減去實際曝光量,差值即為曝光量的偏差e,曝光量調(diào)節(jié)器用Kp乘以e再加上上次的曝光時間作為新的曝光時間進行曝光,曝光時間調(diào)整后直接影響實際反饋的曝光量,如此反復(fù)進行調(diào)節(jié)就能達(dá)到適應(yīng)環(huán)境光的目的。我們的做法是取一次采集到的128個像素電壓的平均值作為曝光量當(dāng)量,設(shè)定的曝光量也就是設(shè)定的128像素點平均電壓。
1.2 數(shù)據(jù)處理算法
在圖像處理中,采用邊緣檢測法檢測賽道。因為賽道采回圖像電壓值不同,白色賽道與黑色賽道邊緣的交界處會出現(xiàn)圖像的凹槽,也就是圖像數(shù)值的下降沿。將CCD的128個圖像點進行坐標(biāo)標(biāo)注,由0~127,就可以確定出兩邊黑線的左右值。
得到左右坐標(biāo),根據(jù)公式“中線=(左坐標(biāo)+右坐標(biāo))/2”,就提取到了中線。當(dāng)然還要考慮邊線丟失的情況,我們采取補線的策略,如果這一時刻坐標(biāo)丟失就采用上一時刻未丟失的坐標(biāo)代替,這樣無論在十字彎、直道、彎道還是虛線,都可以實現(xiàn)很好的識別與控制,適應(yīng)各種不同的賽道要求。
對電機的控制上,采用傳統(tǒng)的PID控制算法。PID控制是最早發(fā)展起來的控制策略之一。PID控制器綜合了關(guān)于系統(tǒng)過去(I)、現(xiàn)在(P)和未來(D)三方面的信息,控制效果令人滿意。工業(yè)控制95%以上都采用了PID結(jié)構(gòu),具有簡單、魯棒性好和可靠性高的優(yōu)點。
PID算法示意圖如圖2所示。
其中,所采用的數(shù)字PID算法公式如下:
綜上所述.在小車控制系統(tǒng)的閉環(huán)部分均采用了傳統(tǒng)數(shù)字PID算法或改進型智能PID算法。
2 雙速度控制算法方案設(shè)計
2.1 傳統(tǒng)速度控制算法
由于車模的整個行駛過程是時刻變化的,在賽道構(gòu)成復(fù)雜且車模運行速度很高的情況下,對于系統(tǒng)的響應(yīng)要求很快。因此速度控制必須具有迅速、準(zhǔn)確、響應(yīng)快的特點。由PID原理知:I(積分項)的遲滯效果會讓控制系統(tǒng)響應(yīng)變慢,因此為適應(yīng)直立車模高速運行下的各種不同類型賽道,放棄官方設(shè)計方案中所推薦的PI控制,而采用反應(yīng)更迅速、調(diào)節(jié)速度更快的PD控制。
直立車模是雙電機分別控制左右輪,并且通過左右輪的差速進行轉(zhuǎn)彎。在直立車的電機控制中,PWM波的輸出是由直立控制量、速度控制量與轉(zhuǎn)向控制量共同組成的,即:
電機輸出量=直立控制量+速度控制量+轉(zhuǎn)向控制量 (1)
傳統(tǒng)速度控制算法中控制公式為:
速度控制量=速度設(shè)定值=速度測量值=速度設(shè)定值-(左輪速度+右輪速度)/2 (2)
由上式可知,實際值為左右輪速度的平均值。得到速度控制量同時加給左右電機,即左右電機速度控制量始終相同,由此可知左右電機速度控制量始終相同。在傳統(tǒng)速度控制算法下,轉(zhuǎn)向控制量相對于速度控制量來說相當(dāng)于是一種擾動量。
2.2 雙速度控制算法
我們所設(shè)計雙速度控制的思想如下:
左電機輸出量=直立控制量+左輪速度控制量+轉(zhuǎn)向控制量 (3)
右電機輸出量=直立控制量+右輪速度控制量-轉(zhuǎn)向控制量 (4)
因為在小車行駛過程中,小車保持直立,因此在小車直立行駛狀態(tài)下,直立值為固定值,所以:
左速度控制量=沒定值-左輪速度測量值 (5)
右速度控制量=設(shè)定值-右輪速度測量值 (6)
左、右輪速度值均由該輪速度控制量與轉(zhuǎn)向控制量同時給定。
由此可知:
左輪速度控制量=設(shè)定值-(速度控制量測量值+轉(zhuǎn)向控制量測量值)
評論