朱威漢
(江蘇大學京江學院,江蘇 鎮江 212000)
機械臂是一種具有參數攝動、外界干擾和非動力學模型的復雜系統[1]。因此,機器臂的建模模式也是有一定的不確定性的,針對不同的工作,必須考慮機器人手臂的關節空間的運動軌跡,使其形成最終的姿態。抓取是機械臂的重要行為動作之一,現有的機械臂抓取方式包括:傳統分析法和經驗法兩種,傳統分析方法需要先了解對象的物理和機械分析模型,然后再根據現有的建模和抓取的知識對機器人進行模擬。該方法的最大缺陷是必須依據所獲取的目標特性來設置,因而其通用性很低,不適合于常規求解。經驗法可分為3個階段:首先產生由抓取傳感器獲取的抓取信息,對標記數據進行建模,最終通過對該模型的學習,可以得到目標物體在圖像上的抓取點。
為了實現機械臂的精準抓取,需要在機械臂內部嵌入抓取控制系統,以此作為機械臂運動的約束條件。文獻[2]提出基于機械臂位姿變換的抓取控制系統。利用極點配置法對伺服傳動系統的 PI控制參數進行了設計,從拉格朗日原理出發,利用連續體的振動原理,利用狀態方程推導出了電機的速度向柔性載荷的傳遞函數。在伺服傳動轉速環控制中引入了可變參數 PI控制策略,利用極點配置法對其進行了參數優化設計。該方法的抓取速度較快,但抓取控制精度較差。文獻[3]提出基于WOA-FOPID算法的抓取控制系統。采用了基于鯨魚算法(WOA)對分數階FOPID控制器進行優化,并將其用于機器人的運動控制中。以D-H方法為基礎,根據旋轉原理建立了機械手的關節坐標轉換矩陣,并應用蒙特卡洛法對機器人的工作空間進行點云求解,并對其進行了建模。該方法的抓取位置控制精度較好,但抓取速度控制誤差較大,物體抓取掉落概率較高。文獻[4]提出基于模糊補償的抓取控制系統,在李亞普洛夫函數基礎上,設計了一種模糊補償策略,通過建立模糊系統來近似摩擦力和載荷,利用流量調節器來消除負荷壓力變化對伺服閥的影響。該方法實現了機械臂實時抓取控制,但實際應用過程中存在與部分機械臂不適配、控制精度低的問題。
為了解決現有控制系統存在的問題,引入卷積神經網絡及其相關算法。卷積神經網絡是一類具有較強的前向神經網絡,其神經元能夠對一定區域的局部環境進行響應,在大規模的圖像處理中具有很好的性能。將卷積神經網絡應用到機械臂抓取控制系統的優化工作中,以期能夠提高機械臂的抓取控制功能,進而提高機械臂抓取工作的執行精度。
優化設計的機械臂抓取控制系統采用硬件與軟件相結合的方式進行,通過硬件設備選型和改裝兩種方式進行系統硬件優化,在設備選取過程中需要考慮工作環境和工作精度兩方面的因素,最大程度為系統的抓取控制功能提供硬件支持。分別設計機械臂傳感器、機械臂抓取控制器及機械臂運動驅動器,通過各個模塊協同運作,實現機械臂抓取對象信息的采集及對機械臂運動的控制,為機械臂抓取控制功能提供硬件支持。
1.1.1 圖像傳感器
為了實現機械臂抓取對象的精準定位,使用串口攝像頭模組作為圖像傳感器,通過串口獲取目標圖像。優化設計系統中安裝圖像傳感器的攝像頭型號為UVC,內部通信方式為串口通信,在實際的運行過程中只需通過電源線、地線和信號線作為接口,降低圖像采集模塊的電路復雜度,保證圖像的采集質量。
1.1.2 位置傳感器
機械臂采用OVW2+06+2MD的位置傳感器,作為一種計數600 P/R的光電脈沖編碼器,它的輸入信號為TTL級信號,分為A相和B相,由于A相與B相的相位差90°,因此可以用A相在前面或B之前來判定編碼器是否正向或反向。通常的光電編碼有兩類:增量式編碼和絕對式編碼。為了適應系統的串行通信方式,提高位置信息的讀取速度,選擇增量式的編碼器設備。
1.1.3 壓力傳感器
在機械臂的各個關節和執行元件上安裝A301型號的微型壓力傳感器,其壓力檢測原理如圖1所示。

