魏勝利,石 玉
(安陽工學院計算機科學與信息工程學院,河南 安陽 455000)
在汽車制造等許多領域,都需要進行噴涂。采用噴涂機器人進行自動噴涂在現(xiàn)階段已經成為主流的方法??焖俑咝Ш途鶆蚴菄娡孔非蟮哪繕恕娡康男Ч伺c被噴涂表面的材質、粗糙程度、形狀及噴涂材料有關之外,還與噴涂機器人的參數(shù)有關,比如噴涂距離、噴涂角度、相對速度和噴涂路徑[1]。國內外許多研究人員都對提高噴涂機器人的噴涂質量進行了研究。由于噴涂路徑對噴涂質量有著重要的影響,所以多數(shù)研究集中在噴涂路徑規(guī)劃研究方面。文獻[2]利用正交矩陣分析了基體材料、噴涂距離、噴涂溫度、進料方式對噴涂效果的影響。施栩等通過建立噴涂層厚度分布數(shù)學模型,確定合適的間距來提高噴涂效率,解決陶瓷的釉層不均勻的問題[3]。蔡振華等根據(jù)實體模型的布爾運算結果,綜合路徑生成和噴涂工藝參數(shù),提出了一種最短路徑的規(guī)劃方法,并能保持路徑間距基本一致[4]。潘洋等根據(jù)平面靜態(tài)噴涂模型,提出了一種面向復雜曲面的軌跡規(guī)劃方法以解決噴涂作業(yè)時的涂料不均勻以及堆積問題[5]。陳穎峰等針對自由度噴涂機器人的運動控制問題,進行了相關高精度控制算法的研究[6]。寧祎等針對復雜表面特征的工件的噴涂進行了研究,提出了基于機器視覺和自學習算法的智能噴涂軌跡規(guī)劃方法[7]。王慧琛等基于噴涂間距的數(shù)學模型提出了一種針對噴涂均勻的設計方案[8]。李芳等對六自由度噴涂機器人的運動控制算法進行了研究,給出了一種規(guī)劃器,并驗證了算法的精確性[9]。
上述文獻分別從影響噴涂質量的因素分析、路徑規(guī)劃和控制算法等方面對噴涂機器人進行了研究,取得了一定的效果。但它們都沒有從噴頭和噴涂面之間的角度以及距離出發(fā)來研究提高噴涂質量。根據(jù)文獻[1],噴涂角度對噴涂質量的提升具有重要作用。對于曲面來講,保持噴頭和噴涂面的垂直以及噴涂間距的恒定有利于提高噴涂效率和噴涂均勻度。提出了一種使用五自由度機器人進行噴涂的方法,在噴涂過程中保持噴頭時刻垂直于噴涂面,并使噴頭和噴涂面距離保持恒定。以NURSB(非均勻有理B樣條)作為噴涂面描述方法,采用基于矯正的泰勒展開式保持插補步長等長以及噴涂路徑等間距,以提高噴涂的均勻度和噴涂效率。
從理論上說,在不考慮行程限制和干涉的情況下,五自由度機器人可以從任意的方向實現(xiàn)對噴涂面進行噴涂,并保持噴頭垂直于噴涂面,因此,本文基于五自由度噴涂機器人進行研究。如果考慮行程和干涉等因素,可以增加自由度。五自由度噴涂機器人具有5個可活動的關節(jié),噴頭安裝在機械臂的末端,噴頭末端采用喇叭狀,以保障噴涂區(qū)域穩(wěn)定,提高噴涂均勻度。
對于噴涂對象是光滑的平緩的自由曲面的情況,保持噴頭垂直于噴涂面,且噴頭和噴涂面的距離恒定可以比較好地保證噴涂的均勻,提升噴涂效率。保持噴頭垂直于噴涂面,是指噴頭中心線始終和噴涂面的法矢方向保持一致,即噴頭的中心線和其與噴涂面上交點處的法矢保持重合,如圖1所示。所謂噴涂距離保持不變,即噴頭的下端距其中心線和噴涂面的交點處的距離在噴涂過程中保持不變。一般由于噴頭的長度是一定的,也就是圖中末端關節(jié)的中心點距噴涂面的距離d保持不變。在噴涂過程中末端關節(jié)中心點始終和噴涂面保持等距。
圖1 噴頭垂直于噴涂面以及噴涂距離恒定
合適的路徑規(guī)劃可以提高噴涂效率,保證噴涂均勻度。文獻[3-5,7-8]分別針對不同的情況,給出了路徑規(guī)劃方法。對于變化比較平緩的曲面,復雜的、自適應的、智能的路徑規(guī)劃方法并不一定能提升效率,反而會造成算法的復雜。因此,噴涂路徑可以采用兩種規(guī)劃方式:一種是“之”字形路徑規(guī)劃方式,一種是“回”字形規(guī)劃方式。圖2為“之”字形路徑規(guī)劃方式,其中帶箭頭的實線是噴頭對應的中心線,箭頭表示前進方向;虛線表示兩次噴涂之間的邊界,兩條虛線中間的范圍就是噴頭噴涂行走時覆蓋的范圍或者稱為噴涂直徑。圖3是“回”字形路徑規(guī)劃方式,其中帶箭頭的實線是噴涂路徑的中心線,虛線是噴涂的邊界?!爸弊中温窂揭?guī)劃方式更容易實現(xiàn),“回”字形路徑規(guī)劃連續(xù)性更好。
圖2 “之“字形路徑圖3 “回“字形路徑
規(guī)劃好噴涂路徑后,要求出路徑上一系列點,這些點稱之為規(guī)劃路徑上的插補點。由插補點的坐標及兩個切矢求出法矢,根據(jù)等距關系求出末端關節(jié)中心點的坐標及位姿,由插補點的速度、加速度求出末端關節(jié)中心點的速度、加速度。根據(jù)這些參數(shù)利用機械臂逆運動學求出各個關節(jié)的瞬時轉動角度、速度、加速度??刂葡到y(tǒng)給各個關節(jié)的驅動電機發(fā)出控制信號,按照上述角度、速度、加速度進行動作,完成噴涂操作。
設已知噴涂面上某條規(guī)劃路徑上的某個插補點Pi以及該點處的兩個切向量(切矢)t1和t2,如圖4所示。
圖4 插補點示意圖
可以用式(1)求出該點處的法矢Ni。
Ni=t1×t2
(1)
從而可以利用式(2)求出末端關節(jié)中心點的坐標Qi。
(2)
(3)
其中,Rot(z,θ)表示繞z軸轉動θ,Trans(x,ai-1)表示沿著x軸平移ai-1,Transl(z,di)表示沿z軸平移di,Rot(x,αi-1)表示繞x軸轉動αi-1。θ表示關節(jié)角,ai-1表示連桿長度,di表示連桿偏距,αi-1表示相鄰兩個軸的夾角。
通過連續(xù)的坐標變換可以求出末端關節(jié)相對于基座的坐標變換,如式(4)所示。
(4)
在上述矩陣中,其左上角的3×3子矩陣代表旋轉變換的旋轉矩陣,每列從左到右分別表示末端坐標在基座坐標系x、y、z軸上的投影,為末端坐標在基坐標系下的方向位姿。最后一列px、py、pz表示末端坐標相對于基座坐標系的位置,即平動坐標。
根據(jù)式(4),在已知末端位姿和基座坐標的情況下,利用機器人逆運動學方法可以求出各個關節(jié)轉動的情況,從而可以讓控制器給各個關節(jié)的驅動電機發(fā)出指令,完成循跡操作。根據(jù)規(guī)劃的噴涂路徑及噴頭與噴涂面的垂直和等距關系求出噴頭中心的位姿。
在機械臂操作中速度控制要用到雅可比矩陣如式(5)所示,它是機械臂末端的笛卡爾速度與各個關節(jié)速度的變換矩陣。
V=J(q)ω
(5)
其中,V為機械臂末端的速度,它包含末端位姿的平移速度和轉動速度,是一個6維向量,V=[vxvyvzwxwywz]T。J(q)是一個6×5的矩陣。ω是各軸的角速度,它是一個5維的向量
由于V包括平移速度和轉動速度兩部分。所以,雅可比矩陣J(q)也可以寫成如下形式:
(6)
由式(4)中的轉換矩陣,Jv和Jw分別表示為如下形式:
(7)
(8)
根據(jù)式(5),各關節(jié)的角速度為如下形式:
ω=(J(q))-1V
(9)
其中,(J(q))-1是J(q)的逆矩陣??梢圆捎脧V義逆矩陣方式求解,為了更加方便計算,可以將五自由度機械臂虛擬為六自由度機械臂,但其最后一個位姿一般保持不變。
鑒于NURBS(非均勻有理B樣條)具有強大的統(tǒng)一描述能力,且被STEP(產品模型數(shù)據(jù)交換標準)作為定義工業(yè)產品幾何形體的標準數(shù)學表達方法,因此被噴涂的曲面采用NURBS方法來描述。在數(shù)控及機器人路徑規(guī)劃領域,很多研究基于NURSB開展。周晟等采用5次NURBS方法建立路徑數(shù)學模型,提出改進的人工蜂群算法,解決噴涂機器人軌跡優(yōu)化問題[10]。晉文科等為有效抑制機械臂高速運動過程中的波動,提出一種基于NURBS算法的7關節(jié)冗余機械臂軌跡規(guī)劃方法[11]。張鵬等針對噴涂機器人在大曲率組合曲面的面片上噴槍軌跡間的組合與連接問題,結合曲面擬合理論與噴槍建模方法,建立噴槍軌跡優(yōu)化模型,提出一種滿足大曲率組合曲面上噴槍軌跡首尾銜接的算法程序[12]。
噴涂面以NURBS方法描述,采用泰勒展開式等間距的噴涂路徑和等長的插補步長。
一個NURBS曲面可以描述為:
(10)
其中,Pi,j為控制頂點矢量,Wi,j為權因子,Bi,k(u)和Bj,l(ξ)分別為沿u向和沿ξ向B樣條基函數(shù)。
如果不知道被噴涂曲面的NURBS方程,可以通過掃描獲取被噴涂曲面的散亂型值點或者點云數(shù)據(jù),通過逆向工程擬合出其NURBS方程。
根據(jù)前面所述,路徑規(guī)劃可以采用“之”字形路徑或者“回”字形路徑。這里采用“之“字形路徑進行說明。
NURBS描述方法為雙參數(shù)方法,具有兩個參數(shù),即u方向和ξ方向兩個的參數(shù)。在式(10)中,如果設定一個參數(shù)為特定值,則其將演變?yōu)橐粭lNURBS曲線,式(11)表示設定ξ方向參數(shù)時獲得的u方向曲線方程。
(11)
將一個方向的參數(shù)取一系列特定的值,則可以在NURSB曲面上表達出一系列的NURSB曲線,將這些曲線作為噴涂的中心路徑。一般情況下,被噴涂的曲面都較為平緩,極少出現(xiàn)劇烈的變換或者扭曲現(xiàn)象,因此采用這種方法可以取得較好的效果。
在噴涂中,希望噴涂路徑的間距是等距的,這樣可以減少噴涂次數(shù),提高均勻度。問題的關鍵在于方向參數(shù)的確定。在NURBS方法中,方向參數(shù)通常在0~1之間變化,但參數(shù)的等間隔分配并不能使得獲得的曲線是等間距的,因此應該采用保證曲線等間距的方式來確定方向參數(shù)??梢圆捎锰├照归_式法來獲得較為穩(wěn)定的等間距曲線(噴涂路徑中心線)。根據(jù)圖3所示的噴涂覆蓋范圍(或者噴涂直徑),可以得到兩條噴涂中心線的間距l(xiāng),根據(jù)間距l(xiāng)使用二階泰勒展開式估計出下一個參數(shù)。
(12)
在計算時,導數(shù)可以用差分方式進行計算。計算出ξi+1后代入式(10),計算出該曲線。由于這個估計的參數(shù)存在一定的舍棄誤差,并且誤差還可能積累,因此,計算出來以后可以進行驗證,計算該曲線和上一條曲線的距離l′,如果能滿足要求,則采用該值,如果誤差較大,則進行矯正操作。
(13)
要實現(xiàn)連續(xù)的噴涂,要求出噴涂路徑上的一系列插值點,即要求出式(11)一系列的插值,從而保證噴涂連續(xù)進行。為了達到噴涂快速均勻的目標,對于曲面形狀變化平緩的噴涂曲面,采用恒定的噴涂速率有利于提高噴涂速度,保持噴涂穩(wěn)定高效,提高噴涂質量。恒速的噴涂需要采用等步長插補方法。確定插值點的關鍵是確定噴涂路徑NURBS曲線的u方向的參數(shù),其思路和確定ξ一樣采用泰勒展開式-矯正方法。
確定出參數(shù)之后,利用式(11)進行計算插值點。令:
(14)
(15)
那么式(11)可寫成:
(16)
C(u)的一階和二階導數(shù)可以寫成如下形式:
(17)
M(u)和N(u)可以由deBoor方法求解。M′(u)和N′(u)可以根據(jù)式(18)求出。
(18)
其中,Bc,k-1為B樣條基函數(shù),Vi為B樣條控制頂點。
根據(jù)上述公式可以計算出插值點的坐標以及在插值點的μ方向的切向量和ξ方向的切向量。利用這兩個向量可以求出該點處的法向量。如果將這兩個切向量命名為t1和t2,將法向量命名為Ni,則其求解方法見公式(1),如果將插值點的坐標向量命名為Pi,則利用公式(2)求出末端關節(jié)中心點的坐標Qi。
法向量Ni和末端關節(jié)中心坐標Qi代表了噴頭相對于基坐標的位姿和平動坐標,即式(4)的右邊矩陣。
根據(jù)前面的算法分析,實現(xiàn)了相應的算法,并進行了仿真。圖5是要進行噴涂的噴涂曲面,用NURBS方法進行描述。圖6是噴涂的路徑及噴涂的插補點,采用“之”字形規(guī)劃路徑。從圖中可以看出,噴涂路徑光滑平順,噴涂間距等寬且均勻,達到了算法的目的,為高效均勻的噴涂提供了算法的保證。圖7是噴涂的步長變化情況,圖示表明,進行噴涂時基本保證了步長的穩(wěn)定,達到了算法的目的,為實現(xiàn)高速平穩(wěn)的噴涂提供了條件。
圖5 噴涂面圖6 噴涂的路徑及插補點
圖7 噴涂步長變化
針對噴涂對象為平緩光滑曲面的情況,提出了一種保持噴頭時刻垂直于噴涂面且噴涂距離恒定的噴涂方法。噴涂面采用NURBS方法進行描述,對于不知道噴涂面NURBS方程的情況,可以掃描噴涂面獲得點云數(shù)據(jù),利用逆向工程求得噴涂面的NURSB方程。采用“之”字形或者“回”字形噴涂路徑,以泰勒展開式保持噴涂速度恒定及相同的噴涂間距,以此達到快速平穩(wěn)均勻噴涂的目的。實現(xiàn)了算法,并進行了仿真。結果顯示,算法能夠達到保持路徑均勻等寬以及插補步長恒定,從而為實現(xiàn)高效平穩(wěn)均勻的曲面噴涂提供了保證。