韓順杰 符金鑫 單新超
(長春工業(yè)大學(xué)電氣與電子工程學(xué)院 吉林 長春 130012)
自Shirai和Inoue展示如何使用視覺反饋環(huán)來校正機器人的位置以提高任務(wù)精度以來,國內(nèi)外眾多研究者在機器人操縱器的視覺控制方面已經(jīng)取得了許多成果。傳統(tǒng)的機器人視覺伺服控制系統(tǒng)需要進行校準(zhǔn),該技術(shù)需要明確攝像機的固有參數(shù)、手眼變換參數(shù)、機器人運動學(xué)的參數(shù),且伺服系統(tǒng)的控制精度很大程度上取決于校準(zhǔn)的精度。神經(jīng)網(wǎng)絡(luò)在簡化控制算法、提高系統(tǒng)適用性方面效果較好,許多學(xué)者對神經(jīng)網(wǎng)絡(luò)控制都有所研究。
Hornik等[1]闡述了神經(jīng)網(wǎng)絡(luò)只需要一個隱藏層,就可以精確地逼近任何復(fù)雜函數(shù);Ahmed等[2]提出了一種用神經(jīng)網(wǎng)絡(luò)來確定空間三維點間投影變換矩陣及對應(yīng)的二維圖像像素點的方法,其神經(jīng)網(wǎng)絡(luò)包括攝像機內(nèi)在參數(shù)和外在參數(shù);李鑫等[3]建立了條件信息卷積生成網(wǎng)絡(luò),增加圖像信息和潛在信息,利用Q網(wǎng)絡(luò)發(fā)揮類別信息和潛在信息對訓(xùn)練的引導(dǎo)作用。文獻[4]中使用了一種反向傳播神經(jīng)算法來學(xué)習(xí)用于導(dǎo)航的圖像坐標(biāo)和實際空間坐標(biāo)之間的映射關(guān)系,保證精度的同時簡化了標(biāo)定過程;文獻[5]采用反投影神經(jīng)網(wǎng)絡(luò)近似雅可比矩陣來確定位置所需的關(guān)節(jié)角度;文獻[6]提出了一種利用徑向基函數(shù)網(wǎng)絡(luò)學(xué)習(xí)視動協(xié)調(diào)的方法;文獻[7]采用一種反向傳播神經(jīng)網(wǎng)絡(luò),在不標(biāo)定攝像機外部和內(nèi)部參數(shù)的情況下,將圖像矩變化映射到機器人位姿位移的轉(zhuǎn)換。
由于神經(jīng)網(wǎng)絡(luò)的初始互聯(lián)權(quán)值通常是隨機給定的,許多解決視覺控制問題的神經(jīng)系統(tǒng)方案都需要長時間的訓(xùn)練,因此網(wǎng)絡(luò)的學(xué)習(xí)時間和最終互聯(lián)權(quán)值在不同的訓(xùn)練條件下時間有所不同。也就是說,初始互聯(lián)權(quán)值確定的盲目性可能導(dǎo)致模型訓(xùn)練時間長、收斂速度慢等問題。利用遺傳算法全局搜索與神經(jīng)網(wǎng)絡(luò)結(jié)合使用可以改善上述問題。本文在研究前人所提方法的基礎(chǔ)上,提出一種基于遺傳算法優(yōu)化的神經(jīng)網(wǎng)絡(luò)的圖像視覺伺服控制器,該控制器近似于圖像特征到關(guān)節(jié)角度的非線性變換,使系統(tǒng)完全獨立于機器人運動學(xué)和攝像機標(biāo)定。這種混合進化神經(jīng)網(wǎng)絡(luò)建模方法可以加速圖像誤差的收斂,為機器人控制提供了一種簡單有效的方法。
視覺伺服的主要目標(biāo)是針對圖像中的特定對象或特征將末端執(zhí)行器移動到特定的姿態(tài)。本文以基于圖像的視覺伺服系統(tǒng)為例,直接將圖像測量的誤差信號映射到執(zhí)行器命令中,這可以減少計算延遲,消除圖像解釋的必要性以及由于傳感器建模和攝像機校準(zhǔn)造成的誤差。
(1)
式中:JI∈Rm×n。
(2)
式中:n表征圖像特征維數(shù);m表征任務(wù)空間維數(shù),矩陣列數(shù)將隨m的變化而變化。準(zhǔn)確地說,對于坐標(biāo)系中三維點X=[xcyczc]T在圖像中投影坐標(biāo)為X=[xIyI]T,可得式(3)。
(3)
式中:f為焦距;α和β為像素尺寸比。對式(3)的投影時間求導(dǎo)可得式(4)。
(4)
此外,假設(shè)相機相對于目標(biāo)的平動速度v(t)和角速度w(t)分別如下:
(5)
(6)
將式(6)代入式(4)可得:
(7)
式中:
(8)
(9)
式中:Jq是機器人雅可比矩陣。令J=JIJq則可得:
(10)
式中:J為機器人與圖像雅可比矩陣的復(fù)合。
基于圖像的視覺伺服控制系統(tǒng)如圖1所示。根據(jù)圖像信息控制機器人末端執(zhí)行器達到預(yù)期姿態(tài)時,需要通過攝像系統(tǒng)和圖像處理獲取圖像特征。若當(dāng)前圖像特征與期望圖像特征之間存在誤差時,通過視覺控制器將誤差轉(zhuǎn)化為機器人關(guān)節(jié)角誤差,并將機器人關(guān)節(jié)角命令放入機器人控制器中,此時控制器會輸出相應(yīng)的命令給機器人伺服電機,直至機器人末端執(zhí)行器的位姿被調(diào)節(jié)到圖像特征的誤差趨于零為止。
圖1 圖像視覺伺服框圖
假設(shè)所需的圖像特征參數(shù)的向量為ξd,目前圖像的特征參數(shù)為ξ,則圖像誤差為:
e=ξd-ξ
(11)
根據(jù)式(10)和式(11),設(shè)控制器如下:
(12)
若在視覺伺服控制中計算圖像雅可比矩陣和機器人雅可比矩陣以及各自的偽逆矩陣非常復(fù)雜和費時,因此為了避免繁瑣的過程,利用BP神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)圖像特征變化率與機器人關(guān)節(jié)速度的非線性關(guān)系,并在此基礎(chǔ)上引入了遺傳算法求解最優(yōu)網(wǎng)絡(luò)初始權(quán)值以提高培訓(xùn)效率。
BP神經(jīng)網(wǎng)絡(luò)由輸入層、隱含層和輸出層組成,是一種誤差反向傳播算法[9],前一層與后一層的連接表示為權(quán)值W,用θ表示閾值。W和θ的初始值是隨機產(chǎn)生的,并且總是以相對較小的值被賦予到啟動器中?;贐P神經(jīng)網(wǎng)絡(luò)算法的視覺控制模型如圖2所示。
圖2 BP算法視覺模型
隱層和輸出層激活函數(shù)分別設(shè)為雙曲正切及線性函數(shù)[10]。假設(shè)任務(wù)空間中的目標(biāo)是一個正方形對象,選擇其四個頂點作為與圖像空間中的點相對應(yīng)的特征點,即圖像特征向量有八個維度。計算當(dāng)前圖像特征與期望特征之間的誤差,并以此作為模型輸入量:
△x1,△y1;△x2,△y2;△x3,△y3;△x4,△y4
輸出為機器人六個關(guān)節(jié)角變化量:
△q1,△q2,△q3,△q4,△q5,△q6
遺傳算法是通過對種群進行反復(fù)修改,從而在一定范圍內(nèi)求出個人解決方案的全局最優(yōu)解,涵蓋了自然選擇和遺傳學(xué)概念的隨機優(yōu)化技術(shù)。遺傳算法可定義為八元組:
SGA=(C,E,P0,M,Φ,Γ,Ψ,T)
(13)
式中:C為染色體表示;E為適應(yīng)度函數(shù);P0為初始種群;M為種群大小;Φ為選擇算子;Γ為交叉算子;Ψ為變異算子;T為終端條件。
遺傳算法的基本步驟如下:
步驟1將問題的解決方案編碼為染色體。
步驟2隨機生成初始總體。
步驟3確定目標(biāo)函數(shù)及個體的相對適合度。在很大程度上,適合度決定了進化。
步驟4根據(jù)突變、適應(yīng)度和交叉行為誕生下一代種群。
步驟5判斷種群的表現(xiàn)。如果它不滿足某個目標(biāo),返回到步驟4,重復(fù)操作,直到它滿足標(biāo)準(zhǔn)。這樣,最終找到環(huán)境適應(yīng)個體。
優(yōu)化算法的主要思想如下:訓(xùn)練BP網(wǎng)絡(luò)之前從包含所有可用個體的搜索空間中尋找網(wǎng)絡(luò)最佳權(quán)值和閾值,利用樣本集對權(quán)值和閾值進行反復(fù)訓(xùn)練,減小模型輸出與期望輸出的差值,提高訓(xùn)練效率。
算法優(yōu)化的三個步驟如下:
1) 編碼方式。為了保證BP網(wǎng)絡(luò)的學(xué)習(xí)精度,避免權(quán)值的階躍變化,本文采用實碼法。由圖2可知,互聯(lián)權(quán)重和閾值的總數(shù)為(8×10+10+10×6+6)=156。這156個數(shù)據(jù)包括80個輸入神經(jīng)元與隱含神經(jīng)元互聯(lián)權(quán)值、60個輸出神經(jīng)元與隱含神經(jīng)元互聯(lián)權(quán)值、10個隱含層閾值和6個輸出層閾值,它們都被編程為實數(shù)染色體。
2) 適應(yīng)度函數(shù)。標(biāo)準(zhǔn)測量函數(shù)是BP算法輸出層實際輸出與預(yù)期輸出之間的誤差平方和[11],函數(shù)定義如下:
(14)
(15)
式中:P表示種群規(guī)模;yi和di分別表示輸出層實際輸出和預(yù)期輸出。
3) 遺傳操作。父方染色體采用算數(shù)交叉算子選擇,使其后代具有雙親的遺傳基因。引入自適應(yīng)變異算子調(diào)整變異率以提高搜索能力和收斂性能。
圖3為遺傳算法對BP神經(jīng)網(wǎng)絡(luò)的改進,其中:S1、S2是遺傳算法的平方和誤差及均方誤差;e1、e2是它們的期望誤差。首先利用圖像模型建立BP網(wǎng)絡(luò),得到初始化BP網(wǎng)絡(luò)權(quán)值和閾值并計算適應(yīng)度,若不符合期望誤差e1則進行基因操作生成新的種群并重復(fù)上一操作步驟;若滿足要求則將初始值傳遞給遺傳算法進行模型訓(xùn)練,訓(xùn)練后若不符合期望誤差e2則更新網(wǎng)絡(luò)權(quán)值和閾值重新迭代計算,直至符合要求輸出結(jié)果。
圖3 遺傳算法優(yōu)化流程
本文的目的是利用優(yōu)化后的BP神經(jīng)網(wǎng)絡(luò)視覺伺服模型在不標(biāo)定的情況下直接從視覺域過渡到關(guān)節(jié)域來控制機器人機械手在三維空間中對目標(biāo)進行定位操作。整個過程包括數(shù)據(jù)采集、模型學(xué)習(xí)和機器人視覺伺服,其模擬仿真過程如下:
1) 數(shù)據(jù)采樣。為了獲取BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練樣本,根據(jù)圖1所示利用MATLAB的Robotics Toolbox構(gòu)建了視覺伺服仿真模型,其中使用J+計算關(guān)節(jié)坐標(biāo)與圖像特征之間的關(guān)系。機器人模型為PUMA 560,通過將機器人工具箱中的功能與MATLAB子系統(tǒng)模塊相結(jié)合,實現(xiàn)各部分運動模型及其雅可比矩陣的建立。運行仿真系統(tǒng)后可得圖像特征的誤差和相應(yīng)的關(guān)節(jié)角誤差。
2) 模仿學(xué)習(xí)。根據(jù)圖2和圖3,在學(xué)習(xí)階段進行BP神經(jīng)網(wǎng)絡(luò)參數(shù)的創(chuàng)建和訓(xùn)練。在MATLAB 中使用遺傳算法軟件包和神經(jīng)網(wǎng)絡(luò)工具箱求解編程函數(shù)值。為了具有良好的函數(shù)逼近性能,其參數(shù)設(shè)置如下:BP算法學(xué)習(xí)率為0.4,期望誤差e2=10-6。在遺傳算法中,種群規(guī)模P=80,交叉概率Pc=0.6,期望誤差e1=0.001。然后對模型進行訓(xùn)練,實現(xiàn)視覺伺服控制器的設(shè)計。為了說明本文方法的優(yōu)點,將本文方法與采用傳統(tǒng)BP算法、Fuzzy算法、PSO對樣本的訓(xùn)練效果進行了對比,其結(jié)果如圖4所示。
圖4 模型訓(xùn)練效果
可以看出,當(dāng)期望誤差為10-6時,傳統(tǒng)BP算法迭代時容易陷入局部極小值,并且經(jīng)過反復(fù)訓(xùn)練在50步內(nèi)精度僅為5.598 95×10-4;Fuzzy算法和PSO初始收斂速度較快,在20步左右達到穩(wěn)態(tài),但精度同樣無法滿足要求;具有最佳初始權(quán)重和閾值的改進BP神經(jīng)網(wǎng)絡(luò)可以在15步左右收斂到指定精度,且均方誤差為3.414 46×10-6。其訓(xùn)練速度遠遠小于300步[12],表明兩者混合優(yōu)化后的算法收斂速度更快、精度更高。
3) 機器人視覺伺服。采用經(jīng)過遺傳算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)作為視覺控制器構(gòu)建如圖1所示視覺伺服控制系統(tǒng)。在機器人坐標(biāo)系中,目標(biāo)物實際頂點位置為:
[2 0.2 0.2;2 0.2 -0.2;2 -0.2 -0.2;
期望圖像特征坐標(biāo)ξd為:
[256 456;456 456;456 256;256 256]
假設(shè)相機為針孔模型,焦距f為0.008 m,α和β均為80 000 pixels/m,目標(biāo)相對于相機模型的深度為2 m,且圖像中心點為(256,256)。PUMA 560機器人的初始關(guān)節(jié)角q0為[0.304 8 -0.986 9 0.448 3 -0.351 3 -1.059 5 0.177 4]T控制增益kp為0.15。采樣時間為0.2 s。
圖5為PUMA 560的關(guān)節(jié)軌跡,實線為改進遺傳算法BP神經(jīng)網(wǎng)絡(luò)(簡稱GABP控制)視覺伺服控制,虛線為傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)視覺伺服控制,最后一條曲線為復(fù)合雅可比矩陣偽逆J+視覺伺服控制。結(jié)果表明,GABP算法能較好地表征圖像特征變化率與機器人關(guān)節(jié)速度之間的非線性關(guān)系,并在三種控制方法中具有較快的響應(yīng)速度。
圖5 PUMA560的關(guān)節(jié)軌跡
圖6為圖像特征誤差范數(shù)收斂曲線,可以看出,圖像特征誤差范數(shù)具有快速收斂性,對比的幾種算法中PSO和Fuzzy算法在0~5 s時間內(nèi)收斂速度較快,但最終誤差范數(shù)為10.029和26.598,大于GABP算法在T=20 s時誤差范數(shù)6.246,傳統(tǒng)BP算法以及J+控制算法收斂速度及精度均不及GABP算法,驗證了本文算法的有效性。
圖6 圖像特征誤差范數(shù)收斂曲線
圖像平面坐標(biāo)如圖7所示,初始坐標(biāo)和最終坐標(biāo)分別用“?”和“o”標(biāo)記,展示了圖像特征的變化情況。圖像特征的移動方向如標(biāo)記所示。可以看出,最終的圖像特征值與期望特征非常接近,平均誤差在3像素以內(nèi),說明機器人已經(jīng)達到了預(yù)期姿態(tài)。
圖7 圖像特征的變化
本文提出一種基于BP遺傳混合優(yōu)化的視覺伺服算法,首先對機器人與圖像復(fù)合雅可比矩陣進行建模,消除了復(fù)雜的標(biāo)定過程和大量的計算;其次構(gòu)建了基于BP神經(jīng)網(wǎng)絡(luò)模型的視覺伺服控制器,然后使用遺傳算法利用樣本集對最佳權(quán)值和閾值進行訓(xùn)練,得到最終的混合優(yōu)化視覺控制模型。仿真結(jié)果表明,GABP算法可以在15步左右收斂到指定精度,均方誤差為3.414 46×10-6,即在保證一定精度前提下可以快速地定位目標(biāo),各項指標(biāo)均優(yōu)于對比的其他幾種算法。這驗證了本文算法的可行性與有效性,為機器人控制提供了一種簡單有效方法,接下來將考慮時滯因素對視覺伺服控制模型進行深入研究。