圖1 機械臂壓力檢測電路圖
圖1中使用的機械臂壓力傳感器以MCP6004芯片作為核心元件,該芯片為內置4個運算放大器的運放,該元件支持1.8~6.0 V的工作電壓,靜態工作電流為80 μF。在實際的工作過程中,將其接入到系統的供電電路中,電壓經由運放電阻組成的反向放大器放大后送入單片機的模擬電壓采集端口進行模數轉換。
結合圖像特征處理器、控制指令執行器等元件,改裝機械臂的抓取控制器,控制器的改裝結構如圖2所示。

圖2 機械臂抓取控制器改裝結構圖
控制器中圖像特征處理器模塊的主要工作內容就是將圖像傳感器采集到的圖像矩陣進行灰度化、閾值化、幾何變換、強化學習等處理,選用的處理器為ARM處理器,該元件包含通信接口、傳感器接口,能夠支持多種類型設備的連接。ARM控制器由2個串行接口、網口、SD卡、CAN和FPGA通訊等部分組成。其中,COM 1 串行接口與PC進行通訊,通過PC端接收控制指令,并向PC發送反饋信息和相機數據。COM 2串行接口負責監控和數據的采集。網口的功能主要是為了將來的網絡遠程控制提供一個擴展的接口。SD卡的主要功能是存儲現場和控制信息。ARM通訊采用串行模式,由5位地址線、8位數據線、3條信號控制線組成??刂浦噶顖绦衅髦饕歉鶕D像特征處理器的輸出結果以及輸入的抓取任務指令,通過控制量的計算,將其轉換為機械臂旋轉關節或滑塊的給進增量,并將其直接映射到關節力矩中,實現控制任務的生成與執行。另外由于優化設計的機械臂抓取控制系統應用了卷積神經網絡算法,因此需要在傳統控制器的基礎上,加設學習運算器部分,作為卷積神經網絡算法的運行環境。另外還需要在控制器內部嵌入時鐘為25 MHz的晶振電路,利用 PLL倍頻技術,將 CPU時鐘設定寄存器 CCLKCFG與 CCLKSEL相結合,實現了100 MHz的系統時鐘,提高控制器的數據處理性能。
采用MSDA023A1A 型交流伺服電機驅動器作為機械臂執行抓取任務的驅動裝置,驅動器的內部結構如圖3所示。

