王 強(qiáng),鮑文亮
1煤炭科學(xué)研究總院 北京 100013
2中國(guó)煤炭科工集團(tuán)太原研究院有限公司 山西太原 030006
鑿巖機(jī)器人作為煤礦特種機(jī)器人,在優(yōu)化鉆孔布置、提高工作效率和減少對(duì)圍巖破壞方面有著重要作用。高定位精度的鉆臂機(jī)構(gòu),是保障作業(yè)質(zhì)量和安全的重要組成部分[1]。因此,許多學(xué)者通過對(duì)鉆臂的建模與運(yùn)動(dòng)學(xué)求解研究,來實(shí)現(xiàn)鉆臂的精準(zhǔn)控制。
王憲倫等人[2]使用幾何分析法和 D-H 模型結(jié)合的方法,采用曲線擬合算法,完成了三角鉆臂的運(yùn)動(dòng)學(xué)分析;何清華等人[3]通過建立鉆臂運(yùn)動(dòng)學(xué)模型,根據(jù)某鑿巖機(jī)器人鉆臂的特殊結(jié)構(gòu)形式提出一種逆解計(jì)算方法;黃開啟等人[4]通過 D-H 參數(shù)法、坐標(biāo)反變換法和經(jīng)典消元法完成了對(duì)錨桿鉆機(jī)的運(yùn)動(dòng)學(xué)分析。
以上方法均能完成對(duì)鉆臂運(yùn)動(dòng)學(xué)正逆向求解,但是缺少對(duì)釬頭定位誤差補(bǔ)償?shù)难芯俊9P者使用一種基于遺傳算法優(yōu)化后的 BP 神經(jīng)網(wǎng)絡(luò)(GA-BP)方法,實(shí)現(xiàn)了對(duì)釬頭的定位誤差補(bǔ)償,該方法能夠快速、精準(zhǔn)地得到釬頭的位姿信息。
首先通過分析鑿巖機(jī)器人鉆臂系統(tǒng)機(jī)構(gòu)組成,結(jié)合改進(jìn)型 D-H 參數(shù)法,建立鉆臂的理想運(yùn)動(dòng)學(xué)模型;然后使用 GA-BP 神經(jīng)網(wǎng)絡(luò)得到的釬頭位姿誤差,經(jīng)過補(bǔ)償,可獲取修正后的釬頭位姿信息。通過運(yùn)動(dòng)學(xué)逆解得到修正后的關(guān)節(jié)變量,最終通過控制器將釬頭送達(dá)鉆孔位置。
該補(bǔ)償方法流程如圖1 所示。
圖1 基于 GA-BP 算法的位姿補(bǔ)償流程Fig.1 Posture compensation process based on GA-BP algorithm
鉆臂系統(tǒng)是鑿巖機(jī)器人的重要組成部分,是完成定位和鑿巖任務(wù)的主要執(zhí)行機(jī)構(gòu)。鉆臂系統(tǒng)主要包括大臂機(jī)構(gòu)和推進(jìn)機(jī)構(gòu),如圖2 所示。其中大臂機(jī)構(gòu)通過液壓缸的伸縮實(shí)現(xiàn)大跨度伸縮,以及大角度俯仰、偏轉(zhuǎn)和翻轉(zhuǎn)的動(dòng)作;推進(jìn)器機(jī)構(gòu)負(fù)責(zé)完成推進(jìn)釬桿和炮眼的鉆鑿任務(wù)[5-6]。
圖2 鉆臂結(jié)構(gòu)組成Fig.2 Structure of drilling arm
在實(shí)際巷道的鑿巖現(xiàn)場(chǎng)中,由于受到作業(yè)環(huán)境空間限制的原因,鉆臂系統(tǒng)多采用多冗余自由度的關(guān)節(jié)型機(jī)械臂,以增加機(jī)構(gòu)作業(yè)的靈活性,避免裝備間的碰撞。鉆臂系統(tǒng)一共具有7 個(gè)自由度,其中包括5 個(gè)轉(zhuǎn)動(dòng)副和2 個(gè)移動(dòng)副[7-8]。
鑿巖機(jī)器人作為行業(yè)特種機(jī)器人,在結(jié)構(gòu)形式上與普通工業(yè)機(jī)器人具有相似性,是由一系列連桿串聯(lián)起來的多關(guān)節(jié)機(jī)械臂。要實(shí)現(xiàn)井下自動(dòng)化鉆孔作業(yè),需要對(duì)鉆臂進(jìn)行運(yùn)動(dòng)學(xué)分析,以解決鑿巖機(jī)器人鉆臂關(guān)節(jié)空間坐標(biāo)到末端工作空間坐標(biāo)的變換問題[9]。
D-H 參數(shù)法是由 Denavit 和 Hartenberg 提出以關(guān)節(jié)鏈的每個(gè)桿件建立坐標(biāo)系的矩陣方法。筆者以鑿巖機(jī)器人作為試驗(yàn)本體,采用改進(jìn)型 D-H 參數(shù)法建立運(yùn)動(dòng)學(xué)模型,規(guī)定每個(gè)關(guān)節(jié)的4 個(gè)參數(shù)為θi,di,ai,αi,確定變換公式為T=R(θi)T(di)T(ai)R(αi),用以描述相鄰2 個(gè)連桿之間的運(yùn)動(dòng)學(xué)關(guān)系。變換公式可具體表達(dá)為
式中:θi為關(guān)節(jié)角,(°);αi為桿件扭轉(zhuǎn)角,(°);ai為桿件長(zhǎng)度,mm;di為關(guān)節(jié)橫距,mm。
對(duì)鑿巖機(jī)器人進(jìn)行適當(dāng)?shù)臋C(jī)構(gòu)簡(jiǎn)化,得到如圖3所示的 D-H 參數(shù)模型,鉆臂中各個(gè)連桿結(jié)構(gòu)參數(shù)如表1 所列。
圖3 鑿巖機(jī)器人鉆臂 D-H 模型Fig.3 D-H model of drilling arm of rock-drilling robot
表1 鑿巖機(jī)器人鉆臂連桿參數(shù)Tab.1 Parameters of linkage of drilling arm of rock-drilling robot
由于第5 關(guān)節(jié)軸與第6 關(guān)節(jié)軸存在軸線相交的現(xiàn)象,第5 坐標(biāo)系原點(diǎn)需選擇軸線相交點(diǎn),因此第5 坐標(biāo)系平移至圖3 中所示位置[10]。同理確定第6 坐標(biāo)系的位置。
將表1 中的連桿參數(shù)代入變換公式,求出相鄰連桿之間的變換方程,并由
得到鉆臂的正向運(yùn)動(dòng)學(xué)求解方程,求出釬頭相對(duì)于基坐標(biāo)系的的位姿信息。簡(jiǎn)化方程為
式中:[nx ny nz]T、[ox oy oz]T、[ax ay az]T為釬頭相對(duì)于基坐標(biāo)系的姿態(tài)向量;[px py pz]T為釬頭在基坐標(biāo)系的位置向量;P為位移矩陣;R為旋轉(zhuǎn)矩陣。
筆者將釬頭相對(duì)于基坐標(biāo)系的位姿定義為
式中:(x,y,z)為釬頭的位置坐標(biāo),可從位移矩陣P中獲?。?α,β,γ)為釬頭坐標(biāo)系與基座坐標(biāo)系三坐標(biāo)軸的夾角,可從旋轉(zhuǎn)矩陣R中獲取。
經(jīng)過上述分析,可以得到鉆臂各關(guān)節(jié)坐標(biāo)系到釬頭工作空間坐標(biāo)系的變換關(guān)系,并由 D-H 模型確定釬頭相對(duì)基坐標(biāo)系的位姿信息。
筆者采用代數(shù)求解法完成逆運(yùn)動(dòng)學(xué)求解,逐個(gè)分離變量求解,得到各關(guān)節(jié)變量數(shù)值。具體方法為用各[i-1Ti]-1矩陣逐次左乘簡(jiǎn)化方程可得如下方程:
由于等號(hào)兩側(cè)矩陣中對(duì)應(yīng)元素相等,所以可以得到12 個(gè)等式方程,即兩側(cè)矩陣中(n,o,a,p)對(duì)應(yīng)等式。通過觀察,優(yōu)先對(duì)易分離的變量進(jìn)行求解,求出變量對(duì)應(yīng)值。如上式一次求逆操作,得到下一組等式,依次求解剩余關(guān)節(jié)角變量,具體方法可參考文獻(xiàn)[11]。
遺傳算法優(yōu)化 BP 神經(jīng)網(wǎng)絡(luò)包括3 個(gè)部分:第 1部分是確定 BP 網(wǎng)絡(luò)結(jié)構(gòu),即確定輸入層、隱含層和輸出層的神經(jīng)元個(gè)數(shù),為確定遺傳算法個(gè)體長(zhǎng)度提供依據(jù);第2 部分是遺傳算法優(yōu)化 BP 網(wǎng)絡(luò),即根據(jù)權(quán)值和閾值數(shù)量編碼個(gè)體,通過個(gè)體選擇、交叉和變異操作尋找到最優(yōu)適應(yīng)度值對(duì)應(yīng)個(gè)體;第3 部分是將最優(yōu)個(gè)體解碼,得到權(quán)值和閾值的最優(yōu)初始值,訓(xùn)練后預(yù)測(cè)輸出。
對(duì)鉆臂運(yùn)動(dòng)學(xué)正解結(jié)果分析,發(fā)現(xiàn)釬桿末端的位置信息和姿態(tài)信息的數(shù)值單位和范圍有明顯的區(qū)別,這表明兩類信息的非線性映射關(guān)系是不一致的,所以筆者建立了2 個(gè) 3-6-3 的網(wǎng)絡(luò)結(jié)構(gòu),分別對(duì)位置誤差和姿態(tài)誤差進(jìn)行預(yù)測(cè)。網(wǎng)絡(luò)模型結(jié)構(gòu)如圖4 所示。
圖4 3 層 BP 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)Fig.4 Structure of three-layer BP neural network
輸入數(shù)據(jù)x為1 組三維向量,分別是目標(biāo)點(diǎn)的位置向量[xthythzth]T或姿態(tài)向量[αthβthγth]T;輸出數(shù)據(jù)z也是1 組三維向量,分別是位置誤差[ΔxΔyΔz]T或姿態(tài)誤差[ΔαΔβΔγ]T;wij、wjk分別是輸入層與隱含層、隱含層與輸出層之間的連接權(quán)值[12]。
BP 神經(jīng)網(wǎng)絡(luò)在利用梯度下降法進(jìn)行非線性擬合過程中,存在局部逼近能力差和收斂速度緩慢等缺點(diǎn),所以不適用于多自由度的機(jī)器人運(yùn)動(dòng)學(xué)求解預(yù)測(cè)[13]。筆者選擇遺傳算法的全局搜索的能力,實(shí)現(xiàn)BP 網(wǎng)絡(luò)中權(quán)值和閾值的優(yōu)化,具體步驟如下。
4.2.1 種群初始化
依照 BP 網(wǎng)絡(luò)結(jié)構(gòu),采用實(shí)數(shù)編碼法完成個(gè)體編碼。由于設(shè)定的網(wǎng)絡(luò)結(jié)構(gòu)為 3-6-3,應(yīng)有 3×6+6×3=36 個(gè)權(quán)值和 6+3=9 個(gè)閾值,所以個(gè)體長(zhǎng)度應(yīng)為 45。
4.2.2 確定個(gè)體適應(yīng)度函數(shù)
個(gè)體i的適應(yīng)度函數(shù)值
Fi=E,
式中:E為訓(xùn)練好的 BP 神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)的誤差函數(shù)。
4.2.3 選擇操作
采用輪盤賭法,就是基于適應(yīng)度比例的選擇策略,個(gè)體i的選擇概率
式中:N為種群數(shù)量,由于適應(yīng)度值越小選擇概率越大,所以需提前對(duì)其進(jìn)行倒數(shù)求解;k為系數(shù)。
4.2.4 交叉操作
對(duì)實(shí)數(shù)編碼需采用實(shí)數(shù)交叉法,即第n個(gè)染色體an和第m個(gè)染色體am在k位的交叉操作為
式中:定義交叉系數(shù)b范圍為0~1。
4.2.5 變異操作
選擇第n個(gè)染色體在j位上的基因發(fā)生突變,變異操作為
式中:amax、amin分別為染色體最大值和最小值;r為0~1 內(nèi)隨機(jī)數(shù);g為當(dāng)前迭代次數(shù);Gmax為最大進(jìn)化次數(shù)。
GA-BP 神經(jīng)網(wǎng)絡(luò)訓(xùn)練流程如圖5 所示。
圖5 GA-BP 神經(jīng)網(wǎng)絡(luò)訓(xùn)練流程Fig.5 Training process flow of GA-BP neural network
鑿巖機(jī)器人鉆孔分布如圖6 所示。筆者使用蒙特卡羅算法,在鉆臂工作空間內(nèi)選擇任意5 000 組位姿數(shù)據(jù)樣本,樣本數(shù)據(jù)包括目標(biāo)位姿變量(Δx,Δy,Δz)和(α,β,γ),及對(duì)應(yīng)的位姿誤差(x,y,z)和(Δα,Δβ,Δγ)。
圖6 鑿巖機(jī)器人鉆孔分布Fig.6 Distribution of drilled holes of rock-drilling robot
為提高神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)效率和精度,需將樣本集分為訓(xùn)練樣本、檢驗(yàn)樣本和測(cè)試樣本。依照樣本數(shù)量的大小,劃分方法有“留出法”“交叉驗(yàn)證法”和“自助法”。由于數(shù)據(jù)較多,筆者按照“留出法”進(jìn)行劃分,按照45∶4∶1 的比例,將樣本互斥隨機(jī)分類,得到訓(xùn)練樣本集4 500 組,檢驗(yàn)樣本集400 組和測(cè)試樣本集100 組,并對(duì)樣本數(shù)據(jù)進(jìn)行如下式的歸一化處理,
式中:z′為歸一化之后的數(shù)值;z為樣本的原始值;zmin、zmax分別為樣本集中的最小值和最大值。
為方便進(jìn)行釬桿末端定位誤差分析,定義如下2 個(gè)誤差計(jì)算公式,分別為位置誤差Exyz和姿態(tài)誤差Edeg,
式中:(x,y,z)、(α,β,γ)為目標(biāo)位姿信息;(x′,y′,z′)、(α′,β′,γ′)為實(shí)際位姿信息。
為更直觀展示 GA-BP 算法效果,分別計(jì)算位置誤差和姿態(tài)誤差的平均誤差和標(biāo)準(zhǔn)方差,
式中:Ei為第i組測(cè)試樣本誤差;N為測(cè)試樣本總數(shù)。
使用蒙特卡羅算法,在釬桿末端可達(dá)空間內(nèi)采集 100 點(diǎn)位姿數(shù)據(jù),經(jīng) GA-BP 網(wǎng)絡(luò)誤差補(bǔ)償后,利用上述公式對(duì)位置誤差和姿態(tài)誤差進(jìn)行分析,并以補(bǔ)償前的誤差和 BP 網(wǎng)絡(luò)補(bǔ)償后的結(jié)果作為參考,對(duì)比結(jié)果如表2 所列?;?GA-BP 算法相較于 BP 算法有更好的誤差補(bǔ)償效果,相較于補(bǔ)償前的釬頭定位,平均位置誤差降低了 71.47%,平均姿態(tài)誤差降低了56.29%,而且標(biāo)定后的誤差小于 100 mm,滿足工程要求。
表2 機(jī)器人末端位姿誤差結(jié)果對(duì)比Tab.2 Comparison of error results of robot end posture
使用 GA-BP 神經(jīng)網(wǎng)絡(luò)算法實(shí)現(xiàn)了對(duì)某型鑿巖機(jī)器人釬桿末端的定位誤差辨識(shí)。經(jīng)過誤差補(bǔ)償后,通過運(yùn)動(dòng)學(xué)逆解計(jì)算,得到目標(biāo)位姿對(duì)應(yīng)的關(guān)節(jié)變量,最終通過正向運(yùn)動(dòng)學(xué)控制釬桿末端移動(dòng),到達(dá)目標(biāo)鉆孔位置。經(jīng)試驗(yàn)結(jié)果分析,該方法可有效降低釬桿末端的位姿誤差,滿足工程應(yīng)用需求,且具有很好的通用性。BP 神經(jīng)網(wǎng)絡(luò)具有較好的非線性擬合能力,而且誤差辨識(shí)結(jié)果準(zhǔn)確度取決于網(wǎng)絡(luò)結(jié)構(gòu)和數(shù)據(jù)樣本的質(zhì)量,對(duì)鉆臂的結(jié)構(gòu)和自由度數(shù)的依賴不大。但是單純的 BP 神經(jīng)網(wǎng)絡(luò)存在局部逼近能力差和收斂速度緩慢等缺點(diǎn),因此經(jīng)過遺傳算法優(yōu)化后的 BP 神經(jīng)網(wǎng)絡(luò)具有更好的辨識(shí)能力,更好的補(bǔ)償效果。