彭育強,黃澤龍,李少偉
(廣東交通職業技術學院軌道交通學院,廣東 廣州 510650)
隨著人工智能技術的不斷發展,機器人技術及其應用已從局部的工業場景延伸至人們的日常生活之中。從機器人技術的發展趨勢可以看出,機器人顯得越來越智能化,將來能夠更好地為人類社會發展提供服務。移動機器人的自動避障技術是機器人技術及應用的研究重點內容之一。其目的是在障礙物環境下,機器人能夠自主避開障礙物并規劃最佳運動路徑運行至目標點,主要涉及機器人自身定位、路徑規劃以及移動控制等[1-3]。
本文研究的主要內容是在樹莓派平臺的基礎上,采用STM32控制器以及通過動態窗口法,結合機器人操作系統(robot operating system,ROS)平臺,實現對機器人的在線自動避障控制;通過MATLAB仿真以及搭建移動機器人系統平臺進行試驗測試,驗證了該移動機器人自動避障方案的正確性、有效性等。
控制方案采用目前熱門的ROS作為機器人開發平臺。該平臺可以方便、快速地為機器人控制系統提供相應的控制服務,包括硬件抽象描述、底層設備應用控制、公共功能的操作以及發包管理和程序傳遞等[4]。本文所設計的機器人控制系統總體框圖如圖1所示。

圖1 機器人控制系統總體框圖Fig.1 Block diagram of robot control system
系統可以通過應用層,包括手機應用(application,APP)、PS3手柄或者機器人可視化(robot visnalization,RVIZ)等,輸入控制信息;在導航層,通過自適應蒙特卡羅定位(adaptive Monte Coarlo location,AMCL)定位技術實現對機器人在地圖中的位置跟蹤,采用動態窗口法實現局部路徑中的避障規劃,控制機器人硬件平臺中的差速電機實現避障控制。
本機器人系統主要由上位機和下位機組成。上位機由工控機組成,負責機器人的所有控制。下位機由STM32作為主控芯片,負責機器人差速電機的速度和角度控制,涉及機器人運動控制、定位導航等功能。除此之外,系統還包括激光雷達、陀螺儀等傳感器,用于機器人周圍環境檢測。為保證上位機與下位機之間數據傳輸的準確性與實時性,采用RS-485總線方式進行通信連接。
由于目前系統只支持在Linux系統上安裝部署,在此選用具有體積小、功能豐富、成本低等特點的樹莓派3B作為主控器。在平臺上安裝Ubuntu MATE系統。Ubuntu是一個以桌面應用為主的開源GNU/Linux操作系統,可實現ROS在樹莓派上的穩定運行,并通過串口和硬件層連接實現數據采集和通信[5-6]。
選用STM32F103RCT6作為機器人底層硬件系統的控制器。該芯片擁有的資源非常豐富,如72 MHz速度、256 KB程序存儲器容量以及豐富的外圍設備接口和通信方式。該控制器除了對機器人進行運動控制之外,還對陀螺儀傳感器數據進行解算,得出機器人運行角速度;對編碼器進行解算,得出機器人運行線速度等。通過對傳感器數據采集和角速度、線速度的積分運算處理,得到機器人的里程計信息,并將該里程信息通過串口發送至ROS。STM32控制系統結構如圖2所示。ROS發送相關控制指令至STM32,從而控制機器人驅動電機,實現對機器人的運動控制。

圖2 STM32控制系統結構圖Fig.2 STM32 control system structure diagram
考慮到機器人運行的現場環境、性價比以及系統集成度等因素,本系統選用Lidar x2系列激光雷達C0602作為機器人感知環境的傳感器。該雷達系統采用三角測距原理,激光測距采樣能力能夠達到2 000次/s,可以實現在二維平面的8 m半徑范圍內進行360°全方位的激光測距掃描,并產生所在空間的平面點云地圖信息;可以方便地用于地圖測繪、機器人定位導航、物體/環境建模等。STM32通過串口提取C0602激光雷達發送過來有效數據,并解析得到激光雷達的實測信息,即機器人的狀態信息。激光傳感器C0602通信協議如表1所示[7]。

表1 激光傳感器C0602通信協議Tab.1 Laser sensor C0602 communication protocol
路徑導航技術是移動機器人技術的核心關鍵技術。其目的是使機器人按照預定的路徑導航信息自主運動控制,或者依據傳感器獲取外部環境進行相應的引導,從而規劃出一條機器人能夠順利達到目標點的路徑。在本系統中,研究機器人在全局路徑規劃導航中需要具備避障能力,即局部路徑規劃能力。導航過程首先通過激光雷達傳感器獲得相關的地圖信息,然后進行路徑規劃計算,最后發送路徑信息給機器人系統,通過相應的決策層使其實現自主導航控制功能[8]。移動機器人導航框架結構如圖3所示。

