韓順杰 符金鑫 單新超
(長春工業(yè)大學電氣與電子工程學院 吉林 長春 130012)
自Shirai和Inoue展示如何使用視覺反饋環(huán)來校正機器人的位置以提高任務精度以來,國內(nèi)外眾多研究者在機器人操縱器的視覺控制方面已經(jīng)取得了許多成果。傳統(tǒng)的機器人視覺伺服控制系統(tǒng)需要進行校準,該技術需要明確攝像機的固有參數(shù)、手眼變換參數(shù)、機器人運動學的參數(shù),且伺服系統(tǒng)的控制精度很大程度上取決于校準的精度。神經(jīng)網(wǎng)絡在簡化控制算法、提高系統(tǒng)適用性方面效果較好,許多學者對神經(jīng)網(wǎng)絡控制都有所研究。
Hornik等[1]闡述了神經(jīng)網(wǎng)絡只需要一個隱藏層,就可以精確地逼近任何復雜函數(shù);Ahmed等[2]提出了一種用神經(jīng)網(wǎng)絡來確定空間三維點間投影變換矩陣及對應的二維圖像像素點的方法,其神經(jīng)網(wǎng)絡包括攝像機內(nèi)在參數(shù)和外在參數(shù);李鑫等[3]建立了條件信息卷積生成網(wǎng)絡,增加圖像信息和潛在信息,利用Q網(wǎng)絡發(fā)揮類別信息和潛在信息對訓練的引導作用。文獻[4]中使用了一種反向傳播神經(jīng)算法來學習用于導航的圖像坐標和實際空間坐標之間的映射關系,保證精度的同時簡化了標定過程;文獻[5]采用反投影神經(jīng)網(wǎng)絡近似雅可比矩陣來確定位置所需的關節(jié)角度;文獻[6]提出了一種利用徑向基函數(shù)網(wǎng)絡學習視動協(xié)調(diào)的方法;文獻[7]采用一種反向傳播神經(jīng)網(wǎng)絡,在不標定攝像機外部和內(nèi)部參數(shù)的情況下,將圖像矩變化映射到機器人位姿位移的轉(zhuǎn)換。
由于神經(jīng)網(wǎng)絡的初始互聯(lián)權值通常是隨機給定的,許多解決視覺控制問題的神經(jīng)系統(tǒng)方案都需要長時間的訓練,因此網(wǎng)絡的學習時間和最終互聯(lián)權值在不同的訓練條件下時間有所不同。也就是說,初始互聯(lián)權值確定的盲目性可能導致模型訓練時間長、收斂速度慢等問題。利用遺傳算法全局搜索與神經(jīng)網(wǎng)絡結(jié)合使用可以改善上述問題。本文在研究前人所提方法的基礎上,提出一種基于遺傳算法優(yōu)化的神經(jīng)網(wǎng)絡的圖像視覺伺服控制器,該控制器近似于圖像特征到關節(jié)角度的非線性變換,使系統(tǒng)完全獨立于機器人運動學和攝像機標定。這種混合進化神經(jīng)網(wǎng)絡建模方法可以加速圖像誤差的收斂,為機器人控制提供了一種簡單有效的方法。
視覺伺服的主要目標是針對圖像中的特定對象或特征將末端執(zhí)行器移動到特定的姿態(tài)。本文以基于圖像的視覺伺服系統(tǒng)為例,直接將圖像測量的誤差信號映射到執(zhí)行器命令中,這可以減少計算延遲,消除圖像解釋的必要性以及由于傳感器建模和攝像機校準造成的誤差。

(1)
式中:JI∈Rm×n。
(2)
式中:n表征圖像特征維數(shù);m表征任務空間維數(shù),矩陣列數(shù)將隨m的變化而變化。準確地說,對于坐標系中三維點X=[xcyczc]T在圖像中投影坐標為X=[xIyI]T,可得式(3)。
(3)
式中:f為焦距;α和β為像素尺寸比。對式(3)的投影時間求導可得式(4)。
(4)
此外,假設相機相對于目標的平動速度v(t)和角速度w(t)分別如下:
(5)
(6)
將式(6)代入式(4)可得:

(7)
式中:
(8)
(9)
式中:Jq是機器人雅可比矩陣。令J=JIJq則可得:

(10)
式中:J為機器人與圖像雅可比矩陣的復合。
基于圖像的視覺伺服控制系統(tǒng)如圖1所示。根據(jù)圖像信息控制機器人末端執(zhí)行器達到預期姿態(tài)時,需要通過攝像系統(tǒng)和圖像處理獲取圖像特征。若當前圖像特征與期望圖像特征之間存在誤差時,通過視覺控制器將誤差轉(zhuǎn)化為機器人關節(jié)角誤差,并將機器人關節(jié)角命令放入機器人控制器中,此時控制器會輸出相應的命令給機器人伺服電機,直至機器人末端執(zhí)行器的位姿被調(diào)節(jié)到圖像特征的誤差趨于零為止。

