錢俊然 艾凌波 應明輝 付倩瑤
(江西理工大學信息工程學院 江西省贛州市 341000)
智能小車是一個含無線通信、路徑規劃、無人駕駛、環境感知、智能定位、遠程控制等功能的綜合系統,涉及車輛、計算機、導航、無線通信等諸多交叉學科,可以應用于教育、科研、軍事、搶險救災和無人監視等領域[1],是近年來的研究熱點。當前許多高校對智能小車的研發投入了大量的精力,也取得了相應的成果。例如,2007年哈爾濱工業大學利用紅外傳感器,成功制作了直流電機控制的紅外避障小車;2014年中南大學鐘海華通過CCD 成功實現了循跡避障小車;2015年哈爾濱工業大學研發成功具有清掃、避障、路徑規劃功能的掃地機器人。目前關于智能循跡/避障小車的研究已經很多,但是基于OneNET 物聯網[2]平臺遠程控制的智能循跡/避障小車的研究還比較少[3]。
本文對實現的遠程控制智能循跡/避障小車進行了介紹,該小車由主控模塊、物聯網網關模塊、物聯網、傳感器模塊、運動模塊等組成。主控模塊采用STM32F103RC,物聯網網關模塊采用ESP8266,物聯網采用中移物聯OneNET 平臺[4],傳感器采用5 路紅外傳感[5]、1 路超聲波避障傳感[6],小車循跡算法采用聯合小車運動學分析的增量式PID 算法[7]。下面以系統設計、循跡避障控制原理、系統實現三個方面對小車的實現過程進行介紹。
智能循跡避障小車的軟件采用MVC 的編程思想設計、增量式PID 算法循跡。智能小車工作過程:由無線通信模塊與物聯網平臺建立數據通信,智能小車接收上位機遠程下發的命令后,利用自動導航算法規劃行駛路線[8],通過傳感器感知路況信息并將這些信息傳入核心控制單元進行分析處理;通過增量式PID 控制算法對小車電機和舵機進行PWM[9]控制使小車沿4×4 點陣中的黑線前進并繞開障礙物,實現循跡與避障的目的。系統框架如圖1所示。
循跡路面選用4×4 點陣棋盤,從而模擬城市中交錯復雜的交通道路。循跡路面由16 個邊長為70 厘米白底黑線的正方形組成,其中以內切圓作為小車的轉向輔助軌道,為配合小車循跡行駛,設置循跡黑線的寬度為3 厘米。循跡傳感器為安裝在小車前端的5 路紅外模塊,利用光在行駛路面下的光反射強度值與系統設置值的對比確定小車的循跡路線[10]。當小車轉向或在圓環內行駛時,通過增量式PID 算法和差速小車控制原理對小車電機和舵機進行速度和轉向角控制使小車可以在路面上正常行駛。

圖1:小車系統框架

圖2:小車避障示意圖
小車用安裝在頭部的超聲波模塊來檢測路況信息,若檢測到小車運動方向上存在障礙物時,計算小車與障礙物之間的距離。當小車車頭與障礙物之間的距離小于d 且大于d/2 時,小車利用增量式PID 算法減速行駛至離障礙物d/2 即圖中B 處。根據OneNET 物聯網平臺設置的目的位置與障礙物位置間的關系,經自動導航算法處理后得出小車的轉向方向并借助轉向輔助軌道繞過障礙物,實現小車的避障功能[11]。避障示意如圖2所示。

圖3:PID 控制原理

圖4:舵機轉向分析圖

圖5:控制系統框圖

圖6:數據上傳與命令下發流程

圖7:控制監視頁面
為保證用戶對小車具有良好的遠程控制能力,同時小車在行駛過程中具有較高的穩定性和可控性。我們選擇增量式PID 算法作為小車的控制算法,增量式PID 算法是在經典PID 算法的基礎上發展而來的。經典PID 算法作為大多數控制系統的控制算法,其本質是對誤差進行控制。經典PID 算法下的控制系統有3 個控制單元,其中P 為比例單元、I 為積分單元、D 為微分單元,通過比例系數KP、積分系數KI、以及微分系數KD對系統偏差進行調整實現對系統的控制。具體的控制過程如圖3所示。
由控制原理圖可知r(t)表示系統輸入信號,y(t)表示系統輸出信號,e(t)表示系統偏差,u(t)則作為PID 控制器的輸出信號。通過計算e(t)的微分和積分且與PID 各控制單元進行線性組合,我們就可以得到PID 控制器的輸出信號。其表達式如式(1)所示:

但根據我們的研究經典PID 控制算法由于過于依賴對象模型、易于陷入局部極小的特點,所以經典PID 算法存在一定的局限性,難以實現高性能系統的控制。而另一方面,伴隨計算機時代的高速發展以及人們對PID 算法的探索,人們開始用采樣時刻來計算控制量,用離散的差分代替連續微分的方法,于是數字PID 也就因此誕生了。相較于經典PID,數字PID 更適合于計算機環境下的控制系統[12]。常用的數字PID 算法分為位置閉環控制和速度閉環控制兩種。在一般的控制系統中,速度閉環控制具有更高的精度與位置閉環控制相比更有優勢。速度閉環控制下只需要一個控制增量信號便可以實現對一個系統進行直接的控制,為了保證足夠的精度我們使用足夠小的采樣周期。式(2)中e(k)為第k 次的采樣偏差值,k 為采樣次數,為第k 次的輸出增量。數字PID 表達式(位置式(2)、增量式(3)所示)如下:

從公式中我們可以看出位置式輸出始終和過去的狀態有關,而增量式輸出為控制量的增量。所以位置式PID 相對于增量式PID 誤差較大,同時使用增量式PID 在遇到計算機故障后不會對系統產生較大影響,因此在本次設計中選用增量式PID 作為小車的循跡控制算法。
當用戶通過OneNET 云平臺對小車下發位置坐標指令時,控制單元根據小車當前位置坐標與目的位置坐標結合4×4 點陣進行路徑規劃。由此實現小車的自動導航功能。
由于在模擬城鎮道路時,城鎮的交通道路并不是一成不變的,所以本次設計中利用貪心算法[13]作為小車行駛路徑的規劃方案。貪心算法又稱為貪婪算法,是一種只求當前最優解而不求整體最優解的算法。在循跡過程中實現循跡的每一步都是實時規劃的,所以使用貪心算法來爭取每一步的最優是非常有必要的。但貪心算法由于負反饋的缺失,一旦出錯就將導致小車行駛路線出錯的問題。因此,為避免此類現象的出現,在邊緣位置處加入了變向內側移動功能進行重新規劃路線,避免小車循跡時受路線問題的干擾。
為實現小車在轉彎過程中平穩行駛,我們對小車轉彎過程中舵機與內外輪的運動關系建立數學模型進行簡單分析。如圖4所示。
由幾何知識進行換算,可得小車內外輪速度與轉向角度的關系表達式,內外輪速度v1、v2如下式所示:

式(4)、(5)中θ 為舵機的控制轉角,V 為小車行駛速度,L 為前輪與后輪之間中心距離,T 為小車后輪之間的距離,R1 為內側輪子的旋轉半徑,R2 為外側輪子的旋轉半徑。根據建立的數學模型我們可以得出轉向角θ 與內外輪速度v1、v2的內在聯系,通過C 語言對小車運動關系進行描述得出前輪行駛速度、轉向角度和后輪行駛速度的信息。最終該信息經主控單元解析后由增量式PID 對帶編碼器的電機和舵機進行PWM 控制其行駛速度和轉向角,實現小車平穩轉彎[14]??刂屏鞒倘鐖D5所示。
系統與Wi-Fi 模塊ESP8266 進行數據交互時,首先需要AT 指令集對Wi-Fi 模塊進行初始化使用STA(接入點)模式接入網絡。其次ESP8266 與OneNET 云服務器建立TCP 連接,對OneNET 云平臺下發的命令進行接收。最后由ESP8266 把接收的命令下發至系統并將需要展示的數據使用HTTP 報文形式上傳到OneNET 云端[15]。具體數據上傳和命令下發流程如圖6所示。
為了使用戶可以在PC 網頁和手機APP 上對小車進行遠程控制,我們使用OneNET 云平臺下的應用開發工具,設計一個帶監視控制功能的界面。該界面可以顯示當前小車位置與小車運動信息,如小車運動速度、運動時間、運動路程,如圖7所示[16]。在控制界面中,通過旋鈕控制小車的運動位置,圖表和表盤顯示實時小車運動信息,并將該信息儲存于云平臺中,通過圖形變化可以顯示一段時間內小車的運動狀態。經過多次實驗發現,旋鈕改變狀態到設備有3s 延時,所以在計算小車運動時間時會產生相應誤差。
當下基于物聯網的開發越來越來廣泛了,智能設備與網絡的綜合運用是目前的開發熱點之一。本文設計基于OneNET 的智能循跡避障小車,以STMF103RC 為核心控制單元,物聯網網關ESP8266WIFI 模塊實現無線通信與數據交互,OneNET 云平臺作為上位機實現對小車的遠程控制。智能小車通過自動導航算法規劃小車行駛路徑,5 路紅外循跡模塊和超聲波模塊實現循跡避障功能,電機編碼器檢測當前小車行駛速度、行駛距離等信息,增量式PID算法和差速小車控制原理保證小車平穩行駛。小車采用模塊化設計和MVC 編程思想、系統性能穩定、運行速度快。經過實驗和測試表明,本次設計的智能循跡避障小車達到了預先設計的目標,實現一個具備自動循跡功能、自動定位功能、超聲波避障功能、物聯網遠程控制功能、物聯網遠程監控功能的智能小車。