圖3 移動機器人導航框架結構圖Fig.3 Mobile robot navigation frame structure diagram
本系統中,機器人系統采用差速輪作為移動控制電機,研究采用動態窗口法進行機器人路徑規劃導航控制。動態窗口法由D.Fox提出,是一種直接在控制指令空間內搜索使得目標函數取得最大值的最佳控制指令自主壁障算法[9]。動態窗口法研究中需要著重考慮機器人的動力學性能,其核心是在機器人的速度(v,w)空間采樣多組速度,并模擬機器人在這些速度下一定時間(sim_period)內的移動軌跡。得到多組軌跡后,使用評價函數選出最優的一組速度(含角速度、線速度)來驅動機器人運動[10]。因此,如需模擬機器人的運動軌跡,則先要建立機器人的運動模型。根據兩輪差速機器人運動學模型結構,假設機器人線速度為v、角速度為ω、某一時刻(k)在世界坐標系中的姿態角為θ(k)、在時間間隔Δk內機器人作直線運動。機器人的軌跡在世界坐標系的位置可以推算為:
(1)
根據機器人運動軌跡模型采樣機器人運動速度,即可推算出機器人的運動軌跡。在二維空間中,機器人速度(v、ω)存在著無窮多組速度。但機器人自身運動又受到相關條件的制約[11],如電機性能、周圍環境、機器人自身結構等。因此,需要依靠機器人的自身條件和環境等客觀因素,將采樣速度控制在一定范圍內。以下為對機器人運動控制影響較大的約束因素。
①機器人自身最大、最小速度約束。
vm={v∈[vmin,vmax],ω∈[ωmin,ωmax]}
(2)
機器人運動控制中的速度受到自身線速度、角速度的最小、最大速度約束,因此需要將機器人的速度空間vm限制在約束范圍內。
②機器人驅動機電性能約束。

(3)
③安全制度距離約束。
為了保證機器人在碰到障礙物之前能夠及時停止,機器人的速度必須控制在一定范圍內。假設機器人在速度(v、ω)時刻遇到障礙物的距離為dist(v、ω),則機器人的速度范圍為:

(4)
④評價函數。
通過式(2)~式(4)可知,在約束條件下,機器人速度空間中的不同速度(v,ω)有著不同運行軌跡。因此,需要建立評價函數選出最優軌跡。最優運行軌跡對應的速度組(v,ω)則選定為機器人控制指令。其評價函數如下:
G(v,ω)=σ](αheading(v,ω)+βdist(v,ω)+
γvelocity(v,ω)]
(5)
heading為方位角評價函數,表示機器人在速度(v,ω)時,運行至模擬軌跡終端時機器人與目標點之間的角度差距。控制過程中,要使機器人的運行方向與目標點之間的角度盡量小,朝著目標點運動。dist表示機器人在速度(v,ω)時,與障礙物之間的最近距離。如果該軌跡下無障礙物,則將其設為一常數。velocity為機器人在速度(v,ω)時的速度大小評價函數,使機器人速度盡量高速運動。為了解決各評價函數的評價標準不同導致評價函數不連續的問題,需要對各評價函數進行歸一化處理,σ為平滑函數α、β、γ為權重系數。其最終目的是使機器人朝著目標點避開障礙物,從而以最快的速度運行[12]。
通過MATLAB仿真驗證上述算法的有效性。設置機器人的初期狀態x(m)、y(m)、ayaw(Rad)、v(m/s)、w(rad/s),分別為0、0、0.5pi、0、0。目標點位置為:ggoal=[10,9]。隨機設置障礙物位置點:oobstacle=[0,2;1,3;2,4;5,4;5,5;5,6;5,9;8,8;8,9;7,9;6,5;6,3;6,8;6,7;7,4;9,8;9,11;9,6] 沖突判定用的障礙物半徑oobstacleR=0.2。機器人運動學模型參數為:最高速度,m/s;最高旋轉速度,rad/s;加速度,m/ss;旋轉加速度,rad/ss;速度分辨率,m/s;轉速分辨率,rad/s。轉速分辨率為:KKinematic= [1.0,toRadian(20.0),0.2,toRadian(50.0), 0.01,toRadian(1)]。評價函數參數[heading,dist,velocity,predictDT]為:eevalParam= [0.05,0.2,0.1,3.0]。MATLAB仿真運行結果如圖4所示。

圖4 MATLAB仿真運行結果圖Fig.4 MATLAB simulation running result
通過仿真驗證,該方法可以控制機器人順利地避開各障礙物到達目標點,且生成的路徑平滑。由此證明,該機器人路徑規劃方法是有效的。
機器人平臺由兩個差速電機和萬向輪組成,控制模塊主要由上位機、STM32運動控制模塊以及激光傳感器等組成,采用鋰電池直流電源供電。STM32運動控制模塊主要實現對機器人電機的調速控制、里程計算等;激光傳感器用于機器人感知現在周圍環境信息;上位機采用在Ubuntu中的安裝ROS作為軟件開發平臺,采用AMCL技術進行即時定位與地圖構建,并通過動態窗口算法實現局部區域導航。試驗過程在有多個障礙物的實驗室內進行。在RVIZ界面中,可隨機設定機器人目的點。
本文通過動態窗口算法模擬仿真驗證算法的有效性,并采用上位機系統、STM32運動控制模塊以及激光傳感器等搭建機器人系統,實現了該算法在實際機器人硬件平臺上的運用。試驗結果表明,該方案能夠實現機器人在未知環境中的地圖構建,以及自動壁障自主導航等功能。但在機器人靠近障礙物時,速度角容易出現較大波動的現象。因此,對于該算法在機器人控制系統中的實際應用還需作進一步改進研究。