余曉蘭 萬(wàn) 云 陳靖照
(1. 重慶城市職業(yè)學(xué)院,重慶 402160; 2. 鄭州大學(xué),河南 鄭州 450000)
在以分揀機(jī)器人應(yīng)用為核心的食品生產(chǎn)線上,快速識(shí)別和定位作業(yè)對(duì)象是分揀機(jī)器人的重要技術(shù)之一[1]。隨著生產(chǎn)企業(yè)的不斷發(fā)展和機(jī)器人技術(shù)的進(jìn)步,對(duì)生產(chǎn)線的效率和機(jī)器人工作的復(fù)雜性要求越來(lái)越嚴(yán)格,機(jī)器人加裝視覺(jué)傳感器逐漸成為發(fā)展的主流[2]。因此,研究食品分揀機(jī)器人的視覺(jué)伺服控制方法具有重要的現(xiàn)實(shí)意義。
滕游等[3]提出了一種將內(nèi)部點(diǎn)傳輸和圖像反饋相結(jié)合用于視覺(jué)伺服預(yù)測(cè)控制,將視覺(jué)控制器設(shè)計(jì)問(wèn)題轉(zhuǎn)化為控制量和可視性約束問(wèn)題,得到控制量的迭代解,并驗(yàn)證了該方法的有效性。陶波等[4]從3個(gè)方面(目標(biāo)函數(shù)、軌跡規(guī)劃、控制器)對(duì)無(wú)標(biāo)定視覺(jué)伺服控制系統(tǒng)進(jìn)行了分析,針對(duì)軌跡規(guī)劃可能存在的問(wèn)題,從空間軌跡優(yōu)化和避障方面探討了現(xiàn)有的可行解決方案。李光等[5]提出了一種基于殘差BP神經(jīng)網(wǎng)絡(luò)的6自由度機(jī)器人視覺(jué)伺服控制方法,使用多個(gè)殘差網(wǎng)絡(luò)模塊來(lái)加深BP神經(jīng)網(wǎng)絡(luò)的深度。結(jié)果表明殘差模塊的輸入信息可以跨網(wǎng)絡(luò)層發(fā)送,這就解決了網(wǎng)絡(luò)模型隨深度的增加易出現(xiàn)梯度消失的問(wèn)題且能提高網(wǎng)絡(luò)的性能。Li等[6]提出了一種混合視覺(jué)伺服系統(tǒng),可同時(shí)控制非完整約束的底盤(pán)和機(jī)械手;基于移動(dòng)機(jī)器人的運(yùn)動(dòng)微分方程,推導(dǎo)出了整個(gè)機(jī)器人的全局雅可比矩陣,結(jié)合位置信息和視覺(jué)圖像信息推導(dǎo)出HVS控制方程;引入了卡爾曼濾波器來(lái)校正機(jī)械手邊緣的位置和方向,以避免觀測(cè)位置誤差;并驗(yàn)證了該方法的優(yōu)越性。然而,上述研究的實(shí)時(shí)性較差,且受機(jī)器人運(yùn)動(dòng)模型的影響,實(shí)際使用中準(zhǔn)確率不高,需進(jìn)一步提高適應(yīng)性。
基于此,文章擬提出一種基于改進(jìn)粒子群算法(PSO)和BP神經(jīng)網(wǎng)絡(luò)的食品分揀機(jī)器人視覺(jué)伺服控制方法;粒子群算法在迭代過(guò)程中使用交叉和變異操作來(lái)保持種群多樣性,對(duì)BP神經(jīng)網(wǎng)絡(luò)的初始權(quán)值和閾值進(jìn)行優(yōu)化,并通過(guò)仿真和實(shí)驗(yàn)驗(yàn)證該方法的有效性,旨在為機(jī)器人視覺(jué)伺服控制技術(shù)的研究提供一定的參考。
建立SNRB6型關(guān)節(jié)機(jī)器人的運(yùn)動(dòng)學(xué)模型,如圖1所示為一個(gè)六軸機(jī)器人及其D-H坐標(biāo)系。其中1~3軸控制位置,4~6軸控制姿態(tài)。
圖1 六軸機(jī)器人及其D-H坐標(biāo)系
從D-H坐標(biāo)系和機(jī)器人結(jié)構(gòu)出發(fā),推導(dǎo)機(jī)器人的D-H 參數(shù)。D-H參數(shù)和關(guān)節(jié)參數(shù)見(jiàn)表1。
表1 機(jī)器人D-H參數(shù)
根據(jù)變換關(guān)系,導(dǎo)出末端與坐標(biāo)系的關(guān)系,即正運(yùn)動(dòng)學(xué),如式(1)所示[7]。
(1)
式中:
[n,o,a]——機(jī)器人的末端姿勢(shì);
[px,py,pz]T——機(jī)器人的末端位置。
(2)
式中:
ci=cosθi;
si=sinθi;
s23=sin(θ2+θ3);
c23=cos(θ2+θ3);
U1=px-d6ax;
U2=py-d6ay;
A=(-d6+pz-d1);
B=d6(axc1+ays1)-(pxc1+pys1-a1);
l=a2s3+d4。
因此,可以計(jì)算末端和各關(guān)節(jié)的映射關(guān)系。
采用攝像頭安裝在機(jī)器人的末端執(zhí)行器上跟隨機(jī)器人運(yùn)動(dòng),采集圖像信息提取特征后與期望圖像特征進(jìn)行對(duì)比,將誤差值轉(zhuǎn)換為各關(guān)節(jié)的角度值[8]。機(jī)器人向目標(biāo)運(yùn)動(dòng),直到特征誤差為零。圖2為基于圖像的視覺(jué)伺服控制系統(tǒng)結(jié)構(gòu)。
圖2 視覺(jué)伺服控制系統(tǒng)結(jié)構(gòu)
(3)
式中:
KP、KI——比例和積分系數(shù)矩陣,對(duì)稱(chēng)正定可調(diào);
J+——雅可比矩陣的偽逆矩陣。
BP神經(jīng)網(wǎng)絡(luò)在機(jī)器人視覺(jué)伺服控制方面被廣泛應(yīng)用,但存在收斂慢、過(guò)擬合、局部極值等問(wèn)題[10]。通過(guò)粒子群算法在迭代過(guò)程中進(jìn)行交叉和變異保持種群多樣性,對(duì)BP神經(jīng)網(wǎng)絡(luò)的初始權(quán)值和閾值進(jìn)行優(yōu)化。
BP神經(jīng)網(wǎng)絡(luò)由兩部分組成:前向和反向傳播[11]。通過(guò)實(shí)際值和期望值進(jìn)行參數(shù)調(diào)整,使輸出接近期望值,圖3 為網(wǎng)絡(luò)拓?fù)鋱D。
圖3 BP網(wǎng)絡(luò)拓?fù)?/p>
設(shè)置輸入層n、隱藏層l、輸出層m、輸入層輸入值Xn、輸出層輸出值Ym、網(wǎng)絡(luò)權(quán)重ωij和ωjk等。網(wǎng)絡(luò)是從自變量到因變量的非線性映射,大量樣本用于訓(xùn)練,步驟為:
(1) 參數(shù)初始化:輸入層節(jié)點(diǎn)數(shù)n、隱藏層節(jié)點(diǎn)數(shù)l、輸出層節(jié)點(diǎn)數(shù)m、連接權(quán)值ωij和ωjk、隱藏閾值a、輸出層閾值b等相關(guān)參數(shù)。
(2) 隱含層Hj輸出:按式(4)計(jì)算[12]。
(4)
式中:
f——該層的激活功能。
(3) 輸出層輸出Ok:按式(5)計(jì)算[13]。
(5)
(4) 誤差計(jì)算:按式(6)計(jì)算。
ek=Yk-Ok,k=1,2,…,m,
(6)
式中:
O、Y——實(shí)際輸出和期望輸出。
(5) 更新后的權(quán)值和閾值計(jì)算:按式(7)計(jì)算。
(7)
式中:
η——學(xué)習(xí)率。
(6) 對(duì)迭代終止條件進(jìn)行判斷。滿足條件則結(jié)束,不滿足返回步驟(2)。
粒子群優(yōu)化算法是一種用于解決多用途、多變量等問(wèn)題的全局優(yōu)化算法[14]。通過(guò)粒子適應(yīng)度表現(xiàn)優(yōu)勢(shì),每個(gè)粒子的適應(yīng)度取決于目標(biāo)函數(shù)。隨著粒子數(shù)量的增加,新粒子的位置由飛行速度v決定,大小由計(jì)算得到。
通過(guò)式(8)和式(9)進(jìn)行速度和位置更新[15]。
(8)
(9)
式中:
c1、c2——自學(xué)習(xí)和社會(huì)學(xué)習(xí)因子(c1=c2=2);
r1、r2——[0,1]之間的隨機(jī)數(shù);
pbest——個(gè)體最優(yōu)解;
gbest——全局最優(yōu)解;
ω——權(quán)重因子。
但是,粒子群優(yōu)化算法在全局優(yōu)化過(guò)程中會(huì)陷入局部極值。雖然在局部?jī)?yōu)化過(guò)程中不易陷入局部?jī)?yōu)化,但會(huì)降低收斂速度[16]。使用遺傳算法來(lái)優(yōu)化粒子群算法,粒子群算法在迭代過(guò)程中進(jìn)行交叉和變異保持種群多樣性,提高搜索能力。具體步驟為:
(1) 初始化粒子群算法和遺傳算法參數(shù)。
(2) 計(jì)算適應(yīng)度值,更新種群的個(gè)體極值pbest和全局極值gbest。
(3) 對(duì)粒子的位置和速度進(jìn)行更新,適應(yīng)度值從小到大排序分為3個(gè)級(jí)別:適應(yīng)度值較好的種群為U1,適應(yīng)度一般的種群為U2,適應(yīng)度狀況較差的種群為U3。
(4) 粒子群算法的交叉操作。將U1子群直接遺傳到下一代,對(duì)U2子群以交叉概率進(jìn)行粒子交叉運(yùn)算。通過(guò)比較交叉后父子粒子的適應(yīng)度值,將適應(yīng)性強(qiáng)的粒子遺傳到下一次迭代[17]。
(5) 粒子群算法的變異操作。對(duì)子種群U3進(jìn)行變異操作,并將結(jié)果返回粒子群。
(6) 重新計(jì)算PSO適應(yīng)度值并更新pbest和gbest。
(7) 判斷是否滿足終止條件,滿足條件則結(jié)束,不滿足返回步驟(3)。
將GA-PSO算法輸出最優(yōu)值作為BP神經(jīng)網(wǎng)絡(luò)的初始權(quán)值和閾值。圖4為GA-PSO算法的流程。
圖4 GA-PSO算法流程
通過(guò)GA-PSO算法對(duì)BP神經(jīng)網(wǎng)絡(luò)的初始權(quán)重和閾值進(jìn)行優(yōu)化,達(dá)到最小化輸出誤差的目標(biāo)。優(yōu)化前,根據(jù)BP神經(jīng)網(wǎng)絡(luò)參數(shù)對(duì)粒子群進(jìn)行編碼,如果網(wǎng)絡(luò)的輸入層、隱藏層和輸出層的節(jié)點(diǎn)數(shù)分別為I、J、K,則BP神經(jīng)網(wǎng)絡(luò)有D=(I+1)J+(J+1)K個(gè)參數(shù)。該算法的具體步驟為:
(1) 對(duì)BP神經(jīng)網(wǎng)絡(luò)進(jìn)行參數(shù)初始化,包括輸入層節(jié)點(diǎn)數(shù)、隱藏層節(jié)點(diǎn)數(shù)和輸出層節(jié)點(diǎn)數(shù)等。
(2) 對(duì)粒子群種群進(jìn)行初始化,根據(jù)BP神經(jīng)網(wǎng)絡(luò)參數(shù)對(duì)粒子群進(jìn)行編碼,每條編碼信息代表一個(gè)個(gè)體。
(3) 參數(shù)優(yōu)化,通過(guò)GA-PSO算法迭代找到全局最優(yōu)解即BP神經(jīng)網(wǎng)絡(luò)的最優(yōu)參數(shù)。
(4) 將全局最優(yōu)解作為BP神經(jīng)網(wǎng)絡(luò)的初始權(quán)值和閥值進(jìn)行訓(xùn)練,直到滿足終止條件,輸出最終結(jié)果。
圖5為GA-PSO-BP神經(jīng)網(wǎng)絡(luò)算法的流程圖。
圖5 改進(jìn)BP神經(jīng)網(wǎng)絡(luò)流程
機(jī)器人型號(hào)為SNRB6,攝像頭型號(hào)為In-Sight 5705,使用眼在手上方式,攝像頭安裝在機(jī)器人末端執(zhí)行器上。仿真設(shè)備為聯(lián)想PC,操作系統(tǒng)為Windows7 64位旗艦,Intel i5 2450m CPU,2.5 GHz頻率,8 GB內(nèi)存,MATLAB r2018a為仿真平臺(tái)。
BP神經(jīng)網(wǎng)絡(luò)參數(shù):輸入節(jié)點(diǎn)8個(gè),輸出節(jié)點(diǎn)6個(gè),隱藏層10個(gè),選擇 Tansig函數(shù)和Purelin函數(shù)作為傳遞函數(shù)。訓(xùn)練算法使用LM算法,其中最大迭代次數(shù)為100、學(xué)習(xí)率0.4、動(dòng)量因子0.8和期望誤差10-6。
粒子群參數(shù):慣性權(quán)重為0.7,兩個(gè)學(xué)習(xí)因子均為2。
遺傳算法參數(shù):交叉和變異概率分別為0.6,0.1。種群數(shù)均為80,最大跌代次數(shù)為100。
為了驗(yàn)證文中控制模型的優(yōu)越性,將GA-PSO-BP神經(jīng)網(wǎng)絡(luò)模型與改進(jìn)前的BP神經(jīng)網(wǎng)絡(luò)模型進(jìn)行對(duì)比分析,結(jié)果見(jiàn)圖6。
由圖6可知,PSO-GA-BP神經(jīng)網(wǎng)絡(luò)模型收斂速度優(yōu)于未改進(jìn)前的BP神經(jīng)網(wǎng)絡(luò)模型,PSO-GA-BP神經(jīng)網(wǎng)絡(luò)模型在80次迭代后收斂到所需的輸出精度8.176 3×10-6,而B(niǎo)P神經(jīng)網(wǎng)絡(luò)模在100次迭代后未收斂到所需的輸出精度。結(jié)果表明,PSO-GA-BP神經(jīng)網(wǎng)絡(luò)與改進(jìn)前的BP神經(jīng)網(wǎng)絡(luò)相比收斂速度提升較為明顯。
圖6 不同模型誤差變化曲線對(duì)比
對(duì)圖像進(jìn)行預(yù)處理、邊緣檢測(cè)、特征提取后,選取目標(biāo)物體上4個(gè)孔的中心點(diǎn)作為圖像特征點(diǎn)A、B、C、D。在圖像空間中對(duì)應(yīng)的特征點(diǎn)為A′、B′、C′、D′。目標(biāo)是控制分揀機(jī)器人的運(yùn)動(dòng),到達(dá)特征點(diǎn)坐標(biāo)重合位置,實(shí)際坐標(biāo)與期望坐標(biāo)構(gòu)成一個(gè)8維特征向量,神經(jīng)網(wǎng)絡(luò)控制器的8個(gè)輸入。
(1) 期望的圖像坐標(biāo)
(2) 初始關(guān)節(jié)角度
q0=[1.159 4,1.116 5,0.681 9,-0.387 2,-1.033 8,-1.502 4]T。
(3) 攝像機(jī)參數(shù):焦距8 mm,分辨率8萬(wàn)Pixel/m,目標(biāo)成像深度1.5 m,圖像中心點(diǎn)為(338,338),控制器比例系數(shù)kp=1.5,采樣時(shí)間0.2 s。
通過(guò)試驗(yàn)對(duì)GA-PSO-BP神經(jīng)網(wǎng)絡(luò)和復(fù)合雅可比矩陣J+兩種視覺(jué)伺服控制方法進(jìn)行對(duì)比分析。復(fù)合雅可比矩陣表示圖像特征空間與關(guān)節(jié)角度、移動(dòng)平臺(tái)位姿空間之間的手眼映射關(guān)系[18]。圖7為不同伺服控制方法機(jī)器人各關(guān)節(jié)的運(yùn)動(dòng)軌跡。
由圖7可知,PSO-GA-BP神經(jīng)網(wǎng)絡(luò)控制優(yōu)于傳統(tǒng)的J+控制,可以更好地逼近圖像特征誤差值與關(guān)節(jié)角度之間的非線性關(guān)系,極大地提高了關(guān)節(jié)的跟蹤能力,從而實(shí)現(xiàn)對(duì)分揀機(jī)器人的高精度控制。
圖7 機(jī)器人關(guān)節(jié)軌跡
為了分析試驗(yàn)誤差,采用圖像特征誤差范圍數(shù)為指標(biāo)進(jìn)行分析,得到的圖像特征誤差范數(shù)變化曲線如圖8所示。
圖8 圖像特征誤差范數(shù)變化曲線
由圖8可知,GA-PSO-BP神經(jīng)網(wǎng)絡(luò)的視覺(jué)伺服控制圖像特征誤差范數(shù)優(yōu)于J+控制,運(yùn)動(dòng)20 s時(shí)GA-PSO-BP神經(jīng)網(wǎng)絡(luò)控制特征誤差范數(shù)為4.762 0,J+控制的特征誤差范數(shù)為30.128 7。結(jié)果表明,基于GA-PSO-BP神經(jīng)網(wǎng)絡(luò)的視覺(jué)伺服控制方案大大簡(jiǎn)化了計(jì)算復(fù)雜度,建立的圖像特征與關(guān)節(jié)角的非線性關(guān)系也更為準(zhǔn)確,說(shuō)明GA-PSO-BP神經(jīng)網(wǎng)絡(luò)控制器具有訓(xùn)練精度高和收斂速度快等優(yōu)點(diǎn)。
由圖9可知,圖像特征最終收斂位置的像素為:
與期望位置相比,像素的平均絕對(duì)誤差約為2.1 Pixel,位置逼近的相對(duì)誤差約為0.38%,說(shuō)明分揀機(jī)器人的末端執(zhí)行器已到達(dá)所需位置,系統(tǒng)效率高,實(shí)用性能好,該方法可用于食品生產(chǎn)中。
星形為初始值,點(diǎn)為最終收斂值,箭頭為變化方向
文中提出了將BP神經(jīng)網(wǎng)絡(luò)和改進(jìn)粒子群優(yōu)化算法相結(jié)合用于視覺(jué)伺服控制。結(jié)果表明,與傳統(tǒng)控制方法相比,該方法可以較快地到達(dá)指定位置,且效率較高??紤]到目前的試驗(yàn)設(shè)備和數(shù)據(jù)規(guī)模,文中提出的分揀機(jī)器人視覺(jué)伺服控制方法還處于早期階段,僅對(duì)控制方法進(jìn)行了分析,未對(duì)圖像處理過(guò)程進(jìn)行研究,也未考慮障礙物和關(guān)節(jié)限制等問(wèn)題。后期應(yīng)不斷完善分揀機(jī)器人相關(guān)功能,以適應(yīng)未來(lái)不斷變化的應(yīng)用環(huán)境。