翁 哲,蘇思偉,陳群元,翁宇涵,唐小煜
(華南師范大學 a.物理與電信工程學院;b.心理學院,廣東 廣州 510006)
在互聯(lián)網技術、人工智能技術迅猛發(fā)展的背景下,智能化、自動化的要求在各行業(yè)中都顯得越發(fā)重要,無論是農林業(yè)、工業(yè)控制、高??蒲泻腿粘I钪校詸C器視覺為代表的人工智能系統(tǒng)都有重要的應用. 在實驗教育領域中,各高校積極開展與人工智能和自動化控制相關的教學項目和科研項目. 而自動化控制的智能車導航及相關項目作為其中的一大板塊,自然受到各高校的重視[1]. 由國家教育部委托各高校舉辦的大學生智能汽車競賽是一項探索性高的工程實踐活動. 本文探究了智能車運行過程中穩(wěn)定性的可改善因素,并以追尋信標的智能車為例提出了相關的改進型處理方式.
為了保證智能車在運行過程中安全有效,較強的魯棒性是智能車系統(tǒng)的基本需求,這也是相關智能車競賽的考察重點. 然而智能車在實際運行過程中,常常有各種不可控因素出現(xiàn). 在理論算法的可行性基礎上,如何使用策略優(yōu)化智能車系統(tǒng)的穩(wěn)定性便顯得尤為重要. 這顯然也是相關競賽中影響成績高低的關鍵因素.
以全國大學生智能汽車競賽中信標組為例,競賽內容包括:在比賽場地中布置若干信標燈(圖1),智能車在運行過程中自動完成尋找信標、駛進信標、熄滅信標等操作. 為完成基本比賽要求,智能車通常通過攝像頭采集圖像,利用電機與舵機驅動行駛,運用單片機算法控制運行. 為保證運行的穩(wěn)定性,在運行過程中需要滿足圖像識別穩(wěn)定性、姿態(tài)控制穩(wěn)定性、突發(fā)處理穩(wěn)定性等3方面的要求.
(a)信標系統(tǒng)組成
(b)單個信標圖示圖1 信標賽制系統(tǒng)
通常的智能車CMOS攝像頭采集的有效圖像經過二值化處理,如圖2(a)所示. 然而CMOS攝像頭在運行過程中常常因為受到強光照射干擾、外界亮度突變等不可控因素等導致圖像丟幀和圖像質量損壞,如圖2(b)所示,從而影響智能車判斷. 為了消除這些不可控因素,可在硬件光路和軟件圖像濾波2方面對攝像頭及其圖像進行處理,去除噪點,還原有效的圖像,以供運行策略算法識別和判斷.
(a)真實信標圖像
(b)受干擾信標圖像圖2 常見的信標圖像
在光路上,信標光線由紅外光(峰值波長為850 nm)、紅光(波長為620~625 nm)和超聲波(頻率為40 kHz)組成[2]. 實際運行過程中可以在CMOS攝像頭上安裝濾光片,只讓紅外光(波長為800~1 600 nm)通過;同時添加遮光板,減少上方陽光直射或反光的影響,提高圖像質量. 攝像頭光路處理如圖3所示.
在軟件處理上,由于攝像頭角度及廣度、透鏡焦距等參量已確定,實際上信標大小在圖像上有固定范圍. 信標距離智能車越遠,接收的光強越小,表現(xiàn)為信標在圖像上越小. 在80×60 pixel的圖像上,信標的寬度d、信標質心在圖像中y軸示數(shù)、信標真實距離的對應關系測量值l如表1所示. 通過信標寬度與信標圖像位置的函數(shù)關系表,結合實際運行效果調整,進行圖像濾波,可以去除噪聲,從而定位出正確的信標位置.
圖3 攝像頭的光路處理
y/pixeld/pixell/cmy/pixeld/pixell/cm5251035917010223040721015175045426020158050333025131105514103011140
對于智能車的穩(wěn)定性運行要求,智能車的姿態(tài)控制是很重要的環(huán)節(jié). 在智能車運行過程中,目標參量與實際效果通常不是線性,會受到摩擦力、車輪扭力矩、回程誤差等影響. 為此引入了PID算法. 姿態(tài)控制分為對智能車轉彎角度的穩(wěn)定控制以及對運行速度的穩(wěn)定控制,對于不同的變量控制,需要引入不同的PID算法.
智能車在運行過程中常利用舵機進行轉彎,角度增量的變化范圍小,變化幅度小,可采用增量式的PID控制算法[3]:
Δu(k)=KpΔe(k)+Kie(k)+
KD[Δe(k)-Δe(k-1)],
Δe(k)=e(k)-e(k-1),
u(k)=Δu(k)+u(k-1).
角度控制中第k次改變的增量Δu(k)是設定量與實際量的誤差e(k)的函數(shù),大小幅度由系數(shù)Kp,Ki和KD控制,具體值在實驗中測得. 在智能車控制中通常由圖像處理計算得到e(k),意義是信標位置與視野中線的差值. 通過增量式PID算法驅動舵機擺角使智能車視野中線朝向信標,起到追尋信標的作用.
對于智能車運行速度的控制,由于在實際運行過程中智能車速度的變換范圍比較大,而且在執(zhí)行剎車、變速等操作過程中速度變化幅度很大而且次數(shù)頻繁,可以添加前饋控制保證粗調. 同時利用微分現(xiàn)行的PID算法閉環(huán)控制減少設定值變化帶來的振蕩. 綜上所述可以采用前饋-微分先行式PID算法[4-5]:
Δu(k)=KvΔx(k)+KpΔe(k)+Kie(k)+
KD[Δe(k)-Δe(k-1)]-KaΔy(k),
Δx(k)=x(k)-x(k-1),
Δy(k)=y(k)-y(k-1),
Δe(k)=e(k)-e(k-1),
u(k)=Δu(k)+u(k-1).
式中,Δy(k)表示實際速度的微分,由安裝在電機上的編碼器返回值得到;Δx(k)表示設定值的微分和幅度,分別由系數(shù)Ka和Kv控制. 加入了前饋和微分先行控制使電機的速度更加穩(wěn)定,抗干擾性更強.
穩(wěn)定性運行要求智能車在路徑規(guī)劃中自動規(guī)避風險,諸如繞開障礙、防止突發(fā)制動、防止傾倒等操作. 應對突發(fā)事件的處理能力需要多種傳感器配合,同時也要結合硬件資源,盡量選擇數(shù)據(jù)量少且處理方式簡單的傳感器. 保證不影響智能車軟件處理速度從而降低智能車整體的運行速度. 綜合考慮后,采用線性CCD攝像頭、紅外對管、輕觸開關、防倒保護開關多種傳感器檢測突發(fā)事件,利用舵機擺臂、電機倒轉等操作規(guī)避突發(fā)事件.
對于障礙物如不亮的信標、墻壁等,利用線性CCD攝像頭配合紅外對管檢測[6],在占用硬件資源較少的情況下完成對靜止障礙物的檢測,舵機或電機作出響應可規(guī)避障礙,如圖4所示.
對于突然出現(xiàn)在視野中的障礙使智能車突然被制動的問題,可以采用置于前方的輕觸開關持續(xù)檢測,如圖5(b)所示. 同時結合CMOS攝像頭等其他傳感,也可以列出其他突發(fā)制動情況,如紅外對管長期被遮蔽[圖5(a)],編碼器返回的速度值長期過小[圖5(c)]等情況,迅速作出倒車處理,保證運行的穩(wěn)定性.
(a)追尋信標途中遇到障礙
(b)熄滅信標后遇到障礙圖4 障礙的規(guī)避
(a)紅外對管被阻 (b)觸發(fā)輕觸開關
(c)編碼器讀數(shù)過小圖5 被動制動的規(guī)避
采用防倒保護開關持續(xù)檢測,若智能車在運行過程中發(fā)生傾倒,傳感識別后可以利用舵機擺臂支撐,將智能車回正,避免發(fā)生翻車的現(xiàn)象,如圖6所示.
圖6 傾倒狀態(tài)的規(guī)避
在普通場地中利用智能車的CMOS攝像頭采集圖像,使用光路、軟件改進處理的方案得到的圖像以及對噪聲干擾的圖像的判斷結果如圖7所示,只有紅色部分為算法識別的信標位置.
(a)獲取穩(wěn)定圖像
(b)干擾圖像的軟件處理圖7 穩(wěn)定識別信標
如圖7(a)所示,使用了光路改進后CMOS攝像頭獲得的圖像正確率在99.3%以上. 這說明基本能夠消除外界干擾光對判斷的穩(wěn)定性影響. 如圖7(b)所示,對受干擾的圖像處理結果也更加穩(wěn)定,而且無誤判,能夠滿足圖像識別穩(wěn)定性所需要的要求.
分別利用無姿態(tài)控制算法改進的方案(藍色曲線)和引進PID的控制算法方案(紅色曲線)操控智能車,將速度值穩(wěn)定在210(210為編碼器的返回參量,250代表電機轉速達到100%),并且對智能車行駛狀態(tài)進行制動干擾,利用串口返回真實的速度值,如圖8所示.
結果顯示,在智能車啟動后,PID的控制算法方案穩(wěn)定在速度210上的時間僅需0.3 s,相對無PID控制算法的方案所需的2.3 s有較大優(yōu)勢. 受到干擾后恢復時間在0.5 s以內. 而無PID算法的方案下恢復穩(wěn)定速度至少需要2.0 s. 這說明引入PID的控制算法方案保證了姿態(tài)控制穩(wěn)定性.
圖8 電機速度值
利用帶有障礙的賽道,如圖9所示,測試智能車對不同障礙的傳感檢測,同時制造情景使智能車強制制動或者翻倒,測試智能車對各種突發(fā)情景的響應.
圖9 測試地圖
由多次實驗測試結果得知,無突發(fā)處理的智能車對測試地圖的完成時間在30.5 s以上,同時由于無法應對強制制動和翻倒等其他情況,導致更多的實驗無法完成. 利用本文提出的突發(fā)處理控制智能車完成測試地圖的時間為15.7 s左右,同時也能夠規(guī)避其他突發(fā)情況,維持了突發(fā)處理穩(wěn)定性.
以追尋信標的智能車為例,說明了智能車在運行過程中圖像識別穩(wěn)定性、姿態(tài)控制穩(wěn)定性和突發(fā)處理穩(wěn)定性的重要性. 通過對CMOS及圖像的光路、軟件處理,引入PID及其改進算法,結合多傳感規(guī)避的一系列策略完善了智能車,保證了智能車控制的穩(wěn)定性.