循線控制算法 - 基于光電傳感器的能自主識別道路的智能車

2012年08月07日 11:33 來源:互聯網 作者:互聯網 我要評論(0)

  二、循線控制算法

  本文采用經驗反饋控制,即在普通經驗控制的基礎上,加入pid控制的思想,引入比例、積分、微分三個控制常數,實施反饋,并采用積分分離的控制方法。

  循線控制算法是利用前后兩排傳感器綜合檢測信號來推理得到模型車的精確轉向及具體的車速。方向判斷的方法是:如圖3,首先判斷下排5個傳感器的情況,假設s3處在黑線位置,再觀察上排8個傳感器,此時s3將上排傳感器分為左右兩邊,由于相鄰兩個傳感器間距離稍大于黑線寬度,因此任何時刻只能有2個傳感器同時檢測到黑線,這樣一來根據分析上下兩排傳感器信號就可以基本判斷出模型車的轉向情況。例如,某一時刻s3和s8檢測到黑線,就可大致判斷模型車應向右拐,并根據兩個傳感器的連線和豎直方向的夾角可判斷舵機的轉向和大致角度。

  但同時還應注意,當車模進入左側彎道時,也可能出現s3和s8共同檢測到黑線的情況,這種情況下就要檢查上一時刻的傳感器信號,就是檢測s4||s13的情況,若s4||s13結果為1,則認為車模應左拐,若s4||s13結果為0則應右拐。一次方向判斷的流程如圖5所示。

  

  在程序中建立兩個數組,一個存儲每次檢測到的信號,另一個存儲實施控制后的當前信號作為歷史數據。加入這種帶歷史紀錄判斷的思想后,使得控制更為精確。

  除了以上判斷法則之外,還有兩種情況需要考慮。即只有一個傳感器檢測到黑線的情況以及交叉賽道的情況。對于只有一個傳感器檢測到黑線的情況,同樣需要檢查上一時刻的傳感器信號,例如,某一時刻只有s6檢測到黑線,若上一時刻s5檢測到黑線,則車模左轉,若上一時刻s7檢測到黑線,則車模右轉。

  對于交叉賽道的情況,則利用一種“濾波”的思想將其“濾”除掉。遇到交叉賽道時,必然會出現同一排幾個傳感器同時檢測到黑線的情況,此時就給模型車一個命令使其直線前進,將交叉賽道排除掉。

  這就是本系統基于經驗邏輯判斷的循線控制算法,在此基礎上通過不斷實驗調整各個參數可達到較好的控制效果。


上一頁12345下一頁

本文導航