陳高銘, 駱研, 黃碧漪, 劉超, 熊振華*
(1. 上海交通大學機械與動力工程學院, 上海 200240; 2. 中廣核研究院有限公司, 深圳 518028)
近年來,隨著視覺傳感器精度的提高,作為機器人系統(tǒng)通過視覺感知環(huán)境的重要策略,視覺伺服控制技術成為機器人控制領域的熱點,其與模型預測控制等先進控制策略的結合使工業(yè)生產任務更加可靠[1]。視覺伺服控制技術由Hill等[2]首次提出,根據控制方式的不同,主要分為基于位置的視覺伺服、基于圖像的視覺伺服以及復合視覺伺服3種類型[3]。傳統(tǒng)的視覺伺服控制技術需要相機和機器人的標定,其整體性能受標定精度的影響[4]。具有移動平臺的機器人標定過程較為復雜,其精度受外界環(huán)境的影響較大,且成本高。因此,機器人無標定視覺伺服控制技術在工業(yè)應用中備受矚目。
Zhu等[5]將無標定視覺伺服控制技術用于全向移動操作機械臂的空間動態(tài)目標跟蹤,采用卡爾曼濾波算法在線識別復合的雅可比矩陣,進而估計手眼映射關系,通過集中控制策略完成跟蹤,但跟蹤初期存在較大的超調。Wang等[6]將卡爾曼增益與測量噪聲協(xié)方差矩陣關聯(lián),提出基于自適應卡爾曼濾波方法估計雅可比矩陣,通過協(xié)方差遞歸估計,其中增益矩陣與噪聲協(xié)方差相關,算法展現了較好的動態(tài)跟蹤性能。針對空間在軌自動裝配的問題,Gu等[7]提出一種改進的基于射影單應性的超冗余機械手未標定視覺伺服策略,通過卡爾曼平滑變結構濾波方法進行總體雅可比矩陣的在線估計,同時采用奇異值濾波避免總雅可比條件數不穩(wěn)定引起的擾動,實驗展示了優(yōu)良的靜態(tài)定位和動態(tài)跟蹤性能。為保證對圖像缺陷的控制魯棒性,Gu等[8]后續(xù)采用卡爾曼平滑變結構濾波與徑向基函數神經網絡相結合的方法,估計基于同形異義的任務函數與機器人關節(jié)之間的總雅可比矩陣,其中徑向基神經網絡起到校正器的作用,以補償圖像特征偏差導致的干擾,實驗驗證其在準確性和魯棒性表現良好性能。為減少跟蹤特征數量較多時圖像雅可比矩陣估計耗時,Gong等[9]提出了基于投射單向的無標定視覺伺服方法,該方法采用射影單向圖的元素來構建任務函數,以此控制任務函數的大小,減小矩陣估計的計算負擔。王博等[10]將無標定視覺伺服技術用于優(yōu)傲(universal robots,UR)機械臂的控制,采用動態(tài)擬牛頓算法對圖像雅可比矩陣進行在線估計,提高了機器人視覺系統(tǒng)的魯棒性。陳梅等[11]提出一種采用圖像特征為反饋的模糊控制策略,該方法能夠對平面內運動物體進行跟蹤,同時利用圖像信息實時糾正系統(tǒng)偏差,該算法對平面內圓周運動的跟蹤效果較為出色。紀鵬等[12]提出了移動機械臂無關節(jié)狀態(tài)反饋的伺服方法,采用廣義回歸神經網絡映射虛擬外骨骼的末端與關節(jié)角的關系,末端姿態(tài)誤差在±1°。王騰飛等[13]提出了雙目雙軸平行視覺配置方法,選取圖像特征空間的點特征和線特征設計控制器,并基于卡爾曼濾波算法實時在線估計機械臂的手眼映射關系。岳曉峰等[14]提出了基于遺傳算法優(yōu)化的RBF神經網絡,學習圖像特征變化速度和機器人關節(jié)角變化速度之間的非線性關系,實現了較好的控制效果。
現有方法大部分對圖像雅可比矩陣進行了顯式在線估計,而隨著視覺伺服采用的任務函數特征數量的增加,雅可比矩陣在線估計的計算成本明顯升高[15]。本文研究針對圖像雅可比矩陣在線計算較為復雜[16],同時單目相機難以準確獲取深度信息的問題,提出了結合BP神經網絡和模糊控制的無標定視覺伺服控制技術,通過神經網絡隱式擬合圖像特征與機器人各自由度之間的映射關系。首先利用BP神經網絡建立圖像特征信息與機器人多自由度運動之間的映射關系,之后采用模糊控制方法根據圖像特征偏差進行機器人位姿的精確調整?,F首先建立多自由度智能調節(jié)系統(tǒng)運動學模型,然后通過圖像處理提取特征信息,采用自主構建的數據集訓練BP神經網絡,最終采用BP神經網絡和模糊控制結合的控制策略,通過實驗驗證算法的有效性和控制性能。
作為核反應堆中熱量傳輸回路系統(tǒng)的主設備,蒸汽發(fā)生器在核電系統(tǒng)中發(fā)揮了舉足輕重的作用。由于工作環(huán)境惡劣、材料本身特性、清理不徹底以及操作不規(guī)范等原因,蒸汽發(fā)生器表面法蘭盤人孔螺栓咬死的現象時有發(fā)生。人工拆卸咬死螺栓繁瑣耗時,同時蒸汽發(fā)生器具有高放射性,因此采用視覺傳感器采集圖像,并根據圖像特征引導具有多自由度智能調節(jié)系統(tǒng)的機器人進行自主對中,最后利用末端刀具切削咬死螺栓具有重要的應用價值。多自由度智能調節(jié)系統(tǒng)的工作流程如圖1所示,主要包括機器人根據視覺引導自主對中、法蘭盤貼合固定、數控切削3個過程。
為解決人孔螺栓咬死后的自動去除問題,本項目組自主設計了多自由度智能調節(jié)系統(tǒng),該系統(tǒng)的整體結構如圖2所示,主要包括移動平臺和工作機構兩部分,二者通過角鐵固定。工作機構主要由兩個電動缸J1、J2,一個絲杠滑塊X1及一個內齒輪R組成,其末端搭載2D相機獲取環(huán)境信息。在工作機構和移動平臺連接處、工作機構的末端中心分別定義右手坐標系O0-X0Y0Z0、O4-X4Y4Z4。移動平臺包括水平面內運動的3個自由度,工作機構為4自由度機械臂,整個系統(tǒng)共有7個自由度。
圖2 多自由度智能調節(jié)系統(tǒng)結構
圖3為多自由度智能調節(jié)系統(tǒng)的工作機構簡圖,其中L1、L2為電動缸J1、J2的長度,θ1、θ2共同構成工作機構的俯仰角,L3,…,L10為工作機構對應的桿長,x1、x2、a2為對應旋轉副的偏移量。除L1、L2、θ1、θ24個參數外,圖3中其余機構參數均為已知量。L1、L2分別與θ1、θ2耦合。通過視覺引導,最終使得機器人工作機構末端法蘭面與蒸汽發(fā)生器表面法蘭面貼合。將二者固定后,控制末端小型鏜床工作,完成人孔螺栓的去除。
圖3 工作機構簡圖
按照串聯(lián)機械臂建立機器人運動學模型,根據Modified D-H(MDH)參數建立坐標系如圖4所示,對應的MDH參數和關節(jié)參數如表1所示。
表1 工作機構MDH參數
圖4 工作機構MDH坐標系
連桿夾角θ1、θ2可以通過電動缸J1、J2的長度L1、L2,結合工作機構參數計算得到,如式(1)和式(2)所示,除L1、L2外,其他均為已知的機構參數。
(1)
(2)
如圖2(b)所示,假設基坐標系建立在移動平臺與電動缸J1連接處,工作機構末端坐標系與基坐標系之間的正運動學關系為
(3)
式(3)中:ci=cosθi;si=sinθi;c12=cos(θ1+θ2);s12=sin(θ1+θ2)。
(4)
因此,當d3和θ4自由度固定時,通過調節(jié)電動缸J1、J2的長度L1、L2,可以得到唯一對應的角度θ1、θ2,通過逆運動學關系最終得到唯一對應的末端高度z和俯仰角p。即可以通過控制電動缸J1、J2的伸長量控制末端高度和俯仰角。
本系統(tǒng)中,工業(yè)相機安裝在機械臂末端,即“眼在手上”。相機跟隨機械臂進行相應運動,實時采集圖像信息。
首先通過手動控制將機械臂末端法蘭盤與蒸汽發(fā)生器表面法蘭盤對中貼合,將絲杠滑塊X1后移100 mm作為標準位姿Ps,采集機器人在Ps狀態(tài)的圖像Is,通過圖像處理獲取法蘭盤的人孔特征信息;然后將機器人放置在任意初始位置,將該狀態(tài)下圖像處理獲取的特征信息導入訓練好的BP神經網絡,計算機器人在水平面內的運動量以及末端高度和俯仰角的相對運動量,以此控制機器人運動;當機器人各自由度運動到指定位置的ε領域時,實時采集圖像并利用模糊控制進行上述5個自由度的微調,直至特征誤差在閾值范圍內,此時機器人到達標準位姿Ps;最后進行d3和θ4兩個自由度的調整,使機械臂末端法蘭面和蒸汽發(fā)生器表面法蘭面貼合。圖5為本文采用的融合BP神經網絡和模糊控制的多自由度智能調節(jié)系統(tǒng)視覺伺服控制結構框圖。圖6為多自由度智能調節(jié)系統(tǒng)的整體架構。
圖5 視覺伺服控制結構
圖6 多自由度智能調節(jié)系統(tǒng)整體架構
機器人工作過程中相機與蒸汽發(fā)生器表面距離近,有效的視野范圍較小。采用Blender軟件仿真,機器人處于標準位姿Ps時相機獲取圖像的視野范圍如圖7中矩形框所示。
圖7 仿真相機視野
常用的邊緣檢測算子有Roberts算子、Prewitt算子、Sobel算子、Canny算子等[17]。由于Canny算子為多階段優(yōu)化算子,具有抗干擾能力強、邊緣連續(xù)性好等優(yōu)點[18],本文研究采用Canny算子對圖像進行邊緣檢測處理。采用Canny算子進行邊緣檢測主要包括以下步驟。
(1)采用高斯濾波對原始圖像進行卷積操作,即線性平滑圖像,以減少圖像中的高斯噪聲。
(2)采用Sobel算子計算圖像沿x、y方向的偏導數,即分別采用式(5)所示的x方向Sobel算子和式(6)所示的y方向Sobel算子對圖像進行卷積處理,進而計算梯度的幅值和方向。
(5)
(6)
(3)對梯度的幅值采用非極大值抑制,去除部分假邊緣,得到初步的邊緣信息。
(4)采用雙閾值對二值化圖像檢測篩選,得到較為精確的邊緣特征。
以相機在標準位姿處獲取的圖像為例,邊緣檢測的效果如圖8所示。
圖8 邊緣檢測效果
為了增強邊緣檢測的魯棒性,減少環(huán)境對成像質量的影響,本文研究對邊緣檢測獲取的二值化圖像采用閉運算,即先膨脹后腐蝕的操作。首先對二值化圖像中的邊緣進行膨脹處理,使部分鄰近有斷點的邊緣連接為一個整體;然后對圖像進行腐蝕處理,將膨脹導致的邊緣線變粗的現象消除。采用閉運算使鄰近的邊緣特征連接在一起,得到準確的封閉邊緣信息。
根據先驗知識,圖像中的有效信息為3個人孔,在處理后的圖像中表現為封閉曲線內部。因此,將圖像中封閉邊緣包括的凸區(qū)域置為1,其余部分置為0,得到3個人孔與周圍對比明顯的二值化圖像用于后續(xù)特征提取。
Blob特征在二值化圖像中代表具有相同像素值的連通區(qū)域,即可以從背景中分離出目標信息;Blob分析主要是對目標進行檢測和提取,從中得到感興趣區(qū)域,并計算該區(qū)域的面積、周長、質心等參數[19]。由于Blob特征代表一個區(qū)域,相較于各種角點特征具有優(yōu)秀的穩(wěn)定性和抗噪聲能力,因此采用Blob提取圖像特征信息。
采用Blob特征自動提取圖像中的3個人孔特征信息。首先在二值化圖像中檢索值為1的封閉區(qū)域;然后針對各封閉區(qū)域采用預設的面積、橢圓度及對應的置信度進行判斷,從中篩選出感興趣區(qū)域,即3個人孔外圓在圖像中的投影;最后根據中心在圖像中的位置對3個人孔外圓按照從左到右進行排序。
計算像素坐標系下Blob特征的中心坐標(uc,vc)為
(7)
式(7)中:n0為目標區(qū)域點的個數;Ω為目標區(qū)域集合;(u,v)為目標集合內點的像素坐標。
以機器人在標準位姿Ps處相機獲取的圖像為例,通過處理后提取的Blob特征如圖9所示。
圖9 Blob特征提取
通過Blob特征的提取,結合對比分析,采用中間人孔對應的像素面積S0,其中心在像素坐標系下的橫坐標u0,縱坐標v0,左邊和中間人孔中心之間的距離d1,右邊和中間人孔中心之間的距離d2,左邊和右邊人孔中心之間的距離d3,共6個參數進行后續(xù)的控制任務。
BP神經網絡是單向傳播的多層前向網絡,主要包括前向計算和反向傳播兩部分[20],其對應的網絡拓撲結構如圖10所示,其中輸入層節(jié)點的個數n對應輸入變量的個數,隱藏層的層數及各層節(jié)點的個數可以通過訓練過程中網絡擬合效果實時調整,輸出層節(jié)點的個數m對應輸出變量的個數。
圖10 BP神經網絡結構
前向計算過程,主要是將各網絡層的輸入值與對應的權重相乘,然后將對應層的數值相加,一般采用Sigmoid函數激活,然后向下循環(huán),直到輸出;反向傳播的過程本質上是誤差的傳播,將誤差對各節(jié)點變量求偏導,進而反映各權重值的調整方向,結合學習率進行權重值的調整。經過一輪前向計算和反向傳播,神經網絡中權重值更新。重復上述操作,直至神經網絡滿足預設的訓練目標,結束網絡訓練。
假設系統(tǒng)由初始位姿Pi運動到標準位姿Ps處,在水平面內X、Y方向分別需移動Δx、Δy,水平面內繞Z軸需轉動Δα,機械臂末端在豎直Z方向需移動Δz,末端俯仰角需轉動Δp。由于神經網絡的目標是通過訓練找到輸入變量與輸出變量之間的函數關系,而本系統(tǒng)的目標為找到圖像特征信息與上述5個自由度變化量之間的映射關系,因此可以利用神經網絡得到式(8)所示的隱形函數表示。采用S0、u0、v0、d1、d2、d36個參數作為BP神經網絡的輸入,Δx、Δy、Δα、Δz、Δp5個參數作為BP神經網絡的輸出,同時中間采用單隱藏層結構,節(jié)點個數為8,即設計“6-8-5”的BP神經網絡結構。
(8)
模糊控制器與PD控制器的功能類似,主要包括知識庫、模糊化機、模糊邏輯推理機和去模糊化機4部分。知識庫由數據庫和規(guī)則庫組成,其中數據庫中存放隸屬度函數或各變量隸屬度值,規(guī)則庫中存放專家經驗轉化后的模糊規(guī)則,通常為“if-then”語句。模糊化機根據隸屬度函數將傳感器讀取的準確數據模糊化。模糊邏輯推理機根據輸入的模糊量,經過模糊規(guī)則判斷,輸出對應的模糊控制量。去模糊化機主要將輸出的模糊控制量按照規(guī)則去模糊化,進而將清晰的控制量輸出給機器人。模糊控制器原理圖如圖11所示。
圖11 模糊控制器原理圖
由于神經網絡的輸出值與真實值存在一定的偏差,同時機器人移動平臺采用麥克納姆輪,其移動過程中的精度較差。因此,在神經網絡輸出控制后,在第二階段采用模糊控制器對機器人進行精確控制,直到機器人運動到標準位姿Ps。
通過對比分析,采用Δu0控制移動平臺在水平面內X方向的運動,采用Δ(d1/d2)控制移動平臺在水平面內的旋轉,采用ΔS0、Δv0和Δd33個參數綜合控制移動平臺在水平面內Y方向的移動、機器臂末端的高度z和俯仰角p3個自由度。
為了便于控制,對上述5個變量分別除以對應的比例因子,將其論域轉化到[-5,5]中。同時,語言變量均取值[NL,NM,NS,ZO,PS,PM,PL],隸屬度函數采用對稱三角形,采用面積重心法去模糊化處理,如式(9)所示,最終得到各變量對應的清晰輸出。以Δu0為例,輸入、輸出之間的關系曲面如圖12所示。
圖12 輸入輸出關系曲面
(9)
式(9)中:v為模糊變量取值;μv(v)為隸屬度函數。
實驗自行搭建了1∶1仿真的蒸汽發(fā)生器,采用自主設計的多自由度智能調節(jié)系統(tǒng)。機器人下位機采用倍??刂破?通過PLC控制電機運動,上位機采用PC機,搭載i5-1135G7處理器。上位機與下位機之間采用ADS協(xié)議進行通訊。機器人工作機構的最后一個關節(jié)搭載500萬像素的工業(yè)相機,相機兩側安裝條形光源用于打光處理。通過視覺伺服控制完成機械臂末端法蘭面和蒸汽發(fā)生器表面法蘭面的對中貼合。通過螺栓連接使機械臂末端與蒸汽發(fā)生器法蘭面鎖緊固定,進而控制小型鏜床完成切削任務,實現咬死的人孔螺栓的去除。系統(tǒng)運行的整體流程如圖13所示。
圖13 多自由度智能調節(jié)系統(tǒng)運行流程
為了實現較高精度的對中目標,首先對相機在初始位置處獲取的圖像進行處理,將S0、u0、v0、d1、d2、d3導入訓練好的神經網絡中,得到Δx、Δy、Δα、Δz、Δp共5個輸出量,將輸出量映射到移動平臺和電動缸J1、J2的控制量中。當機器人運動到指定位姿,實時讀取相機圖像并處理,采用3個人孔的特征信息對機器人進行模糊控制,使其運動到標準位姿。由于法蘭面共有16個螺栓孔,相鄰螺栓孔之間的圓周角為22.5°。通過編號確定咬死螺栓的位置n,控制內齒輪R轉動22.5n°。最后控制絲杠滑塊X1向前運動100 mm,完成機械臂末端法蘭面和蒸汽發(fā)生器法蘭面的對中貼合。
數據集采集過程,首先通過手動控制將機器人移動到標準位姿Ps處,然后將機器人在5個自由度分別移動Δxi、Δyi、Δαi、Δzi、Δpi,將圖像Ii及上述運動量作為數據集存儲。共采集600張圖像及對應的運動量構建工業(yè)場景數據集,提取其特征信息用于神經網絡的訓練,其中550張圖像的特征信息作為訓練集,50張圖像的特征信息作為測試集。數據集經過圖像處理后部分不同位姿下獲取的圖像如圖14所示。
圖14 工業(yè)場景數據集
BP神經網絡的學習率設置為0.05,訓練的誤差目標設置為0.000 05,最多迭代1 000輪,采用五自由度實際運動量和神經網絡輸出量的均方誤差作為損失函數。最終,神經網絡在訓練過程中均方誤差變化如圖15所示,在測試集上五自由度的相對運動量的預測效果如圖16所示。BP神經網絡在測試集上預測的五自由度平均誤差如表2所示??梢钥闯?BP神經網絡實現了較好的預測效果,僅在Y方向上有較大的誤差,但仍為模糊控制提供了良好的初值條件。
表2 五自由度的平均誤差
最終采用模糊控制進行五自由度的微調,使機器人運動到標準位姿Ps處。通過轉動R和移動X1,實現機器人工作機構末端法蘭面與蒸汽發(fā)生器法蘭面的貼合。
為驗證最終的對中定位精度,在機器人工作機構末端固定千分表,千分表探頭與蒸汽發(fā)生器表面法蘭盤內環(huán)貼合。將R軸轉動360°,取千分表讀數的最大值與最小值之差作為最終的對中定位誤差。通過實驗測得對中定位的平均誤差在±1 mm范圍內,機器人平均在43 s內完成法蘭盤的對中任務,相較于人工手動調節(jié)所需的145 s有較大的提高,滿足實際應用需求。
提出了結合BP神經網絡與模糊控制策略的控制技術,進行機器人無標定視覺伺服控制。BP神經網絡能夠有效建立圖像特征與多自由度運動的映射關系,同時模糊控制能夠減小神經網絡的預測誤差和麥克納姆輪的運動誤差。結果表明,在未進行相機、機器人標定,未采用圖像雅可比矩陣在線估計的情況下,該算法能夠有效應用于核電站蒸汽發(fā)生器法蘭面咬死的人孔螺栓去除任務,視覺伺服控制誤差在±1 mm范圍內,平均耗時43 s,相較于手動控制提速3倍以上,在工程應用中能夠快速、準確地完成法蘭對中任務。