高民東,張雅妮,朱凌云
(重慶理工大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院, 重慶 400054)
作為機(jī)器人的典型應(yīng)用,巡檢機(jī)器人得到了廣泛關(guān)注。任志斌等[1]嘗試在輸電線路中應(yīng)用巡檢機(jī)器人進(jìn)行越障控制。周立輝等[2]根據(jù)磁軌跡實(shí)現(xiàn)移動(dòng)機(jī)器人的巡檢應(yīng)用,并在該機(jī)器人上攜帶攝像機(jī)、紅外熱像儀等傳感器用于監(jiān)控?;诖跑壽E和輸電線路的機(jī)器人巡檢方案雖然穩(wěn)定性高,但是所設(shè)計(jì)的巡檢機(jī)器人缺乏靈活、機(jī)動(dòng)性,所使用的傳感器也極少用于機(jī)器人的定位與建圖以及路徑規(guī)劃中。唐恒博等[3]通過設(shè)計(jì)一種里程計(jì)與定位針路標(biāo)融合的方法來提高巡檢機(jī)器人的定位精度。Zhu等[4]針對(duì)目前巡檢機(jī)器人使用的磁導(dǎo)航和RFID停車系統(tǒng)的不足,設(shè)計(jì)了激光導(dǎo)航系統(tǒng),并完成了定位與建圖的實(shí)驗(yàn),使得機(jī)器人的自主性大大增強(qiáng)。但巡檢機(jī)器人應(yīng)用于室內(nèi)的研究鮮有提到。因?yàn)槭覂?nèi)機(jī)器人不可采用GPS進(jìn)行定位導(dǎo)航,故室內(nèi)機(jī)器人大多以磁導(dǎo)航為主進(jìn)行室內(nèi)巡檢,該方案缺乏靈活性,機(jī)器人無法自主規(guī)劃路徑,且只能感知部分室內(nèi)環(huán)境。
通過融合同時(shí)定位與建圖技術(shù)可以使機(jī)器人完整、有效地感知周圍環(huán)境。定位與建圖技術(shù)(SLAM)的基本思想是通過機(jī)器人傳感器獲取的點(diǎn)云數(shù)據(jù)或是深度數(shù)據(jù),在其移動(dòng)過程中建立出該環(huán)境地圖模型[5]。如今已經(jīng)提出了很多算法,如卡爾曼濾波、擴(kuò)展卡爾曼濾波、無跡卡爾曼濾波、粒子濾波、FastSlam、Gmapping等[6],最近也出現(xiàn)了使用隨機(jī)有限集來進(jìn)行SLAM的思路[7]。
路徑規(guī)劃也是機(jī)器人研究的一個(gè)重要領(lǐng)域。路徑規(guī)劃的主要任務(wù)是使輪式機(jī)器人能夠安全避開各種環(huán)境中的移動(dòng)、靜止障礙物,并以最短且最優(yōu)的路徑到達(dá)所指定的終點(diǎn),該技術(shù)可以有效提高巡檢機(jī)器人的靈活性[8-10]。Akshay Kumar Guruji等[11]根據(jù)A*的特點(diǎn)改進(jìn)并發(fā)明了時(shí)效A*算法,提高了算法效率。隨著深度學(xué)習(xí)領(lǐng)域研究日趨豐富,學(xué)者也嘗試將卷積神經(jīng)網(wǎng)絡(luò)用于路徑規(guī)劃研究當(dāng)中[12]。
通過對(duì)機(jī)器人仿真技術(shù)的研究可大大降低研發(fā)成本,常用的仿真軟件有MRDS、Player和CARMEN等[13],還有與各種軟件仿真平臺(tái)兼容的機(jī)器人仿真環(huán)境USARsim。本文提出基于ROS設(shè)計(jì)室內(nèi)機(jī)器人時(shí)使用同時(shí)定位與建圖、路徑規(guī)劃技術(shù)進(jìn)行巡檢應(yīng)用的方案,通過設(shè)計(jì)機(jī)器人模型,對(duì)巡檢過程中機(jī)器人建圖以及路徑規(guī)劃進(jìn)行了仿真平臺(tái)上的實(shí)驗(yàn)驗(yàn)證,并討論其在機(jī)器人巡檢應(yīng)用中的可行性。
機(jī)器人操作系統(tǒng)(ROS)是一款基于Linux系統(tǒng)的機(jī)器人軟件控制平臺(tái),其最初由斯坦福大學(xué)(Stanford Artificail Intelligence Laboratory)研發(fā)[14]。ROS不同于傳統(tǒng)的操作系統(tǒng),屬于建立在傳統(tǒng)操作系統(tǒng)上的次級(jí)操作系統(tǒng),并為其提供一個(gè)結(jié)構(gòu)化的通訊層。作為一個(gè)機(jī)器人操作平臺(tái),ROS通信主要具有以下特征:
1) 節(jié)點(diǎn)
節(jié)點(diǎn)即ROS執(zhí)行各種功能的程序進(jìn)程,進(jìn)程以節(jié)點(diǎn)的形式運(yùn)行,節(jié)點(diǎn)間的通訊通過消息的發(fā)布和訂閱實(shí)現(xiàn)。
2) 消息
消息即各節(jié)點(diǎn)之間通訊的內(nèi)容,目前ROS提供了400多種消息類型,包括傳感器數(shù)據(jù)類型、點(diǎn)云數(shù)據(jù)類型、地圖信息等。
3) 話題
話題是指特定消息的名稱,用于描述消息表達(dá)內(nèi)容。節(jié)點(diǎn)可以發(fā)布針對(duì)某個(gè)話題的數(shù)據(jù)消息,也可以關(guān)注訂閱某個(gè)話題的數(shù)據(jù)。
4) 服務(wù)
服務(wù)與話題的區(qū)別在于,話題可以由多個(gè)節(jié)點(diǎn)訂閱,但服務(wù)是一對(duì)一形式,即節(jié)點(diǎn)與節(jié)點(diǎn)之間建立服務(wù)后,其通訊模式一般是一個(gè)用于請(qǐng)求,一個(gè)用于回應(yīng)。
ROS具有諸多優(yōu)點(diǎn):ROS采用分布式處理來提供操作系統(tǒng)各層級(jí)的服務(wù),如硬件抽象、設(shè)備控制和消息管理等標(biāo)準(zhǔn)服務(wù);分布式節(jié)點(diǎn)設(shè)計(jì)有利于構(gòu)建巡檢機(jī)器人同時(shí)定位與建圖以及路徑規(guī)劃的功能節(jié)點(diǎn),并提供了統(tǒng)一的數(shù)據(jù)通信機(jī)制;ROS深度集成了OROCOS、Gazebo、Webots等軟件,兼容多種編程語言,如C/C++、Python、Java、LISP等,實(shí)現(xiàn)跨平臺(tái)跨語言的交互共享,使得基于ROS的機(jī)器人學(xué)的各項(xiàng)研究成果更易移植,從而加強(qiáng)了機(jī)器人在操作系統(tǒng)上的統(tǒng)一性。如今ROS也發(fā)展到了2.0版本,該版本采用DDS實(shí)現(xiàn)通訊機(jī)制的強(qiáng)實(shí)時(shí)性[15]。
為了能使室內(nèi)機(jī)器人能進(jìn)行路徑規(guī)劃以及樓道環(huán)境、室內(nèi)環(huán)境巡檢,首先根據(jù)URDF語言建立差分移動(dòng)輪式機(jī)器人模型。該模型具有兩個(gè)差分行動(dòng)輪以及一個(gè)萬向輪,并搭載一個(gè)Hokuyo激光掃描儀,通過激光掃描儀的二維點(diǎn)云數(shù)據(jù)并結(jié)合gmapping算法可以建立路徑規(guī)劃所需要的地圖。
然后對(duì)實(shí)驗(yàn)地圖進(jìn)行建模。本實(shí)驗(yàn)主要通過gazebo軟件建立實(shí)驗(yàn)地圖,分別為某大學(xué)實(shí)驗(yàn)室室內(nèi)地圖環(huán)境和某大學(xué)某樓層地圖環(huán)境。實(shí)驗(yàn)室地圖長(zhǎng)7 m,寬5 m,主要包含電腦桌、書桌等障礙物,如圖1(a)所示。樓層地圖中樓道寬3 m,次級(jí)樓道寬2 m,每個(gè)房間長(zhǎng)7 m,寬5 m,如圖1(b)所示。
最后,編譯構(gòu)建ROS系統(tǒng)下的機(jī)器人模型結(jié)點(diǎn)、地圖環(huán)境解析結(jié)點(diǎn),以及建圖所需的gmapping算法結(jié)點(diǎn)、路徑規(guī)劃核心結(jié)點(diǎn)move_base和各結(jié)點(diǎn)之間的通訊結(jié)點(diǎn)。最終,基于ROS構(gòu)建的巡檢機(jī)器人建圖與路徑規(guī)劃系統(tǒng)結(jié)點(diǎn)圖如圖2所示,其中圓形框代表構(gòu)建的結(jié)點(diǎn)類型,方形框?yàn)榻Y(jié)點(diǎn)訂閱和發(fā)布的話題類型。
圖1 實(shí)驗(yàn)環(huán)境地圖
圖2 建圖與路徑規(guī)劃結(jié)點(diǎn)圖
將以上方案設(shè)計(jì)應(yīng)用于機(jī)器人室內(nèi)巡檢中,并對(duì)建圖、路徑規(guī)劃實(shí)驗(yàn)過程進(jìn)行研究與分析。
本節(jié)主要對(duì)應(yīng)用于機(jī)器人室內(nèi)巡檢中相關(guān)算法進(jìn)行選擇與分析。首先,采用gmapping實(shí)時(shí)建圖算法實(shí)現(xiàn)機(jī)器人巡檢過程中的地圖功能建立,然后以算法效率和路徑長(zhǎng)度為指標(biāo)對(duì)RRT、GA和Astar三種路徑規(guī)劃算法進(jìn)行對(duì)比分析并進(jìn)行選擇。
室內(nèi)機(jī)器人在其巡檢過程中,首先要對(duì)未知環(huán)境進(jìn)行地圖構(gòu)建,從而根據(jù)建立的地圖以及給定的目標(biāo)點(diǎn),規(guī)劃出一條有效的巡檢路徑。本文采用gmapping算法來解決室內(nèi)地圖建立的問題,其主要思想是通過機(jī)器人觀測(cè)信息z1:t=z1,z2,z3,…,zt和里程計(jì)數(shù)據(jù)u1:t=u1,u2,u3,…,ut,同時(shí)需要找到機(jī)器人的位姿x1:t=x1,x2,x3,…,xt,并估計(jì)周圍地圖環(huán)境mt的后驗(yàn)概率。其中,機(jī)器人的位姿與地圖的聯(lián)合概率分布為p(x1:t,mt|z1:t,u1:t-1),通過對(duì)貝葉斯?fàn)顟B(tài)濾波器空間進(jìn)行分解可得:
p(x1:t,mt|z1:t,u1:t-1)=p(mt|x1:t,z1:t)p(x1:t|z1:t,u1:t-1)
(1)
式(1)中:p(mt|x1:t,z1:t)為地圖mt的后驗(yàn)概率,通過機(jī)器人的位姿x1:t=x1,x2,x3,…,xt和傳感器的觀測(cè)信息z1:t=z1,z2,z3,…,zt可以求解得出;p(x1:t|z1:t,u1:t-1)為該機(jī)器人位姿信息x1:t=x1,x2,x3,…,xt的后驗(yàn)概率,通過已知傳感器觀測(cè)信息z1:t=z1,z2,z3,…,zt和已發(fā)布里程計(jì)信息u1:t=u1,u2,u3,…,ut求解。故Rao-Blackwellized Particle Filter(RBPF)可分為兩個(gè)關(guān)鍵步驟:① 通過里程計(jì)信息和傳感器觀測(cè)信息求出機(jī)器人軌跡;② 通過已知的機(jī)器人軌跡和傳感器信息求出周圍地圖數(shù)據(jù)[16]。
通過粒子濾波器估算所有潛在路徑的后驗(yàn)概率p(x1:t|z1:t,u1:t-1),其中每個(gè)粒子代表機(jī)器人的一條潛在軌跡,隨著粒子不斷的迭代,低權(quán)重的粒子會(huì)被舍棄掉,而高權(quán)重的粒子會(huì)保留下來。在重采樣過程中,通過設(shè)定自適應(yīng)閾值Neff來表現(xiàn)粒子集與機(jī)器人軌跡的契合程度。
式(2)中φ(i)為粒子的歸一化權(quán)重,當(dāng)Neff小于粒子總數(shù)的一半時(shí)就會(huì)進(jìn)行重采樣的步驟,以保證所有粒子都具有相同的權(quán)重。最后,通過機(jī)器人位姿以及傳感器觀測(cè)信息來計(jì)算相應(yīng)的p(mt|x1:t,z1:t),從而實(shí)現(xiàn)地圖更新。
路徑規(guī)劃在機(jī)器人巡檢過程中同樣重要。機(jī)器人巡檢要求在較短的時(shí)間內(nèi)規(guī)劃出最優(yōu)路徑,也要盡量多地對(duì)路徑周圍環(huán)境進(jìn)行巡邏。本文針對(duì)以上要求對(duì)基于啟發(fā)式函數(shù)的A-star算法、基于樹結(jié)構(gòu)的RRT算法以及智能仿生遺傳算法GA進(jìn)行對(duì)比研究。首先,建立室內(nèi)地圖環(huán)境,指定機(jī)器人起始點(diǎn)為(25,25),其巡檢終點(diǎn)為(300,400),以上算法規(guī)劃路徑長(zhǎng)度以及算法運(yùn)行時(shí)間如表1所示,算法實(shí)驗(yàn)結(jié)果如圖3所示。
圖3 路徑規(guī)劃實(shí)驗(yàn)結(jié)果
圖3中可以看出:3種算法規(guī)劃的路徑均達(dá)到避開障礙物并移動(dòng)到目標(biāo)點(diǎn)的要求。其中:圖3(a)顯示的RRT算法規(guī)劃路徑轉(zhuǎn)折點(diǎn)較多,其路徑長(zhǎng)度較長(zhǎng);圖3(b)顯示的GA算法規(guī)劃路徑雖然為平滑路徑,但其路徑長(zhǎng)度過長(zhǎng),并沒有達(dá)到最優(yōu)路徑的要求;圖3(c)顯示的A-star算法規(guī)劃路徑轉(zhuǎn)折點(diǎn)較少,且路徑長(zhǎng)度最短。
表1 算法效率與規(guī)劃路徑長(zhǎng)度
從表1中可以看出:在3個(gè)路徑算法的規(guī)劃路徑長(zhǎng)度中,A-star算法的路徑長(zhǎng)度最短,GA算法規(guī)劃路徑最長(zhǎng),而RRT算法路徑規(guī)劃時(shí)間最短,A-star算法次之。
雖然RRT算法時(shí)間較A-star算法短,但考慮到機(jī)器人在巡檢過程中,要求路徑轉(zhuǎn)折點(diǎn)較少以及以較短的路徑到達(dá)目標(biāo)點(diǎn),且A-star算法規(guī)劃路徑所花時(shí)間在機(jī)器人可控范圍內(nèi),故綜合考慮以A-star算法為室內(nèi)機(jī)器人巡檢的路徑規(guī)劃算法。
本實(shí)驗(yàn)基于gazebo搭建的地圖環(huán)境進(jìn)行建圖實(shí)驗(yàn),機(jī)器人初始起點(diǎn)為(25,25),通過自編寫的ROS鍵盤控制程序來對(duì)機(jī)器人進(jìn)行行動(dòng)控制。圖4(a)顯示了室內(nèi)建圖的過程,其中:上3圖為gazebo仿真環(huán)境建圖過程,室內(nèi)環(huán)境包括電腦桌、書桌、咖啡桌等障礙物模型;下3圖為Rviz中機(jī)器人建圖過程,主要顯示為代價(jià)地圖模式,紅色箭頭為機(jī)器人行駛的里程計(jì)數(shù)據(jù),機(jī)器人在行動(dòng)的過程中,白色為可通行區(qū)域,黑色為障礙物的膨脹半徑,障礙物的膨脹處理有利于機(jī)器人在行駛過程中避免碰撞。
圖4 室內(nèi)建圖實(shí)驗(yàn)仿真
圖4(b)顯示了機(jī)器人在樓道進(jìn)行建圖實(shí)驗(yàn)的過程,機(jī)器人初始起點(diǎn)為(10,10),因主要實(shí)驗(yàn)?zāi)康臑榻堑拉h(huán)境地圖,故樓道環(huán)境較室內(nèi)地圖環(huán)境簡(jiǎn)單。同圖4(a),上3圖為機(jī)器人在gazebo中的建圖過程,下3圖為機(jī)器人在gazebo中的地圖建立過程,主要顯示為代價(jià)地圖。同理,紅色箭頭為機(jī)器人行駛的里程計(jì)數(shù)據(jù),白色為可通行區(qū)域,灰色區(qū)域?yàn)閲鷫ε蛎洶霃?,紅色線部分為激光掃描儀所掃描的障礙物形狀。通過建圖算法最終轉(zhuǎn)化為樓道地圖模型。
通過ROS鍵盤控制程序?qū)堑拉h(huán)境、室內(nèi)環(huán)境進(jìn)行掃描建圖,最終得到如圖5所示的建圖結(jié)果。
圖5 建圖仿真實(shí)驗(yàn)結(jié)果
由實(shí)驗(yàn)結(jié)果可以看出,基于ROS下的gmapping算法建圖效果較為完整和清晰。因?yàn)樵趯?duì)機(jī)器人建模過程中擬定的機(jī)器人三維幾何高度較低,故在圖4(a)所示的室內(nèi)環(huán)境中激光掃描儀只記錄了辦公桌、咖啡桌等障礙物的桌腿部分,但其建圖結(jié)果仍是有效的。在圖5(b)所示樓道環(huán)境結(jié)果中,原樓道環(huán)境中每間實(shí)驗(yàn)室物理尺寸一樣,在建圖結(jié)果中通過數(shù)據(jù)拼接、特征匹配和回環(huán)檢測(cè),完整地建立了樓道地圖以及該樓層每個(gè)實(shí)驗(yàn)室的地圖環(huán)境。
綜上所述,基于ROS的室內(nèi)機(jī)器人在其人為控制下,通過收集二維點(diǎn)云數(shù)據(jù),完整、有效地建立了巡檢所需要的樓道、室內(nèi)地圖環(huán)境。
針對(duì)所建立的實(shí)驗(yàn)地圖環(huán)境,將自建機(jī)器人放入室內(nèi)環(huán)境進(jìn)行路徑規(guī)劃仿真實(shí)驗(yàn),樓道環(huán)境路徑規(guī)劃原理與室內(nèi)環(huán)境相同,故不重復(fù)進(jìn)行實(shí)驗(yàn)。路徑規(guī)劃技術(shù)的運(yùn)用也使得巡檢機(jī)器人更加自主和智能并達(dá)到巡檢的目的。
圖6顯示了機(jī)器人在室內(nèi)環(huán)境中進(jìn)行路徑規(guī)劃實(shí)驗(yàn)并完成巡檢的過程,整個(gè)地圖顯示為代價(jià)地圖形式,黑色為障礙物區(qū)域,白色代表機(jī)器人可通行區(qū)域。機(jī)器人起始位置為(25,25),其巡檢終點(diǎn)為(300,400),圖中終點(diǎn)處紅色箭頭代表其終點(diǎn)位置以及機(jī)器人到達(dá)終點(diǎn)后的終點(diǎn)狀態(tài),跟隨機(jī)器人的紅色箭頭為機(jī)器人里程計(jì)數(shù)據(jù),綠色線為已規(guī)劃的路徑,機(jī)器人將沿著綠色規(guī)劃路徑行駛,并到達(dá)最終點(diǎn)。
圖6 路徑規(guī)劃實(shí)驗(yàn)仿真
圖7顯示了機(jī)器人在路徑規(guī)劃過程中的線速度和角速度。其中:紅色為線速度;藍(lán)色為角速度。通過分析線速度和角速度可以輕易得出機(jī)器人在行駛過程中有無碰撞,以及行駛狀態(tài)是否正常。
機(jī)器人從起始點(diǎn)開始規(guī)劃終點(diǎn)路徑時(shí),首先角速度會(huì)非線性增加,調(diào)整位姿,其線速度也會(huì)勻速增加并開始沿著規(guī)劃路徑行駛。在行駛過程中,其角速度、線速度基本趨于穩(wěn)定,但機(jī)器人需要不斷調(diào)整位姿使得自身不會(huì)偏離已規(guī)劃的路徑,故從圖7中可以看出角速度在確定方向后,會(huì)在一個(gè)穩(wěn)定的范圍內(nèi)不斷變化,其線速度也會(huì)在調(diào)整角度的過程中短暫減少。當(dāng)機(jī)器人到達(dá)終點(diǎn)后,機(jī)器人線速度會(huì)急劇減小至0,角速度也會(huì)隨著規(guī)定方向迅速調(diào)整,至此路徑規(guī)劃實(shí)驗(yàn)完成。
圖7 線速度及角速度實(shí)驗(yàn)結(jié)果
圖6顯示機(jī)器人成功根據(jù)自建地圖進(jìn)行路徑規(guī)劃,成功達(dá)到目標(biāo)點(diǎn);圖7顯示機(jī)器人線速度、角速度無異常突變情況,故在路徑規(guī)劃過程中沒有碰撞情況發(fā)生。綜上所述,上述實(shí)驗(yàn)完整、有效地實(shí)現(xiàn)了整個(gè)巡檢過程。
本文針對(duì)路徑規(guī)劃、機(jī)器人巡檢、同時(shí)定位與建圖幾大熱點(diǎn)問題,提出將基于ROS結(jié)合同時(shí)定位與建圖和路徑規(guī)劃應(yīng)用于室內(nèi)機(jī)器人巡檢的新思路,并進(jìn)行機(jī)器人室內(nèi)巡檢實(shí)驗(yàn)仿真,結(jié)果表明:
1) 基于ROS的機(jī)器人巡檢系統(tǒng)具有分布式處理的優(yōu)勢(shì),其開源、基于Linux等特點(diǎn)也為后期SLAM、PathPlanning算法的開發(fā)以及系統(tǒng)移植提供了便利。
2) 基于ROS的機(jī)器人巡檢系統(tǒng)所建立的室內(nèi)環(huán)境、樓道環(huán)境地圖清晰,誤差在可控范圍以內(nèi),基于gmapping算法建圖結(jié)果有效、合理。
3) 基于ROS的機(jī)器人巡檢系統(tǒng)成功在其建立的地圖上完成了路徑規(guī)劃實(shí)驗(yàn),規(guī)劃出一條轉(zhuǎn)折點(diǎn)較少、路徑較短的無碰撞路徑,可靠性較高,并可應(yīng)用于室內(nèi)機(jī)器人巡檢。
下一步工作會(huì)基于ROS對(duì)機(jī)器人SLAM算法、PathPlanning算法進(jìn)行研究與改進(jìn),并將所建立的機(jī)器人及其控制系統(tǒng)的部分結(jié)點(diǎn)移植到實(shí)物機(jī)器人中,驗(yàn)證其改進(jìn)算法的有效性。
重慶理工大學(xué)學(xué)報(bào)(自然科學(xué))2018年7期