劉曉萌
摘 要:智能循跡小車的設計包括車的機械結構設計,硬件電路設計和控制算法設計三個方面。文章采用模糊控制和PID算法進行電機和舵機的控制,完成智能循跡小車的控制算法設計。該控制算法能夠使得智能循跡小車在指定賽道內完成自動行駛的功能,達到設計要求。
關鍵詞:算法設計;智能循跡小車;行駛控制
中圖分類號:TP872 文獻標志碼:A 文章編號:2095-2945(2017)27-0010-02
引言
隨著人工智能技術的發展,智能行車軟件開發已成為計算機科學領域的研究熱點之一,許多的實驗平臺和駕駛輔助系統已經開發出來。
自動駕駛的實現需要依靠人工智能、視覺計算、雷達、監控裝置和全球定位系統協同合作,讓電腦可以在沒有任何人類主動的操作下,自動安全地操作機動車輛。基于攝像頭的智能循跡小車的設計與控制軟件研發是探索自動駕駛技術的一種有效途徑,它以攝像頭為路況監測傳感器,完成在指定道路上的不同任務。
智能循跡小車的設計與控制軟件研發主要包含三個基本方面[1-3]:機械結構的設計、硬件系統的搭建、軟件系統的編寫。機械結構調整模仿汽車的機械結構,包括重心調整,前輪定位等。硬件電路的設計遵從可靠性,穩定性和完整性,設計出一套符合要求的硬件電路。軟件設計通過道路識別算法和控制算法完成控制,同時以大量的賽道數據為基礎保證了智能車的穩定性。
1 智能循跡小車的機械結構
小車的機械結構主要由電機,底盤,舵機和攝像頭四個部分構成。
在智能車底板與后驅動模塊之間增加墊片可以降低底盤離地的間隙,為了保證智能車在彎道行駛時不發生側滑,底盤離地的間隙應該是越小越好,但還要考慮車模在坡道處底盤不會碰到賽道,經過實驗設置底盤離地間隙為8mm。
舵機采用前置懸置方式安裝,使擺臂和舵機始終處于同一個水平面,有利于轉向的靈活性,縮短舵機反應時間。
智能車CMOS攝像頭的安裝主要考慮了三個因素[4-5]:首先,保證攝像頭的位置絕對居中且正對前方;其次,在安裝高度上要盡量高,獲取足夠多的路況信息;最后,近瞻距離智能車20CM之內,用來保證智能車不偏離賽道。遠瞻在1M左右,在高速行駛的時候能夠提前判斷出前方賽道的類型。
2 智能循跡小車的硬件設計
系統硬件電路由K60最小系統、電源模塊,驅動模塊和傳感器模塊電路構成,各個模塊都集成在一塊PCB板上,相比較各個模塊分離減輕了整車重量,同時保證了各個模塊在同時工作時的穩定性。
智能車的控制芯片采用恩智浦公司的32位微處理器MK60FN1M,該芯片具有GPIO模塊FTM占空比(PWM)模塊、中斷模塊、A/D(模數)轉換模塊和串口通信(UART)模塊。最小系統模塊包括輸入電源、復位電路、下載接口以及50MHz有源晶振,單片機最小工作電壓為3.3V。
3 控制軟件設計
智能循跡小車通過CMOS攝像頭獲取黑白的賽道圖像,利用黑線提取算法提取賽道并計算賽道中心位置,通過比較智能車位置與賽道中線的偏移量的大小來控制舵機的打角,實現對智能車方向的控制。此外,在速度控制上采用不同的賽道類型對應不同的速度來確保智能車在各種賽道上的穩定性,速度控制的算法采用模糊控制法,通過采集編碼器獲得的脈沖值的多少計算當前速度值,用來實現速度的閉環控制。
3.1 圖像矯正與黑線提取的計算
由于攝像頭采集到的圖像是一幅發散式的圖像,會產生縱向和橫向畸變,如果不進行矯正,無法保證采集到的賽道圖像的正確性,會影響對賽道類型的判斷,嚴重時還會造成智能車沖出賽道,無法完成任務。
由于攝像頭的畸變是梯形畸變,先不考慮縱向的畸變,攝像頭的橫向畸變近似為一個梯形。梯形矯正的方法為圖像最近一行為基準,假設賽道寬度為50個像素點,那么第二行也要把賽道寬度拓展成50個像素點,進行逐行矯正,這樣最后得到的圖像就是等寬的。
賽道中線提取算法基本思路:(1)掃描最底部三行數據,找出賽道的黑線坐標;(2)利用前一行的黑線位置判斷下一行黑線的大概位置,確定一個掃描的范圍,避免進行逐行掃描,節省大量時間;(3)根據掃描到的賽道寬度,判斷是否符合真正賽道的寬度,消除噪聲干擾。
3.2 分類賽道控制算法
(1)直道的方向控制算法。直道是所有賽道元素中最簡單最容易識別的元素,也是智能車速度最快的路段。在直道中的方向控制是很好實現的,當智能車偏離賽道一個偏移量時,通過計算賽道中心的位置與預定中心位置的差值,將這個差值反饋到PID方向控制上,智能車就會慢慢的回到賽道中心位置,這樣就實現了智能車在直道路段的方向控制。(2)大彎的方向控制算法。在賽道中遇到彎道需要轉彎時要考慮多個因素:彎道的彎曲程度、當前的速度值和距離彎道的距離。由于舵機的轉向有一定的延時,為了減小延時增大舵機的電壓為最大電壓。由于智能車的速度很快,舵機轉過一定的角度過程中智能車已經行駛了一段距離,所以遇到彎道時要提前轉彎,而且速度越快就要越提前轉彎,智能車提前轉彎多少由速度來決定,而轉彎轉多少由賽道的彎曲程度決定,賽道越彎轉過的角度就越大,同時速度要控制的越低,不然會發生側滑甚至側翻的情況。通過大量的實驗獲取了豐富的數據,通過工具分析數據得到了彎曲程度、智能車速度和距離彎道距離之間的關系,通過實際的測試此關系完全滿足設計要求。(3)急彎的方向控制算法。遇到急彎的處理方式和大彎的處理方式相似,需要提前減速和轉彎,轉彎的轉向角也相應增大,急彎的方向控制更加困難,要更加注意。(4)“小S型“道的方向控制算法。“小S型”彎道是一段類似于“S”形狀的來回彎道組成的,智能車通過時如果不做處理就會連續打彎,增加通過的時間。如果遇到“小S型”彎道時能從中間直線通過就好了,能大大減少通過的時間。因此找到“小S型”彎道的中心非常重要,只有找到了中心位置,智能車才能全速通過,如果找不準中心位置,那么智能車就很容易沖出賽道。具體方法是“小S型”彎道的圖像通過掃描黑線的算法可以掃描到最后一行,此時賽道的中線都能計算出來,然后把賽道所有的中線進行加權平均就能得到通過“小S型”彎道的最佳路徑。
4 結束語
只有出色的控制算法才能使智能車的各個部分完美配合,完成預定的任務。本文在基于攝像頭的智能循跡小車結構設計與硬件電路設計的基礎上,進行了控制算法的設計,為下一步整車系統的開發與調制奠定了基礎。
參考文獻:
[1]尹杰,楊宗帥,聶海,等.基于紅外反射式智能循跡遙控小車系統設計[J].電子設計工程,2013,23:178-184.
[2]黃春平,萬其明,葉林.基于51單片機的智能循跡小車的設計[J].儀表技術,2011(2):54-56.
[3]陸曉琳.基于PIC16F648的智能尋跡小車設計與實現[J].電測與儀表,2011,7:65-68.
[4]宮紀波.基于紅外反射循跡小車的傳感器布局研究[J].工業控制計算機,2009,8:97.
[5]陳華偉,熊慧.智能循跡小車硬件設計及路徑識別算法[J].單片機與嵌入式系統應用,2010,12:26-31.endprint