圖3 機械臂抓取運動驅動器內部結構圖
圖3表示的驅動器含有64KB編程Flash和RAM,內部6通道PWM,一個正交解碼模塊,兩路SCI串口,兩路通用四通道定時器,能夠實現與控制器的連接,并直接讀取控制指令。該驅動裝置能夠實時地完成位置、速度和電流的實時控制,以速度控制任務為例,一旦接到啟動信號,就會立即旋轉[5]。一旦信號消失,轉子就能立即停下來。而高的適應性意味著高的敏感性。其功能是接收 PWM輸出的外部控制信號,調整電動機的轉速,并在其內部形成一個速度回路。為提高系統的運行魯棒性,要求安裝的驅動器具有保護功能,當一種保護被激活時,電機就會自動切斷電流,最大程度降低系統運行故障幾率。
在控制系統硬件設備的支持下,設計機械臂抓取控制系統的軟件功能,軟件部分的基本運行邏輯原理為:利用機械臂上的圖像傳感器設備,生成抓取目標圖像,提取采集圖像特征,進而確定機械臂抓取目標的位置和姿態,結合當前機械臂的位姿信息,規劃機械臂的抓取路線,并確定抓取參數,計算機械臂抓取控制量,利用控制器設備將控制量數據轉換為機械臂的驅動執行數據,從而完成系統的抓取控制工作。
機械臂抓取目標圖像的獲取一般可以分為兩個步驟,分別為初始目標圖像的生成以及初始圖像預處理。假設機械臂抓取目標的任意一點P(x,y,z)在圖像傳感器中的生成結果為P′(i,j),那么兩者之間的轉換關系可以表示為:
(1)
其中:ψ表示的是成像焦距。按照上述方式可以得出抓取目標所有位置的成像結果。在初始圖像獲取之前,首先需要對圖像傳感器的工作參數進行標定,并根據目標位置調整圖像傳感器的位置[6]。為了保證機械臂的抓取質量,需要對初始采集的圖像進行處理,處理內容包括:灰度轉換、中值濾波等。灰度轉換的目的是降低目標特征提取需要處理的工作量,灰度轉換處理原理可以表示為:
fgrey=0.299R+0.587G+0.114B
(2)
其中:R、G和B分別表示的是圖像中的紅色、綠色和藍色分量。圖像濾波的實質是在窗口區域內計算各個像素點的權重系數,并根據實際工作條件來確定窗口的寬度和權重[7]。圖像濾波本質上就是對窗口范圍內的像素值和濾光片進行卷積,通過對像素值和周邊像素值的加權求和,得到的結果取代原來的像素值。圖像濾波處理過程可以表示為:
(3)
其中:ω(k,l)為濾波加權系數,k和l分別對應的是圖像在水平和豎直方向上的濾波分量[8]。此外,為了方便提取初始圖像中的機械臂抓取目標,還需要對圖像進行閾值化處理,具體處理過程如下:
(4)
其中:maxfgrey(i,j)為像素點灰度值的最大值,δ為設置的分割閾值。將連在一起的黑色或白色區域視為一部分,從而達到圖像分割的目的。
利用卷積神經網絡算法,提取目標圖像特征,從而確定機械臂抓取目標的位置。構建卷積神經網絡的基本結構如圖4所示。
從圖4中可以看出,圖像特征提取過程中使用的卷積神經網絡由卷積層、池化層、全連接層等部分組成,一套完整的卷積層包含卷積、池化、激活等模塊,能夠從卷積層中抽取出特征信息;利用池化層對輸入的信息進行簡化和提取,從而降低了網絡的數據和運算量,避免了過度擬合[9]。卷積層和池化層的輸出結果可以表示為:
(5)
其中:H(m,n)為卷積核,m和n分別表示卷積核的大小分量,nPixel為輸入卷積神經網絡中圖像的像素點數量。最終卷積神經網絡的迭代結果通過全連接層輸出,在全連接層中,每一神經元都與前一網絡的神經元相連接,能夠將卷積層或池化層中的差分資料進行集成,并利用激活函數對其進行進一步的處理,激活函數表達式如下:
(6)
采用端到端的學習算法,使得卷積神經網絡能夠保證機器人在機器人的抓取精度和穩定性,并且能夠實現對初始機械臂執行元件位置的適應性[10]??紤]卷積神經網絡策略訓練要求,按照圖5表示流程執行卷積神經網絡訓練任務。

圖5 卷積神經網絡算法流程圖
利用公式(7)統一初始化卷積神經網絡的權重和偏置。

(7)
其中:Rk為k層的輸出結果,nlayer為構建的卷積神經網絡中包含的層級數量,μ為網絡中神經元的訓練裕度,ω0為初始權重,該變量取值為常數。在正向傳輸時,通過各個層次對輸入圖像進行處理,得到輸出結果,并將其與期望值之間的誤差關系作為全局的目標函數[11]。在反向傳輸時,由前向后依次求出目標函數與各個層次加權之間的偏微分,并按梯度遞減的方法進行加權更新,反復進行前向傳遞運算。通過多次迭代,權值會隨著時間的推移而不斷地被更新,從而使其最終的結果趨于期望值[12]。通過卷積神經網絡的訓練,得出機械臂抓取目標圖像的輪廓特征提取結果,可以量化表示為:
(8)
其中:Rx和Ry分別為卷積神經網絡在水平和豎直方向上的卷積輸出結果,最終提取的特征Δτ(x,y)和θ(x,y)代表圖像的梯度大小和方向角。由此可以得出機械臂抓取目標的位置檢測結果為:
(9)

