賀道坤
(南京信息職業(yè)技術學院 智能制造學院,江蘇 南京 210023)
在我國的工業(yè)生產領域中,有關機械零件的裝配還有一部分要依靠人工來完成。近年來,隨著機械領域的快速發(fā)展以及制造業(yè)的業(yè)務拓展需求,自動化裝配成為主流,機械臂裝配也一直是機械領域研究的前沿[1-3]。
人工裝配存在著裝配精度差、效率低及成本高等缺點,使得借助機械臂的自動裝配技術得到了人們的重視,其自身也得到了快速發(fā)展[4-6]。
其中,有一種機械臂裝配應用場景,被稱之為“軸孔裝配(peg-in-hole assembly)[7,8]”。軸孔裝配是目前工業(yè)生產中常見的作業(yè)形式,廣泛出現在汽車、軌道交通、飛行器等領域的機械系統制造裝配中。
通過自動化軸孔裝配可以在最小化零件數量種類的同時,最大限度地提高零件的夾持性和插入性,從而極大地提高裝配的效率,縮短機械產品的生產周期,這已成為軸孔裝配的主流解決方案[9]。
在該研究領域,國內現在已有大量的研究成果。朱博文等人[10]詳細闡述了機械零件自動軸孔裝配的種類和發(fā)展現狀,分析了裝配系統中所應用的關鍵技術,并且指出,當前自動軸孔裝配技術存在搜尋過程的周期不確定性強、搜尋效率較低等不足。為了保證機器人在任意的抓取位姿都能夠完成3種形狀軸孔零件的裝配任務,劉少軍等人[11]提出了一種利用力傳感器實現主從雙臂協調運動的軸孔裝配策略,但該策略受到傳感器性能的約束。針對工業(yè)機器人自動裝配效率低、環(huán)境適應性差等問題,潘柏松等人[12]提出了一種基于幾何約束物理模型與隱馬爾可夫鏈模型相結合的機器人軸孔裝配策略,但對于高精度、小間隙軸孔零件,采用該裝配策略時,其加工誤差對于機器人軸孔自動裝配系統的影響較為明顯。
在該領域,國外也有不少研究成果。NGUYEN H T等人[13,14]結合角動量守恒定律,提出了一種基于RNS的翻滾目標機械臂裝配算法,但對于擁有6自由度的機械臂而言,該算法的應用范圍受到很大的限制。HOGAN F R等人[15]提出了一種基于數據驅動的機械臂裝配模型,從而避免了直接從大量的原始數據中學習重復的抓取策略;然而,該模型需要根據當前裝配構型的預測值不斷地調整接觸點,因此是一個動態(tài)的裝配過程。與之類似,CALANDRA R等人[16]提出了一種端到端的裝配模型,以預測當前裝配下的最優(yōu)策略,但也存在適用場景受限的不足。
在軸孔裝配方面,由于其重力所產生的擾動力與插裝力在同一軸線上,插裝過程容易控制,從技術上來考慮,這種裝配方式難度相對較小。水平方向裝配是一種較為新穎的裝配方式,由于其重力產生的擾動力與裝配力方向垂直,在插裝的過程中容易晃動,裝配難度相對較大。
然而,還有一類將垂直控制與水平控制相結合的裝配方式,對于機械臂而言,其控制策略更難以掌握。其中之一是被稱之為“淺深度插入(shallow-depth insertion)”的機械臂裝配方式,指的是通過機械臂將相對較小較薄的零部件插入相對較淺的凹槽中。在靈巧性以及抓取方式上,與通常的機械臂軸孔裝配相比,這種應用場景有著很大的不同。
在傳統的軸孔裝配中,機械臂抓住部件側面,并與相對較深的孔壁接觸。然而,對于淺深度插入裝配任務,機械臂如再采取這種握持方式,則對于較小、較薄部件就可能抓不穩(wěn),甚至不能側握。
在機械臂裝配任務中,由于被操縱的對象會與環(huán)境接觸,力控制技術是必要的,裝配運動需要設計合適的力控參數。對于簡單的裝配任務,如軸孔裝配任務,可以采用固定的力控制參數,或采用試錯方式獲得力控制參數來加以實現。然而,對于淺深度插入這類更為復雜的裝配任務,則必須根據任務狀態(tài)對力控制參數進行調整。
為此,為得到適用于機械臂淺深度插入的控制策略,筆者提出一種基于隱馬爾可夫的淺深度插入控制策略,即通過采集人工操作數據,獲得淺深度插入力控參數,利用阻尼控制律對人工操作過程進行建模,發(fā)揮隱馬爾可夫處理多時間序列的關聯優(yōu)勢,對力控參數的時間序列數據進行建模,得到用于機械臂淺深度插入的控制策略。
此處以干電池插入為例進行具體說明。
對于機械臂來說,將圓柱形操縱對象插入裝有彈簧盒中的這類淺深度插入操作是一項常見但復雜的裝配任務,需要機械臂根據反作用力和物體的構型來控制整個裝配運動。
淺深度插入示例如圖1所示。
圖1 淺深度插入示例
上述淺深度插入操作可分為以下基本動作:
(1)電池與被接觸對象的端面匹配;(2)電池向端面的推動運動;(3)用于被接觸對象方向的旋轉運動;(4)電池與被接觸對象的完全放置。
對于機械臂而言,淺深度插入控制是一項復雜的裝配任務,在裝配過程中需要進行一些力控參數的切換。對于人工操作而言,淺深度插入控制卻可以輕而易舉地完成。
從策略上來看,機械臂淺深度插入控制技術可以很好地借鑒人工操作的控制策略,進一步降低機械臂的操控難度。其具體步驟如下:
首先,筆者利用代表機械臂的實驗裝置獲得人工操作數據,并確保所獲得的裝配策略能夠應用于機械臂(操作員的動作必須像機械臂一樣受到限制,人工操作數據應該包括被操縱物體的位置和物體與環(huán)境之間的反作用力);
然后,基于實測的人工操作數據,筆者識別演示中力控參數的時序數據,對所獲得的力控制參數的時序數據進行建模,并將其劃分為一些控制策略,確保能夠將這些策略有效應用于機械臂;
最后,采用隱馬爾可夫進行建模(隱馬爾可夫是一種可用于建模和隨機數據分析的統計框架[17]),這樣不僅可以描述可觀察的隨機過程,而且可以描述數據背后的不可測過程;通過對隱馬爾科夫模型進行分析,從而構建機械臂淺深度插入控制策略。
淺深度插入示例如圖2所示。
圖2 人工操作數據采集設備
圖2中的人工操作數據是使用一個模擬機械臂的設備來進行測量的,該設備中間部分裝有6自由度的力傳感器(包括力傳感器設備重量為0.5 kg,這讓人工操作者可以輕松地進行操控)設備的末端裝有代表干電池的圓柱體部件(其尺寸與電池相同,即直徑1.4 cm,長度5 cm)。
人工操作數據采集過程示例如圖3所示。
圖3 人工操作數據采集過程示例
為全面獲取人工操作數據,操作者運用設備重復40次淺深度插入動作,每10次試驗中有短暫的休息時間。其間,操作者用高速攝像機拍攝,根據直接線性變換(direct linear transformation,DLT)方法[18],使用空間位置測量系統實時標記貼附在設備手柄上的重心位置,并通過標記的位置計算設備的位置和方向;電池部件與卡槽之間的反作用力由設備中的力傳感器測量;對位置測量和力測量的采樣頻率分別為240 Hz和1 kHz。
測量的人工操作數據情況如圖4所示。
由圖4可知:期初2 s~2.3 s左右,設備處于搜索運動階段;隨后,由于沿彈簧方向(y軸)的反作用力fy的增大,設備沿y軸的位置減小,開始對彈簧壓縮的推動;從大約2.8 s開始,設備繞x軸方向角rx逐漸減小,而繞同一軸的力矩絕對值mx增大,旋轉運動在3.2 s~3.8 s間完成,其力矩出現多次波動。
圖4 測量的人工操作數據情況x,y,z—空間坐標軸方向,m;rx—x軸方向角,rad;ry—y軸方向角,rad;rz—z軸方向角,rad;fx—x軸方向作用力,N;fy—y軸方向作用力,N;fz—z軸方向作用力,N;mx—繞x軸的力矩,Nm;my—繞y軸的力矩,Nm;mz—繞z軸的力矩,Nm
在接下來的步驟中,筆者根據測量到的人工操作數據,在每個采樣時間里估計人工操作員使用的力度控制參數。
由于機械臂操控需要綜合考慮控制力與作用于物體上反作用力對機械臂速度的影響,筆者采用符合實際的阻尼控制律對人工操作過程進行建模,即將人工操作過程等效為機械臂,將其運動速度分解為自用運動速度以及反作用力速度。
阻尼控制律模型如下:
vref=v0+Afout
(1)
式中:vref—應用于機械臂的參考速度,m/s;v0—標稱速度,m/s;A—通道矩陣;fout—作用于物體上的反作用力,N。
標稱速度和通道矩陣均被視為阻尼控制參數,并由它們確定機械臂運動。此外,通道矩陣還決定了應如何根據反作用力對參考速度進行修正,標稱速度則描述了自由空間運動。
簡便起見,筆者假定通道矩陣A為對角矩陣,并對通道矩陣采用約束條件ai,j≥0(i,j=x,y,z,rx,ry,rz),以此來對相關參數進行估計。
為了更好地模擬人工演示動作,筆者關于p軸(p=x,y,z,rx,ry,rz)將式(1)改寫為:
(2)
式中:xp—設備模塊沿p軸或繞p軸所測量的位置信息,m;Ap—通道矩陣A沿或繞p軸的行向量,且Ap=[ap,x,ap,y,…,ap,ry,ap,rz];帶有k的值—t=kΔ時的實測數據,其中:Δ—采樣周期;θp—需要估計的參數。
雙線性z變換模型式為:
(3)
(4)
其中:
Xp(k)=T1(z)xp(k)
(5)
F(k)=T0(z)f(k)
(6)
(7)
(8)
筆者利用帶遺忘因子的遞歸加權最小二乘(weighted least squares,WLS),對推導出的離散時間模型進行更新,可得到如下更新模型:
(9)
其中:
(10)
(11)
(12)
式中:Cp—一個只有0或1的矩陣;O0—一個零矩陣。
利用拉格朗日待定乘子求解該約束最小二乘問題,得到如下更新模型:
(13)
筆者通過識別人工操作數據,獲得阻尼控制參數的時間序列數據,并基于隱馬爾可夫(hidden Markov model,HMM)對機械臂淺深度插入控制進行定量建模。筆者采用連續(xù)參數隱馬爾可夫模型來避免控制行為輸出符號的量化誤差。
事實上,隱馬爾可夫過程是隨機躍遷連接有限狀態(tài)的集合。連續(xù)參數隱馬爾可夫通常有以下5個參數:
(1)狀態(tài)S=S{si}(i=1,2,…,N)。其中:N—設計者初步確定的狀態(tài)數;
(2)輸出符號O={ok}(k=1,2,…,∞)。通常為隱馬爾可夫過程的可觀測數據;
對于淺深度插入的信號輸出而言,由于機械臂淺深度插入幾乎可以用y-z平面來描述,所以其輸出y的矢量模型為:
(14)
其中:
x′=[yzrx]T
(15)
(16)
(17)
此外,符號的輸出概率可由多維高斯分布定義為:
(18)
式中:k—輸出信號向量的維數,且k=12;μsi—均值向量,μsi∈Rk;∑si—協方差矩陣,∑si∈Rk×k,為了便于機械臂的實現,假設其為對角矩陣。
在機械臂淺深度插入過程中,由于筆者選擇了控制策略組合來實現裝配任務,在其任務完成過程中,其控制策略在某些時間段要重復使用。
對于隨機變化的控制策略,由于其具有相當大的動態(tài)適應性,隱馬爾可夫模型(HMM)在揭示多個時間序列之間的關聯關系方面具有顯著優(yōu)勢,能夠有效評估人類與機械臂操作的相似性。
因此,筆者采用遍歷模型來表示隱馬爾可夫的狀態(tài)連接,并針對隱馬爾可夫拓撲結構的確定與參數估計,筆者利用MATLAB的隱馬爾可夫工具箱,根據辨識出的阻尼控制參數序列,對隱馬爾可夫參數進行估計。
其中,狀態(tài)數按估計協方差矩陣的值來確定,其評估值由以下模型確定:
(19)
隱馬爾科夫狀態(tài)轉移過程如圖5所示。
圖5 隱馬爾科夫狀態(tài)轉移過程示圖
為了掌握機械臂淺深度插入所需的裝配策略,筆者對上述隱馬爾科夫模型進行分析。
在圖5中,筆者根據估計的初始狀態(tài)概率π和狀態(tài)轉移概率C,描述了機械臂淺深度插入隱馬爾科夫的狀態(tài)轉移過程??傮w而言,隱馬爾科夫的狀態(tài)連接過程形成了一個從左至右的串行流程,即機械臂淺深度插入可以通過一些串聯的控制策略來實現。
其中,每個狀態(tài)下執(zhí)行的控制策略為:
(1)初始狀態(tài)s1。人工操作在該狀態(tài)下進行電池端面與v0和A較小的彈簧匹配運動,整體過程緩慢;
(2)過程狀態(tài)s2。與s1相比,ω0x的平均值增大而arx減小。這一過程主要執(zhí)行剛性旋轉運動;此外由于y增加和fy減少,在推動前將實現“電池”方位的微調;
(3)過程狀態(tài)s3。在此狀態(tài)下,沿彈簧方向的反作用力fy以及ω0x將增大,而ay將減少;
(4)過程狀態(tài)s4。與狀態(tài)s3相似,fy和ω0x逐漸增加,而ay逐漸減少。此外,v0y將大大降低。在這一狀態(tài)下機械臂將繼續(xù)推進;
(5)過程狀態(tài)s5。這一狀態(tài)中雖然v0y繼續(xù)減小,但ay將增至最大;
(6)過程狀態(tài)s6。圍繞旋轉軸,該狀態(tài)保持與狀態(tài)s5相同的控制策略。在彈簧方向上,由于v0y逐漸增加,y保持較大的值,并進行順應性調整運動;
(7)過程狀態(tài)s7。由圖5可知,該狀態(tài)是由狀態(tài)s5至狀態(tài)s8的過渡狀態(tài);
(8)過程狀態(tài)s8。最終到達該狀態(tài),即完全放置狀態(tài)。
通過隱馬爾可夫獲得的淺深度插入控制策略如表1所示。
表1 通過隱馬爾可夫獲得的淺深度插入控制策略
當淺深度推動運動轉變?yōu)樾D運動時,沿彈簧方向和繞旋轉軸方向的控制策略將由剛性控制轉變?yōu)槿嵝钥刂?。此?筆者還推導出了沿插入軸旋轉運動的組合控制策略。
機械臂裝配過程中,為了驗證該控制策略能夠對機械臂淺深度插入進行很好地控制。筆者擬在多種應用場景中,采用UR10 6自由度機械臂分別開展機械臂淺深度插入實驗。
筆者通過機械臂模擬設備采集到的阻尼控制參數如圖6所示。
圖6 機械臂模擬設備采集的阻尼控制參數v0y,v0z—沿y軸、z軸的標稱速度,m/s;ω0x—繞x軸的標稱速度,rad/s;ay,az—沿y軸、z軸的通道矩陣元素,m/Ns;arx—繞x軸的通道矩陣元素,m/Ns
隱馬爾可夫相對各參數標準差分布如圖7所示。
圖7 隱馬爾可夫相對各參數標準差分布
機械臂設備示圖如圖8所示。
圖8 機械臂設備示圖
圖8中的設備是安裝在通用UR10 6自由度機械臂上的Robotiq2自適應平行爪夾器。其傳感方式采用FT300力扭矩傳感器作為手腕力扭矩傳感器,信息采集使用1 080 p網絡攝像頭進行視覺感知與數據采集。
基于Python編寫ROS2包,以實現機械臂淺深度插入控制策略。在該軟件包中,定義了3個功能函數,分別為:“傾斜”、“抓握調整”和“放置”,并通過協調機械臂的驅動器來實現。
機械臂“傾斜”行為演示圖如圖9所示。
圖9中,它以旋轉中心和傾斜角作為輸入,然后控制機械臂執(zhí)行剛體旋轉運動,從而改變放置物與被接觸對象的夾角。
圖9 機械臂“傾斜”行為演示圖
機械臂“抓握調整”行為演示圖如圖10所示。
圖10 機械臂“抓握調整”行為演示圖
該過程主要是針對不同放置物,根據不同被接觸對象采取一系列推動和旋轉動作。它以旋轉中心、期望位移、物體與機械臂的尺寸、物體與機械臂的相對位置作為輸入,然后控制機械臂與物體的夾角,而物體與被接觸對象的夾角保持不變。
機械臂的“放置”行為演示圖如圖11所示。
圖11 機械臂“放置”行為演示圖
由于函數的相似性,可將該方式看作是“傾斜”派生出來的。不同之處在于,機械臂在縮減物體與被接觸對象夾角的同時,需要讓物體緩緩離開機械臂夾板,直至物體被完全放置于被接觸對象上。
然后,筆者通過機械臂進行實際的淺深度插入控制,實現了干電池的裝配任務。
機械臂干電池裝配測試過程如圖12所示。
圖12 機械臂干電池裝配測試過程
在此基礎上,筆者對于手機電池和樂高拼圖又開展了相應的淺深度插入控制。
機械臂對手機電池和樂高積木的裝配測試過程如圖13所示。
圖13 機械臂對手機電池和樂高積木的裝配測試過程
通過測試可知,機械臂裝配過程中,通過筆者提出的基于隱馬爾可夫的機械臂淺深度插入控制技術,能夠分別在干電池安裝、手機電池裝配和樂高積木搭建等多種應用場景中很好地實現機械臂淺深度插入控制。
針對淺深度插入裝配機械臂難以操控的問題,筆者提出了一種基于隱馬爾可夫的機械臂淺深度插入控制策略,并在多種應用場景中,采用UR10 6自由度機械臂分別開展了機械臂淺深度插入實驗。
研究結論如下:
(1)基于人工操作數據采集淺深度插入力控參數,基于實測的人工操作數據,識別演示中力控參數的時序數據,利用阻尼控制律對人工操作過程進行建模;結果表明,人工操作數據能夠等效為機械臂行為,有助于機械臂控制策略的獲取;
(2)利用隱馬爾可夫模型對力控參數的時間序列數據進行建模,得到了用于機械臂淺深度插入的控制策略;結果表明,該策略可以由隱馬爾可夫模型在各個狀態(tài)下的符號輸出概率表示,有效避免控制行為輸出符號的量化誤差;
(3)通過分析得到的控制策略,推導出了機械臂為完成淺深度插入裝配任務所需的基本動作,如匹配、推動、旋轉和放置等;結果表明,該項研究能夠實現機械臂對干電池安裝、手機電池裝配和樂高積木搭建等多種應用場景的自如控制。
在今后的工作中,筆者將繼續(xù)對需要根據應用場景隨時切換控制策略的機械臂裝配任務開展深入研究,并通過對其他裝配任務的實踐分析,為機械臂積累更為有效的控制策略。