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