鐘海興,許倫輝,郭雅婷
(華南理工大學 土木與交通學院,廣州 510641)
目前,我國市場已連續(xù)2年成為世界第一大機器人市場,伴隨著“十三五”《機器人產(chǎn)業(yè)發(fā)展規(guī)劃(2016—2020 年)》《中國制造 2025》的相繼發(fā)布,我國機器人領域正在蓬勃發(fā)展。在滿目琳瑯的機器人種類中,其中工業(yè)機器人和服務機器人被普遍認為是實現(xiàn)創(chuàng)新發(fā)展、推動我國經(jīng)濟轉(zhuǎn)型的重點對象。但隨著技術需求的不斷提高,移動機器人領域的不足之處顯現(xiàn)的越發(fā)明顯。
經(jīng)過調(diào)研,在實際工廠環(huán)境中,大多數(shù)搬運機器人采用電磁導航、磁帶導航和慣性導航等方式,這些導航系統(tǒng)都存在著靈活性差,易受干擾等缺點。而激光導航作為近幾年新興的移動機器人導航技術,其因其高度靈活性,精度高,移動速度快等優(yōu)點而成為工業(yè)移動機器人領域的重要研究方向[1-3]。
當前國內(nèi)在激光導航下控制系統(tǒng)研究相對不多。在此,基于Firefly的RK-3399六核64位高性能開源平臺,開發(fā)基于機器人操作系統(tǒng)ROS的激光導航移動機器人控制系統(tǒng),以實現(xiàn)移動機器人的無線通訊、激光無軌導航等功能。
激光導航移動機器人控制系統(tǒng)的硬件總體框圖如圖1所示。
該控制系統(tǒng)采用Firefly-RK3399開發(fā)板作為核心控制板。RK3299核心為六核64位“服務器級”Cortex-A72處理器,該芯片使用了雙“服務器級”核Cortex-A72+四核Cortex-A53的大小核架構(gòu),頻率高達2.0 GHz,新的內(nèi)核相比以前的Cortex-A15/A17/A57核心設計可以提供高達100%的性能提升。該開發(fā)板還支持 2.4 GHz/5 GHz雙頻 Wi-Fi,Bluetooth 4.1和千兆以太網(wǎng),為機器人網(wǎng)絡通訊提供通訊基礎。
圖1 硬件總體框圖Fig.1 Hardware block diagram
機器人平臺利用現(xiàn)有的自動導引運輸車AGV(automated guided vehicle)平臺作為移動機器人的基礎。該AGV具有2個驅(qū)動輪,電機為驅(qū)動一體式電機,通過給定模擬信號可以驅(qū)動電機運轉(zhuǎn),讀取電機返回的脈沖信號,可以計算出電機的轉(zhuǎn)速和里程。AGV配備STM32驅(qū)動控制板驅(qū)動電機、紅外障礙物傳感器等裝置。AGV通過STM32驅(qū)動控制板的233串口接口與RK3399開發(fā)板進行通訊。AGV搬運機器人平臺如圖2所示。
圖2 AGV搬運機器人平臺實物Fig.2 AGV transport robot platform
所用激光雷達選用上海思嵐的RPLIDAR A2激光雷達(如圖3所示)。該雷達可以實時對周圍環(huán)境360°全方位掃描測距檢測,獲取周圍環(huán)境的環(huán)境信息;測量半徑為18 m,最大測量頻率為8000 Hz。該雷達通過232串口通訊與RK3399開發(fā)板進行通訊,接收來自開發(fā)板的啟動信號,以及采集激光信號轉(zhuǎn)換成數(shù)據(jù)信息傳輸?shù)絉K3399開發(fā)板上。
圖3 RPLIDAR A2激光雷達實物Fig.3 RPLIDAR A2 laser radar
采用ROS構(gòu)建軟件系統(tǒng),如圖4所示。所構(gòu)建的軟件系統(tǒng)根據(jù)功能劃分,包括底盤驅(qū)動、遠程控制、局部導航以及全局導航等4個部分。
圖4 軟件系統(tǒng)Fig.4 Software system
1.2.1 底盤驅(qū)動
底盤驅(qū)動控制節(jié)點是機器人軟件系統(tǒng)的底層驅(qū)動部分,也是機器人移動的基礎。
在此,由于機器人的結(jié)構(gòu)為前驅(qū)式結(jié)構(gòu),機器人接收導航控制節(jié)點下發(fā)的速度命令,然后把速度分解為左右電機的速度,STM32電機驅(qū)動控制器,接收到給定左右電機的速度信息后,經(jīng)過信號的線性變換得到給定電機的DA信號,從而控制電機的速度。而機器人的行進方向則由電機的差速給定進行控制。電機轉(zhuǎn)動返回電機運轉(zhuǎn)的脈沖信號,由于電機旋轉(zhuǎn)一周所得到的脈沖數(shù)固定,并且可以測量底盤車輪直徑,則機器人前進1 m的脈沖數(shù)數(shù)學表達式為
式中:Ne為機器人前進1 m所得的電機脈沖數(shù);n為電機旋轉(zhuǎn)一周的固定脈沖數(shù);d為車輪直徑。
通過檢測信號幀之間的脈沖差Δi,信號幀之間的時間為Δt,Δt時間內(nèi)機器人行進的距離為Δi/Ne,則t時間內(nèi)機器人行進的距離為
計算出的里程計數(shù)據(jù)通過ROS發(fā)布后,rviz可視化界面上可以觀察到機器人的移動。
1.2.2 局部導航
此機器人的局部導航控制主要采用DWA(dynamic window approach)算法實現(xiàn)平面上移動機器人的局部導航,WA算法原理是:在速度空間(v,w)中采樣多組速度,并模擬這些速度在一定時間內(nèi)的運動軌跡,再通過一個評價函數(shù)對這些軌跡打分,最優(yōu)的速度被選擇出來發(fā)送到底盤驅(qū)動節(jié)點。
導航的模塊流程如下:①初始化 為DWA算法做準備,加載參數(shù)和實例化對象等;②采樣速度樣本 計算出需要評價的速度樣本;③樣本評分對計算出的速度樣本進行逐一評分,記錄下評價最高的樣本;④發(fā)布路徑 發(fā)布得到的最佳路徑策略。
1.2.3 全局導航
ROS系統(tǒng)平臺得到廣泛應用的一個重要原因,是它的代碼復用性高,對很多驅(qū)動代碼都具有良好的支持,并且統(tǒng)一了機器人數(shù)據(jù)傳輸?shù)母袷?,可以讓開發(fā)者復用官方或者他人的代碼或者修改他人代碼進行自身的調(diào)試。因此,在驅(qū)動激光雷達運行的時候,無需開發(fā)者自身重新開發(fā)或者移植驅(qū)動,只需復用驅(qū)動代碼即可,使得開發(fā)者能夠在短時間內(nèi)搭建出可用的并且性能良好的激光雷達檢測模塊。
全局導航是實現(xiàn)機器人自主導航的重要組成部分,通過激光雷達實時檢測周圍環(huán)境的數(shù)據(jù),結(jié)合已生成的室內(nèi)激光地圖,采用A*算法規(guī)劃出全局通行規(guī)劃路徑。A*算法是一種啟發(fā)式全局規(guī)劃算法,根據(jù)估價函數(shù)來搜尋較優(yōu)路徑,既參考了從起點到當前節(jié)點的代價值,又參考了當前節(jié)點到目標節(jié)點的啟發(fā)值[1]。
A*算法的核心在于選擇合適的估價函數(shù),估價函數(shù)為
式中:f(k)為節(jié)點 k 的估價函數(shù);g(k)為從初始節(jié)點到k節(jié)點的實際代價;h(k)為啟發(fā)函數(shù),為節(jié)點k到目標節(jié)點最短路徑的估計代價。
在機器人學中,常使用曼哈頓距離、歐幾里得距離和切比雪夫距離來估計啟發(fā)函。經(jīng)過試驗對
A*算法的運算流程如下:
A*算法首先定義2個鏈表,OPEN表 (簡稱O表)和CLOSE表(簡稱C表)。O表內(nèi)存放等待考察的節(jié)點;C表內(nèi)存放已評估過的節(jié)點。在算法開始時,O表內(nèi)只包含起點一個節(jié)點;C表只包含障礙物的節(jié)點。
步驟1 讀取移動機器人的起始點以及地圖內(nèi)障礙點,設定機器人運動的目標點;
步驟2 初始化O表和C表,并定義為空;
步驟3 將起始點賦值給O表,障礙點賦值給C表;
步驟4 尋找父節(jié)點(剛開始為起始點)周圍可以到達的點,將它們放入O表,并鏈接父節(jié)點(如起始點);
步驟5 把父節(jié)點從O表中刪除后放入C表;
步驟6 計算O表中各點估價函數(shù)的值,選取f(k)值最小的點,將該點作為路徑規(guī)劃的下一個點,從O表中刪除并放入C表中;
步驟7 計算該點周圍可以到達的點,如這些點不在O表內(nèi),則將它們加入O表,并鏈接父節(jié)點;如果某點已經(jīng)在O表內(nèi),檢查用新路徑到達該點,是否g(k)的值更低,更低則更換路徑,否則不做改動;
步驟8 算法重復運行步驟6和步驟7,直至找到目標點或O表為空,算法結(jié)束運算。
使用A*算法進行路徑規(guī)劃的示例,如圖5所示。比,在此選取歐幾里得距離作為啟發(fā)函數(shù)h(k)。歐幾里得距離為
圖5 A*算法全局導航規(guī)劃示例Fig.5 Example of A*global navigation planning algorithm
在AGV平臺上采用該系統(tǒng)并進行試驗。試驗平臺整體如圖6所示。
圖6 AGV試驗平臺實物Fig.6 AGV experimental platform
該移動機器人放置于室內(nèi),并利用激光雷達事先對室內(nèi)環(huán)境進行激光掃描,構(gòu)建室內(nèi)的激光掃描地圖,上位機通過局域網(wǎng)通訊,實時觀測移動機器人的地圖構(gòu)建過程,并且向AGV機器人發(fā)送控制命令控制AGV機器人的移動,以便掃描整個室內(nèi)場地。掃描所得的室內(nèi)激光掃描地圖如圖7所示。
圖7 室內(nèi)環(huán)境總體激光掃描地圖Fig.7 Indoor environment overall laser scanning map
場景與掃描地圖進行對比。試驗場景和相對應的激光掃描地圖如圖8所示。
圖8 試驗場景以及相對應的激光掃描地圖Fig.8 Experimental scene and corresponding laser scanning map
試驗場地為70 m×10 m的室內(nèi)環(huán)境,通過腳本設定多個目標點,使移動機器人按既定計劃到規(guī)定目標點打卡,到達目標點時停止1 min記錄數(shù)據(jù)后,繼續(xù)前進至下一目標點,直到到達最終目的地。在移動機器人行走過程中,記錄下到達每個目標點的位置偏差和航向角偏差,測量數(shù)據(jù)見表1。
表1 室內(nèi)行駛試驗的測量數(shù)據(jù)Tab.1 Measurement data of indoor running experiment
由表可知,目標點1~6分布在左側(cè)的直線走廊上,但是由于走廊路口場景的相似性,移動機器人的定位算法適應性較差,在走廊場景下只利用了里程計進行定位和行駛,但由于里程計存在的客觀誤差,導致位置偏差不斷累積,但是航向角基本上沒有太大的偏差;目標點7~9分布在轉(zhuǎn)彎過道處,此時由于移動機器人移動時可利用的環(huán)境特征增多,定位算法工作良好,位置誤差在不斷修正,但由于行駛時轉(zhuǎn)彎角度的關系,航向角偏差增大;目標點10~12的數(shù)據(jù)結(jié)果也與1~6的試驗數(shù)據(jù)結(jié)果相似,由于走廊路口場景的相似,地圖定位特征減少,定位算法工作不佳,里程計的客觀誤差導致位置偏差不斷累積,航向角無太大偏差。
文中提出并設計了一種激光導航移動機器人控制系統(tǒng),并進行了室內(nèi)大范圍場景下的試驗。試驗結(jié)果表明,該系統(tǒng)可以實現(xiàn)室內(nèi)場景下的激光無軌導航,并通過局域網(wǎng)連接上位機實時監(jiān)控AGV搬運機器人的實時位置,可通過設定任務腳本提前設定搬運機器人的搬運任務,以達到自動搬運的目的。該系統(tǒng)可以適用于工廠內(nèi)搬運AGV機器人系統(tǒng)改造和移植,有較好的實用性和經(jīng)濟價值。