圖1 圖像視覺伺服框圖
假設所需的圖像特征參數(shù)的向量為ξd,目前圖像的特征參數(shù)為ξ,則圖像誤差為:
e=ξd-ξ
(11)
根據(jù)式(10)和式(11),設控制器如下:
(12)

若在視覺伺服控制中計算圖像雅可比矩陣和機器人雅可比矩陣以及各自的偽逆矩陣非常復雜和費時,因此為了避免繁瑣的過程,利用BP神經(jīng)網(wǎng)絡學習圖像特征變化率與機器人關節(jié)速度的非線性關系,并在此基礎上引入了遺傳算法求解最優(yōu)網(wǎng)絡初始權值以提高培訓效率。
BP神經(jīng)網(wǎng)絡由輸入層、隱含層和輸出層組成,是一種誤差反向傳播算法[9],前一層與后一層的連接表示為權值W,用θ表示閾值。W和θ的初始值是隨機產(chǎn)生的,并且總是以相對較小的值被賦予到啟動器中。基于BP神經(jīng)網(wǎng)絡算法的視覺控制模型如圖2所示。

圖2 BP算法視覺模型
隱層和輸出層激活函數(shù)分別設為雙曲正切及線性函數(shù)[10]。假設任務空間中的目標是一個正方形對象,選擇其四個頂點作為與圖像空間中的點相對應的特征點,即圖像特征向量有八個維度。計算當前圖像特征與期望特征之間的誤差,并以此作為模型輸入量:
△x1,△y1;△x2,△y2;△x3,△y3;△x4,△y4
輸出為機器人六個關節(jié)角變化量:
△q1,△q2,△q3,△q4,△q5,△q6
遺傳算法是通過對種群進行反復修改,從而在一定范圍內(nèi)求出個人解決方案的全局最優(yōu)解,涵蓋了自然選擇和遺傳學概念的隨機優(yōu)化技術。遺傳算法可定義為八元組:
SGA=(C,E,P0,M,Φ,Γ,Ψ,T)
(13)
式中:C為染色體表示;E為適應度函數(shù);P0為初始種群;M為種群大小;Φ為選擇算子;Γ為交叉算子;Ψ為變異算子;T為終端條件。
遺傳算法的基本步驟如下:
步驟1將問題的解決方案編碼為染色體。
步驟2隨機生成初始總體。
步驟3確定目標函數(shù)及個體的相對適合度。在很大程度上,適合度決定了進化。
步驟4根據(jù)突變、適應度和交叉行為誕生下一代種群。
步驟5判斷種群的表現(xiàn)。如果它不滿足某個目標,返回到步驟4,重復操作,直到它滿足標準。這樣,最終找到環(huán)境適應個體。
優(yōu)化算法的主要思想如下:訓練BP網(wǎng)絡之前從包含所有可用個體的搜索空間中尋找網(wǎng)絡最佳權值和閾值,利用樣本集對權值和閾值進行反復訓練,減小模型輸出與期望輸出的差值,提高訓練效率。
算法優(yōu)化的三個步驟如下:
1) 編碼方式。為了保證BP網(wǎng)絡的學習精度,避免權值的階躍變化,本文采用實碼法。由圖2可知,互聯(lián)權重和閾值的總數(shù)為(8×10+10+10×6+6)=156。這156個數(shù)據(jù)包括80個輸入神經(jīng)元與隱含神經(jīng)元互聯(lián)權值、60個輸出神經(jīng)元與隱含神經(jīng)元互聯(lián)權值、10個隱含層閾值和6個輸出層閾值,它們都被編程為實數(shù)染色體。
2) 適應度函數(shù)。標準測量函數(shù)是BP算法輸出層實際輸出與預期輸出之間的誤差平方和[11],函數(shù)定義如下:
(14)
(15)
式中:P表示種群規(guī)模;yi和di分別表示輸出層實際輸出和預期輸出。
3) 遺傳操作。父方染色體采用算數(shù)交叉算子選擇,使其后代具有雙親的遺傳基因。引入自適應變異算子調(diào)整變異率以提高搜索能力和收斂性能。
圖3為遺傳算法對BP神經(jīng)網(wǎng)絡的改進,其中:S1、S2是遺傳算法的平方和誤差及均方誤差;e1、e2是它們的期望誤差。首先利用圖像模型建立BP網(wǎng)絡,得到初始化BP網(wǎng)絡權值和閾值并計算適應度,若不符合期望誤差e1則進行基因操作生成新的種群并重復上一操作步驟;若滿足要求則將初始值傳遞給遺傳算法進行模型訓練,訓練后若不符合期望誤差e2則更新網(wǎng)絡權值和閾值重新迭代計算,直至符合要求輸出結(jié)果。

