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