金書奎,寇子明,吳 娟
(1.太原理工大學 機械工程學院,山西 太原 030024;2.山西省礦山流體控制工程實驗室,山西 太原 030024;3.礦山流體控制國家地方聯(lián)合工程實驗室,山西 太原 030024)
煤礦井下主排水系統(tǒng)是煤炭生產(chǎn)中不可缺少的重要設備,其運行狀況的好壞直接影響著礦山的正常生產(chǎn)和工人的生命安全[1]。為保證排水設備的正常運行,巡檢人員要運用感官以及一些配套的檢測儀器定期對其進行檢查,該方式勞動強度大,主觀因素多,巡檢不到位,巡檢結果數(shù)字化不便[2-3],不符合數(shù)字礦山的發(fā)展方向。隨著機器人技術的發(fā)展,采用機器人完成水泵房巡檢工作成為了可能,水泵房巡檢機器人,可以把水泵房巡檢人員從日常簡單、機械、重復性的工作中解放出來,便于人們集中精力處理更加重要和復雜的工作,對強化煤礦生產(chǎn)安全管理,真正實現(xiàn)減員增效、節(jié)能降耗具有重要意義[3]。巡檢機器人導航包括定位、路徑規(guī)劃和路徑跟蹤三部分,是巡檢機器人在水泵房內(nèi)穩(wěn)定安全行進的必要條件,沒有可靠的導航保證,機器人將無法完成巡檢任務。目前常用的導航方式有:電磁導航、視覺導航、GPS導航等[4]。電磁導航雖然能做到車體較精確定位,但種導航方式需要在機器人運行路線上鋪設磁條和設定RFID標簽,施工的工作量較大,不能預測前方道路情況,嚴重制約了移動機器人的行走速度;視覺導航在黑夜或光線不足的情況下效果較差,并且地面導航標志一旦破損或丟失會極大地影響機器人的導航定位性能;GPS導航有很好的靈活性,但是在煤礦井下水泵房內(nèi)很難接收到GPS信號,即使接收到信號,也無法解決信號失真的問題[4]。
目前如何在煤礦井下水泵房內(nèi)進行精確導航是實現(xiàn)水泵房巡檢機器人自主巡檢所面臨的重要問題之一。對此,研究了基于檢測點、行進點的最優(yōu)路徑規(guī)劃算法和點對點的路徑追蹤算法。首先通過路徑規(guī)劃算法在建好的二維柵格地圖中規(guī)劃出一條經(jīng)過所有檢測點和行進點的無障礙路徑,然后通過路徑跟蹤算法計算出巡檢機器人沿該路徑行走需要的實時線速度和角速度,最后將線速度和角速度發(fā)送給巡檢機器人運動控制器,巡檢機器人便可沿著規(guī)劃好的路徑行走,到達檢測點后便可采集排水設備的運行數(shù)據(jù)。經(jīng)仿真和實驗結果表明使用該算法控制機器人巡檢在導航精度上滿足機器人巡檢工作的要求。
柵格地圖是巡檢機器人自主導航中常用的一種環(huán)境地圖,目前主要通過激光雷達傳感器與SLAM算法結合的方法建立二維柵格地圖,該方法多在室內(nèi)且環(huán)境狀況未知的情況下使用,在實際建圖過程中激光雷達傳感器存在噪音,激光雷達數(shù)據(jù)存在運動畸變,使得建立的柵格地圖與真實環(huán)境有較大的誤差[5],不利于巡檢機器人的路徑規(guī)劃,因此采用人工測量與MATLAB中柵格地圖生成算法結合建立二維柵格地圖,具體步驟如下:
1)人工測量可得到水泵房的整體尺寸、排水設備的具體尺寸和排水設備在水泵房中的具體位置,根據(jù)這些信息繪制出水泵房二維平面圖,如圖1所示。
圖1 水泵房二維平面圖Fig.1 Two-dimensional plan pump house
2)根據(jù)水泵房二維平面圖將水泵房內(nèi)的障礙物和可通行區(qū)域以數(shù)字化的方式表示成一個44行34列的矩陣如圖2所示。在矩陣元素中0代表可通行區(qū)域,1代表障礙物區(qū)域。
圖2 水泵房二維平面圖數(shù)字化表示Fig.2 Digital representation of two-dimensional plan of water pump house
3)通過調(diào)用MATLAB 機器人工具箱下“robotics.Binary Occupancy Grid”函數(shù)將二維平面圖數(shù)字化矩陣生成二維柵格地圖如圖3所示,該地圖橫向有34個網(wǎng)格,縱向有44個網(wǎng)格,地圖的分辨率為每米10個網(wǎng)格。
圖3 二維占據(jù)柵格地圖Fig.3 2D grid map
由于水泵房內(nèi)各個設備的位置已知,且設備的位置是不經(jīng)常發(fā)生改變的,因此人工測量與MATLAB中柵格地圖生成算法結合建立水泵房的二維柵格地圖的方法是可行的。
在輪式自主導航系統(tǒng)中,里程計是重要組成部分,從里程計的計算數(shù)據(jù)中可以獲取機器人運動的位姿和速度等信息,這些信息對于實現(xiàn)機器人的定位和路徑跟蹤有重要作用[6]。
把機器人建模成輪子上的一個剛體,運動在水平面上,在平面上機器人底盤總的自由度是3個。由于存在輪軸和小腳輪關節(jié),還會有附加的自由度和靈活性。就機器人的底盤而言,把它看做剛體,忽略機器人和它的輪子間內(nèi)在的關聯(lián)和自由度。為了確定機器人在平面中的位置,建立全局坐標系和機器人坐標系之間的關系。
如圖4所示,在平面上選擇一點作為原點O,創(chuàng)建相互正交的X軸和Y軸,建立全局坐標系。為確定機器人的位置,在機器人底盤上選擇一點C作為位置參考點。以點C為原點,創(chuàng)建相互正交的XR軸和YR軸,建立機器人坐標系。在全局坐標系上,機器人的位置由坐標x和y確定,機器人的姿態(tài)由機器人坐標系XR軸和全局坐標系X軸間夾角θ確定。機器人在全局坐標系中的位姿表示ξI=(x,y,θ),通過正交旋轉矩陣R(θ),可把機器人坐標系的運動映射到全局坐標系下。
圖4 全局坐標系和機器人坐標系Fig.4 World coordinate system and robot coordinate system
巡檢過程中地面可能存在渣石、溝坎和凸臺,造成機器人的車輪與地面間出現(xiàn)相對滑動[7],這使得里程計計算得到的位姿和機器人的真實位姿之間存在誤差,由于煤礦井下水泵房的地面是平整和清潔的,車輪與地面間相對滑動可忽略,因此,假設機器人車輪在沒有打滑的前提下,對其進行運動學分析。
機器人有2個主動輪,輪子直徑為d,兩輪輪間距為l,機器人左右兩輪的運動速度分別為VL和VR,其中VL和VR可通過安裝在電機上的光電編碼器測量獲得。巡檢機器人在機器人坐標系下位置參考點C運動的線速度為v(t),角速度為ω(t)為:
(1)
(2)
式中:VL、VR分別為左右車輪的線速度;v(t)、ω(t)分別為機器人位置參考點C的線速度和角速度。
則在全局坐標系下機器人在X軸和Y軸方向的線速度和繞Z軸旋轉的角速度為:
(3)
在全局坐標系下機器人的位姿為:
(4)
式中:ξI為機器人在全局坐標系下的位姿矩陣。
在給定移動機器人線速度v(t)、角速度ω(t)和機器人坐標系相對于全局坐標系的變換矩陣的情況下,由式(4)可得到任意時刻機器人在全局坐標系中的位姿。
水泵房巡檢機器人路徑規(guī)劃就是尋找一條機器人從起始點,中途經(jīng)過所有選定的行進點和檢測點,然后到達最終點的路徑[8]。其中行進點是輔助機器人進行路徑規(guī)劃的坐標點,檢測點是機器人??坎λ梅吭O備進行信息采集的坐標點。
如圖5所示,點1和點6分別為水泵房巡檢任務中的起始點和最終點,他們處于水泵房入口和出口的中間位置,此處障礙物較少,便于機器人通行;點2和點4是水泵房巡檢任務中的檢測點,檢測點設置在排水設備的中間位置,方便機器人對排水設備中水泵、電機、聯(lián)軸器、轉軸進行拍照、紅外測溫和噪音檢測;點3和點5是水泵房巡檢任務中的行進點,行進點設置在水泵房走廊的中間位置,其作用是給路徑規(guī)劃算法增加約束,讓該算法規(guī)劃的全局路徑位于障礙物較少的位置。由于水泵房內(nèi)各排水設備的位置相對固定,所以點1~點6坐標位置可通過實地測量確定下來,機器人路徑規(guī)劃算法根據(jù)這些坐標點便可規(guī)劃出一條合理的全局路徑。
圖5 帶有行進點和巡檢點的二維柵格地圖Fig.5 2D grid maps with travel and patrol points
PRM是一種基于圖搜索的算法,它將連續(xù)空間轉換成離散空間,再利用A*等搜索算法在路線圖上尋找路徑[9],在圖6中PRM算法運行過程分為6個步驟,前5個步驟為離線學習階段,第6個步驟為查詢階段。離線學習階段主要內(nèi)容是在給定地圖的自由空間內(nèi)生成N個隨機點,在每個隨機點的周圍選取鄰域點,把隨機點和它的所有鄰域點相連,并去掉穿過障礙物區(qū)域的連線,由此得到一個無向路徑網(wǎng)絡圖G=(V,E),其中其中V為節(jié)點集,E為所有可能的兩點之間的路徑集。查詢階段主要內(nèi)容是根據(jù)學習階段構造的無向網(wǎng)絡路徑圖,采用某種搜索算法,如A*算法,廣度優(yōu)先搜索算法等,在起點和終點之間搜索出無碰撞的路徑。
圖6 PRM算法具體流程示意Fig.6 PRM algorithm specific flow
機器人路徑跟蹤是在平面坐標系下要求機器人從某一點出發(fā),按照某種控制規(guī)律到達路徑規(guī)劃算法生成的最優(yōu)的路徑上,并沿著該路徑運動到目標點[10]。水泵房一定程度上屬于時變環(huán)境,在已規(guī)劃的路徑上,某段時間內(nèi)可能存在障礙物,即便是最優(yōu)的路徑,也很難完全考慮到機器人規(guī)劃路徑中的各種障礙物情況[11],因此機器人在進行路徑跟蹤時還需通過傳感器探測前方障礙物,并及時避障。
圖7中G(gx,gy)是下一個要跟蹤的目標點,它位于已經(jīng)規(guī)劃好的全局路徑上,現(xiàn)在需要控制巡檢機器人的位置參考點C經(jīng)過該目標點,參考點C的當前位置為(cx,cy),ld表示巡檢機器人當前位置到目標點的距離,α表示目前車身和目標路點的夾角。根據(jù)兩點之間的距離公式可得到:
圖7 Pure Pursuit路徑跟蹤算法簡化模型Fig.7 Simplified model of Pure Pursuit path tracking algorithm
(5)
式中:gx和gy為目標點的橫坐標和縱坐標;cx和cy為機器人當前位置的橫坐標和縱坐標;ld為巡檢機器人當前位置到目標點的距離。
移動過程中控制機器人的線速度大小與機器人距離目標的遠近ld成正比得到:
(6)
式中:VL、VR分別為左右車輪的線速度;v(t)為機器人質(zhì)心移動的線速度;ld為機器人位置參考點C距目標點的距離;kv為ld與v(t)的比值。
根據(jù)正弦定理可以推導出如下轉換式:
(7)
(8)
(9)
式中:ld為機器人位置參考點C距目標點的距離;α為機器人從當前位置運動到目標點需要轉過的角度;R為機器人運動軌跡的圓弧半徑。
通過上式可得到機器人需要轉動的角度為:
(10)
式中:α為機器人從當前位置運動到目標點需要轉過的角度;ld為機器人位置參考點C距目標點的距離;R為機器人運動軌跡的圓弧半徑。
移動過程中控制機器人的角速度大小與機器人需要轉動的角度α成正比得到:
ω(t)=khα
(11)
式中:ω(t)為機器人旋轉角速度;kh為角速度ω(t)與角度α的比值。
通過激光雷達傳感器實現(xiàn)機器人的避障,由激光測距的原理可知,在激光雷達旋轉一周的過程中,激光發(fā)射頭會等時間間隔發(fā)射激光(每束激光的間隔角度相等),假定激光雷達旋轉一周后,激光發(fā)射頭總共發(fā)射了360束激光,則每束激光的間隔角度為1°,這樣就可以劃分所有的激光束,使之對應機器人前后左右的方位,如圖8所示,定義1~3激光束掃描的位置為機器人右方,4~18激光束掃描的位置為機器人前方,19~21激光束掃描的位置為機器人的左方。
圖8 激光束對應的機器人的方位Fig.8 Orientation of robot corresponding to laser beam
在機器人右方、前方和左方的每束激光測得的距離d中選取最小值,分別為y、q和z,避障算法流程如圖9所示。
圖9 避障算法流程Fig.9 Flow of avoidance algorithm
在3.1節(jié)中已經(jīng)通過人工測量的方式得到水泵房巡檢任務中起始點、行進點、檢測點和最終點總共6個點的坐標位置,此處主要在MATLAB中根據(jù)點1~點6的坐標位置結合PRM路徑規(guī)劃算法進行路徑規(guī)劃仿真,由于PRM路徑規(guī)劃算法執(zhí)行一次只能規(guī)劃出兩個坐標點間的路徑,要規(guī)劃出一條經(jīng)過6個坐標點的路徑,至少需要執(zhí)行5次PRM路徑規(guī)劃算法,執(zhí)行完5次PRM路徑規(guī)劃算法后生成的路徑如圖10所示。
圖10 PRM路徑規(guī)劃算法生成的5段路徑Fig.10 5 paths generated by path planning algorithm
由圖10中可看出,PRM路徑規(guī)劃算法總共生成了5段路徑,這5段路徑連接在一起組成了由起始點(點1)到最終點(點6)的全局路徑,在這條全局路徑上點2和點4是巡檢機器人對排水設備進行信息采集的坐標點,點3和點5是輔助PRM算法進行路徑規(guī)劃的坐標點,他們能夠把PRM算法規(guī)劃的路徑約束在道路中間的位置,這樣在滿足路徑較短的前提下,又可讓規(guī)劃的路徑盡量避開道路邊緣的障礙物。選取坐標點4到坐標點5之間的路徑規(guī)劃(路徑4)進行重點介紹,在進行路徑規(guī)劃前,首先根據(jù)機器人的尺寸對水泵房二維柵格地圖進行膨脹,以防止機器人在進行路徑跟蹤時與轉角處的障礙物發(fā)生碰撞,然后將膨脹后的地圖給PRM路徑規(guī)劃算法,并設置規(guī)劃路徑的起點(1.2,2.4),終點(2.7,3.3),PRM路徑規(guī)劃算法生成的隨機點數(shù)目為800個,PRM路徑規(guī)劃算法的仿真結果如圖11所示。在圖11中藍色的點是PRM路徑規(guī)劃算法生成的隨機點,灰色的區(qū)域為隨機點之間的連線,綠色的線為PRM算法生成的點4~點5的路徑,在圖12中可看到該路徑是由一系列坐標點連線組成,這些坐標點在接下來的路徑跟蹤中有重要作用。
圖11 PRM路徑規(guī)劃算法仿真結果Fig.11 PRM path planning algorithm simulation results
圖12 PRM路徑規(guī)劃算法生成的路徑Fig.12 Path generated by path planning algorithm
在上一節(jié)中,已經(jīng)得到了一條由點1~點6的全局路徑,這條全局路徑上點2和點4是巡檢機器人對排水設備進行信息采集的坐標點,在這兩點處機器人要調(diào)整好位姿停止一段時間對排水設備進行信息采集,若直接通過Pure Pursuit算法控制機器人跟蹤點1~點6這條全局路徑,則在經(jīng)過點2和點4時機器人無法停留,因此需要先將這條全局路徑分割為3段,分割點即為點2和點4,然后運行3次Pure Pursuit算法分別跟蹤路徑1(點1~點2),路徑2和路徑3(點2~點4),路徑4和路徑5(點4~點6),運行3次Pure Pursuit算法后機器人運動軌跡如圖13所示。
圖13 機器人的運動軌跡Fig.13 Trajectory of robot
由圖13看出軌跡1、軌跡2和軌跡3與PRM路徑規(guī)劃算法生成的路徑基本重合。機器人從起始點(點1)跟蹤路徑1到達排水設備1的檢測點(點2),機器人在此處停留一段時間采集排水設備1的數(shù)據(jù),然后跟蹤路徑2和路徑3到達排水設備2的檢測點(點4),機器人在此處停留一段時間采集排水設備2的數(shù)據(jù),最后跟蹤路徑4和路徑5到達最終點(點6)。重點介紹Pure Pursuit算法控制移動機器人跟蹤路徑4和路徑5(點4~點6)。在進行路徑跟蹤前要在MATLAB中生成一個兩輪差速機器人模型,設置機器人的直徑為0.2 m,該機器人可通過里程計得到任意時刻全局坐標系下的位姿,該位姿可以判斷機器人是否到達了目標點;再把點4~點6的規(guī)劃路徑存儲到Pure Pursuit路徑跟蹤算法中,點4到點6的規(guī)劃路徑由一些坐標點連線組成,這些坐標點是由PRM算法生成的,他們是Pure Pursuit算法需要跟蹤的目標點;設置機器人進行路徑跟蹤時的線速度0.1 m/s,最大角速度1 rad/s,距離閾值為0.01 m,執(zhí)行Pure Pursuit算法得到的仿真結果如圖14所示。
圖14 Pure Pursuit路徑跟蹤算法仿真結果Fig.14 Simulation results of Pure Pursuit path tracking algorithm
圖15為Pure Pursuit路徑跟蹤算法控制機器人跟蹤路徑4和路徑5時各個時刻的姿態(tài)角、角速度和線速度的變化,在區(qū)間1內(nèi)機器人處于起始點,位姿(x,y,θ)=(1.2,2.4,0),規(guī)劃路徑姿態(tài)角(規(guī)劃路徑與全局坐標系X軸間夾角)大于機器人的姿態(tài)角(機器人坐標系的X軸與全局坐標系的X軸之間的夾角),因此Pure Pursuit路徑跟蹤算法給出的機器人旋轉角速度大于0,機器人逆時針方向旋轉,機器人的姿態(tài)角增加,在區(qū)間2內(nèi)機器人的姿態(tài)角與規(guī)劃路徑姿態(tài)角相等,Pure Pursuit路徑跟蹤算法給出的機器人旋轉角速度等于0,線速度為0.1 m/s保持不變,機器人將沿著規(guī)劃路徑移動。在區(qū)間3內(nèi)由于規(guī)劃路徑的姿態(tài)角進一步增大,因此Pure Pursuit路徑跟蹤算法給出的機器人旋轉角速度大于0,機器人逆時針方向旋轉,機器人的姿態(tài)角也增大。在區(qū)間4內(nèi)機器人的姿態(tài)角與規(guī)劃路徑姿態(tài)角相等,Pure Pursuit路徑跟蹤算法給出的機器人旋轉角速度等于0,線速度仍保持不變,機器人沿著規(guī)劃路徑移動。同理在區(qū)間5內(nèi)也發(fā)生了規(guī)劃路徑姿態(tài)角的改變,同時Pure Pursuit路徑跟蹤算法也給出了機器人不同的旋轉角速度,使機器人的姿態(tài)角最終與規(guī)劃路徑的姿態(tài)角相等。在區(qū)間6內(nèi)機器人到達規(guī)劃路徑的最終點,此時線速度和角速度都為0,機器人的最終的姿態(tài)角仍和規(guī)劃路徑姿態(tài)角相等。
圖15 Pure Pursuit算法跟蹤路徑過程分析Fig.15 Pure Pursuit Algorithm tracking path process analysis
機器人避障是指機器人在進行路徑跟蹤時,如果激光雷達檢測到機器人前方存在障礙物,就運行避障算法控制機器人繞開該障礙物,然后繼續(xù)跟蹤原始路徑。本節(jié)通過Pure Pursuit路徑跟蹤算法跟蹤路徑2和路徑3,并在路徑2上設置一個障礙物用來進行避障算法的仿真,仿真結果如圖16所示。
圖16 避障算法仿真結果Fig.16 Simulation results of obstacle avoidance algorithm
圖17為機器人在避障過程中各個時刻的機器人的姿態(tài)角、機器人前方、右方和左方距障礙物距離的變化,設置距離閾值為0.1 m,打開激光雷達傳感器,通過分析激光雷達傳感器的數(shù)據(jù)可得到機器各個方位距障礙物的距離,當該距離大于距離閾值時,機器人處于路徑跟蹤階段,此時路徑跟蹤算法控制機器人沿原始路徑移動,當機器人前方或左方距障礙物的距離小于距離閾值時,機器人處于避障階段,開始執(zhí)行避障算法并停止執(zhí)行路徑跟蹤算法,由于機器人右方距障礙物的距離明顯大于前方和左方,機器人右轉(順時針旋轉),機器人的姿態(tài)角減小了,機器人前進一段距離后左轉,檢測到機器人各個方位距障礙物的距離已經(jīng)大于距離閾值,說明機器人已經(jīng)繞過障礙物,機器人回到路徑跟蹤階段,停止避障算法并繼續(xù)執(zhí)行路徑跟蹤算法。
圖17 避障算法過程分析Fig.17 Process analysis of avoidance algorithm
對巡檢機器人導航至某一坐標點時機器人的實際位姿與測量位姿間的誤差進行分析,將MATLAB軟件通過無線串口與巡檢機器人聯(lián)機,在MATLAB中首先運行PRM算法規(guī)劃出一條經(jīng)過點1~點6的全局路徑,然后運行Pure Pursuit路徑跟蹤算法,控制真實的巡檢機器人在水泵房環(huán)境中按照PRM算法規(guī)劃的路徑運動依次經(jīng)過點1~點6,并避開路徑跟蹤過程中出現(xiàn)的障礙物,如圖18所示,紅色箭頭為巡檢機器人進行路徑跟蹤時的運動方向。
圖18 機器人路徑跟蹤運動方向Fig.18 Robot path tracking motion direction
測量機器人運動到在每個坐標點處的位姿,測量結果見表1和表2。
在實際導航中,巡檢機器人始終沿著規(guī)劃的路徑行走,根據(jù)表1和表2的測量數(shù)據(jù)通過式(12)和式(13)計算得到巡檢機器人在導航過程中各坐標點的位置誤差和角度誤差,見表3。
表1 各個坐標點的實際位置與測量位置Table 1 Actual position and measurement position of each coordinate point m
表2 各個坐標點的實際偏轉角與測量偏轉角 Table 2 Actual deflection angle of each coordinate point and measured deflection angle rad
(12)
(13)
由表3可得該巡檢機器人在導航過程中位置平均誤差為4 cm,姿態(tài)角度平均誤差為0.095 rad,在機器人即將離開巡檢點并移動到下個巡檢點的時候,有時位置誤差超過 4 cm 且角度誤差大于0.1 rad,這是由于移動機器人在加速或減速過程中自重引起的慣性頓挫所造成,在所有的測試中,巡檢移動機器人都沒有碰到規(guī)劃路徑上的障礙物。結果表明,該巡檢機器人能夠水泵房中進行巡檢工作且滿足實際工況需求。
表3 各個坐標點的位置誤差和姿態(tài)角度誤差Table 3 Position error and angle error of each coordinate point
1)通過人工測量的方法在MATLAB中建立了水泵房二維柵格地圖,并在此地圖上根據(jù)巡檢過程中設置的檢測點和行進點利用PRM路徑規(guī)劃算法獲得一條經(jīng)過所有排水設備的全局路徑。
2)巡檢機器人通過Pure Pursuit路徑跟蹤算法使其能夠沿著規(guī)劃的全局路徑移動,通過避障算法使其能夠及時避開周圍的障礙物,最終保證了機器人能夠安全平穩(wěn)地到達巡檢點。
3)將巡檢機器人置于水泵房模擬環(huán)境中,對其路徑跟蹤和避障的能力進行多次試驗,最終結果表明:巡檢機器人在進行路徑跟蹤時沒有偏離規(guī)劃的路徑,到達巡檢點后其位置的平均誤差為4 cm,姿態(tài)角度的平均誤差為0.095 rad。