根據系統的位置傳感器,確定當前機械臂位置,記為(xarm,yarm,zarm),通過連接機械臂當前位置和抓取目標位置,即可得出機械臂抓取的初始路線,并將初始生成的路線看做由多個節點組成的直線[13]。在考慮路線障礙以及機械臂自由度限制的情況下,對初始路線上的部分節點位置進行調整,調整結果可以表示為:
(10)
其中:σx、σy和σz為三維方向上的位置調整分量,變量的具體取值由障礙物的大小以及自由度限制量決定。將調整后的節點與前后兩個節點進行分別連接,完成機械臂抓取路線的更新工作[14]。在此基礎上,利用公式(11)對規劃路線進行插補處理,從而提高機械臂在抓取過程中的平滑度。

(11)
其中:farm為機械臂的工作頻率,(xp-1,yp-1,zp-1)為調整節點前的路線節點,求解結果dc和Nc表示抓取路線的插補距離和步數。按照上述方式對路線上的多個節點進行調整,最終得出能夠滿足執行要求的機械臂抓取路線規劃結果。
機械臂的執行元件作用在抓取目標表面的兩個接觸點上,作用力與接觸點摩擦軸線的夾角分別為φ1和φ2。當φ1和φ2均低于摩擦圓錐角時,兩個接觸連線分別設置在兩個摩擦圓錐的內側,并符合夾心的閉合狀態。同時,將夾具的作用力與磨削圓錐軸之間的角度轉化為抓取點與抓取架垂直方向的夾角。在機械臂的抓具位置測量中,鉗口的張開距離是一個重要的參數。在目標的主要方向上,所抽取的直線段的最大長度是有關的[15]。該最大距離代表了一個物體沿抓取方向的最大寬度,并且在抓取時,如果抓取的距離超過該最大寬度,則可以完成抓取。機械臂夾持器張開距離的預測結果可以表示為:
LGrab=1.5Dmax
(12)
其中:Dmax為抓取目標直線間的最長距離。另外,機械臂夾持器對目標物體施加的抓取力預測結果如下:
FGrab=mtargetg-κfmtargetg
(13)
其中:mtarget為抓取目標的質量,κf為夾持器與抓取目標之間的摩擦系數,g表示重力加速度[16]。按照上述方式,通過確定抓取目標的基本信息數據,確定機械臂抓取任務的控制參數。
從速度、位置、角度、力度等方面,計算機械臂在抓取過程中的實時控制量,其中機械臂抓取速度控制量的計算公式如下:
ΔυGrab=υtarget-υ0
(14)
其中:變量υ0和υtarget分別表示的是機械臂的當前移動速度和目標抓取速度,若公式(14)的計算結果為正,則加快驅動電機轉速,否則需要對機械臂的運行作減速處理,降低驅動電機轉速[17]。同理可以得出機械臂抓取工作參量的控制量計算結果,將其輸入到系統硬件的控制器中,自動生成控制指令,通過實時機械臂參數的更新及時調整控制指令[18-20],直至完成機械臂抓取任務為止。
以測試優化設計系統的機械臂抓取控制功能為目的,設計系統測試實驗,實驗策略為:對每個抓取任務進行多次實驗,每次實驗都保持物體靜止,在控制系統的作用下執行機械臂抓取任務,若系統顯示目標抓取已結束,但未抓取到目標物體,則認為目標抓取失敗,否則判定抓取任務執行成功。
為了體現出優化設計系統在抓取控制方面的優勢,設置傳統的基于機械臂位姿變換的抓取控制系統(文獻[2]方法)、基于WOA-FOPID算法的抓取控制系統(文獻[3]方法)和基于模糊補償的抓取控制系統(文獻[4]方法)作為實驗的對比系統,在相同的實驗環境中控制相同的機械臂抓取任務,保證系統測試實驗變量的唯一性。
此次實驗選擇ur5型號的機械臂作為控制對象,該機械臂的執行元件為兩爪夾持器,選擇的機械臂具有6個自由度,其最大臂長和工作空間均為1 200 mm,機械臂質量約為15.6 kg。選擇的機械臂樣機能夠支持對多種不同形狀物體的抓取,能夠抓取物體的最大質量為6.5 kg。
為了保證卷積神經網絡算法能夠在實驗環境中正常運行,并應用到機械臂抓取控制系統中,需要對相關運行參數進行設定。系統使用的卷積神經網絡包含一個輸入層、一個輸出層、5個卷積層、3個池化層和3個全連接層,輸入層和輸出層的尺寸均為227×227×3,而卷積層、池化層和全連接層的尺寸分別為227×227×3、27×27×96和13×13×256。結合圖像傳感器的工作參數,設置學習率的初始值為0.01。
在實驗環境中,設置機械臂的初始位姿,根據抓取目標物體的初始放置位置和移動目標位置,生成機械臂的抓取任務,部分任務的生成情況如表1所示。

