方駿瑋,王斌銳,謝勝龍,任海軍
(1.中國計量大學機電工程學院,浙江 杭州 310018;2.杭州新松機器人自動化有限公司,浙江 杭州 311200)
機器人可代替人工完成高負荷、重復性任務,提高生產效率,工業領域應用需求量大。現有的機器人示教大多采用示教盒示教,示教過程復雜,精度較低,且對操作者技術水平要求高,限制了機器人推廣應用。尤其是在對示教軌跡精度要求高的領域,如噴涂、打磨等,采用示教盒示教時存在著工作量大、效率低下的問題。為滿足現代工業復雜多變的特點,直接示教逐漸引起了學者們的重視。直接示教是指操作者直接拖拽機器人末端,以末端沿著工作軌跡運動,形成機器人整套動作。該示教方法能大大簡化機器人操作流程,提高企業生產效率。
當前在直接示教領域研究的重點是在無傳感器的情況下采用控制算法實現直接示教,其中最為典型的一種方法是零力控制方法[1],它是促使機器人順應外力作用,使得其運動如同不受重力和摩擦力等外力作用的一種控制方法。目前常用的零力控制方法主要基于重力與摩擦力補償[2-3]。實際上,當示教速度增加時,機器人因運動引起的慣性項增加,從而導致機器人示教柔順性變差。因此,在零力控制器的設計中有必要考慮慣性項的影響。零力控制的關鍵在于準確地補償機器人所受的重力矩以及摩擦力矩。因此動力學模型的精確性對提高示教過程的柔順性至關重要。常用的獲取機器人動力學參數的方法有CAD軟件測量法和動力學參數辨識法[4-6]。由于前者忽略零件的加工、裝配等誤差而與真實情況存在很大偏差。因此目前主要采用動力學參數辨識方法。然而,當關節數目超過4個后,由于動力學模型復雜程度急劇增加,準確的動力學參數往往很難獲取。為此,文獻[7]提出了一種工業機器人動力學參數分步辨識新方法。該方法在簡化辨識方程的同時,減小了計算量,提高了辨識精度。但是,由于只做了連桿的分步,而分步后連桿的動力學模型依舊十分繁冗,在對系數矩陣的條件數進行優化時依然存在較大難度。
這里所設計的零力控制器在傳統零力控制器的基礎上增加了慣性力補償并應用于機器人免力矩傳感器直接示教。同時,針對6軸機器人動力學模型參數辨識復雜的特點,提出了一種新的分步參數辨識方法以降低計算量,提高參數辨識效率。最后,以一種6軸機器人為研究對象驗證了該動力學參數分步辨識方法的可行性和所提零力控制方法的有效性。
機器人零力控制的基礎是其動力學模型,這里采用牛頓-歐拉法建立機器人的動力學模型:

研究表明,存在一組依賴于機器人慣性參數的特征向量,能將非線性的機器人動力學方程轉換成如下線性化形式[8]:

令機器人關節數目為n,則Φd為n× 10n維觀測矩陣,Φd與機器人慣性參數無關;pd為10n× 1 維的機器人慣性參數向量,對于機器人連桿i而言,其自身連桿的慣性參數向量pdi的具體形式為:

式中:Ixxi、Ixyi、Ixzi、Iyyi、Iyzi、Izzi—連桿i相對于坐標系i原點的慣性張量;mi—第i個連桿的質量;mixi、miyi、mi zi—連桿i相對于坐標系i原點的一階慣量矩;xi、yi、zi—連桿i的質心坐標。
上述式(1)和式(2)為不考慮摩擦情況下機器人理想的動力學方程。然而在機器人實際工作過程中,摩擦對機器人的動態特性不可忽視。這里引入經典的庫倫黏滯摩擦建立機器人關節的摩擦力矩模型:

式中:τf—機器人關節摩擦力矩;
fc和fv—庫倫摩擦系數和黏滯摩擦系數。
結合式(2)和式(4),即可得到考慮摩擦的機器人線性化動力學方程:

式中:Φs—n×12n維觀測矩陣為12n×1維的機器人慣性參數向量,對于具體的連桿i,有:

理論研究表明觀測矩陣Φs總是不滿秩的,意味著向量ps中并不是所有連桿的慣性參數都會對機器人的關節力矩產生作用[9]。為此,需要通過一定的線性變換對機器人動力學參數進行重組得到一組最小慣性參數。重組后只含有最小慣性參數的線性化動力學模型可表示為:

已知式(7)所述的線性動力學模型,機器人動力學參數的辨識問題即轉變成方程組的求解問題。驅動機器人按既定的辨識軌跡運動,確定采樣周期,取得多個不同位置下的角度、角速度、角加速度和力矩值,記采樣的次數為N(為防止噪聲對測量值的影響,N一般取值較大),則可得如下超靜定方程:

式(8)為機器人動力學參數的辨識方程,其中Η為nN×(p+2n)維觀測矩陣,稱Η為辨識方程的系數矩陣;Γ為nN×1維力矩向量。
對于該超靜定線性方程,采用加權最小二乘法估算機器人慣性參數向量P,通過對測量噪聲協方差的逆矩陣進行加權,可得P的估計值為:

Σ—N×N的力矩協方差矩陣,即加權矩陣。
由于6自由度工業機器人動力學模型復雜,辨識方程系數矩陣維度高,辨識過程計算量大,很難直接采用上述辨識算法進行參數估計。為此,這里根據機器人各關節驅動力矩數值的差異,將待辨識的研究對象分為兩類,第一類研究對象為各軸的驅動力矩差異較大的機器人,第二類研究對象為各軸驅動力矩區別不大的機器人(如協作機器人)。
對于第一類研究對象,其1-3軸的驅動力矩遠大于4-6軸的驅動力矩,因此1-3軸的慣性參數在數值上同樣要遠大于4-6軸慣性參數,同時4-6軸的慣性參數對1-3軸影響不大,故可先忽略4-6軸的影響,對機器人1-3軸進行動力學建模并辨識出1-3軸的慣性參數,在此基礎上再辨識4-6 軸的慣性參數。這是文獻[7]中介紹的分步參數辨識方法。
實際上,由機器人動力學模型(1)與摩擦模型(4)可知,當機器人處于靜止狀態時,驅動力矩主要用于克服機械臂的重力矩以及庫倫摩擦力矩,而各連桿的重力矩只與連桿質量及其一階質量矩相關,所受的庫倫摩擦由庫倫摩擦系數決定。因此可以將動力學參數分為兩組,第一組是與重力矩及庫倫摩擦力矩相關的質量、一階質量矩以及庫倫摩擦系數,第二組是與機器人轉動慣量相關的慣性張量以及與粘滯摩擦力矩相關的粘滯摩擦系數。
因此,可在上述參數分步辨識方法的基礎上做進一步細化處理,這里所設計的動力學參數分步辨識流程,如圖1所示。

圖1 參數分步辨識流程圖Fig.1 Parameter Classification Step Identification Flow Chart
關于第一類研究對象的動力學參數分步辨識方法如圖1左側流程所示,其具體辨識步驟如下:
(1)辨識1-3軸中各連桿質量、一階質量矩以及庫倫摩擦系數;(2)辨識1-3軸中各連桿慣性張量與各關節的黏滯摩擦系數;(3)辨識4-6 軸中各連桿質量、一階質量矩以及庫倫摩擦系數;(4)辨識4-6軸中各連桿慣性張量與各關節的黏滯摩擦系數。
而待辨識的對象為各個關節驅動力矩區別不大的機器人時,則上述參數分步辨識方法退化為圖1中右側所示的兩步參數分步辨識法,即先辨識各連桿的質量、一階質量矩、庫倫摩擦系數,再辨識各連桿慣性張量與各關節的黏滯摩擦系數。采用以上分步辨識方法,充分降低了計算過程的矩陣維度,減少了計算量,為實現多自由度機器人參數辨識提供可行的方法。
在進行機器人動力學模型參數辨識前,需要合理地選擇激勵軌跡,以充分激勵待辨識系統,進而精確辨識出動力學模型中的未知參數[10]。
為避免機器人在運動軌跡節點處的“跳變”現象,這里采用傅里葉級數作為機器人的激勵軌跡,機器人的激勵軌跡可表示為:

式中:t—軌跡運行時間;ω—軌跡基礎頻率,這里取0.2πHz;qi0—第i個關節的位置補償量;qi—第i個關節的位置;ai,k和bi,k—正余弦分量的幅值;m—傅里葉級數的次數,這里取m=5。
實際辨識中,系數矩陣H的條件數越小,最后的辨識結果受采樣值噪聲影響越小。H的條件數則由激勵軌跡的參數qi0、ai,k和bi,k決定。以系數矩陣H的最小條件數為優化目標,機器人的關節限位為約束條件,采用相關的優化算法可得到最優激勵軌跡的決策變量qi0、ai,k和bi,k。
零力控制算法的本質是實時補償機器人關節所受的重力矩和摩擦力矩,傳統的零力控制器在力矩控制模式下輸出的力矩τact為如下形式:

結合式(1)可知,該控制器補償了示教過程中機器人的重力與摩擦力,操作者施加的外力需要克服機器人關節的慣性力項M(q)、科氏力與向心力方可拖動機器人運動,即:

式中:τF—操作者示教過程中施加的操作力項。
考慮到在機器人的示教過程中,當示教速度有明顯的改變時,機器人關節所受的慣性力項數值會較大。為了提高拖動示教的柔順性,這里提出了一種改進的零力控制方案,該方案在傳統零力示教方案基礎上,進一步進行了機器人慣性力矩的補償,其控制方案,如圖2所示。

圖2 改進零力控制框圖Fig.2 Improved Force-Free Control Block Diagram
此時機器人關節的輸出力矩為:

式中:τM=M(q)—機器人慣性力矩。
經過上述補償后,操作者在拖動機械臂進行示教的過程中,施加的操作力τF僅需克服機器人的科氏力項和向心力項即可,即:

從而增加了拖動示教過程中的柔順性。這里,由于無法直接讀取機器人關節電機的加速度,因此需要先對機器人關節速度進行差分處理,再將差分結果進行低通濾波處理后得到機器人的角加速度。
為驗證這里提出的分步參數辨識方法和零力控制算法的有效性,這里以新松SR4C工業機器人為研究對象,基于自主研發的驅動控制系統開展實驗驗證研究。
實驗所用機器人,如圖3所示。機器人末端法蘭裝有ATI六維力/力矩傳感器,傳感器應變片一側裝配機器人示教手柄。實驗中操作者拖動手柄帶動機器人運動進行示教,ATI六維力/力矩傳感器實時測量示教過程中的示教力,其x軸、y軸與z軸的方向由傳感器定義。

圖3 實驗平臺Fig.3 Experiment Platform
根據上述的參數分步辨識方法,機器人3軸與6軸均為分步辨識的末端連桿,通過比較辨識結果的數值差異,可證明分步辨識的可行性,因此這里給出機器人3軸與6軸的辨識結果,如表1所示。表中上標b表示重組后的最小慣性參數。

表1 機器人3軸、6軸動力學參數值Tab.1 Robot 3-Axis,6-Axis Dynamic Parameter Values
機器人在空載情況下,各關節實際力矩、辨識模型預測力矩、CAD模型預測力矩,如圖4所示。從圖4中可以看出,各關節辨識模型預測力矩對實際力矩始終保持相同的變化趨勢,顯示出良好的跟隨性,且6個關節的誤差均在小范圍內波動,說明該辨識方法所辨識出的動力學參數具有較高的精度。與之相反,CAD模型預測值雖然也能對測量力矩保持相同的變化趨勢,但是偏差非常大。產生這種現象的原因有:

圖4 關節測量值與預測值Fig.4 Joint Measurements and Predicted Values
(1)CAD 建模時材料的分布特性與實際的鑄造零部件存在偏差;
(2)零部件的加工與裝配誤差導致慣性項存在較大偏差;
(3)機器人工作過程中因摩擦導致零件接合處產生磨損和間隙;
(4)CAD模型沒有計入摩擦的影響。
上述諸多因素使得連桿參數和機器人動力學特性發生變化,進而使得CAD模型的預測值與實際測量值產生較大偏差。
實際牽引示教過程,如圖5所示。機器人在無力矩補償、僅有重力矩和摩擦力矩補償以及增加慣性力矩補償三種情況下示教過程中的操作者的示教力曲線,如圖6所示。

圖5 牽引操作示意圖Fig.5 Traction Operation Diagram
由圖6(a)可見,無力矩補償時,由于需要同時克服機器人運動過程中的重力、摩擦力、慣性力和科氏力等力矩的作用,操作者需要施加很大的力才能拖動機器人的各個關節進行示教運動,其x和y方向示教力的幅值最高能達到100N 以上。圖6(b)表明,當增加重力矩以及摩擦力矩補償后,操作者施加的示教力主要用于克服機器人慣性力以及摩擦力,其操作力顯著減小,示教力的幅值降到30N以下,示教過程中牽引力越小,則視示教過程的柔順性越好,因此傳統的零力控制方法能明顯提高示教過程的柔順性。圖6(c)為增加慣性力矩補償后的示教力曲線,與圖6(b)相比,其x和y方向的示教力顯著減小,其幅值為傳統零力控制的71.4%,可見這里所提出的零力控制方法能顯著增加示教過程的柔順性。

圖6 示教力曲線Fig.6 Teaching Force Curve
(1)設計了一種工業機器人動力學參數分步辨識的新方法,可降低辨識方程系數矩陣的維度,減少計算量,提高辨識效率。
(2)在傳統的零力控制算法基礎上加入機器人關節慣性力矩項補償,進一步提高了拖動示教過程的柔順性。
(3)對所提出的零力控制方法開展了實驗研究,實驗結果表明這里所提出的零力控制方法能顯著減小示教過程中的操作力,使得示教過程更為輕便靈活。