李 光 章曉峰 楊加超 馬祺杰
(湖南工業(yè)大學機械工程學院, 株洲 412007)
機器人視覺伺服系統(tǒng)是機器人領域的重要研究方向,該項研究對開發(fā)手眼協(xié)調機器人在工業(yè)生產、航空航天等方面的應用具有重要意義[1],而手眼標定和逆運動學求解是其重要的組成部分。
機器人視覺伺服系統(tǒng)是指通過攝像機獲取目標物體圖像的反饋信息、通過機器人逆運動學求解完成對機器人系統(tǒng)的控制。這往往需要通過手眼標定完成圖像坐標系到機器人坐標系的映射求解,然后通過視覺傳感器獲取目標圖像,確認目標在用戶空間的位姿矩陣,通過逆運動學求解關節(jié)角,完成機器人末端對目標的控制。
傳統(tǒng)的視覺標定算法通過構建幾何模型完成圖像坐標系到機器人坐標系的標定,由于受到幾何模型的限制,往往很難在一個模型中完整描述鏡頭畸變和圖像噪聲,這已成為傳統(tǒng)標定模型的發(fā)展瓶頸[2]。針對這一問題,文獻[3]在求解標定方程之后對結果進行了優(yōu)化,但并未解決傳統(tǒng)視覺標定方法的問題。文獻[4-7]提出了一種無標定視覺伺服的方法,通過對圖像雅可比(Jcobian)矩陣的估計完成目標的控制,并通過不同的優(yōu)化方法對此過程進行優(yōu)化,但是實時性較差,并且會受到機器人運動模型的影響,在實際應用中精確度不高。
神經網絡具有良好的非線性逼近特性和自適應、自學習能力,采用神經網絡擬合手眼關系的方法成為在視覺伺服研究的熱點。彭西[8]使用神經網絡對機械臂進行了手眼標定,但是無法獲得機器人逆運動學解;文獻[9-10]使用PSO優(yōu)化的RBF神經網絡進行逆運動學求解,但是PSO算法中的初始因子需要自定義,對優(yōu)化影響較大,且受限于RBF神經網絡特殊的淺層結構,無法進行深層學習,故精度無法得到進一步提高;文獻[11-12]針對多自由度機器人,基于BP神經網絡求解逆運動學,但是隨著網絡深度的增加,網絡性能逐漸下降,使網絡受限于此,精度無法進一步提高。
針對以上問題,本文提出一種殘差BP神經網絡算法,通過殘差模塊使淺層信息能夠向更深層傳遞,以擬合機器人系統(tǒng)中關節(jié)角和抓取目標在像平面下像素坐標之間的映射關系,并通過6自由度機械臂的雅可比矩陣方程確定8個唯一域,對數(shù)據進行處理,以消除訓練過程中逆運動學多解對訓練結果的影響。通過實驗比較不同深度下BP神經網絡和殘差BP神經網絡對二維運動目標的抓取結果,以驗證殘差BP神經網絡的性能和精度;在三維空間進行實物的抓取實驗,以驗證基于殘差BP神經網絡標定方法相對于傳統(tǒng)標定方法的優(yōu)勢。
誤差反向傳播神經網絡(BP neural network)具有多層結構,分別是輸入層、隱含層、輸出層[13],如圖1所示。
圖1中,輸入層有M個神經元,輸入向量X=(x1,x2,…,xM)T;隱含層有I個神經元;輸出層有J個神經元,輸出向量Y=(y1,y2,…,yJ)T。ωmi是輸入層與隱含層之間的權值,ωij是隱含層與輸出層之間的權值。隱含層各神經元閾值為ai(i=1,2,…,I),輸出層各神經元閾值為bj(j=1,2,…,J)。
根據圖1可以得到網絡輸出[14]為
(j=1,2,…,J)
(1)
BP神經網絡通過權值和激活函數(shù)擬合非線性映射關系,但是隨著網絡層數(shù)的增多,梯度呈指數(shù)累積,在訓練時會產生消失的問題,讓網絡學習能力達到飽和,精度不僅無法提高甚至會出現(xiàn)下降的情況。HE等[15]提出一種殘差網絡結構,用于解決深度學習中隨著深度增加網絡學習能力下降的問題,被廣泛用于卷積神經網絡中[16-19],并為其他神經網絡結構解決此類問題提供了思路。
本文設計了一種殘差模塊(Residual block),如圖2所示。殘差模塊基本組成部分為:1個隱含層和1個BatchNorm層以及1個ReLU層構成的訓練模塊,簡稱為LBR(Linear BatchNorm and ReLU)模塊,以及一個負責修改維度的單隱含層和BatchNorm層,稱為維度修改(Dimension change)模塊。殘差模塊之間能夠跳轉求和并在下一個模塊的節(jié)點之前通過ReLU函數(shù)激活。
LBR模塊負責訓練數(shù)據,維度修改模塊負責修改訓練后LBR模塊輸出維度,使得其能夠與下一個殘差模塊的輸出進行等維度求和。
因此,殘差模塊能夠將上一層的信息傳遞到下一層,淺層信息傳遞到深層網絡中能夠使得網絡在訓練中梯度不易趨向于零,避免了多隱含層作用后梯度由于指數(shù)化而出現(xiàn)消失,使得網絡喪失學習能力的問題。殘差模塊的結構保證了殘差BP神經網絡能夠隨著深度的增加繼續(xù)保持學習的能力。
設計的殘差BP神經網絡(Residual BP neural network,ResBP)由4個殘差模塊和1個線性層組成,殘差模塊的LBR模塊隱含層有25個節(jié)點,修改維度模塊隱含層有6個節(jié)點。以隱含層數(shù)定義網絡深度,則ResBP神經網絡有9層。網絡結構如圖3所示。
本文研究對象為REBot-V-6R型6自由度串聯(lián)機器人。根據DH參數(shù)法[20]可以確定該機器人運動學模型,各關節(jié)坐標系所在位置如圖4所示。
根據DH參數(shù)法,第i連桿的參數(shù)定義為:ai為連桿長度,αi為相鄰兩關節(jié)軸線的夾角,di為第i根連桿和第i-1連桿的偏置距離,θi為第i連桿的旋轉角。從連桿坐標系i-1到下一連桿坐標系i的坐標轉換,定義為基本旋轉和平移,具體形式為
i-1Ai(θi,di,ai,αi)=TRZ(θi)TZ(di)TX(ai)TRX(αi)
(2)
其中
(3)
式中i-1Ai——第i-1個關節(jié)到坐標系i坐標變化矩陣
TRZ——繞Z軸旋轉矩陣
TRX——繞X軸旋轉矩陣
TZ——沿Z軸平移矩陣
TX——沿X軸平移矩陣
機器人基座坐標系0到末端執(zhí)行器坐標系6的轉換矩陣關系為
0T6(q)=0A1(q1)1A2(q2)…5A6(q6)=A(q1,q2,…,q6)
(4)
REBot-V-6R型6自由度串聯(lián)機器人的DH參數(shù)如表1所示。
表1 REBot-V-6R型機器人DH參數(shù)Tab.1 DH parameters of REBot-V-6R robot
DH參數(shù)代入式(4)可得其正運動學數(shù)學模型,通過正向運動學可以控制機器人末端到達指定位置。
輸送線目標分揀為6自由度機器人常見的應用場景之一,本文針對6自由度機器人在輸送線分揀場景下的應用,將輸送線上的目標運動分解為3自由度運動,即沿X、Y軸的移動以及繞Z軸的旋轉,并設計了一種圓形的黑白相間的棋盤,模擬了目標在輸送線平面上運動的位姿,如圖5所示。圓盤直徑為機械臂抓取的最大工作范圍,圓盤上一共180個外圓角點和1個中心角點,每個外圓角點可視作繞中心角點做旋轉運動,其像素坐標(u,v)(單位:像素)代表目標運動的位置,初始角點和中心角點的向外連線為繞Z軸旋轉的初始姿態(tài),其他角點和中心角點連線與其夾角σZ(單位:rad)按順時針方向逐漸增大。
在空間內選定與輸送線平行的平面安裝相機,且保證抓取區(qū)域始終在相機視野內,采集圓盤圖像并通過圖像處理采集角點的亞像素坐標(u,v)[21]。角點識別結果如圖6所示。
實驗過程中通過安裝在機器人末端的激光裝置判斷末端位姿。具體過程為:通過示教平臺控制機器人使激光裝置發(fā)射的十字形光線交點到達圓盤角點位置,且選取十字光線中的一條分支和外圓角點半徑重合,則認為末端到達理想位姿,記錄此時各關節(jié)參數(shù)(θ1,θ2,…,θ6)。實驗系統(tǒng)如圖7所示。
標定圓盤模擬了輸送帶上目標的運動情況,通過攝像機獲取圓盤圖像,通過角點識別得到每個樣本點的像素坐標,以此得到均勻分布的數(shù)據樣本,即圓盤圖像上均勻分布的每個角點對應輸送帶空間的一個位姿,每組位姿對應機械臂不同的關節(jié)角組合,通過網絡訓練完成由目標圖像到機械臂關節(jié)角的映射關系的擬合。
其中,像素坐標和旋轉角(u/w,v/h,σZ)為神經網絡的輸入,其中w、h為圖像寬、高,其對應的關節(jié)角(θ1,θ2,…,θ6)為網絡輸出。
本研究的目標分析物是合成麝香,對水樣的預處理主要包括過濾、萃取和濃縮。采用玻璃纖維濾紙在真空條件下進行水樣過濾,使溶解相和顆粒相分離。對于溶解相,量取1.5 L過濾后的水樣至分液漏斗中,加入 10 μL 500 ng·mL-1 DnBP-d4 回收率指示物標準溶液,混勻后再加入50 mL二氯甲烷進行液液萃?。?次);對于顆粒相,將玻璃纖維濾紙中的顆粒相樣品加入到索氏抽提器中以150 mL二氯甲烷靜置萃取24 h。將萃取液過無水硫酸鈉以去除剩余水分,收集萃取液于250 mL蒸發(fā)瓶中,旋轉蒸發(fā)濃縮至1 mL左右,最后氮吹濃縮至約 150 μL。
在實際抓取過程中,由攝像頭獲取目標的圖像,通過圖像處理得到目標圖像的中心位置和旋轉角,作為網絡輸入得到目標對應的機械臂的關節(jié)角,在運動學層面完成抓取動作。這一過程并不需要逆運動學求解,節(jié)約了大量的計算和時間成本。然而,未經處理的樣本數(shù)據直接用于網絡訓練往往會導致精度低、訓練速度慢等問題,因此需要結合機械臂的運動學特性對樣本數(shù)據進行進一步處理。
由文獻[22]可知,一個空間位姿矩陣可以對應8組關節(jié)角的解,RASTEGAR等[23]最早提出利用det(J)=0(J為雅可比矩陣)的方程,將非冗余機器人關節(jié)空間劃分為與逆解數(shù)目相同的唯一域,再在每個唯一域中用數(shù)值法迭代求解,進而求得所有逆運動學解。針對6自由度機械臂,由det(J)=0可得8個封閉的解,為了避免機器人逆運動學多解對網絡訓練的干擾,由雅可比矩陣等于零可將關節(jié)角分為8個獨立的域[24](Unique domain,UD),根據所求域的范圍將訓練數(shù)劃分為獨立的小批量數(shù)據,分批次進行網絡訓練。REBot-V-6R型機器人雅可比行列式為
det(J)=P1P2P3
(5)
其中
(6)
式中l(wèi)1——第1個關節(jié)與第2個關節(jié)之間偏置的長度,取100 mm
由P1=0可得θ5=-π或θ5=π;由P2=0可得θ3為0.372 1、3.512 7、-2.769 5 rad;P3=0不易解,可將其視為函數(shù)結合θ3的可得函數(shù)圖像,如圖8所示。
其中,UD1為θ3∈[0.372 1,3.512 7] rad且P2<0的區(qū)域;UD2為θ3∈[-2.769 5,0.372 1] rad且P2<0的區(qū)域;UD3為θ3∈[0.372 1,3.512 7] rad且P2≥0的區(qū)域;UD4為θ3∈[-2.769 5,0.372 1] rad且P2≥0的區(qū)域。
結合θ5可分為兩個域[-π,0]、[0,π],6組關節(jié)角所在值域總共可以分為8個互不相交的唯一域,如圖9所示。
表2 基于唯一域數(shù)據劃分Tab.2 Data partition based on unique domain
針對同一數(shù)據,分別使用了1層隱含層(隱含層節(jié)點數(shù)為25)的BP神經網絡、3層隱含層(隱含層節(jié)點數(shù)分別為6、9、25)的BP神經網絡以及5層隱含層(隱含層節(jié)點數(shù)分別為6、9、25、25、9)BP神經網絡進行訓練,訓練結果如圖10所示。
由圖10可看出,1層隱含層BP神經網絡的誤差在第125次訓練達到最優(yōu),均方差可以達到1×10-4rad,隨著網絡深度的增加,3層隱含層BP神經網訓練時間變長,在第275次達到最小均方差,接近1×10-6rad。但是繼續(xù)增加網絡深度到5個隱含層時,網絡性能無法繼續(xù)提升,學習能力達到飽和,在第28次訓練時提前結束了訓練,均方差達到1×10-3rad。
網絡訓練之后對同一20組非角點位置的測試樣本進行了誤差分析,每組誤差為6個關節(jié)誤差的平均值,測試結果如圖11所示。
由圖11可以看出,3層隱含層BP神經網絡的泛化能力最優(yōu),測試樣本平均誤差最小,且最穩(wěn)定,其次是1層隱含層BP神經網絡,誤差最大的是5層隱含層BP神經網絡。實驗結果表明,隨著網絡深度的增加,梯度消失,網絡性能提前飽和,無法進一步優(yōu)化。
訓練樣本和測試樣本不變,使用ResBP神經網絡進行訓練,網絡隱含層數(shù)為9。若不進行數(shù)據處理,網絡在526次訓練達到最優(yōu)性能,均方差能夠接近1×10-6rad;若通過唯一域方法處理數(shù)據,網絡在117次訓練達到最優(yōu)性能,均方差能夠接近1×10-8rad,如圖12所示?;谖ㄒ挥蚍椒ㄌ幚頂?shù)據后,網絡性能得到了較大提升,擬合速度提高了近5倍,精度提升2個數(shù)量級。使用唯一域處理過后的數(shù)據進行ResBP網絡訓練,結果相比于3層BP神經網絡,精度提高了2個數(shù)量級,訓練速度提高了近2倍。
同一測試樣本誤差能夠達到1×10-4rad,且分布均勻,如圖13所示。相較于其他BP神經網絡,ResBP神經網絡訓練速度更快,精度更高,泛化能力更強,網絡穩(wěn)定性更好。
隨機選取10個測試樣本點進行了實機抓取實驗,抓取點位姿和抓取結果示意如圖14所示。
圖中綠色圓圈所在位置和箭頭所指方向為抓取點的位置和旋轉角,紅色圓圈所在位置和箭頭所指方向為機器人輸入網絡輸出末端的位置和平面姿態(tài)。位置最小誤差可達1×10-2mm,最大可達1×10-1mm;角度誤差最小可達1×10-3rad,最大可達1×10-2rad。實機抓取的精度可能受到控制誤差以及機器人自身標定誤差的影響,因此基于殘差BP神經網絡的視覺標定算法的抓取測試精度能夠達到工業(yè)精度要求。
為了進一步驗證標定精度,進行了實物抓取實驗。抓取目標為輸送線上一立方體物料,為了區(qū)分物料的旋轉方向,在物料上做了標記,如圖15所示。
在同一空間內任意選取了4個位姿,為了方便拍照取樣對比,在Z軸方向預留高度10 mm。通過角點識別可以得到目標的圖像中角點像素坐標,如圖16所示。
目標圖像中心點坐標和旋轉角計算公式為
(7)
式中 (luu,luv)、(rdu,rdv)——目標圖像左上角點像素坐標、右下角點像素坐標
ld——左下角點像素坐標向量
lu——左上角點像素坐標向量
τ——像素u軸單位向量(1,0)
(Cu,Cv)——目標圖像的中心坐標
θ——目標在圖像中的旋轉角
基于ResBP網絡標定的抓取結果如圖17所示,圖中,抓取結果的最大位置誤差為位姿4,X軸方向位置誤差ΔEx為0.3 mm,Y軸方向位置誤差ΔEy為0.1 mm,最大姿態(tài)誤差為姿態(tài)2,繞Z軸旋轉角誤差ΔERz為0.025 rad,繞X軸旋轉角誤差ΔERx為0.008 rad,繞Y軸旋轉角誤差ΔERy為0.003 rad。
由文獻[25]可知,張正友提出了張氏相機標定法,其他大多標定方法都以張氏標定法為基礎進行改進。REBot-V-6R型6自由度機器人輸送線分揀系統(tǒng)通過張正友標定方法完成視覺標定,然后通過逆運動學求解得到各關節(jié)的旋轉角完成抓取?;趥鹘y(tǒng)標定方法的抓取結果如圖18所示。圖中,抓取結果的最大位置誤差處于位姿3,X軸方向位置誤差ΔEx為4.3 mm,Y軸方向位置誤差ΔEy為1.4 mm,最大姿態(tài)誤差為位于位姿2,繞Z軸旋轉角誤差ΔERz為0.041 rad,繞X軸旋轉角誤差ΔERx為0.038 rad,繞Y軸旋轉角誤差ΔERy為0.019 rad。
(1)提出了一種ResBP神經網絡算法,該算法設計的殘差模塊能夠使隱含層信息跨層傳遞,解決了淺層BP神經網絡精度不夠、深層BP神經網絡因梯度消失而學習能力飽和、無法進一步學習的問題,并通過基于唯一域方法對訓練數(shù)據進行劃分,避免了多自由度機器人逆運動學多解對網絡學習的影響,訓練精度提高了2個數(shù)量級,訓練速度提高了2倍。實驗表明,該方法比1層BP神經網絡、3層BP神經網絡、5層BP神經網絡的訓練精度分別提高了4個數(shù)量級、2個數(shù)量級、5個數(shù)量級,測試精度提高2個數(shù)量級。
(2)基于ResBP神經網絡算法完成了6自由度機器人視覺伺服系統(tǒng)由圖像坐標系轉換到6個關節(jié)角的運動學關系的標定,與傳統(tǒng)視覺標定方法相比,節(jié)約了逆運動學求解過程的計算成本和時間成本,且精度更高。通過REBot-V-6R實驗平臺進行了三維實物抓取實驗,驗證了ResBP神經網絡算法在實際應用環(huán)境中的準確性和精準度,本文方法比傳統(tǒng)標定方法位置和姿態(tài)抓取誤差減小了1個數(shù)量級。