彭繼國(guó), 張波, 孫凌飛, 鄧攀
(1.兗礦集團(tuán)有限公司 信息化中心, 山東 鄒城 273500;2.北斗天地股份有限公司 山東分公司, 山東 鄒城 273500)
我國(guó)礦產(chǎn)資源豐富,但是礦井地質(zhì)結(jié)構(gòu)復(fù)雜[1]。在井下惡劣環(huán)境下,利用機(jī)器人代替人員進(jìn)行智能環(huán)境安全檢測(cè)預(yù)警、智能開(kāi)采檢測(cè)、礦難救災(zāi)及智能巡檢等,可最大程度實(shí)現(xiàn)煤礦井下無(wú)人化作業(yè),大幅提升煤炭生產(chǎn)的安全性[2-3]。煤礦井下環(huán)境大多是非結(jié)構(gòu)的,具有復(fù)雜性、多樣性和隨機(jī)性等特征,井下移動(dòng)機(jī)器人只有具備較高的環(huán)境辨識(shí)、路徑規(guī)劃和避障能力,才能準(zhǔn)確完成預(yù)期任務(wù)[4-5]。當(dāng)井下移動(dòng)機(jī)器人面對(duì)完全未知或者部分未知的環(huán)境時(shí),避障、越障是其要完成的首要工作。
目前大多井下移動(dòng)機(jī)器人不具備自主控制及智能避障功能,遇到較為復(fù)雜的井下環(huán)境時(shí)需依靠操作人員的經(jīng)驗(yàn)進(jìn)行判斷,智能性和移動(dòng)性較差[6-8],因此,研究具有智能避障功能的井下移動(dòng)機(jī)器人具有重要意義。眾多學(xué)者對(duì)井下移動(dòng)機(jī)器人的避障功能進(jìn)行了研究。賈瑞清等[9]以礦井移動(dòng)機(jī)器人為實(shí)驗(yàn)平臺(tái),根據(jù)超聲測(cè)距原理,利用超聲波傳感器探測(cè)障礙物信息,并對(duì)所測(cè)得的障礙物信息進(jìn)行處理,最終實(shí)現(xiàn)移動(dòng)機(jī)器人的實(shí)時(shí)自主避障。許心德等[10]提出了利用路徑跟蹤和VFH*相結(jié)合的方法來(lái)解決機(jī)器人沿預(yù)定路徑前進(jìn)中的避障問(wèn)題。但超聲波傳感器在障礙物檢測(cè)方面存在一定的誤差,而且檢測(cè)范圍較小。劉歡等[11]提出了基于Q學(xué)習(xí)避障算法的移動(dòng)機(jī)器人避障方法,模擬移動(dòng)機(jī)器人在未知環(huán)境下自主、安全地從起始點(diǎn)到達(dá)目標(biāo)點(diǎn)的過(guò)程,但是Q學(xué)習(xí)算法用于非線性的障礙物時(shí)不能準(zhǔn)確進(jìn)行避障控制。周愷[12]提出了一種基于信息素模糊邏輯導(dǎo)引的機(jī)器人室內(nèi)避障算法,把機(jī)器人的運(yùn)動(dòng)軌跡描述為一個(gè)種群覓食問(wèn)題,以種群覓食中釋放的信息素作為避障導(dǎo)引,求出機(jī)器人運(yùn)動(dòng)參數(shù)和環(huán)境參數(shù),構(gòu)建機(jī)器人行為運(yùn)動(dòng)方程,根據(jù)環(huán)境播撒信息素,以此驅(qū)動(dòng)機(jī)器人運(yùn)動(dòng),實(shí)現(xiàn)避障算法改進(jìn),但在障礙區(qū)分布不規(guī)則的情況下,該方法避障性能不好。徐斌等[13]提出了一種基于背景幀差法獲取環(huán)境障礙物位置信息的方法,利用獲取的障礙物信息對(duì)運(yùn)動(dòng)空間進(jìn)行離散建模,控制機(jī)器人進(jìn)行避障操作,但利用單相機(jī)幀差法存在障礙物檢測(cè)不準(zhǔn)確的問(wèn)題。肖雪等[14]提出了一種基于光流的自主移動(dòng)機(jī)器人避障系統(tǒng),將機(jī)器人在運(yùn)動(dòng)過(guò)程中通過(guò)攝像頭拍攝的連續(xù)圖像序列作為輸入,使用金字塔 Lucas-Kanade 方法在角點(diǎn)處提取光流信息,求解延伸焦點(diǎn)和接近時(shí)間,并通過(guò)改進(jìn)的平衡策略估計(jì)障礙物可能存在的位置,但光流法對(duì)光環(huán)境要求比較嚴(yán)苛,同樣存在障礙物檢測(cè)不準(zhǔn)確等問(wèn)題。
針對(duì)上述方法存在的問(wèn)題,本文提出了一種基于模糊控制的井下移動(dòng)機(jī)器人智能視覺(jué)避障方法。構(gòu)建雙目立體視覺(jué)模組對(duì)井下環(huán)境進(jìn)行感知,利用占據(jù)柵格地圖對(duì)空間三維環(huán)境進(jìn)行結(jié)構(gòu)化描述,根據(jù)當(dāng)前區(qū)域障礙物相對(duì)移動(dòng)機(jī)器人的距離以及角度,通過(guò)模糊控制算法計(jì)算移動(dòng)機(jī)器人下一時(shí)刻的轉(zhuǎn)向角度和加速度,從而實(shí)現(xiàn)移動(dòng)機(jī)器人的智能避障控制。使用Matlab對(duì)所提出的方法進(jìn)行仿真實(shí)驗(yàn),結(jié)果表明:該方法能夠根據(jù)所設(shè)計(jì)的模糊控制規(guī)則準(zhǔn)確自主地進(jìn)行避障操作,并且對(duì)井下障礙物分布具有先驗(yàn)性,可對(duì)不同距離的障礙物分布情況進(jìn)行預(yù)警,從而實(shí)現(xiàn)井下移動(dòng)機(jī)器人的自適應(yīng)運(yùn)動(dòng)。
視覺(jué)傳感器是組成移動(dòng)機(jī)器人的重要模塊,用于模擬人類(lèi)的視覺(jué)感知功能,利用計(jì)算機(jī)及圖像采集設(shè)備對(duì)三維空間進(jìn)行非接觸式測(cè)量,利用圖形處理算法對(duì)客觀三維世界進(jìn)行感知和理解[15],提高移動(dòng)機(jī)器人的自主避障、導(dǎo)航及自適應(yīng)能力,實(shí)現(xiàn)智能避障。理想結(jié)構(gòu)下的雙目立體視覺(jué)模型如圖1所示,其中2個(gè)相機(jī)的光軸及對(duì)應(yīng)成像平面的坐標(biāo)軸是平行的,且成像平面處于同一平面。
在雙目立體視覺(jué)模型中,將左相機(jī)光心作為空間坐標(biāo)原點(diǎn),左右相機(jī)像面以左上角為原點(diǎn)建立圖像像素坐標(biāo)系(其中變量下標(biāo)l表示左側(cè)相機(jī),r表示右側(cè)相機(jī)),分別為ul-vl,ur-vr。物理坐標(biāo)系以左右像面的中心點(diǎn)為原點(diǎn):xl-yl,xr-yr;2個(gè)相機(jī)的光心點(diǎn)為Ol,Or;pl(ul0,vl0),pr(ur0,vr0)為光軸與像平面的交點(diǎn)。T為左右相機(jī)光心的距離,稱(chēng)為基線距。在建立的雙目立體視覺(jué)模型中,空間中任意一點(diǎn)P(X,Y,Z)的坐標(biāo)計(jì)算公式如下:
圖1 雙目立體視覺(jué)模型Fig.1 Binocular stereo vision model
(1)
式中f為相機(jī)焦距。
進(jìn)一步將物理坐標(biāo)轉(zhuǎn)換到像素坐標(biāo):
(2)
式中:u,v為圖像像素坐標(biāo)點(diǎn);u0,v0為圖像坐標(biāo)原點(diǎn);dx,dy為x,y方向的像元大小。
分別將左右兩側(cè)相機(jī)的像素坐標(biāo)代入式(1),計(jì)算可得
(3)
式中:fx,fy為相機(jī)在x方向和y方向上的焦距;d為視差,d=ul-ur。
本文利用張正友標(biāo)定法[16]進(jìn)行立體標(biāo)定,得到相機(jī)的內(nèi)外參數(shù)矩陣,主要有左右相機(jī)鏡頭的畸變參數(shù)和三維空間中2個(gè)相機(jī)之間的空間關(guān)系。使用區(qū)域匹配方法[17]對(duì)立體校正后的左右視圖進(jìn)行立體匹配,即確定左視圖中每個(gè)像素點(diǎn)對(duì)應(yīng)的右視圖中的像素點(diǎn),利用雙目立體視覺(jué)模型及相機(jī)標(biāo)定參數(shù)得到三維點(diǎn)云。
移動(dòng)機(jī)器人使用點(diǎn)云數(shù)據(jù)進(jìn)行避障導(dǎo)航需要大量的計(jì)算資源來(lái)實(shí)現(xiàn),而且點(diǎn)云數(shù)據(jù)量較大,空間點(diǎn)云避障較難達(dá)到實(shí)時(shí)性。因此,本文通過(guò)八叉樹(shù)結(jié)構(gòu)[18]構(gòu)建三維點(diǎn)云,使用樹(shù)狀結(jié)構(gòu)對(duì)點(diǎn)云數(shù)據(jù)進(jìn)行結(jié)構(gòu)化描述,生成占據(jù)柵格地圖[19]。
在三維空間中,利用八叉樹(shù)結(jié)構(gòu)來(lái)描述當(dāng)前時(shí)刻環(huán)境的三維點(diǎn)云,不僅可準(zhǔn)確描述井下復(fù)雜的三維環(huán)境,而且包含較多的空間結(jié)構(gòu)信息。采用占據(jù)柵格地圖對(duì)點(diǎn)云空間分布進(jìn)行映射,對(duì)當(dāng)前障礙物分布進(jìn)行結(jié)構(gòu)化描述,移動(dòng)機(jī)器人根據(jù)障礙物分布情況,結(jié)合避障策略進(jìn)行智能避障,避免與障礙物發(fā)生碰撞。
八叉樹(shù)結(jié)構(gòu)模型如圖2所示。新建八叉樹(shù)時(shí),首先要設(shè)置最大遞歸深度為當(dāng)前點(diǎn)云的分辨率,然后從中心節(jié)點(diǎn)出發(fā)向下擴(kuò)張,每次分為8個(gè)子節(jié)點(diǎn),直到擴(kuò)張到葉子節(jié)點(diǎn),即最大遞歸深度時(shí)不再向下擴(kuò)張分解。
圖2 八叉樹(shù)結(jié)構(gòu)模型Fig.2 Octree structure model
通過(guò)八叉樹(shù)結(jié)構(gòu)模型構(gòu)建三維點(diǎn)云并將其映射到占據(jù)柵格地圖,其中每個(gè)葉子節(jié)點(diǎn)表示占據(jù)柵格地圖中最小分辨率的立方體塊,用0~1之間的浮點(diǎn)數(shù)表示其被占據(jù)的概率,浮點(diǎn)數(shù)為0.5表示當(dāng)前立方體不確定,浮點(diǎn)數(shù)大于0.5表示占據(jù)概率較大,浮點(diǎn)數(shù)小于0.5表示占據(jù)概率較小。利用占據(jù)柵格地圖,根據(jù)不同的避障策略設(shè)計(jì)不同分辨率下的八叉樹(shù)結(jié)構(gòu),進(jìn)行復(fù)雜環(huán)境下的三維空間環(huán)境感知。
移動(dòng)機(jī)器人在煤礦井下作業(yè)時(shí),因井下環(huán)境過(guò)于復(fù)雜,難以構(gòu)建較為準(zhǔn)確的三維地圖模型,而且在礦難發(fā)生后,井下環(huán)境發(fā)生了巨大變化,難以使用前期構(gòu)建的環(huán)境模型來(lái)控制移動(dòng)機(jī)器人作業(yè)。模糊控制理論能夠模擬人類(lèi)解決問(wèn)題的思維方式,將不確定的變量信息轉(zhuǎn)換為經(jīng)驗(yàn)性的知識(shí)應(yīng)用到模糊控制算法中[20],使用不確定變量關(guān)系來(lái)描述事物之間的關(guān)系,用隸屬度函數(shù)表達(dá)不確定性大小。
模糊控制算法是基于規(guī)則的控制算法,其結(jié)構(gòu)如圖3所示,主要由輸入變量、模糊化、模糊決策、去模糊化和輸出變量部分構(gòu)成:① 將原始的采集數(shù)據(jù)作為輸入變量;② 對(duì)輸入變量進(jìn)行模糊化,使其具有不確定特征,構(gòu)建相應(yīng)隸屬度函數(shù)對(duì)輸入變量進(jìn)行控制;③ 根據(jù)模糊決策計(jì)算輸出量;④ 將模糊輸出量進(jìn)行去模糊化,得到清晰的輸出變量即控制量。利用模糊控制來(lái)描述井下復(fù)雜的障礙物分布情況,根據(jù)障礙物與井下移動(dòng)機(jī)器人之間的模糊距離關(guān)系,運(yùn)用模糊語(yǔ)言(如障礙物距離機(jī)器人遠(yuǎn)、近),并引入人類(lèi)駕駛技術(shù)先驗(yàn)知識(shí)來(lái)構(gòu)建井下移動(dòng)機(jī)器人的避障策略。
圖3 模糊控制算法結(jié)構(gòu)Fig.3 Fuzzy control algorithm structure
井下移動(dòng)機(jī)器人避障方法由障礙物檢測(cè)、障礙物分布情況和避障策略3個(gè)部分組成,如圖4所示。采用雙目立體視覺(jué)模組作為障礙物檢測(cè)傳感器,感知井下環(huán)境信息,實(shí)時(shí)檢測(cè)障礙物分布情況,并構(gòu)建占據(jù)柵格地圖。由于井下環(huán)境信息極為復(fù)雜,檢測(cè)到障礙物后,采用模糊控制策略對(duì)實(shí)時(shí)檢測(cè)到的障礙物在占據(jù)柵格地圖中的分布情況進(jìn)行處理,避免在障礙物檢測(cè)中因數(shù)據(jù)不準(zhǔn)確而導(dǎo)致井下移動(dòng)機(jī)器人不能及時(shí)做出避障決策控制。將當(dāng)前時(shí)刻障礙物在占據(jù)柵格地圖中的分布情況和井下移動(dòng)機(jī)器人運(yùn)行速度作為模糊控制器的輸入變量,通過(guò)模糊控制算法計(jì)算下一時(shí)刻機(jī)器人的轉(zhuǎn)向角度和加速度。井下移動(dòng)機(jī)器人模糊控制避障方法的模糊控制模型為
K=f(q)
(4)
式中:K={轉(zhuǎn)向角度,加速度};q={左側(cè)障礙物距離,左中側(cè)障礙物距離,右中側(cè)障礙物距離,右側(cè)障礙物距離,行駛速度}。
圖4 基于模糊控制算法的井下移動(dòng)機(jī)器人避障方法Fig.4 Obstacle avoidance method of underground mobile robot based on fuzzy control algorithm
為了構(gòu)建一個(gè)能夠穩(wěn)定運(yùn)行并且能連續(xù)檢測(cè)障礙物分布的控制策略,本文由雙目立體視覺(jué)模組對(duì)井下環(huán)境進(jìn)行實(shí)時(shí)感知,根據(jù)生成的三維點(diǎn)云構(gòu)建占據(jù)柵格地圖,將障礙物具體大小位置映射為二維占據(jù)柵格地圖,將占據(jù)柵格地圖以移動(dòng)機(jī)器人為中心分為左(L),左中(LM),右中(RM)和右(R)4個(gè)障礙物區(qū)域,障礙物區(qū)域分布情況如圖5所示,實(shí)時(shí)檢測(cè)各區(qū)域中距離移動(dòng)機(jī)器人最近的障礙物距離。
圖5 障礙物區(qū)域分布情況Fig.5 Distribution of obstacles area
為避免機(jī)器人發(fā)生碰撞,根據(jù)機(jī)器人實(shí)際占據(jù)空間,設(shè)計(jì)外接包圍盒進(jìn)一步穩(wěn)定模糊控制算法,避免碰撞等意外情況發(fā)生。利用Matlab設(shè)計(jì)模糊控制算法的仿真實(shí)驗(yàn),根據(jù)障礙物區(qū)域分布設(shè)置為5個(gè)部分,整體仿真設(shè)計(jì)如圖6所示。
圖6 模糊控制算法整體仿真設(shè)計(jì)Fig.6 Overall simulation design of fuzzy control algorithm
利用模糊控制語(yǔ)言LD,LMD,RMD,RD表示左、左中、右中、右4個(gè)區(qū)域中障礙物距離,對(duì)于模糊控制器輸入的距離信息{LD,LMD,RMD,RD},使用{F,M,N}3個(gè)模糊語(yǔ)言來(lái)表示遠(yuǎn)、中、近,根據(jù)井下環(huán)境及經(jīng)驗(yàn)設(shè)置障礙物距離探測(cè)的論域范圍為[0.5 m,5 m],若檢測(cè)距離大于5 m,則記為5 m,如圖7所示。對(duì)于速度V,使用{LE,F(xiàn)E,HE}分別表示慢速、中速、快速,其論域范圍為[0,3 m/s],如圖8所示。
圖7 距離輸入隸屬度函數(shù)Fig.7 Distance input membership function
模糊控制算法的輸出是下一時(shí)刻移動(dòng)機(jī)器人的轉(zhuǎn)向角度ω和加速度a,其中轉(zhuǎn)向角度用模糊語(yǔ)言{LW,LMW,W,RMW,RW}分別表示左轉(zhuǎn)、稍向左轉(zhuǎn)、直行、稍向右轉(zhuǎn)、右轉(zhuǎn),根據(jù)雙目視覺(jué)模組所設(shè)計(jì)的120°視場(chǎng)角,將其論域設(shè)為[-60°,60°],如圖9所示。加速度用模糊語(yǔ)言{L,LA,MA,HA,H}來(lái)表示減速、緩慢減速、不變、緩慢加速、加速,其論域的輸出范圍為[-2 m/s2,2 m/s2],如圖10所示。
圖8 速度輸入隸屬度函數(shù)Fig.8 Speed input membership function
圖9 轉(zhuǎn)向角度輸出隸屬度函數(shù)Fig.9 Steering angle output membership function
圖10 加速度輸出隸屬度函數(shù)Fig.10 Acceleration output membership function
根據(jù)井下障礙物的分布情況設(shè)計(jì)移動(dòng)機(jī)器人模糊控制避障需遵循以下原則:
(1) 當(dāng)前方4個(gè)區(qū)域中所有的障礙物距離較遠(yuǎn)時(shí),移動(dòng)機(jī)器人轉(zhuǎn)向角度保持不變,加速度根據(jù)當(dāng)前實(shí)際運(yùn)行速度進(jìn)行控制。
(2) 當(dāng)左側(cè)區(qū)域中障礙物距離較近時(shí),控制移動(dòng)機(jī)器人向右運(yùn)動(dòng),轉(zhuǎn)向角度根據(jù)右側(cè)障礙物的距離分布進(jìn)行控制,加速度減小,距離右側(cè)障礙物較近時(shí)同理。
(3) 當(dāng)前方左中側(cè)障礙物距離較近時(shí),控制移動(dòng)機(jī)器人向右運(yùn)動(dòng),加速度減小,距離右中側(cè)障礙物較近時(shí)同理。
根據(jù)模糊控制避障算法中輸入數(shù)據(jù)涉及的變量共得到3×3×3×3×3=243條模糊規(guī)則,其中,當(dāng)左側(cè)、左中及右中區(qū)域中障礙物距離較遠(yuǎn)時(shí),部分控制規(guī)則見(jiàn)表1。
模糊控制器根據(jù)模糊控制規(guī)則表的推理得到轉(zhuǎn)向角度和加速度模糊量數(shù)據(jù),為了精準(zhǔn)控制移動(dòng)機(jī)器人運(yùn)動(dòng),需進(jìn)行去模糊化。將移動(dòng)機(jī)器人轉(zhuǎn)向角度和加速度采用重心法去模糊化,得到準(zhǔn)確的移動(dòng)機(jī)器人控制數(shù)據(jù),控制移動(dòng)機(jī)器人進(jìn)行運(yùn)動(dòng)。去模糊化計(jì)算公式為
表1 模糊控制規(guī)則Table 1 Fuzzy control rules
(5)
式中:G為準(zhǔn)確的控制輸出數(shù)據(jù);Zi為論域上的元素;μZi為隸屬度。
使用Matlab仿真軟件中的模糊控制工具箱對(duì)本文設(shè)計(jì)的井下移動(dòng)機(jī)器人模糊控制器進(jìn)行仿真驗(yàn)證。將雙目視覺(jué)模組采集的當(dāng)前障礙物距離分布情況作為輸入信息,利用模糊控制器(式(5))計(jì)算出相應(yīng)的加速度和轉(zhuǎn)向角度。
根據(jù)模糊控制算法中的輸入和輸出變量,分別得到左中側(cè)、右中側(cè)障礙物分布對(duì)應(yīng)的轉(zhuǎn)向角度曲面和加速度曲面,如圖11、圖12所示。從圖11、圖12可看出,對(duì)應(yīng)各區(qū)域障礙物分布,轉(zhuǎn)向角度和加速度能夠較為平滑地進(jìn)行過(guò)渡,證明了該控制策略的穩(wěn)定性。
圖11 轉(zhuǎn)向角度模糊控制輸入輸出曲面Fig.11 Steering angle fuzzy control input and output surface
通過(guò)Matlab設(shè)計(jì)仿真實(shí)驗(yàn),隨機(jī)設(shè)置模擬障礙物分布情況。移動(dòng)機(jī)器人智能避障仿真實(shí)驗(yàn)如圖13所示,白色橢圓區(qū)域?yàn)檎系K物區(qū)域,灰色方格為移動(dòng)機(jī)器人沿途躲避隨機(jī)生成的障礙物而形成的運(yùn)動(dòng)軌跡。利用模糊控制規(guī)則實(shí)時(shí)將移動(dòng)機(jī)器人檢測(cè)到的障礙物信息(圖中白色區(qū)域)作為模糊控制的輸入,進(jìn)而得到移動(dòng)機(jī)器人的運(yùn)行速度和轉(zhuǎn)向角度,從而生成移動(dòng)機(jī)器人的行走路徑。
圖12 加速度模糊控制輸入輸出曲面Fig.12 Acceleration fuzzy control input and output surface
圖13 移動(dòng)機(jī)器人避障仿真實(shí)驗(yàn)Fig.13 Mobile robot obstacle avoidance simulation experiment
從圖13可看出,井下移動(dòng)機(jī)器人能夠根據(jù)模糊控制規(guī)則自主地避開(kāi)障礙物,實(shí)現(xiàn)智能避障控制,并對(duì)障礙物分布情況進(jìn)行預(yù)警。
(1) 構(gòu)建了一種井下移動(dòng)機(jī)器人智能視覺(jué)避障方法。采用雙目立體視覺(jué)模組對(duì)井下環(huán)境進(jìn)行感知,實(shí)時(shí)檢測(cè)障礙物分布情況,并將其映射到占據(jù)柵格地圖中;結(jié)合模糊控制策略設(shè)計(jì)避障算法,利用移動(dòng)機(jī)器人外接包圍盒簡(jiǎn)化模糊控制規(guī)則,提高算法的實(shí)時(shí)性,能夠較為準(zhǔn)確地控制移動(dòng)機(jī)器人運(yùn)動(dòng),并對(duì)行進(jìn)區(qū)域的障礙物分布情況進(jìn)行預(yù)警判斷,從而實(shí)現(xiàn)移動(dòng)機(jī)器人的智能避障和穩(wěn)定運(yùn)行。
(2) 隨著人工智能技術(shù)的不斷發(fā)展,多傳感器融合、路徑規(guī)劃、視覺(jué)導(dǎo)航等都是井下移動(dòng)機(jī)器人研究的熱點(diǎn)方向,下一步工作將利用多傳感器融合策略、結(jié)合機(jī)器視覺(jué)模組準(zhǔn)確感知井下環(huán)境信息,進(jìn)一步提高井下移動(dòng)機(jī)器人環(huán)境感知能力和智能避障越障能力。