要實現一個完整的基于攝像頭的智能小車,第一步要做的就是將攝像頭輸出的模擬信號通過單片機A/D轉換采集到單片機中,然后對采集到的原始的圖像數據進行處理,以獲取賽道中央的黑線在圖像坐標系中的位置。
接著,就要利用處理得到的圖象信息對智能小車進行控制。就目前而言,各參賽隊用的最多的橫向控制(轉向控制)就是PID控制。采用PID控制方式,無需對攝像頭作嚴格的標定,因為只須將黑線在圖像坐標系中的位置偏差乘相應的PID系數,就可以作為轉向的控制律,至于PID系數取多少,則可以通過簡單的實驗調試而獲得合適的取值。正因為這樣,PID控制方式簡單易行。
而PID控制方式卻有其局限性,其最大的局限性就是無法很好控制智能小車的行駛線路(簡稱“走線”)。PID參數的變化會引起小車走線的變化,即使 PID參數相同的情況下,小車速度的或高或低同樣會引起小車走線的變化。這樣,因為小車走線的不確定性,為了比賽時小車不沖出賽道,只有盡量控制小車完全沿線行駛,這樣才能使小車無論在左側還是右側都有較充足的賽道裕量。但另一方面,完全沿著賽道中央黑線的走線也許并不是最優的走線,比如,在一些特殊路段抄近道,可能
會使走線更優,從而提高比賽成績。往下所要介紹的預測控制策略,就是為了達到使小車走線盡可能最優的目的。
基本思路
預測控制的基本思想是:在每一控制周期內,通過攝像頭獲取車前方一定區域內黑線的位置信息——與PID控制方式不同的是,預測控制多了攝像頭標定這一步,即將黑線在圖像坐標系下的位置轉換成世界坐標系下的位置——然后規劃出一條較優化的走線,成為期望走線。然后根據小車的運動學模型和轉向模型可以確定(一種最優化問題求解的過程),在往下若干個控制周期內,轉角控制量依次取多少時,小車走線才能最“接近”規劃出的期望走線。僅僅選取求解出的當前控制周期的轉角控制量作為實際的轉角控制量。在下一周期,將重新進行一次上述的規劃、最優化求解過程,如此反復循環執行下去。具體介紹如下文所示。
攝像頭標定
因為要進行走線規劃,就得獲取黑線的實際位置信息。通過攝像頭所獲得的只是黑線在圖像坐標系下的位置。因此,首先得求出圖像坐標系到世界坐標系的變換關系,這個變換關系是一個仿射變換關系,可以事先寫出這個變換關系的形式,然后再取一些標定樣點,通過計算標定出這個變換關系形式中的各個參數。攝像頭標定因為不作為本文重點,受篇幅所限,具體細節不在此贅述。
走線規劃
在賽車比賽中,走線選取的好壞可以作為評價車手水平高低的一個標準。在智能小車比賽中,走線選取的好壞同樣顯得很重要。針對不同類型的賽道甚至賽道組合,走線的選取,既要考慮到走線路程的長短,還要考慮到相應的速度限制,因此,如何走線是一個值得研究的問題。在各種走線規劃的策略中,一種最樸素而且效果也較明顯的想法就是“抄近道”。所謂抄近道就是在小車不沖出賽道的前提下,使小車在賽道上沿盡可能短的路線前進。最典型的兩種抄近道的表現方式如圖1所示,即蛇形道(a)和單向彎(b)上的抄近道。
圖1 智能車抄近道的兩種方式
運動學模型和轉向模型
運動學模型是描述智能小車位置、航向角、前輪轉角之間動態變化關系的模型。轉向模型是描述前輪轉角自身變化時的動態關系的模型。運動學模型和轉向模型可以描述成如下狀態方程的形式:
其中,x、y表示智能小車的位置,ψ表示航向角,δ表示前輪轉角,c=v/L(L為軸間距wheelbase),a=-1/T0(T0為轉向舵機的響應時間常數)。
最優轉角控制量求解
為描述方便,假設當前控制周期為kT周期,并假設kT、(k+1)T、……、(k+m)T周期的轉角控制控制量依次為u(k)、u(k+ 1)、……、u(k+m),并假設(k+m)T周期以后的轉角控制量為零(即車前輪正對著前方)。根據運動學模型和轉向模型,可以推得智能小車在任一時刻的位置。設推算出的kT、(k+1)T、……、(k+P)T周期(通常取P》m)(即在未來(P+1)周期內)的智能小車的位置,依次為(x (k),y(k))、(x(k+1),y(k+1))、……、(x(k+P),y(k+P))。前面在走線規劃時已經確定出了期望線路的位置,這樣就可以求出未來(P+1)周期內每一周期智能小車與期望線路的位置偏差,記為d(k)、d(k+1)、……、d(k+P)。取一個正定的性能指標:
J反應的是智能小車實際走線(根據模型預測的)和期望走線間的相近程度。J越小,則實際走線與期望走線也越接近。可以看出,每一組u(k)、u(k +1)、……、u(k+m)的取值將對應一個特定的J的取值。通過一些數值的最優化求取方法,可以確定出一組u(k)、u(k+1)、……、u(k+m) 的取值u0(k)、u0(k+1)、……、u0(k+m),使性能指標J取得最小值。那么,以u0(k)作為kT周期的實際轉交控制量,而u0(k+ 1)、……、u0(k+m)將摒棄。在(k+1)T周期,將重復走線規劃和上述最優量求取得過程,然后僅僅以所求得的(k+1)T周期的轉角控制量作為該周期的實際轉角控制量。反復循環執行前述過程。
結語
采用預測控制的策略,能更有效地利用攝像頭所獲取的豐富的賽道信息,能夠較準確地控制小車的走線,使小車在一些特征路段能按較優的線路前進,節省用時,提高比賽成績。限于單片機的計算能力有限,在具體實施預測控制策略時,可以作一些簡化處理,如將未來(m+1)個周期內的轉角控制量假設成相同的取值,即u(k)=u(k+1)=……=u(k+m),這樣能大大降低計算量,卻依然能有不錯的表現效果。
-
單片機
+關注
關注
6044文章
44651瀏覽量
640187 -
圖像數據
+關注
關注
0文章
54瀏覽量
11338 -
攝像頭
+關注
關注
60文章
4874瀏覽量
96600 -
模擬信號
+關注
關注
8文章
1150瀏覽量
52755
發布評論請先 登錄
相關推薦
LabVIEW獲取網絡攝像頭方法
智能攝像頭掀起浪潮
如何利用行車記錄儀后視攝像頭外掛多個攝像頭?
加密攝像頭方案
【HarmonyOS HiSpark AI Camera】智能小車+智能攝像頭
STM32單片機如何實現連接USB攝像頭
基于攝像頭和麥克納姆輪的自主尋跡小車設計
監控攝像頭的種類
攝像頭智能循跡小車設計方案

如何使用CMOS攝像頭進行智能小車的的設計與實現

評論