王 巖,李春書,張福龍
(河北工業(yè)大學機械工程學院,天津 300401)
隨著機器人技術(shù)的發(fā)展,對于一些高危、高空、有毒等工作環(huán)境比較惡劣或人工勞動強度比較大的場合,國內(nèi)外研究者們開發(fā)了特種機器人系統(tǒng)去完成指定的作業(yè)任務。爬壁機器人在某些大型立面裝置的檢測、維修工作中得到了應用,如高層外墻、鍋爐爐膛、船體壁面、石化儲罐等裝置的維護工作[1]。爬壁機器人在某些作業(yè)任務中需要遍歷其工作區(qū)域,為了提高機器人的作業(yè)效率,全遍歷路徑規(guī)劃需要考慮路徑的覆蓋率、重復率和遍歷路徑長度。
目前,國內(nèi)外學者針對移動機器人全遍歷路徑規(guī)劃的研究已有大量的研究成果[2-4],爬壁機器人在大型立面工作環(huán)境下采用的全遍歷路徑規(guī)劃算法主要有生物激勵神經(jīng)網(wǎng)絡算法、牛耕覆蓋算法、內(nèi)螺旋式遍歷算法等[5-9]。陳克[10]針對橋梁檢測爬壁機器人區(qū)域覆蓋問題提出了一種改進生物激勵神經(jīng)網(wǎng)絡全遍歷算法,該算法結(jié)合了爬壁機器人能耗模型,實現(xiàn)了區(qū)域覆蓋,但尚未考慮機器人陷入死區(qū)的情況。唐東林等[11]針對儲罐檢測爬壁機器人提出一種基于滾動窗口的優(yōu)先級啟發(fā)式路徑規(guī)劃算法,利用滾動窗口實現(xiàn)區(qū)域遍歷,并且解決了機器人陷入死區(qū)的問題,但存在遍歷路徑過長和機器人轉(zhuǎn)彎次數(shù)過多等問題。史國軍[12]針對儲油罐壁面爬壁機器人的漏磁探傷全遍歷問題,提出了基于改進遺傳算法與柵格法結(jié)合的完全遍歷路徑規(guī)劃,減少了路徑長度和運行時間,但該算法沒有考慮含有U型障礙物的復雜環(huán)境。
針對立面維護作業(yè)的爬壁機器人,本文基于縱向迂回往復運動遍歷方式,提出了優(yōu)先級策略和逃離死區(qū)策略,實現(xiàn)了機器人對工作區(qū)域的全覆蓋,并使其控制簡單,易于設(shè)計和實現(xiàn)。
設(shè)爬壁機器人工作環(huán)境信息已知。根據(jù)機器人作業(yè)任務,首先將工作區(qū)域劃分為若干個子區(qū)域,采用柵格法建立子區(qū)域柵格地圖。柵格的大小是綜合考慮機器人移動平臺結(jié)構(gòu)尺寸及其執(zhí)行構(gòu)件的運動特性來確定的,即機器人進入到某一柵格,可實現(xiàn)對此柵格的全覆蓋作業(yè)。每一個柵格代表地圖上的一個點。
設(shè)(xi,yi)表示第i個柵格的位置坐標,其中xi、yi分別表示柵格的橫、縱坐標;同時對每一個柵格屬性進行賦值,用“0、1、2”三種數(shù)值分別表示柵格的三種狀態(tài):障礙物柵格、未遍歷柵格和已遍歷柵格。通過對柵格屬性進行賦值可判斷機器人所處的環(huán)境狀態(tài);隨著機器人的運動,已遍歷柵格、未遍歷柵格的數(shù)量也在變化和更新。
由于實際障礙物的形狀通常與柵格形狀不一致,因此建立的柵格地圖中往往會存在一些無法與柵格單元邊界完全相互重合的不規(guī)則障礙物,在進行柵格地圖建模時就需要把這些障礙物做“膨脹”處理[13],變?yōu)橛幸?guī)則的柵格模型。如圖1所示,其中黑色區(qū)域表示障礙物,白色區(qū)域表示需要遍歷的區(qū)域。
圖1 柵格地圖環(huán)境建模
對于輪式永磁吸附爬壁機器人,其在立面裝置上豎直運動能耗小于水平運動[14],為了降低能耗選擇縱向迂回往復運動方式進行路徑遍歷。在子區(qū)域中,為便于爬壁機器人的摘卸,設(shè)機器人的起始位置為柵格地圖左下角,終點位置為柵格地圖右下角。
機器人從起初位置出發(fā),在縱向迂回往復式運動的基礎(chǔ)上,設(shè)定其沿不同方向移動的優(yōu)先級,將向左運動優(yōu)先級設(shè)為最高,向上、向下運動優(yōu)先級設(shè)為相同,向右運動優(yōu)先級設(shè)為最低。當機器人運動至某一柵格位置,若左側(cè)柵格為未遍歷柵格,根據(jù)運動的優(yōu)先級,機器人向左運動一個柵格;如果左側(cè)柵格為障礙物柵格或已遍歷柵格,再向上或向下方向檢測是否為未遍歷柵格,若不是未遍歷柵格,則向右方向檢測是否為未遍歷柵格;以此確定機器人上下左右運動。
如圖2所示為一子區(qū)域柵格地圖,機器人從起始點出發(fā),由于左側(cè)為邊界,根據(jù)縱向移動運動方式以及運動優(yōu)先級策略,機器人將首先向其上方向檢測,若為未遍歷柵格,機器人將向上運動;若該方向沒有障礙,則一直運動至邊界,然后,向右運動一個柵格,再向下運動;當下方柵格為障礙物,左側(cè)和向上的柵格為已遍歷柵格,機器人將檢測右邊柵格,若為未遍歷柵格,則向右運動一個柵格,再向下運動;依此類推。為使機器人的運動控制方便,其轉(zhuǎn)向運動軌跡選擇圓弧線。
圖2 縱向迂回遍歷方案圖3 U型障礙物開口向左
由于機器人向左運動設(shè)置為最高級別,從柵格地圖上看遍歷過程是從左向右沿著縱向迂回方式進行。當遇到類似U型障礙物開口向左時,會出現(xiàn)如圖3所示的情況,無法對其內(nèi)部遍歷。為解決此問題,在此情況下將上述的優(yōu)先策略切換為向右運動優(yōu)先級設(shè)為最高,向上、向下運動優(yōu)先級設(shè)為相同,向左運動優(yōu)先級設(shè)為最低。這樣,當機器人遍歷這個U型內(nèi)部區(qū)域后,再將優(yōu)先策略切換回來。這也稱為切換命令。切換命令將使機器人順利遍歷這種狀態(tài)下的U型區(qū)域,如圖4所示。其它狀態(tài)下U型區(qū)域的遍歷不需要執(zhí)行切換命令,如圖5所示。
當機器人運動到某一柵格位置,若其上下左右的柵格均為障礙物柵格或者已遍歷柵格,且地圖中仍存在未遍歷柵格時,機器人即陷入死區(qū)位置。此時,為了提高遍歷效率,機器人需快速尋找到一條盡可能短的路徑來逃離死區(qū)。
針對此問題,本文提出了一種逃離死區(qū)策略。首先需要搜索一個預期目標點,然后,利用改進的灰狼路徑規(guī)劃算法計算出機器人移動至此目標點的路徑,當機器人按照改進的灰狼路徑規(guī)劃算法計算出的路徑移動至預期目標點時,則機器人逃離死區(qū)。
3.2.1 搜索預期目標點
當機器人陷入死區(qū)時,在利用改進的灰狼路徑規(guī)劃算法逃離死區(qū)之前,需要確定一個預期目標點,作為機器人逃離死區(qū)路徑的終點。由于此目標點的選取影響機器人遍歷重復率的高低,在充分考慮障礙物的基礎(chǔ)上,選取實際距離機器人最近的點作為預期目標點,從而降低遍歷重復率。
假設(shè)當機器人運行至P0(x0,y0)點時陷入死區(qū),設(shè)定待選柵格位置為Pi(xi,yi),(i=1,…,m)m為待選目標點的總數(shù)。
1)當機器人與待選目標點位置連線不經(jīng)過障礙物時,機器人與待選柵格之間的距離為di,如式(1)所示
(1)
2)當機器人與待選目標點位置連線經(jīng)過障礙物時,如圖6所示,A、B、C、D為障礙物的四個頂點,此時機器人與待選柵格之間的距離為di為:
圖6 存在障礙物時選取目標點
圖7 改進的灰狼算法流程圖
(2)
在求得所有待選點與機器人之間的距離di后,通過比較選取距離值最小的待選點為預期目標點。
3.2.2 改進的灰狼路徑規(guī)劃算法
當確定預期目標點后,機器人逃離死區(qū)的過程轉(zhuǎn)化為點對點路徑規(guī)劃問題。本文采用改進的灰狼路徑規(guī)劃算法能夠快速規(guī)劃出最優(yōu)逃離路徑,較好地解決了此問題。
灰狼群體包括α、β、δ、ω四個群體,其α狼是最高領(lǐng)導者,擁有最高支配權(quán),β和δ狼是支配權(quán)次之的兩個群體,它們協(xié)助α狼管理狼群,并在狩獵時做出決定,ω狼是普通狼群?;依堑尼鳙C過程描述如下:α狼帶領(lǐng)整個群體搜索、跟蹤、接近目標,β和δ狼在α狼的帶領(lǐng)下圍攻獵物,并帶領(lǐng)ω狼狩獵目標,直到狩獵成功為止。傳統(tǒng)的灰狼算法通過模擬整個灰狼群體的狩獵過程來實現(xiàn)目標的優(yōu)化[16]。
灰狼確定目標位置后,包圍目標的數(shù)學描述如下
(3)
(4)
(5)
(6)
灰狼的狩獵行為數(shù)學描述如下
(7)
(8)
(9)
式(8)中分別定義了狼群中ω狼朝向α、β、δ狼方向前進的距離,式(9)定義了最終ω狼的位置。
(10)
其中,ω1、ω2和ω3取0.3,ω4取0.1。改進的灰狼算法流程圖如下所示。
通過將改進的灰狼算法求解所得到的路徑節(jié)點進行相連來確定規(guī)劃的路徑,設(shè)定灰狼算法路徑規(guī)劃的解為φ={(x0,y0),(x1,y1),…,(xn,yn),(xn+1,yn+1)},(x0,y0)為起點,(xn+1,yn+1)為終點,剩余其它點表示算法所需規(guī)劃的坐標,n為改進灰狼算法求解得到的路徑節(jié)點個數(shù)。如圖8所示為利用改進的灰狼算法求解所得到的機器人路徑規(guī)劃。
圖8 改進的灰狼路徑規(guī)劃算法
如圖9所示為機器人縱向迂回往復式遍歷運動陷入死區(qū)位置及逃離死區(qū)位置的過程。在機器人逃離死區(qū)的過程中,只考慮障礙物柵格的影響,因此會增加遍歷重復率,預期目標點的設(shè)計即為提高機器人遍歷搜索的效率。
圖9 逃離死區(qū)的過程
根據(jù)上述的改進全遍歷路徑規(guī)劃方法,編制算法程序,其算法流程如圖10所示。
圖10 全遍歷路徑規(guī)劃算法流程圖
為了驗證本文提出算法的正確性,在相同的柵格地圖上分別對文獻[10]、文獻[11]和本文算法進行了仿真,如圖11所示。圖中紅色直線表示機器人遍歷路徑,藍色直線表示重復遍歷路徑。
圖11 不同算法仿真
通過圖11的仿真結(jié)果得到不同算法下機器人全遍歷的評價指標,如表1所示。通過分析可知,文獻[10]算法不能完成全遍歷工作,遍歷覆蓋率為98.91%;文獻[11]算法遍歷覆蓋率為100%,重復率為5.82%;本文提出的算法遍歷覆蓋率為100%,且重復率和機器人轉(zhuǎn)彎次數(shù)相對較低。
表1 不同算法全遍歷評價
為了驗證本文提出的算法在不同環(huán)境下的魯棒性和有效性,分別在不同環(huán)境的柵格地圖中進行仿真,遍歷路徑結(jié)果如圖12所示。表2所示為不同環(huán)境下機器人全遍歷的評價指標。
表2 本文算法全遍歷評價
圖12 不同地圖仿真結(jié)果
仿真結(jié)果顯示,當柵格地圖中障礙物越多、形狀越復雜,爬壁機器人的轉(zhuǎn)彎次數(shù)就越多,相應的重復率較高、路徑較長。本文所提出的改進全遍歷路徑規(guī)劃算法遍歷覆蓋率高。
本文提出了一種適用于立面維護作業(yè)的爬壁機器人全遍歷路徑規(guī)劃,其將縱向迂回往復式運動與優(yōu)先級策略相結(jié)合,在特定條件下啟動切換命令,可實現(xiàn)機器人在有障礙物的環(huán)境中順利遍歷;當機器人陷入死區(qū)位置時,提出的逃離死區(qū)策略解決了機器人陷入死區(qū)的問題。在環(huán)境地圖相同的條件下,將本文提出的全遍歷規(guī)劃方法與其它兩種方法進行對比,仿真結(jié)果顯示本文所提出的方法遍歷覆蓋率高、重復率較低。針對本文所提出的全遍歷規(guī)劃方法,在環(huán)境地圖中障礙物的類型與布局不同的條件下進行仿真,結(jié)果顯示其覆蓋率高、重復率較低,是一種可行有效的全遍歷路徑規(guī)劃。