蘆紅利, 閆 娟, 余星寶, 路玉鳳, 張雪濤, 張友朋
(上海工程技術(shù)大學(xué) 機(jī)械與汽車工程學(xué)院, 上海 201620)
隨著社會(huì)的不斷發(fā)展,爬壁機(jī)器人得到了飛速的發(fā)展[1-2],其可用于橋梁檢測(cè)、壁面清洗和船舶除銹等場(chǎng)合,代替了人在危險(xiǎn)環(huán)境下進(jìn)行作業(yè)。為保證機(jī)器人在復(fù)雜的壁面環(huán)境[3]能夠正常的工作,爬壁機(jī)器人需要對(duì)壁面存在的障礙物進(jìn)行及時(shí)躲避并繼續(xù)工作[4-6]。
爬壁機(jī)器人避障控制屬于局部避障控制[7],不同于全局避障控制[8]?,F(xiàn)有爬壁機(jī)器人進(jìn)行局部避障的方法主要有:人工勢(shì)場(chǎng)法[9],分別建立運(yùn)動(dòng)體和障礙物、目標(biāo)點(diǎn)的作用力,利用引力和斥力的不斷作用從而規(guī)避障礙物,到達(dá)目標(biāo)點(diǎn)。改進(jìn)可視圖法[10-11],利用傳感器建立目標(biāo)點(diǎn)和障礙物的連線,運(yùn)動(dòng)體和障礙物的連線,通過(guò)各組連線建立可視化的數(shù)學(xué)模型,機(jī)器人避開障礙物到達(dá)目標(biāo)點(diǎn)。模糊控制規(guī)避法[12-13],將模糊控制器的輸入設(shè)置為運(yùn)動(dòng)體和障礙物間的距離,從而計(jì)算出運(yùn)動(dòng)體的輸出速度和角速度,實(shí)現(xiàn)規(guī)避障礙物同時(shí)到達(dá)目標(biāo)點(diǎn)。
上述算法都能夠?qū)崿F(xiàn)機(jī)器人避障的目標(biāo),但由于爬壁機(jī)器人在運(yùn)動(dòng)時(shí)受到重力、壁面支撐力和吸附力的影響,同時(shí)也考慮到實(shí)際應(yīng)用中隸屬函數(shù)精度不高,不能很好完成實(shí)際工作的問題,課題組通過(guò)引入遺傳算法,對(duì)機(jī)器人的模糊控制隸屬函數(shù)和模糊控制規(guī)則進(jìn)行優(yōu)化。在MATALB軟件中進(jìn)行仿真,對(duì)遺傳算法和遺傳模糊控制算法進(jìn)行比較,為深入研究爬壁機(jī)器人路徑規(guī)劃和避障控制提供參考依據(jù)。
課題組對(duì)爬壁機(jī)器人進(jìn)行研究,探究其在壁面運(yùn)動(dòng)的避障問題,運(yùn)動(dòng)模型如圖1所示。
圖1 爬壁機(jī)器人運(yùn)動(dòng)模型Figure 1 Movement model of the wall-climbing robot
v為爬壁機(jī)器人的移動(dòng)速度,r為運(yùn)動(dòng)路徑,ω為自轉(zhuǎn)的角速度,φ為移動(dòng)角度偏差,O為運(yùn)動(dòng)的終點(diǎn)位置,M為起始位置。
爬壁機(jī)器人的角速度方程式和運(yùn)動(dòng)速度為:
(1)
式中:x和y為爬壁機(jī)器人在坐標(biāo)系中的位置。
爬壁機(jī)器人運(yùn)動(dòng)路徑的誤差方程為
e=r-rd。
(2)
式中:rd為實(shí)際行走路徑,r為理論行走路徑。
爬壁機(jī)器人的路徑規(guī)劃用平面柵格的方式進(jìn)行表達(dá),如圖2所示。
圖2 柵格與序號(hào)關(guān)系圖Figure 2 Relationship between grid and ordinal
柵格中,黑色方格1,7,10,12和14表示障礙物,矩陣中用數(shù)字1表示,其余白色方格表示機(jī)器人可以通行,矩陣中用0表示。因此,可以得到對(duì)應(yīng)矩陣:
(3)
序號(hào)在柵格中映射關(guān)系為:
(4)
式中:ceil(λ/Ny)為λ/Ny整數(shù),mod (λ,Nx)為λ/Nx的余數(shù),λ為柵格序號(hào),Nx為矩陣每行的格數(shù),Ny為矩陣每列的格數(shù)。
爬壁機(jī)器人最短路徑的運(yùn)動(dòng)方程為
(5)
式中:(xi,yi)為爬壁機(jī)器人運(yùn)動(dòng)起始點(diǎn)的坐標(biāo),(xj,yj)為爬壁機(jī)器人運(yùn)動(dòng)目標(biāo)點(diǎn)的坐標(biāo)。
如圖3所示,模糊避障控制器[14]主要組成部分為:
1) 模糊化。將系統(tǒng)輸入的外部參考系、系統(tǒng)的狀態(tài)等精確量轉(zhuǎn)化為模糊化量進(jìn)行輸出。
2) 模糊推理。利用推理的規(guī)則和邏輯關(guān)系模仿人類進(jìn)行推理。
3) 清晰化。通過(guò)模糊推理得到的結(jié)果轉(zhuǎn)化為進(jìn)行使用的準(zhǔn)確清晰的數(shù)字量。
4) 知識(shí)庫(kù)。由模糊控制規(guī)則庫(kù)和數(shù)據(jù)庫(kù)共同組成,規(guī)則庫(kù)包含模糊語(yǔ)言表示的控制規(guī)則,數(shù)據(jù)庫(kù)包含模糊空間分級(jí)數(shù)、尺度變換因子和隸屬函數(shù)。
圖3 模糊控制器的結(jié)構(gòu)圖Figure 3 Structure of fuzzy controller
隸屬函數(shù)2個(gè)輸入量為:角度β和距離D。距離是前進(jìn)方向上智能體和障礙物之間的長(zhǎng)度。角度為預(yù)測(cè)路徑和最近的障礙物之間的夾角。{VF,F,N,VN}4個(gè)模糊值分別表示{十分近,近,遠(yuǎn),十分遠(yuǎn)}。變量偏轉(zhuǎn)角度{E,GE,G,GR,R}分別表示{左,前左,前,前右,右}。
隸屬函數(shù)中所有輸入和輸出都為三角形的隸屬函數(shù)[15]。輸入隸屬函數(shù)如圖4所示,輸出隸屬函數(shù)如圖5所示。
圖4 隸屬函數(shù)曲線Figure 4 Membership function curve
圖5 偏轉(zhuǎn)角和角度的隸屬函數(shù)曲線Figure 5 Membership function curves of deflection angle
傳統(tǒng)的模糊控制隸屬函數(shù)是根據(jù)前人總結(jié)的經(jīng)驗(yàn)所得,無(wú)法應(yīng)用在實(shí)際的任務(wù)中[16]。課題組利用遺傳算法對(duì)模糊控制進(jìn)行優(yōu)化,步驟為:
1) 編碼方法。對(duì)模糊規(guī)則和隸屬函數(shù)進(jìn)行調(diào)整,采用二進(jìn)制編碼方式,規(guī)則位占據(jù)前25位,隸屬函數(shù)為26~35位,偏轉(zhuǎn)角度的隸屬函數(shù)為36~45位。
2) 種群的產(chǎn)生。利用隨機(jī)的規(guī)則生成初始的解集S={S0,S1,…,Sn},Sn為染色體個(gè)數(shù)。
4) 算子計(jì)算。為了更好地解決進(jìn)化后群體多樣性減少的問題,將機(jī)器人初始集S中的S0,S1,…,Sn,按照完成時(shí)間進(jìn)行排序,將完成最快的個(gè)體S0復(fù)制到下一代,剩余的排序好的個(gè)體采用線性排序選擇的方式進(jìn)行選擇復(fù)制下一代的個(gè)體。
5) 交叉算子設(shè)計(jì)及自適應(yīng)變異。利用雙點(diǎn)交叉的方式產(chǎn)生下一代,即選擇2個(gè)交叉點(diǎn),將2個(gè)交叉點(diǎn)內(nèi)基因進(jìn)行交換,從而產(chǎn)生下一代。為了方便控制進(jìn)化過(guò)程及進(jìn)行避障,引入自適應(yīng)變異算子。同時(shí)為了簡(jiǎn)化計(jì)算,將取值的變異的概率和群體的平均值聯(lián)系起來(lái),從而適應(yīng)算子變異的設(shè)計(jì)。
6) 尋優(yōu)和增刪操作。把改進(jìn)算法和尋優(yōu)方法優(yōu)勢(shì)進(jìn)行結(jié)合。將每一代適應(yīng)度排名靠前的個(gè)體,在個(gè)體鄰域的范圍內(nèi)進(jìn)行隨機(jī)的搜索,尋找更新最優(yōu)解。為了防止遺傳算法提前結(jié)束,對(duì)相似的個(gè)體進(jìn)行刪除操作,刪除適應(yīng)度小的個(gè)體后,需要對(duì)空缺的位置進(jìn)行增加,上一代適應(yīng)度高的個(gè)體變異后的新個(gè)體作為增加的個(gè)體。
為了驗(yàn)證爬壁人采用遺傳算法改進(jìn)的模糊避障控制的設(shè)計(jì)方案,利用MATLAB仿真平臺(tái)進(jìn)行測(cè)試,爬壁機(jī)器人的初始點(diǎn)為(0,0),目標(biāo)為(10,10),機(jī)器人工作壁面為10 m×10 m,機(jī)器人工作壁面設(shè)置20個(gè)障礙物,并將遺傳算法和遺傳模糊控制仿真結(jié)果進(jìn)行比較,仿真的具體步驟為:①編輯模糊推理系統(tǒng);②進(jìn)行輸入和輸出對(duì)話框的添加;③進(jìn)行隸屬函數(shù)的編輯,隸屬函數(shù)如圖6所示;④進(jìn)行規(guī)則的編輯;⑤將模糊邏輯添加至Simulink;⑥運(yùn)行程序。仿真結(jié)果如圖7所示。
仿真結(jié)果圖7中,虛線為起始點(diǎn)到目標(biāo)點(diǎn)的路徑,點(diǎn)劃線為基于遺傳算法的爬壁機(jī)器人避障路徑,實(shí)線為基于遺傳算法改進(jìn)模糊避障控制的爬壁機(jī)器人的避障路徑。從圖7中可得出,基于遺傳算法和遺傳模糊控制算法都能在不碰觸障礙物的前提下,完成從起始點(diǎn)到目標(biāo)點(diǎn)的仿真路徑。從圖中可以明顯看出,采用遺傳模糊控制算法能夠更好地跟蹤起點(diǎn)和目標(biāo)點(diǎn)的連線,同時(shí)實(shí)現(xiàn)避障操作,整個(gè)過(guò)程路徑更短,實(shí)驗(yàn)效果更為理想。
圖6 各變量隸屬函數(shù)Figure 6 Membership function
圖7 爬壁機(jī)器人避障軌跡Figure 7 Obstacle avoidance trajectory of wall-climbing robot
課題組為解決爬壁機(jī)器人模糊控制精度低的問題,建立了爬壁機(jī)器人在壁面的運(yùn)動(dòng)模型,求解出機(jī)器人運(yùn)動(dòng)學(xué)方程;利用平面柵格的方式描述機(jī)器人運(yùn)動(dòng)路徑的規(guī)劃?;谶z傳算法對(duì)模糊控制機(jī)器人進(jìn)行優(yōu)化研究,算子設(shè)計(jì)方面選擇最優(yōu)保留和排序選擇的機(jī)制,既保留了種群最終的多樣性,同時(shí)又保證了群體收斂的最佳解;在變異算子方面,加入了自適應(yīng)變異算子,改善了遺傳算法在避障控制方面的應(yīng)用效果;增加增刪操作,解決了種群多樣性導(dǎo)致陷入局部解的問題。將MATLAB仿真實(shí)驗(yàn)結(jié)果與遺傳算法相比較,結(jié)果表明:遺傳模糊控制算法在避開障礙物的前提下,能夠更好地跟蹤起點(diǎn)和目標(biāo)點(diǎn)的連線并規(guī)劃出從起始點(diǎn)到目標(biāo)點(diǎn)更短的路徑。本研究可為深入研究爬壁機(jī)器人路徑規(guī)劃和避障控制提供參考。