圖3 遺傳算法優(yōu)化流程
本文的目的是利用優(yōu)化后的BP神經(jīng)網(wǎng)絡視覺伺服模型在不標定的情況下直接從視覺域過渡到關節(jié)域來控制機器人機械手在三維空間中對目標進行定位操作。整個過程包括數(shù)據(jù)采集、模型學習和機器人視覺伺服,其模擬仿真過程如下:
1) 數(shù)據(jù)采樣。為了獲取BP神經(jīng)網(wǎng)絡的訓練樣本,根據(jù)圖1所示利用MATLAB的Robotics Toolbox構建了視覺伺服仿真模型,其中使用J+計算關節(jié)坐標與圖像特征之間的關系。機器人模型為PUMA 560,通過將機器人工具箱中的功能與MATLAB子系統(tǒng)模塊相結(jié)合,實現(xiàn)各部分運動模型及其雅可比矩陣的建立。運行仿真系統(tǒng)后可得圖像特征的誤差和相應的關節(jié)角誤差。
2) 模仿學習。根據(jù)圖2和圖3,在學習階段進行BP神經(jīng)網(wǎng)絡參數(shù)的創(chuàng)建和訓練。在MATLAB 中使用遺傳算法軟件包和神經(jīng)網(wǎng)絡工具箱求解編程函數(shù)值。為了具有良好的函數(shù)逼近性能,其參數(shù)設置如下:BP算法學習率為0.4,期望誤差e2=10-6。在遺傳算法中,種群規(guī)模P=80,交叉概率Pc=0.6,期望誤差e1=0.001。然后對模型進行訓練,實現(xiàn)視覺伺服控制器的設計。為了說明本文方法的優(yōu)點,將本文方法與采用傳統(tǒng)BP算法、Fuzzy算法、PSO對樣本的訓練效果進行了對比,其結(jié)果如圖4所示。

圖4 模型訓練效果
可以看出,當期望誤差為10-6時,傳統(tǒng)BP算法迭代時容易陷入局部極小值,并且經(jīng)過反復訓練在50步內(nèi)精度僅為5.598 95×10-4;Fuzzy算法和PSO初始收斂速度較快,在20步左右達到穩(wěn)態(tài),但精度同樣無法滿足要求;具有最佳初始權重和閾值的改進BP神經(jīng)網(wǎng)絡可以在15步左右收斂到指定精度,且均方誤差為3.414 46×10-6。其訓練速度遠遠小于300步[12],表明兩者混合優(yōu)化后的算法收斂速度更快、精度更高。
3) 機器人視覺伺服。采用經(jīng)過遺傳算法優(yōu)化的BP神經(jīng)網(wǎng)絡作為視覺控制器構建如圖1所示視覺伺服控制系統(tǒng)。在機器人坐標系中,目標物實際頂點位置為:
[2 0.2 0.2;2 0.2 -0.2;2 -0.2 -0.2;
期望圖像特征坐標ξd為:
[256 456;456 456;456 256;256 256]
假設相機為針孔模型,焦距f為0.008 m,α和β均為80 000 pixels/m,目標相對于相機模型的深度為2 m,且圖像中心點為(256,256)。PUMA 560機器人的初始關節(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的關節(jié)軌跡,實線為改進遺傳算法BP神經(jīng)網(wǎng)絡(簡稱GABP控制)視覺伺服控制,虛線為傳統(tǒng)BP神經(jīng)網(wǎng)絡視覺伺服控制,最后一條曲線為復合雅可比矩陣偽逆J+視覺伺服控制。結(jié)果表明,GABP算法能較好地表征圖像特征變化率與機器人關節(jié)速度之間的非線性關系,并在三種控制方法中具有較快的響應速度。

圖5 PUMA560的關節(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ù)收斂曲線
圖像平面坐標如圖7所示,初始坐標和最終坐標分別用“?”和“o”標記,展示了圖像特征的變化情況。圖像特征的移動方向如標記所示。可以看出,最終的圖像特征值與期望特征非常接近,平均誤差在3像素以內(nèi),說明機器人已經(jīng)達到了預期姿態(tài)。

圖7 圖像特征的變化
本文提出一種基于BP遺傳混合優(yōu)化的視覺伺服算法,首先對機器人與圖像復合雅可比矩陣進行建模,消除了復雜的標定過程和大量的計算;其次構建了基于BP神經(jīng)網(wǎng)絡模型的視覺伺服控制器,然后使用遺傳算法利用樣本集對最佳權值和閾值進行訓練,得到最終的混合優(yōu)化視覺控制模型。仿真結(jié)果表明,GABP算法可以在15步左右收斂到指定精度,均方誤差為3.414 46×10-6,即在保證一定精度前提下可以快速地定位目標,各項指標均優(yōu)于對比的其他幾種算法。這驗證了本文算法的可行性與有效性,為機器人控制提供了一種簡單有效方法,接下來將考慮時滯因素對視覺伺服控制模型進行深入研究。