表1 機械臂抓取任務設置表
表1中空間位置的度量單位為米。按照表1的設置方式,設置多組不同的機械臂抓取任務,并記錄抓取目標的初始位置和目標位置。根據抓取任務的設置情況,確定機械臂的控制任務,從表1中可以看出,機械臂需要抓取到不同位置的目標物體,并將其提高0.6 m。
將優化的硬件設備安裝在機械臂上,并對相機進行標定得到相機的內參,同時對相機到機械臂之間的坐標轉換關系進行標定。將配置好的機械臂安裝到實驗環境中,記錄初始位姿數據。圖像傳感器在確定物體位置后,會返回到物體的位置,也就是機器人與機器人手臂之間的距離,從而確定機器人在機器人的操縱范圍之內,如果機器人不在,則由機器人控制機器人將機器人移動到機器人的工作區域,從而實現視覺伺服、抓取和抓取控制程序。圖6表示的是機械臂抓取控制系統的任務執行界面。

圖6 機械臂抓取控制系統任務執行界面
完成一次抓取任務后,機械臂回到初始位置。按照上述流程重復執行抓取與控制操作,直至輸入系統中的所有任務均執行完成為止。按照相同的方式對實驗中對比系統進行開發,并得出對應的控制結果。
影響機械臂抓取任務的因素主要有位置控制偏差和速度控制偏差,上述偏差值越小、抓取掉落概率越低,說明對應系統的抓取控制功能越優。
為了實現系統控制功能的量化測試,設置位置控制偏差、速度控制偏差和抓取掉落概率作為測試指標,其中位置控制偏差的計算公式如下:
εposition=∑|qtarget-qactual|,q=x,y,z
(15)
其中:qtarget和qactual分別表示的是位置分量的目標值和實際值。速度控制偏差的數值結果為:
ευ=|υtarget-υactual|
(16)
其中:υtarget和υactual對應的是目標抓取速度和實際抓取速度。另外抓取掉落概率指標的測試結果為:
(17)
記錄并統計相關數據,通過公式(15)和(16)的計算,得出系統抓取參數控制誤差的測試結果,如表2所示。

表2 機械臂抓取參數控制誤差測試數據表
通過平均值計算,得出傳統系統的平均位置控制誤差分別為0.578 m、0.514 m和0.442 m,傳統系統的平均速度控制誤差分別為0.346 m/s、0.298 m/s和0.288 m/s,而優化設計系統下位置控制誤差和速度控制誤差的平均值分別為0.192 m和0.138 m/s。另外通過公式(17)的計算,可得出不同控制系統下機械臂抓取掉落概率的測試對比結果,如圖7所示。

圖7 控制系統下物體抓取掉落概率測試對比結果
從圖7中可以直觀看出,與傳統控制系統相比,優化設計基于卷積神經網絡的機械臂抓取控制系統作用下抓取物體的掉落概率更小,即控制功能更優。
目前的機械臂抓取控制系統多是依靠事先建立的對象抓取模型和整理成數據庫,而在非結構化的環境下,機械臂能夠與人交互,機械臂除了接收動作指令外,還具有感知和環境的能力,因此很難建立精確的數學模型。為此轉換機械臂的抓取控制邏輯,在卷積神經網絡算法的支持下,通過對抓取物體實時圖像的獲取與特征分析,獲取抓取與控制參數,進而完成機械臂的抓取任務。通過系統測試實驗,驗證了優化設計系統的可行性,能夠實現機械臂的智能抓取,對工業智能化、自動化具有重要意義。