丁雷鳴, 徐海明, 呂 品,3, 趙丹陽(yáng), 嚴(yán)亞飛, 孫丙宇
(1.合肥工業(yè)大學(xué) 工業(yè)與裝備技術(shù)研究院,安徽 合肥 230009; 2.中國(guó)科學(xué)院合肥物質(zhì)科學(xué)研究院 智能機(jī)械研究所,安徽 合肥 230031; 3.泰安華魯鍛壓機(jī)床有限公司,山東 泰安 271000)
視覺系統(tǒng)作為果蔬采摘機(jī)器人進(jìn)行環(huán)境感知與實(shí)現(xiàn)采摘目標(biāo)識(shí)別和定位的關(guān)鍵組成部分,其工作性能的好壞直接決定了機(jī)器人能否成功高效采摘[1]。雙目立體視覺是一種使用較多的目標(biāo)識(shí)別與定位的方法[2-4]。視覺與機(jī)器人關(guān)聯(lián)方式需要確定視覺系統(tǒng)坐標(biāo)系與機(jī)械臂關(guān)節(jié)坐標(biāo)系的轉(zhuǎn)換關(guān)系,即手眼標(biāo)定。對(duì)于視覺系統(tǒng)與其他坐標(biāo)系之間的標(biāo)定方法,近年來(lái)很多學(xué)者進(jìn)行了大量的研究。文獻(xiàn)[5]采用P3P位姿測(cè)量原理獲得相應(yīng)空間點(diǎn)在攝像機(jī)坐標(biāo)系中的坐標(biāo),建立了標(biāo)定方程組,基于最小二乘法標(biāo)定出了手眼系統(tǒng)之間的轉(zhuǎn)換矩陣;文獻(xiàn)[6]通過多元線性回歸擬合模型完成了基于雙目視覺的采摘機(jī)器人手眼標(biāo)定;文獻(xiàn)[7]提出了一種基于三坐標(biāo)測(cè)量?jī)x的高精度手眼標(biāo)定新方法,利用三坐標(biāo)測(cè)量?jī)x將機(jī)器人末端工具、法蘭盤、相機(jī)構(gòu)建成閉環(huán)系統(tǒng),具有很強(qiáng)的實(shí)用性;文獻(xiàn)[8]提出了一種基于誤差分布估計(jì)的加權(quán)最小二乘魯棒估計(jì)方法,在數(shù)據(jù)粗差影響下保持較高的標(biāo)定精度。
現(xiàn)有算法通常采用最小二乘估計(jì)求解方法對(duì)機(jī)器人手眼系統(tǒng)的變換參數(shù)進(jìn)行相機(jī)坐標(biāo)系與其他坐標(biāo)系的線性標(biāo)定,而未考慮雙目視覺系統(tǒng)的非線性系統(tǒng)誤差[9]。反向傳播(back-propagation,BP)神經(jīng)網(wǎng)絡(luò)模型是目前廣泛應(yīng)用的預(yù)測(cè)模型,具有廣泛的工程應(yīng)用[10-11],其高效的非線性映射能力恰好彌補(bǔ)了傳統(tǒng)標(biāo)定方法未考慮雙目視覺系統(tǒng)非線性系統(tǒng)誤差的不足。但是BP神經(jīng)網(wǎng)絡(luò)模型存在易陷入局部極小值、收斂速度慢等缺點(diǎn),文獻(xiàn)[12]通過引入粒子群算法進(jìn)行全局搜索來(lái)解決該問題;文獻(xiàn)[13]通過使用ADAM算法代替?zhèn)鹘y(tǒng)BP神經(jīng)網(wǎng)絡(luò)所使用的隨機(jī)梯度下降算法BP神經(jīng)網(wǎng)絡(luò),避免因陷入局部最優(yōu)而導(dǎo)致的預(yù)測(cè)誤差較大的問題。
為了克服上述缺點(diǎn),本文采用遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)模型,經(jīng)過選擇、交叉、變異以及種群進(jìn)化操作優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的初始權(quán)值和閾值,克服其收斂速度慢、易陷入局部極小值的缺點(diǎn)。在以雙目視覺相機(jī)為基礎(chǔ)構(gòu)建的果蔬采摘機(jī)器人樣機(jī)上的實(shí)驗(yàn)結(jié)果表明:與傳統(tǒng)線性回歸模型與BP神經(jīng)網(wǎng)絡(luò)模型相比,經(jīng)遺傳算法優(yōu)化后的BP神經(jīng)網(wǎng)絡(luò)模型顯著地減少了標(biāo)定誤差,更好地表達(dá)了相機(jī)坐標(biāo)系之間的關(guān)系。
手眼標(biāo)定是指求取攝像機(jī)坐標(biāo)系與機(jī)械手坐標(biāo)系之間的矩陣變換關(guān)系。手眼安裝一般有2種形式:① Eye-in-hand系統(tǒng)(攝像機(jī)直接安裝在機(jī)械手上,隨機(jī)械手一起運(yùn)動(dòng));② Eye-to-hand系統(tǒng)(攝像機(jī)固定安裝,位置不隨機(jī)械手運(yùn)動(dòng)而改變)。本文系統(tǒng)采用雙目攝像機(jī)固定安裝手眼系統(tǒng),由于立體視覺模塊可以給出靶標(biāo)在相機(jī)坐標(biāo)系下的三維坐標(biāo),該系統(tǒng)標(biāo)定簡(jiǎn)化為求解相機(jī)坐標(biāo)系與機(jī)器臂坐標(biāo)系之間的映射矩陣。兩坐標(biāo)系之間的齊次坐標(biāo)變換關(guān)系可寫為:
(1)
將(1)式變形為:
(2)
傳統(tǒng)方法通過線性回歸求解,(2)式只有參數(shù)矩陣的秩和未知參數(shù)個(gè)數(shù)相等時(shí)才可以求解,即最少需要4個(gè)線性無(wú)關(guān)的點(diǎn)才能求解R、T,將n(n≥4)個(gè)點(diǎn)坐標(biāo)代入(2)式,其求解實(shí)際上轉(zhuǎn)換為最小二乘問題,此時(shí)R的解可用最小二乘法求得,即
R=(ATA)-1ATB
(3)
以上為傳統(tǒng)線性回歸模型標(biāo)定固定雙目視覺手眼系統(tǒng)的原理。
1986年,由斯坦福大學(xué)的Rumelhart D E等提出的BP神經(jīng)網(wǎng)絡(luò)算法解決了多層網(wǎng)絡(luò)模型中隱含層的連接權(quán)問題,有效提升了神經(jīng)網(wǎng)絡(luò)的自學(xué)習(xí)和組織能力,是當(dāng)前工程領(lǐng)域應(yīng)用較多的一種前饋式學(xué)習(xí)算法與反向傳播算法的神經(jīng)網(wǎng)絡(luò)。BP神經(jīng)網(wǎng)絡(luò)的輸入層由隱含層作用于輸出層,經(jīng)非線性變換得輸出量。網(wǎng)絡(luò)訓(xùn)練的每個(gè)樣本包含輸入量和期望輸出量,網(wǎng)絡(luò)輸出量與期望輸出量之間的偏差通過調(diào)整網(wǎng)絡(luò)權(quán)值與閾值使誤差沿梯度方向下降,直至實(shí)際輸出與期望輸出在預(yù)定范圍內(nèi)。
設(shè)輸出層有m個(gè)神經(jīng)元,BP網(wǎng)絡(luò)的實(shí)際輸出是y,期望輸出是y′,函數(shù)ε為:
(4)
每個(gè)權(quán)值的修正值為:
(5)
其中,ωij為輸入單元i到第j個(gè)隱含層的權(quán)重;η為學(xué)習(xí)速率;fj為中間第j個(gè)隱含層的傳輸函數(shù)。輸入層到隱含層的函數(shù)采用logsig型,隱含層到輸出層的函數(shù)采用purelin型。
將靶標(biāo)在相機(jī)坐標(biāo)系下的坐標(biāo)Xc、Yc、Zc作為網(wǎng)絡(luò)的輸入,選取靶標(biāo)在機(jī)械臂坐標(biāo)系下相應(yīng)的坐標(biāo)Xr、Yr、Zr為輸出,建立BP神經(jīng)網(wǎng)絡(luò)模型。BP神經(jīng)網(wǎng)絡(luò)的隱含層節(jié)點(diǎn)數(shù)對(duì)BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)精度有較大的影響。節(jié)點(diǎn)數(shù)太少,網(wǎng)絡(luò)學(xué)習(xí)效率低,需要增加訓(xùn)練次數(shù),訓(xùn)練精度也受到影響;節(jié)點(diǎn)數(shù)太多,網(wǎng)絡(luò)容易過擬合。最佳隱含層節(jié)點(diǎn)數(shù)可參考如下公式[14],即
(6)
其中,n為輸入層節(jié)點(diǎn)數(shù);l為隱含層節(jié)點(diǎn)數(shù);a為0~10之間的常數(shù)。
經(jīng)實(shí)驗(yàn)選擇隱含層節(jié)點(diǎn)數(shù)為10個(gè)。據(jù)此,該BP網(wǎng)絡(luò)模型采用3層網(wǎng)絡(luò),BP 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)為3-10-3。
在訓(xùn)練BP神經(jīng)網(wǎng)絡(luò)前,為減弱各不同量級(jí)的坐標(biāo)值對(duì)網(wǎng)絡(luò)模型訓(xùn)練的影響,先對(duì)坐標(biāo)值作歸一化處理。
遺傳算法擅長(zhǎng)全局搜索,BP神經(jīng)網(wǎng)絡(luò)用于局部搜索較有效,因此將遺傳算法和BP算法相結(jié)合。遺傳算法對(duì)神經(jīng)網(wǎng)絡(luò)初始權(quán)值進(jìn)行優(yōu)化,定位出較好的搜索空間,再采用 BP 算法在小空間內(nèi)搜索最優(yōu)值。遺傳BP神經(jīng)網(wǎng)絡(luò)算法流程[15]如圖1所示。
圖1 遺傳BP神經(jīng)網(wǎng)絡(luò)算法流程
改進(jìn)后的遺傳算法具體步驟如下所述。
(1) 初始化種群。隨機(jī)產(chǎn)生一種群Xm×n,每個(gè)個(gè)體X1×n均為一個(gè)實(shí)數(shù)串,代表一組神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值,包括輸入層與隱含層連接權(quán)值、隱含層閾值,隱含層與輸出層連接權(quán)值、輸出層閾值4個(gè)部分,即
n=rs1+s1s2+s1+s2
(7)
其中,n為個(gè)體的長(zhǎng)度;r為輸入層節(jié)點(diǎn)個(gè)數(shù);s1為隱藏層節(jié)點(diǎn)個(gè)數(shù);s2為輸出層節(jié)點(diǎn)個(gè)數(shù)。
(2) 適應(yīng)度函數(shù)。由個(gè)體到BP神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值,依據(jù)適應(yīng)度函數(shù)值對(duì)其進(jìn)行評(píng)價(jià)。計(jì)算輸出誤差值E、適應(yīng)度函數(shù)f,即
f=1/(1+E)
(8)
計(jì)算各個(gè)體的適應(yīng)值,種群個(gè)體適應(yīng)度最大者進(jìn)入子種群。
(3) 選擇操作。遺傳算法選擇操作有輪盤賭法、錦標(biāo)賽等多種方法,現(xiàn)采用輪盤賭法,即基于適應(yīng)度比例選擇策略,每個(gè)個(gè)體i的選擇概率pi為:
(9)
其中,fi為個(gè)體i的適應(yīng)度函數(shù);N為種群規(guī)模,N=50。
(4) 交叉操作。因?yàn)椴捎脤?shí)數(shù)編碼,所以交叉操作方法采用實(shí)數(shù)交叉法,第k個(gè)染色體ak和第l個(gè)染色體在j位的交叉操作方法如下:
(10)
其中,b為[0,1]區(qū)間的隨機(jī)數(shù)。
(5) 選取第i個(gè)個(gè)體的第j個(gè)基因aij進(jìn)行變異,變異操作方法如下:
(11)
其中,amax為基因aij的上界;amin為基因aij的下界;f(g)=r2(1-g/Gmax)2,r2為一隨機(jī)數(shù),g為當(dāng)前迭代次數(shù),Gmax為最大進(jìn)化次數(shù);r為[0,1]區(qū)間的隨機(jī)數(shù)。
采摘機(jī)器人樣機(jī)系統(tǒng)如圖2所示,其中相機(jī)型號(hào)為Bumbelee2雙目相機(jī),使用IEEE-1394線與計(jì)算機(jī)連接;機(jī)械臂為ABB六自由度機(jī)械臂,重復(fù)定位精度為0.02 mm。
圖2 采摘機(jī)器人樣機(jī)
首先在機(jī)械臂末端執(zhí)行器上貼上靶標(biāo),使機(jī)械臂末端運(yùn)動(dòng)到指定坐標(biāo)點(diǎn),然后雙目相機(jī)拍攝圖片,處理后得到靶標(biāo)在相機(jī)坐標(biāo)系下的坐標(biāo),與機(jī)械臂坐標(biāo)系下的坐標(biāo)組成一組對(duì)應(yīng)坐標(biāo)。重復(fù)此過程得到94組坐標(biāo)值,作為網(wǎng)絡(luò)學(xué)習(xí)樣本。
按照上述實(shí)驗(yàn)流程依次得到靶標(biāo)在2個(gè)坐標(biāo)系下的多組坐標(biāo)值。為降低實(shí)驗(yàn)數(shù)據(jù)的隨機(jī)誤差,各實(shí)驗(yàn)樣本組盡量選取線性無(wú)關(guān)的點(diǎn)。以相機(jī)坐標(biāo)系下的坐標(biāo)值Xc、Yc、Zc作為網(wǎng)絡(luò)的輸入,選取靶標(biāo)在機(jī)械臂坐標(biāo)系下相應(yīng)的坐標(biāo)Xr、Yr、Zr為輸出,得到94組數(shù)據(jù),部分樣本數(shù)據(jù)見表1所列。
以表1中94組數(shù)據(jù)作為BP神經(jīng)網(wǎng)絡(luò)的測(cè)試樣本。首先將網(wǎng)絡(luò)學(xué)習(xí)樣本數(shù)據(jù)歸一化到[-1,1],再經(jīng)過多次迭代,使實(shí)驗(yàn)數(shù)據(jù)的網(wǎng)絡(luò)訓(xùn)練誤差值逐步收斂。
表1 手眼標(biāo)定部分樣本數(shù)據(jù)
遺傳算法通過隨機(jī)問題假設(shè)集合,根據(jù)適應(yīng)度函數(shù)對(duì)個(gè)體進(jìn)行數(shù)值評(píng)價(jià),遺傳算子模擬遺傳過程中出現(xiàn)的復(fù)制、交叉和變異現(xiàn)象對(duì)種群個(gè)體擇優(yōu);遺傳算法對(duì)BP網(wǎng)絡(luò)初始權(quán)值和閾值進(jìn)行優(yōu)化賦值,再利用BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型局部尋優(yōu);遺傳算法進(jìn)化過程中設(shè)置種群數(shù)為40,進(jìn)化代數(shù)為50,交叉概率為0.7,變異概率為0.01。上述遺傳BP神經(jīng)網(wǎng)絡(luò)模型用Matlab軟件編程實(shí)現(xiàn)。遺傳進(jìn)化過程中誤差變化曲線如圖3所示。由圖3可知,個(gè)體進(jìn)化到43代后適應(yīng)度和誤差平方和基本沒有變化,可見遺傳算法在改善BP神經(jīng)網(wǎng)絡(luò)的收斂速度和誤差精度方面效果突出。
圖3 每代最優(yōu)個(gè)體誤差變化曲線
遺傳BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)數(shù)據(jù)反歸一化后與傳統(tǒng)的最小二乘法標(biāo)定的94組樣本距離絕對(duì)誤差比較如圖4所示。采用均方根誤差MSE和絕對(duì)誤差MAE 2個(gè)特征指標(biāo)對(duì)遺傳BP神經(jīng)網(wǎng)絡(luò)、BP神經(jīng)網(wǎng)絡(luò)、線性回歸3種模型進(jìn)行比較,各類指標(biāo)值越大預(yù)測(cè)值與實(shí)測(cè)值的偏差越大,各統(tǒng)計(jì)指標(biāo)結(jié)果見表2所列。由表2可知,經(jīng)遺傳法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)模型的擬合效果要優(yōu)于BP神經(jīng)網(wǎng)絡(luò)模型和線性回歸模型。
圖4 2種模型絕對(duì)誤差
表2 3種模型結(jié)果的比較
為檢驗(yàn)3種模型標(biāo)定效果,設(shè)計(jì)了驗(yàn)證實(shí)驗(yàn)。用雙目相機(jī)拍攝目標(biāo)果實(shí)照片,并讀取其在攝像機(jī)坐標(biāo)系下的三維坐標(biāo);經(jīng)上述已建立的3種標(biāo)定模型將攝像機(jī)坐標(biāo)轉(zhuǎn)換為機(jī)械臂坐標(biāo);將機(jī)械臂坐標(biāo)輸送到機(jī)械臂作為靶標(biāo)定位坐標(biāo),雙目相機(jī)測(cè)量靶標(biāo)與目標(biāo)果實(shí)的距離即標(biāo)定誤差。為降低試驗(yàn)數(shù)據(jù)的隨機(jī)誤差,每次實(shí)驗(yàn)?zāi)繕?biāo)果實(shí)放置不同位置,重復(fù)8次。
實(shí)驗(yàn)結(jié)果見表3所列。
表3 3種模型驗(yàn)證實(shí)驗(yàn)結(jié)果
本文針對(duì)線性回歸模型不能消除雙目視覺系統(tǒng)非線性系統(tǒng)誤差的缺點(diǎn),建立了BP神經(jīng)網(wǎng)絡(luò),考慮到BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)易陷入局部極小值和收斂速度慢的缺點(diǎn),將遺傳算法引入到BP神經(jīng)網(wǎng)絡(luò)模型中,經(jīng)過選擇、交叉、變異以及種群進(jìn)化操作優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的初始權(quán)值和閾值,提出了基于遺傳BP神經(jīng)網(wǎng)絡(luò)的雙目相機(jī)標(biāo)定方法。通過實(shí)驗(yàn)對(duì)比了本文方法、BP神經(jīng)網(wǎng)絡(luò)、線性回歸3種模型,結(jié)果表明,本文方法提高了收斂速度,克服了陷入局部極小值的缺點(diǎn),達(dá)到了很好的標(biāo)定精度。