引言
全國高等學(xué)校自動化專業(yè)教學(xué)指導(dǎo)分委員會受國家教育部委托,舉辦第一屆“飛思卡爾”杯大學(xué)生智能車邀請賽。在智能車賽事中,路徑識別方法主要有兩大類,一類是依靠紅外光電傳感器,一類是依靠攝像頭。紅外光電傳感器以其體積小、價格低廉、安裝靈活方便且不受環(huán)境可見光干擾等特點得到了廣泛的應(yīng)用。
對于該類傳感器來說,相應(yīng)于不同的路面條件(主要是黑白度),接收管接收到地面漫反射紅外線后其兩端電壓將有所不同,即傳感器接收管正對白色路面,則其電壓較高,若正對黑色的路徑標(biāo)記線,則電壓較低。因此,基于這個原理可以提出一種比較常見的路徑離散識別算法:通過普通I/O端口將接收管電壓讀入單片機,根據(jù)端口輸入的高低電平邏輯來判斷該傳感器是否處于路徑標(biāo)記線上方,再篩選出所有處于標(biāo)記線上方的傳感器,便可以大致判斷此時車身相對道路的位置,確定路徑信息。
這種離散算法簡便易行,對硬件及算法要求都比較低,在傳感器數(shù)目較多的情況下也可以實現(xiàn)較高的識別準(zhǔn)確性。但它的一個致命缺陷在于路徑信息只是基于間隔排布的傳感器的離散值,對于兩個相鄰傳感器之間的“盲區(qū)”無法提供有效的距離信息,因此在傳感器數(shù)目受到限制的智能車賽事中,其路徑識別精度極大地受制于傳感器數(shù)目及其間距。
即使傳感器數(shù)目不受限制,路徑識別精度足夠高,離散路徑識別算法仍有其難以克服的固有缺陷。由于離散算法得到的路徑信息為離散值,如果直接應(yīng)用到轉(zhuǎn)向及車速控制策略中,勢必造成轉(zhuǎn)向及車速調(diào)節(jié)的階躍式變化,這將會對賽車的性能產(chǎn)生以下不利影響:其一,轉(zhuǎn)向及車速控制僵硬,對路徑變化反應(yīng)不靈敏,同時易產(chǎn)生超調(diào)及振蕩現(xiàn)象;其二,舵機輸出轉(zhuǎn)角相對于路徑為階躍式延遲響應(yīng),對于追求高速性能的高車速短決策周期控制策略來說,很可能因為舵機響應(yīng)不及而造成控制失效。
為了解決以上問題,一方面可以從路徑識別算法上著手,尋找識別精度高,不受傳感器數(shù)目限制,識別信息連續(xù)的路徑識別算法;另一方面也可以從控制算法上著手,尋找基于離散路徑信息的連續(xù)控制算法。本文著眼于第一條思路,提出一種將有限間隔排布傳感器采集的數(shù)據(jù)連續(xù)化的方法,來實現(xiàn)連續(xù)路徑識別。
光電傳感器特性
該連續(xù)化方法主要是建立在對光電傳感器特性的深入研究的基礎(chǔ)上。
事實上,紅外光電傳感器特性并非如前文所述那樣簡單(白區(qū)高電壓,黑線低電壓),其電壓大小與傳感器距離黑色路徑標(biāo)記線的水平距離有定量關(guān)系:離黑線越近,電壓越低,離黑線越遠(yuǎn),則電壓越高,(具體的對應(yīng)關(guān)系與光電管型號以及離地高度有關(guān)),如圖1所示。
圖1 傳感器電壓與偏移距離關(guān)系示意圖
因此,只要掌握了傳感器電壓—偏移距離特性關(guān)系,就可以根據(jù)傳感器電壓上的大小確定各傳感器與黑色標(biāo)記線的距離(而不是僅僅粗略判斷該傳感器是否在線上),進而獲得車身相對路徑標(biāo)記線的位置,得到連續(xù)分布的路徑信息。
連續(xù)路徑識別算法
算法總流程框圖如圖2所示,分為光電傳感器特性測定、比賽開始前預(yù)標(biāo)定、正式比賽三個步驟。
(1)傳感器特性測定
傳感器電壓—偏離距離曲線的測定是實現(xiàn)連續(xù)路徑識別的基礎(chǔ),需在軟件調(diào)試階段預(yù)先完成。以下將以一套實際設(shè)計的傳感器為實例,說明曲線測定的過程。
傳感器組參數(shù)如表1所示。
圖2 連續(xù)路徑識別算法總流程圖
表1 傳感器組參數(shù)
圖3 實測傳感器電壓—偏離距離特性曲線
圖4 歸一化后的傳感器電壓—偏離距離特性曲線
測定過程中,首先需要選擇測試點,即選擇與道路標(biāo)記線遠(yuǎn)近距離不同的點,如10cm、9cm、8cm……2cm、1cm等;然后在這些點上進行傳感器電壓采樣,得到這些點所對應(yīng)的傳感器接收管電壓值;最后將電壓值與距離參數(shù)一一對應(yīng),便可繪制出傳感器電壓—偏離距離曲線。實測曲線如圖3所示。
從曲線中不難看出,由于器件制造工藝的問題,各個光電管的性能特性存在很大差異,特別是電壓波動范圍相差較大。因此,為了給算法制定統(tǒng)一的標(biāo)準(zhǔn),給數(shù)據(jù)處理帶來方便,需對各傳感器的特性曲線進行歸一化處理,具體方法有很多,比如可以把各傳感器的電壓值都處理成相對該傳感器最大電壓(白區(qū)電壓)和最小電壓(黑區(qū)電壓)的變化百分比,以使所有的特性曲線的范圍都將在0到100之間。
歸一化處理后的特性曲線如圖4。由曲線可知,該組光電管傳感器的電壓—偏離距離特性曲線基本上呈現(xiàn)三段形態(tài):即兩邊偏離黑線較遠(yuǎn)處為斜率較小的直線段,中間為斜率較大的陡升段,黑線附近處底部呈現(xiàn)小平臺(某些傳感器特性曲線沒有顯示出平臺是因為測試點間隔較大的原因)。利用軟件工具對這些曲線進行分段直線擬合,以得到可供算法應(yīng)用的簡單線性關(guān)系曲線,結(jié)果如圖5。
圖5 線性擬合后傳感器電壓—偏離距離特性
有了這些曲線,便可以根據(jù)傳感器電壓,來計算各傳感器與賽道中心標(biāo)記線之間的距離,進而得到連續(xù)分布的路徑信息。在算法編寫過程中,需將上述得到的傳感器特性曲線參數(shù)寫入程序,作為數(shù)據(jù)庫進行保存。
(2)預(yù)標(biāo)定
考慮到賽道差異以及傳感器溫漂對傳感器電壓整體變化產(chǎn)生的影響,每次賽車出發(fā)前需要進行賽道預(yù)標(biāo)定,從而為下面算法路徑識別部分中的歸一化處理提供準(zhǔn)確的歸一化基本參數(shù)。
在標(biāo)定過程中,賽車處于停車狀態(tài),但傳感器及其電壓A/D轉(zhuǎn)換通道仍在工作,單片機不斷記錄讀入的電壓值。在賽道上移動賽車使其所有傳感器均能掃過白色的路面以及黑色的賽道標(biāo)記線,這樣單片機就能記錄下在該賽道上道路傳感器的電壓最大值(白區(qū)電壓)以及最小值(黑區(qū)電壓),為算法中的歸一化處理提供基本參數(shù)。
(3)路徑識別
路徑識別(即路徑信息獲取)為控制算法的核心內(nèi)容,各步驟在單個決策控制周期內(nèi)完成。
首先,在每個決策控制周期中,通過A/D轉(zhuǎn)換將傳感器電壓轉(zhuǎn)換為數(shù)字量讀入單片機中。
然后,利用在標(biāo)定過程中得到的傳感器電壓最大、最小值將得到的傳感器電壓進行歸一化處理。
下面需要確定能夠用于確定路徑信息的有效傳感器。從原始傳感器特性曲線中不難看出,曲線在低電壓值處的直線度較好,斜率較大,與我們所選取的分段直線模型較為近似,而在高電壓值處則有較大偏差,因此為了保證路徑信息準(zhǔn)確性,需要對傳感器信息進行篩選,選用那些所得電壓值百分比較小,即與黑色賽道標(biāo)記線相距較近那些傳感器。例如可以選擇電壓百分比最小的三個傳感器作為有效傳感器。
接著,就需要調(diào)用傳感器特性曲線參數(shù)進行路徑信息計算。從特性參數(shù)數(shù)據(jù)庫中調(diào)用先前確定的有效傳感器的陡升段斜率,傳感器中心位置等參數(shù)信息。然后根據(jù)這些參數(shù)以及傳感器電壓百分比,就可以計算由每一個有效傳感器得到的車身中心位置偏離路徑標(biāo)記線的距離。
最后,為了能夠提高路徑信息的準(zhǔn)確性,減小單個傳感器探測及數(shù)據(jù)轉(zhuǎn)換的誤差,可以將根據(jù)三個有效傳感器計算得到的三個偏移距離取平均,得到較為準(zhǔn)確的路徑信息。
值得注意的是,這樣得到的路徑信息是車身中心偏移路徑標(biāo)記線的距離,是一個連續(xù)變化的量,不但能在傳感器處于賽道標(biāo)記線正上方時探測到賽道,也能在傳感器偏移標(biāo)記線時給出具體的偏移距離,因此消除了傳感器間隙的“盲區(qū)”,實現(xiàn)了連續(xù)的路徑識別。
問題及展望
連續(xù)路徑偏差識別算法比起普通離散算法來說,不但具有定位精確、響應(yīng)連續(xù)的特點,而且從理論上來說連續(xù)算法可以在任意數(shù)目傳感器配置的控制系統(tǒng)中都保證較好的路徑識別效果,為控制的流暢性提供了可能。
同時需要指出的是,采用該算法時硬件設(shè)計上需要注意一些相關(guān)問題:
(1)需要根據(jù)實際路徑標(biāo)記線寬度,以及傳感器離地高度選擇合適的光電傳感器。具體來說,為了保證分段線性模型的準(zhǔn)確性,最好選擇那些傳感器電壓—偏離距離特性曲線中陡升段斜率較大的傳感器,但同時若斜率過大,又將使得傳感器最低到最高電壓變化的距離范圍過小,從而降低傳感器信息的探測寬度。另外,盡量選用特性曲線無平臺的傳感器,以免影響路徑識別準(zhǔn)確性并給算法處理上帶來麻煩。
(2)為了保證算法的簡單,使所有傳感器能夠共用一個分段線性模型,最好能夠保證所有傳感器的均一性,即所有傳感器的特性曲線都具有大致相同的形狀。這一點實際上很難做到,但若設(shè)計時稍加注意,如對元件進行分級篩選,仍可以部分改善問題,給算法實現(xiàn)上帶來方便。