鐘海興,許倫輝,郭雅婷
(華南理工大學 土木與交通學院,廣州 510641)
目前,我國市場已連續2年成為世界第一大機器人市場,伴隨著“十三五”《機器人產業發展規劃(2016—2020 年)》《中國制造 2025》的相繼發布,我國機器人領域正在蓬勃發展。在滿目琳瑯的機器人種類中,其中工業機器人和服務機器人被普遍認為是實現創新發展、推動我國經濟轉型的重點對象。但隨著技術需求的不斷提高,移動機器人領域的不足之處顯現的越發明顯。
經過調研,在實際工廠環境中,大多數搬運機器人采用電磁導航、磁帶導航和慣性導航等方式,這些導航系統都存在著靈活性差,易受干擾等缺點。而激光導航作為近幾年新興的移動機器人導航技術,其因其高度靈活性,精度高,移動速度快等優點而成為工業移動機器人領域的重要研究方向[1-3]。
當前國內在激光導航下控制系統研究相對不多。在此,基于Firefly的RK-3399六核64位高性能開源平臺,開發基于機器人操作系統ROS的激光導航移動機器人控制系統,以實現移動機器人的無線通訊、激光無軌導航等功能。
激光導航移動機器人控制系統的硬件總體框圖如圖1所示。
該控制系統采用Firefly-RK3399開發板作為核心控制板。RK3299核心為六核64位“服務器級”Cortex-A72處理器,該芯片使用了雙“服務器級”核Cortex-A72+四核Cortex-A53的大小核架構,頻率高達2.0 GHz,新的內核相比以前的Cortex-A15/A17/A57核心設計可以提供高達100%的性能提升。該開發板還支持 2.4 GHz/5 GHz雙頻 Wi-Fi,Bluetooth 4.1和千兆以太網,為機器人網絡通訊提供通訊基礎。

圖1 硬件總體框圖Fig.1 Hardware block diagram
機器人平臺利用現有的自動導引運輸車AGV(automated guided vehicle)平臺作為移動機器人的基礎。該AGV具有2個驅動輪,電機為驅動一體式電機,通過給定模擬信號可以驅動電機運轉,讀取電機返回的脈沖信號,可以計算出電機的轉速和里程。AGV配備STM32驅動控制板驅動電機、紅外障礙物傳感器等裝置。AGV通過STM32驅動控制板的233串口接口與RK3399開發板進行通訊。AGV搬運機器人平臺如圖2所示。

圖2 AGV搬運機器人平臺實物Fig.2 AGV transport robot platform
所用激光雷達選用上海思嵐的RPLIDAR A2激光雷達(如圖3所示)。該雷達可以實時對周圍環境360°全方位掃描測距檢測,獲取周圍環境的環境信息;測量半徑為18 m,最大測量頻率為8000 Hz。該雷達通過232串口通訊與RK3399開發板進行通訊,接收來自開發板的啟動信號,以及采集激光信號轉換成數據信息傳輸到RK3399開發板上。

圖3 RPLIDAR A2激光雷達實物Fig.3 RPLIDAR A2 laser radar
采用ROS構建軟件系統,如圖4所示。所構建的軟件系統根據功能劃分,包括底盤驅動、遠程控制、局部導航以及全局導航等4個部分。

圖4 軟件系統Fig.4 Software system
1.2.1 底盤驅動
底盤驅動控制節點是機器人軟件系統的底層驅動部分,也是機器人移動的基礎。
在此,由于機器人的結構為前驅式結構,機器人接收導航控制節點下發的速度命令,然后把速度分解為左右電機的速度,STM32電機驅動控制器,接收到給定左右電機的速度信息后,經過信號的線性變換得到給定電機的DA信號,從而控制電機的速度。而機器人的行進方向則由電機的差速給定進行控制。電機轉動返回電機運轉的脈沖信號,由于電機旋轉一周所得到的脈沖數固定,并且可以測量底盤車輪直徑,則機器人前進1 m的脈沖數數學表達式為

式中:Ne為機器人前進1 m所得的電機脈沖數;n為電機旋轉一周的固定脈沖數;d為車輪直徑。
通過檢測信號幀之間的脈沖差Δi,信號幀之間的時間為Δt,Δt時間內機器人行進的距離為Δi/Ne,則t時間內機器人行進的距離為

計算出的里程計數據通過ROS發布后,rviz可視化界面上可以觀察到機器人的移動。
1.2.2 局部導航
此機器人的局部導航控制主要采用DWA(dynamic window approach)算法實現平面上移動機器人的局部導航,WA算法原理是:在速度空間(v,w)中采樣多組速度,并模擬這些速度在一定時間內的運動軌跡,再通過一個評價函數對這些軌跡打分,最優的速度被選擇出來發送到底盤驅動節點。
導航的模塊流程如下:①初始化 為DWA算法做準備,加載參數和實例化對象等;②采樣速度樣本 計算出需要評價的速度樣本;③樣本評分對計算出的速度樣本進行逐一評分,記錄下評價最高的樣本;④發布路徑 發布得到的最佳路徑策略。
1.2.3 全局導航
ROS系統平臺得到廣泛應用的一個重要原因,是它的代碼復用性高,對很多驅動代碼都具有良好的支持,并且統一了機器人數據傳輸的格式,可以讓開發者復用官方或者他人的代碼或者修改他人代碼進行自身的調試。因此,在驅動激光雷達運行的時候,無需開發者自身重新開發或者移植驅動,只需復用驅動代碼即可,使得開發者能夠在短時間內搭建出可用的并且性能良好的激光雷達檢測模塊。
全局導航是實現機器人自主導航的重要組成部分,通過激光雷達實時檢測周圍環境的數據,結合已生成的室內激光地圖,采用A*算法規劃出全局通行規劃路徑。A*算法是一種啟發式全局規劃算法,根據估價函數來搜尋較優路徑,既參考了從起點到當前節點的代價值,又參考了當前節點到目標節點的啟發值[1]。
A*算法的核心在于選擇合適的估價函數,估價函數為

