敖天翔,李銘浩,劉滿祿,2,王 姮
(1.西南科技大學信息工程學院,四川 綿陽 621010;2.中國科學技術大學信息科學技術學院,安徽 合肥 230026)
機器人學是當今重要的研究熱點之一[1-2]。目前,機械臂已在多個領域得到了廣泛的應用。由于機器人系統是典型的非線性系統,近年來,滑模變結構控制理論被廣泛應用于機器人控制系統中,以解決運動中存在的多種不可預見的外部干擾。Slotine[3]等將滑??刂评碚搼糜?自由度機械臂的控制系統中。Z.H.Man[4]應用終端滑??刂破?,對多自由度機械臂進行了位置跟蹤控制。A.Ficola[5]等設計了2個滑模面,實現了彈性關節機械臂的控制。劉金琨[6]針對滑模控制理論進行相關研究,其中包括了滑模理論在機械臂控制中的應用。宋崇生[7]等結合干擾觀測器,利用滑模控制器對柔性關節機械臂進行了應用。萬凱歌[8]等利用滑??刂破?,在3自由度機械臂軌跡跟蹤中取得了良好的控制效果。馮春成[9]等采用滑模控制器,在機械臂力矩估計算法的應用中取得了良好的效果。
本文在VERP機器人仿真環境中搭建機器人模型,在Simulink中建立控制系統,搭建VERP-Simulink聯合仿真環境,使仿真性能與效果更加直觀、可靠;通過建立機器人的運動學、動力學模型,對比了傳統的逆動力學與滑??刂破鞯目刂菩Ч?刂破髟诙c控制與軌跡跟蹤控制中的效果進行了對比分析。
MOTOMAN-SDA20D是由日本安川公司(Yasukawa)研發的雙臂工業機器人,主要應用于工業中的裝配、搬運、包裝等作業。該款機器人具有7軸雙臂與腰部旋轉軸。其中,機器人的兩個機械臂可以抓取20 kg的物體,位置精度達到0.1 mm,具有很高的靈活性、精確性和協調性。以該機器人為模型搭建相應的仿真環境,并建立機器人的運動學、動力學模型,以及相應的控制系統。MOTOMAN-SDA20D機器人的左、右臂DH參數如表1所示。

表1 左、右臂DH參數表
機械臂關節空間動力學方程(忽略摩擦力和環境接觸力)[10-11]為:

(1)

(2)

將u表示為機械臂動力學方程的形式:

(3)

控制律α常常被設置為:
(4)
式中:KP、KD為參數矩陣。
將KP、KD設置為對角陣:
(5)
KD=diag{2ζ1ωn12,2ζ2ω2}
(6)
參考因素ri只影響關節變量qi,系統本身是解耦的,二者是由自然振蕩頻率ωn和阻尼比ζi決定的二階輸入輸出關系。
假設位置跟蹤參考軌跡為qd(t),令:
(7)
令跟蹤誤差e=qd-q,得誤差二階微分方程:
(8)

基于逆動力學的機械臂控制方法是集中控制法的代表。如果機械臂的裝配誤差、動力學參數取值誤差較大,當忽略摩擦力、控制周期過長,將導致機械臂系統不穩定??刂葡到y的穩定性和快速性,非常依賴機械臂動力學模型的精確性與較高的控制系統性能。
滑??刂仆ㄟ^人為設計的滑動模態面,將系統狀態限制在該滑模面作上、下運動。
設計誤差空間的滑模面為:

(9)
式中:c=diag(c1,c2,c3,c4,c5,c6,c7);ci(i=1,2,…,7)為正實數;e=qid-qi。

(10)
結合機械臂動力學方程:
(11)

閉環系統方程為:
(12)
在設計控制系統時設計李雅普洛夫函數:
(13)
對式(13)等式兩邊作時間求導,有:

(14)
因此,滑??刂破鞯目刂坡士梢远x為:
(15)
仿真試驗采用VERP與Matlab聯合仿真的形式實現。其中:VERP是一種常用的機器人仿真軟件,具有跨平臺、多函數接口、集成4個物理引擎、支持7種編程語言以及良好用戶界面的優點,被稱為機器人仿真器中的“瑞士軍刀”。而Matlab中的Simulink模塊常被用于搭建控制系統仿真。
搭建仿真環境需要首先找到安川雙臂機器人的3D圖,依次將各個連桿的3D模型導入VERP的場景中,然后拖動各個機械臂連桿的模型,將各個連桿擺放到機械臂的初始位型。
同時,為了減少仿真中的計算量,在原位置對所有模型進行復制,并消除所復制新模型的細節描述,進行凸包化或者模型簡化。將簡化模型設置為可碰撞和具有動力學特性的仿真物體,用于在仿真中計算動力學特性。
將原模型設為無碰撞和動力學特性的物體,用于在仿真試驗顯示機器人的運動狀態,并放置在簡化模型支鏈下。在每2個連桿之間設置旋轉關節,構造模型的運動鏈關系。
雙臂機器人系統的每個機械臂都可以看作一個單獨的機械臂控制系統。在Simulink中使用其對應的數學模型搭建兩個相仿的控制系統,并分別設置機器人期望的角度位置、速度、加速度(或相應的運動軌跡)。通過雙臂各自的控制系統,計算機械臂所需的關節力矩,并將控制信號傳入VERP的系統接口中。內存共享插件負責實現Sda20控制系統與仿真環境的通信,保障VERP與Simulink之間的數據交換。系統在將力矩信號導入VERP系統的同時,也將Motoman-sda20D機器人的左、右臂的關節角度信息和關節角速度信息傳送回Simulink中。
利用內存共享插件和控制周期調節插件,搭建VERP與Simulink中的機器人接口。在機器人上添加線程腳本(VERP的控制腳本使用Lua語言編寫),在腳本中使用內存共享插件。在控制腳本中,將機器人關節數據(關節角位置信息,關節角速度信息)寫入相應的內存共享插件。插件將控制信號從相應共享單元中的數據讀出來,利用函數接口控制相應的關節力矩。因為仿真環境中的物理模型最小周期為10 ms,故設置線程的切換時間為10 ms。在Simulink中,利用Real-time Pacer插件,將仿真時間和現實時間同步。
在實際生活和仿真搭建中經常出現裝配誤差、測量誤差和加工誤差,導致機器人控制不穩定。由于仿真環境中作了大量的簡化而且控制頻率只能達到100 Hz,加重了控制系統的不穩定性。利用滑模控制器補償系統建模誤差,可以很好地提高系統的穩定性,達到消除機械臂角度靜差、提高系統穩定性的作用。在接下來的仿真中,將對比2種控制方法在定點運動和軌跡跟蹤中的效果。
由圖1可知,右臂不能穩定,而左臂最終可以穩定,系統具有很大的位置誤差。因此,在仿真中,逆動力學控制算法若要得到較好的控制效果,需要精確的運動學、動力學模型。但是在實際生活和仿真搭建中,經常出現各種問題,直接導致控制不穩定(如裝配誤差、測量誤差、加工誤差和控制周期問題等)。

圖1 左、右臂角度變化曲線(逆運動學控制)
滑??刂葡拢?、右臂角度變化如圖2所示。

圖2 左、右臂角度變化曲線(滑??刂?
滑??刂葡?,左臂角度誤差變化曲線如圖3所示。

圖3 左臂角度誤差變化曲線(滑??刂?
由圖2和圖3可以看到,左、右臂都可以在10 s內到達目標位置角度,精度在0.02弧度(1°)以內。對比之前的仿真試驗可知,滑模控制算法可以大大增加系統的穩定性和收斂速度。
滑??刂葡萝壽E跟蹤的左、右臂角度變化如圖4所示。

圖4 軌跡跟蹤的左、右臂角度變化曲線(滑模控制)
滑模控制下軌跡跟蹤的左、右臂角度誤差變化如圖5所示。

圖5 軌跡跟蹤的左、右臂角度誤差變化圖(滑模控制)
由圖5可以看出,左右臂的軌跡跟蹤誤差在0.3 rad以內。因此,具有軌跡規劃的機械臂角度變化比無軌跡規劃下的機械臂更加順滑,且不存在失控的問題,運動過程中不會出現關節角的不規則變化。
基于滑??刂评碚?,以安川Motoman-sda20D機器人為例,建立了運動學、動力學模型,以及滑??刂破鳌4罱╒ERP-Simulink聯合仿真平臺,設計相應的滑模控制算法,對比驗證了逆動力學控制與滑??刂破鞯目刂菩Ч?。該算法在低控制周期與模型不確定的情況下具有更強的魯棒性。對滑??刂破鞯亩c控制與軌跡跟蹤控制效果的分析結果表明,機械臂均能快速地達到目標點,軌跡跟蹤誤差在0.3 rad以內。因此,利用最新的VERP機器人仿真平臺,得到了更加可靠與直觀的效果。