易先軍,彭 萌,耿翰夫,付 龍
(武漢工程大學 電氣信息學院,武漢430205)
智能車的研究是移動服務機器人研究的一個重要分支,研究智能小車控制系統(tǒng)的實時性和精確性具有重要的理論和實際意義[1-2]。隨著科學技術的快速發(fā)展,智能車的避障問題成為控制領域的研究熱點之一。目前,實現(xiàn)避障的方法主要有超聲波避障、視覺避障、紅外傳感器、激光避障、微波雷達等[3-6]。針對常規(guī)單一傳感器的智能小車存在的避障效率低、準確度差以及移動靈活性不足等問題,在此研究并設計了一套基于模糊控制算法的、 以Android App 為控制端的、 滿足多工作場景的四麥克納姆輪式小車控制系統(tǒng)。
四麥克納姆輪式小車控制系統(tǒng)的總體結構如圖1所示。該系統(tǒng)采用模塊化設計,根據(jù)各模塊實現(xiàn)功能的不同,可將該小車控制系統(tǒng)劃分為以下幾個部分:主控制器模塊、移動控制端(Android App)、通信模塊(藍牙模塊和PS2 接收器)、環(huán)境信息采集模塊(超聲波傳感器和紅外傳感器)、電機驅動模塊、測速模塊(光電編碼器)、電源模塊(12 V 蓄電池)等。
圖1 小車控制系統(tǒng)結構Fig.1 Structure of car control system
小車控制系統(tǒng)的工作流程如下:在移動控制端App 上選擇小車的工作場景, 通過通信模塊將控制指令發(fā)送到小車;小車解析接收到的指令后,根據(jù)指令進行預定的動作。例如:當選擇避障場景1 或避障場景2 時,主控制器利用模糊避障算法進行智能避障同時利用航跡推算法進行定位??梢愿鶕?jù)運動模型控制小車的運動,驅動器、直流減速電機以及光電編碼器會形成一個閉環(huán)控制, 通過增量式PID 調速算法控制各個電機的速度, 從而使小車實現(xiàn)預定的運動。
全向運動小車采用四麥克納姆輪式驅動結構來實現(xiàn)對小車的三自由度控制[7],2 個左旋輪,2 個右旋輪,左旋輪和右旋輪呈手性對稱。符合三自由度的安裝方式有多種,在此僅以O-長方形(即4 個輪子的輥子與地面接觸所形成的圖形)安裝方式為例,分析全向運動小車的逆運動學模型。小車的運動模型如圖2所示。
圖2 小車運動模型Fig.2 Car movement model
圖中,以小車的底盤幾何中心O 點為原點建立坐標系xOy。底盤的運動可以分解為3 個分量[Vx,Vy,ω], 其中,Vx為底盤沿x 軸方向的速度,m/s;Vy為底盤沿y 軸方向的速度,m/s;ω 為底盤沿z 軸自轉的角速度,rad/s。車輪軸心處Oi的速度為Vi,m/s;輪繞輪軸轉動的角速度為ωi,rad/s;輥子速度為μi,m/s;i=1,2,3,4,分別為右上輪、左上輪、左下輪、右下輪;α 為麥克納姆輪的輪轂軸與輥子轉軸的夾角,在此取α=45°。
右上輪軸心速度分析如圖3所示。圖中,r 為O點到右上輪中心點O1點的距離,m;V 為輪子的軸心處O1速度,m/s;Vr為輪子軸心速度沿垂直于r 方向(即切線方向)的速度分量,m/s。Vt為原點O 點的速度,m/s;ω 為原點O 點的角速度,rad/s。
圖3 右上輪軸心速度分析Fig.3 Analysis of the upper right wheel axis speed
故V=Vt+ω·r,其在x,y 軸方向的速度分量為
同理,可以推算另外3 個輪的軸心O2,O3,O4處速度沿x 和y 軸方向的速度分量。輪子軸心速度V可以分解為沿輥子方向的速度V1和垂直于輥子方向的速度V2。垂直于輥子方向的速度V2可以忽略。故
式中: μ 為輪子軸心速度V 沿輥子方向的單位矢量。又輪軸角速度ω 與輥子的速度關系為
結合式(1)~式(3),可得四輪輪軸角速度ω 與底盤幾何中心的速度關系,即小車底盤的逆運動學關系式為
由式(4)可知,若要實現(xiàn)小車的不同運動狀態(tài),只要調節(jié)各麥克納姆輪的轉速便可實現(xiàn)。
由于單個傳感器具有不確定性、觀測失誤和不完整性等弱點,因此單層數(shù)據(jù)融合限制了系統(tǒng)的能力和魯棒性[8]。在此,結合多傳感器信息融合技術,在小車底盤的左、前、右3 個方向分別安裝超聲波傳感器和紅外傳感器,以獲取未知環(huán)境的障礙物距離信息,通過紅外傳感器彌補超聲波測距的缺陷,利用航跡推算法定時推算小車與目標物的方位角。
傳感器的整體布局如圖4所示。圖中,1,3,5 為小車底盤上3 個超聲波傳感器編號;2,4,6 為小車底盤上3 個紅外傳感器編號。傳感器1 和2 組成小車左方障礙物的測距組;傳感器3 和4 為前方的測距組;傳感器5 和6 組成右方的測距組。每組的距離信息中選取較小的數(shù)據(jù)作為該組的輸入。
圖4 小車傳感器布局示意圖Fig.4 Schematic diagram of the car sensor layout
在圖5所示小車模糊避障系統(tǒng)中,將模糊控制器的輸入變量設為4 個:左前方障礙物距離的信息LD;正前方障礙物距離信息FD;右前方障礙物距離信息RD;目標點相對于小車的角度θ。通過對小車運動模型的分析可知,控制小車底盤幾何中心O 點的水平速度和垂直速度,即可控制小車實現(xiàn)全向速度,故控制器的輸出變量設為2 個——小車底盤幾何中心的水平速度Vx和垂直速度Vy。
圖5 小車模糊避障系統(tǒng)Fig.5 Car fuzzy obstacle avoidance system diagram
通過模糊化語言將3 組傳感器檢測環(huán)境信息以及目標角度轉換為模糊控制器的輸入變量。障礙物左邊距離值LD,前方距離值FD 和右邊距離值RD 的模糊語言變量均為{SD,MD,BD}={Small Distance,Middle Distance,Big Distance}, 論 域 為[0,2.4],表示0~2.4 m。定義小車距離障礙物的安全距離為0.8 m。
目標點相對于小車的角度θ 的模糊語言變量為{L,F(xiàn),R}={Left,F(xiàn)ront,Right},論 域 為[-90,90],表示±90°。定義目標角度,在-30°~30°時為F;小于-30°時為L;大于30°時為R。
小車底盤的水平速度Vx和垂直速度Vy的模糊語言變量均為 {NB,NS,ZO,PS,PB}={Negative Big,Negative Small,Zero,Positive Small,Positive Big},論域為[-0.3,0.3],表示±0.3 m/s。定義水平速度向右為正向,垂直速度向前為正向。各模糊變量采用基本的三角形和梯形隸屬度函數(shù)。
文中模糊推理采用Mamdani 的max-min 合成法,去模糊化輸出采用面積中心法[9]。模糊規(guī)則是模糊控制的核心,采用IF-THEN 條件語言,組成N=81條模糊控制規(guī)則。在小車工作于避障場景時,由傳感器采集環(huán)境信息數(shù)據(jù),經(jīng)模糊處理后,輸入到設計好的模糊規(guī)則表中進行匹配判斷,然后根據(jù)判斷結果去模糊化輸出底盤水平速度和垂直速度。以小車的左側近距離具有障礙物為例,列出的部分模糊控制規(guī)則見表1。
表1 部分模糊控制規(guī)則Tab.1 Partial fuzzy control rule
App 的開發(fā)環(huán)境為MIT App Inventor 2。MIT App Inventor 2 是以可視化編程語言為基礎的Android 應用開發(fā)工具,用戶只要根據(jù)自己的需求編寫簡單的代碼拼裝程序[10],簡化了用戶開發(fā)App 應用軟件的步驟,縮短了開發(fā)時間。在此,手機App 與小車之間采用藍牙通信方式,利用配置成數(shù)據(jù)透傳工作模式的藍牙模塊,手機App 將控制指令發(fā)送到小車,實現(xiàn)對小車運動狀態(tài)的控制。小車在運動的同時, 會定時將自身運動狀態(tài)等數(shù)據(jù)發(fā)送到手機App端來顯示,以達到更好的交互。
將小車硬件移動平臺初始化后,打開小車Android App 應用軟件,進入小車活動場景選擇界面,選擇場景后界面跳轉到相應控制界面,通過藍牙列表按鈕連接小車,待手機與車載藍牙連接后,就可以通過相應的功能鍵控制小車的運動。
以圖6所示的App 避障場景為例進行說明。此處選擇的是場景2, 地圖1的大小是250×250 像素與小車的實際物理活動場景10 m×10 m 成映射關系。待藍牙連接后,通過點擊目標配置按鈕,打開地圖1;在地圖1的xOy 坐標中點擊任意位置,App 會將對應像素點位置(即圖6中黑點位置)發(fā)送到小車。小車根據(jù)地圖映射關系,從起點O 點向目標點運動(每一次指定新的目標點后,上一次的終點位置成為新的起點),途中遇到障礙物時,會根據(jù)嵌入小車處理器的模糊避障控制算法避障。同時,定時上傳各驅動輪速度等信息到App,App 接收即時信息并顯示出來。圖6中,根據(jù)各電機速度可知,小車處于直線運動,黑色的點軌跡為小車的運動軌跡。
圖6 App 避障場景2 界面Fig.6 Interface of App obstacle avoidance scenario 2
四麥克納姆輪式小車控制系統(tǒng),能夠通過Android App 實時地對小車的運動場景進行選擇并控制小車的運動狀態(tài)。所設計的小車硬件模塊電路和相應的軟件控制流程,實現(xiàn)了小車硬件移動平臺與PS2 手柄以及Android App 之間的無線數(shù)據(jù)傳輸與控制,開發(fā)了Android App 應用軟件。最后對此系統(tǒng)進行測試,當小車處于避障場景中時,能自主避障并到達目標點; 當處于其它場景如PS2 手柄時,可以通過PS2 手柄控制小車靈活運動。然而,還可在提高小車到達目標點的速度和位置精度,以及豐富App 軟件的數(shù)據(jù)分析功能上做進一步改進。