敖天翔,李銘浩,劉滿祿,2,王 姮
(1.西南科技大學信息工程學院,四川 綿陽 621010;2.中國科學技術(shù)大學信息科學技術(shù)學院,安徽 合肥 230026)
機器人學是當今重要的研究熱點之一[1-2]。目前,機械臂已在多個領(lǐng)域得到了廣泛的應用。由于機器人系統(tǒng)是典型的非線性系統(tǒng),近年來,滑模變結(jié)構(gòu)控制理論被廣泛應用于機器人控制系統(tǒng)中,以解決運動中存在的多種不可預見的外部干擾。Slotine[3]等將滑??刂评碚搼糜?自由度機械臂的控制系統(tǒng)中。Z.H.Man[4]應用終端滑??刂破鳎瑢Χ嘧杂啥葯C械臂進行了位置跟蹤控制。A.Ficola[5]等設(shè)計了2個滑模面,實現(xiàn)了彈性關(guān)節(jié)機械臂的控制。劉金琨[6]針對滑??刂评碚撨M行相關(guān)研究,其中包括了滑模理論在機械臂控制中的應用。宋崇生[7]等結(jié)合干擾觀測器,利用滑模控制器對柔性關(guān)節(jié)機械臂進行了應用。萬凱歌[8]等利用滑??刂破?,在3自由度機械臂軌跡跟蹤中取得了良好的控制效果。馮春成[9]等采用滑模控制器,在機械臂力矩估計算法的應用中取得了良好的效果。
本文在VERP機器人仿真環(huán)境中搭建機器人模型,在Simulink中建立控制系統(tǒng),搭建VERP-Simulink聯(lián)合仿真環(huán)境,使仿真性能與效果更加直觀、可靠;通過建立機器人的運動學、動力學模型,對比了傳統(tǒng)的逆動力學與滑??刂破鞯目刂菩Ч?刂破髟诙c控制與軌跡跟蹤控制中的效果進行了對比分析。
MOTOMAN-SDA20D是由日本安川公司(Yasukawa)研發(fā)的雙臂工業(yè)機器人,主要應用于工業(yè)中的裝配、搬運、包裝等作業(yè)。該款機器人具有7軸雙臂與腰部旋轉(zhuǎn)軸。其中,機器人的兩個機械臂可以抓取20 kg的物體,位置精度達到0.1 mm,具有很高的靈活性、精確性和協(xié)調(diào)性。以該機器人為模型搭建相應的仿真環(huán)境,并建立機器人的運動學、動力學模型,以及相應的控制系統(tǒng)。MOTOMAN-SDA20D機器人的左、右臂DH參數(shù)如表1所示。
表1 左、右臂DH參數(shù)表
機械臂關(guān)節(jié)空間動力學方程(忽略摩擦力和環(huán)境接觸力)[10-11]為:
(1)
(2)
將u表示為機械臂動力學方程的形式:
(3)
控制律α常常被設(shè)置為:
(4)
式中:KP、KD為參數(shù)矩陣。
將KP、KD設(shè)置為對角陣:
(5)
KD=diag{2ζ1ωn12,2ζ2ω2}
(6)
參考因素ri只影響關(guān)節(jié)變量qi,系統(tǒng)本身是解耦的,二者是由自然振蕩頻率ωn和阻尼比ζi決定的二階輸入輸出關(guān)系。
假設(shè)位置跟蹤參考軌跡為qd(t),令:
(7)
令跟蹤誤差e=qd-q,得誤差二階微分方程:
(8)
基于逆動力學的機械臂控制方法是集中控制法的代表。如果機械臂的裝配誤差、動力學參數(shù)取值誤差較大,當忽略摩擦力、控制周期過長,將導致機械臂系統(tǒng)不穩(wěn)定??刂葡到y(tǒng)的穩(wěn)定性和快速性,非常依賴機械臂動力學模型的精確性與較高的控制系統(tǒng)性能。
滑??刂仆ㄟ^人為設(shè)計的滑動模態(tài)面,將系統(tǒng)狀態(tài)限制在該滑模面作上、下運動。
設(shè)計誤差空間的滑模面為:
(9)
式中:c=diag(c1,c2,c3,c4,c5,c6,c7);ci(i=1,2,…,7)為正實數(shù);e=qid-qi。
(10)
結(jié)合機械臂動力學方程:
(11)
閉環(huán)系統(tǒng)方程為:
(12)
在設(shè)計控制系統(tǒng)時設(shè)計李雅普洛夫函數(shù):
(13)
對式(13)等式兩邊作時間求導,有:
(14)
因此,滑模控制器的控制率可以定義為:
(15)
仿真試驗采用VERP與Matlab聯(lián)合仿真的形式實現(xiàn)。其中:VERP是一種常用的機器人仿真軟件,具有跨平臺、多函數(shù)接口、集成4個物理引擎、支持7種編程語言以及良好用戶界面的優(yōu)點,被稱為機器人仿真器中的“瑞士軍刀”。而Matlab中的Simulink模塊常被用于搭建控制系統(tǒng)仿真。
搭建仿真環(huán)境需要首先找到安川雙臂機器人的3D圖,依次將各個連桿的3D模型導入VERP的場景中,然后拖動各個機械臂連桿的模型,將各個連桿擺放到機械臂的初始位型。
同時,為了減少仿真中的計算量,在原位置對所有模型進行復制,并消除所復制新模型的細節(jié)描述,進行凸包化或者模型簡化。將簡化模型設(shè)置為可碰撞和具有動力學特性的仿真物體,用于在仿真中計算動力學特性。
將原模型設(shè)為無碰撞和動力學特性的物體,用于在仿真試驗顯示機器人的運動狀態(tài),并放置在簡化模型支鏈下。在每2個連桿之間設(shè)置旋轉(zhuǎn)關(guān)節(jié),構(gòu)造模型的運動鏈關(guān)系。
雙臂機器人系統(tǒng)的每個機械臂都可以看作一個單獨的機械臂控制系統(tǒng)。在Simulink中使用其對應的數(shù)學模型搭建兩個相仿的控制系統(tǒng),并分別設(shè)置機器人期望的角度位置、速度、加速度(或相應的運動軌跡)。通過雙臂各自的控制系統(tǒng),計算機械臂所需的關(guān)節(jié)力矩,并將控制信號傳入VERP的系統(tǒng)接口中。內(nèi)存共享插件負責實現(xiàn)Sda20控制系統(tǒng)與仿真環(huán)境的通信,保障VERP與Simulink之間的數(shù)據(jù)交換。系統(tǒng)在將力矩信號導入VERP系統(tǒng)的同時,也將Motoman-sda20D機器人的左、右臂的關(guān)節(jié)角度信息和關(guān)節(jié)角速度信息傳送回Simulink中。
利用內(nèi)存共享插件和控制周期調(diào)節(jié)插件,搭建VERP與Simulink中的機器人接口。在機器人上添加線程腳本(VERP的控制腳本使用Lua語言編寫),在腳本中使用內(nèi)存共享插件。在控制腳本中,將機器人關(guān)節(jié)數(shù)據(jù)(關(guān)節(jié)角位置信息,關(guān)節(jié)角速度信息)寫入相應的內(nèi)存共享插件。插件將控制信號從相應共享單元中的數(shù)據(jù)讀出來,利用函數(shù)接口控制相應的關(guān)節(jié)力矩。因為仿真環(huán)境中的物理模型最小周期為10 ms,故設(shè)置線程的切換時間為10 ms。在Simulink中,利用Real-time Pacer插件,將仿真時間和現(xiàn)實時間同步。
在實際生活和仿真搭建中經(jīng)常出現(xiàn)裝配誤差、測量誤差和加工誤差,導致機器人控制不穩(wěn)定。由于仿真環(huán)境中作了大量的簡化而且控制頻率只能達到100 Hz,加重了控制系統(tǒng)的不穩(wěn)定性。利用滑模控制器補償系統(tǒng)建模誤差,可以很好地提高系統(tǒng)的穩(wěn)定性,達到消除機械臂角度靜差、提高系統(tǒng)穩(wěn)定性的作用。在接下來的仿真中,將對比2種控制方法在定點運動和軌跡跟蹤中的效果。
由圖1可知,右臂不能穩(wěn)定,而左臂最終可以穩(wěn)定,系統(tǒng)具有很大的位置誤差。因此,在仿真中,逆動力學控制算法若要得到較好的控制效果,需要精確的運動學、動力學模型。但是在實際生活和仿真搭建中,經(jīng)常出現(xiàn)各種問題,直接導致控制不穩(wěn)定(如裝配誤差、測量誤差、加工誤差和控制周期問題等)。
圖1 左、右臂角度變化曲線(逆運動學控制)
滑??刂葡?,左、右臂角度變化如圖2所示。
圖2 左、右臂角度變化曲線(滑模控制)
滑??刂葡?,左臂角度誤差變化曲線如圖3所示。
圖3 左臂角度誤差變化曲線(滑??刂?
由圖2和圖3可以看到,左、右臂都可以在10 s內(nèi)到達目標位置角度,精度在0.02弧度(1°)以內(nèi)。對比之前的仿真試驗可知,滑??刂扑惴梢源蟠笤黾酉到y(tǒng)的穩(wěn)定性和收斂速度。
滑??刂葡萝壽E跟蹤的左、右臂角度變化如圖4所示。
圖4 軌跡跟蹤的左、右臂角度變化曲線(滑??刂?
滑模控制下軌跡跟蹤的左、右臂角度誤差變化如圖5所示。
圖5 軌跡跟蹤的左、右臂角度誤差變化圖(滑??刂?
由圖5可以看出,左右臂的軌跡跟蹤誤差在0.3 rad以內(nèi)。因此,具有軌跡規(guī)劃的機械臂角度變化比無軌跡規(guī)劃下的機械臂更加順滑,且不存在失控的問題,運動過程中不會出現(xiàn)關(guān)節(jié)角的不規(guī)則變化。
基于滑??刂评碚?,以安川Motoman-sda20D機器人為例,建立了運動學、動力學模型,以及滑??刂破鳌4罱╒ERP-Simulink聯(lián)合仿真平臺,設(shè)計相應的滑模控制算法,對比驗證了逆動力學控制與滑??刂破鞯目刂菩Ч?。該算法在低控制周期與模型不確定的情況下具有更強的魯棒性。對滑模控制器的定點控制與軌跡跟蹤控制效果的分析結(jié)果表明,機械臂均能快速地達到目標點,軌跡跟蹤誤差在0.3 rad以內(nèi)。因此,利用最新的VERP機器人仿真平臺,得到了更加可靠與直觀的效果。