式中:f(k)為節點 k 的估價函數;g(k)為從初始節點到k節點的實際代價;h(k)為啟發函數,為節點k到目標節點最短路徑的估計代價。
在機器人學中,常使用曼哈頓距離、歐幾里得距離和切比雪夫距離來估計啟發函。經過試驗對

A*算法的運算流程如下:
A*算法首先定義2個鏈表,OPEN表 (簡稱O表)和CLOSE表(簡稱C表)。O表內存放等待考察的節點;C表內存放已評估過的節點。在算法開始時,O表內只包含起點一個節點;C表只包含障礙物的節點。
步驟1 讀取移動機器人的起始點以及地圖內障礙點,設定機器人運動的目標點;
步驟2 初始化O表和C表,并定義為空;
步驟3 將起始點賦值給O表,障礙點賦值給C表;
步驟4 尋找父節點(剛開始為起始點)周圍可以到達的點,將它們放入O表,并鏈接父節點(如起始點);
步驟5 把父節點從O表中刪除后放入C表;
步驟6 計算O表中各點估價函數的值,選取f(k)值最小的點,將該點作為路徑規劃的下一個點,從O表中刪除并放入C表中;
步驟7 計算該點周圍可以到達的點,如這些點不在O表內,則將它們加入O表,并鏈接父節點;如果某點已經在O表內,檢查用新路徑到達該點,是否g(k)的值更低,更低則更換路徑,否則不做改動;
步驟8 算法重復運行步驟6和步驟7,直至找到目標點或O表為空,算法結束運算。
使用A*算法進行路徑規劃的示例,如圖5所示。比,在此選取歐幾里得距離作為啟發函數h(k)。歐幾里得距離為

圖5 A*算法全局導航規劃示例Fig.5 Example of A*global navigation planning algorithm
在AGV平臺上采用該系統并進行試驗。試驗平臺整體如圖6所示。

圖6 AGV試驗平臺實物Fig.6 AGV experimental platform
該移動機器人放置于室內,并利用激光雷達事先對室內環境進行激光掃描,構建室內的激光掃描地圖,上位機通過局域網通訊,實時觀測移動機器人的地圖構建過程,并且向AGV機器人發送控制命令控制AGV機器人的移動,以便掃描整個室內場地。掃描所得的室內激光掃描地圖如圖7所示。

圖7 室內環境總體激光掃描地圖Fig.7 Indoor environment overall laser scanning map
場景與掃描地圖進行對比。試驗場景和相對應的激光掃描地圖如圖8所示。

圖8 試驗場景以及相對應的激光掃描地圖Fig.8 Experimental scene and corresponding laser scanning map
試驗場地為70 m×10 m的室內環境,通過腳本設定多個目標點,使移動機器人按既定計劃到規定目標點打卡,到達目標點時停止1 min記錄數據后,繼續前進至下一目標點,直到到達最終目的地。在移動機器人行走過程中,記錄下到達每個目標點的位置偏差和航向角偏差,測量數據見表1。

表1 室內行駛試驗的測量數據Tab.1 Measurement data of indoor running experiment
由表可知,目標點1~6分布在左側的直線走廊上,但是由于走廊路口場景的相似性,移動機器人的定位算法適應性較差,在走廊場景下只利用了里程計進行定位和行駛,但由于里程計存在的客觀誤差,導致位置偏差不斷累積,但是航向角基本上沒有太大的偏差;目標點7~9分布在轉彎過道處,此時由于移動機器人移動時可利用的環境特征增多,定位算法工作良好,位置誤差在不斷修正,但由于行駛時轉彎角度的關系,航向角偏差增大;目標點10~12的數據結果也與1~6的試驗數據結果相似,由于走廊路口場景的相似,地圖定位特征減少,定位算法工作不佳,里程計的客觀誤差導致位置偏差不斷累積,航向角無太大偏差。
文中提出并設計了一種激光導航移動機器人控制系統,并進行了室內大范圍場景下的試驗。試驗結果表明,該系統可以實現室內場景下的激光無軌導航,并通過局域網連接上位機實時監控AGV搬運機器人的實時位置,可通過設定任務腳本提前設定搬運機器人的搬運任務,以達到自動搬運的目的。該系統可以適用于工廠內搬運AGV機器人系統改造和移植,有較好的實用性和經濟價值。