李 飛,黃維剛,梁 鵬
(西安航天精密機電研究所,陜西 西安 710100)
六自由度機器人操作臂一般是由一系列連桿通過轉動或移動關節串聯而成。相應的,其具有多個輸入和輸出,存在著錯綜復雜的耦合關系及非線性關系。機器人運動學的研究一般包含正運動學與逆運動學兩類,其具體描述機器人各個關節角度與末端的位姿關系,在不考慮各關節受力、力矩、質量等情況下,得到各關節位移、速度、加速度等參量同時間的數值關系[1-3]。
運動學問題不僅是機器人動力學分析的基礎,對于機器人運動空間、運動控制、軌跡規劃、離線編程等問題的研究也提供了依據。機器人運動學研究,主要是通過建立D-H坐標系,再進行大量的矩陣運算來進行各關節角度的計算。并借助仿真軟件ADAMS建立六自由度機器人虛擬樣機模型,可完成運動學問題的仿真研究。
一個系統通常由多個構件組成,各個構件之間存在某些運動的約束關系,可將這些約束分為幾個常用的基本約束和運動副。模擬系統的真實運動情況,需要在構件間抽象出相應的運動副;要使系統能夠運動起來,還需要在運動副上添加驅動及載荷[4]。根據運動副所建立的約束方程的右邊等于零,而根據驅動建立的約束方程的右邊等于驅動規律。
在ADAMS中,在模型上定義的驅動是將運動副未約束的其他自由度做進一步約束。驅動實際也是一種約束,只不過這種約束是確保兩個構件按照確定的規律運動,這種約束是時間的函數[5-6]。系統有確定位形的充要條件是自由度數等于驅動的數目。如果系統還有未約束的自由度,則對于未約束住的自由度會在重力和其他載荷的作用下進行動力學計算,有確定位形的自由度會進行運動學計算。
對于一個實際的機械系統,假若運動副的約束方程數為nh,則用系統廣義坐標矢量表示運動學約束方程組為
(1)
對于只含有完整約束的系統,系統的自由度數等于系統坐標數nc減去系統獨立的約束方程組nh。為了使系統具有確定位形,假設系統施加的驅動約束數為S,驅動約束方程為ΦD(q,t),并且通常作用下,驅動約束是系統廣義坐標和時間的函數??傻肹7-8]
DOF=nc-nh=S
(2)
ΦD(q-t)=0
(3)
由式(1)表示的系統運動學約束和式(3)表示的驅動約束組合成系統所受的全部約束
(4)
式(4)為nc個廣義坐標的nc個非線性方程組,其構成了系統的位置方程[9-11],求解此式,就可得到系統任意時刻的廣義坐標位置q(t)。
圖1所示的機器人由J1至J6共6個轉動關節串聯構成,每個關節由交流伺服電機驅動。在運動控制系統的作用下,各個關節按照預定空間軌跡路徑運動,末端執行器實現特定的功能。

圖1 機器人關節外形圖
六自由度串聯型工業機器人本體可看做是不同特征的連桿所構成的一個復雜的多剛體系統空間結構。在運動學分析過程中,利用D-H參數法可確定出用于表示連桿本身特征,以及表示連桿與相鄰連桿間連接關系的4個參數:桿件長度,桿件扭角,關節距離,關節轉角[12],建立起如圖2所示的連桿結構示意圖。表1為機器人D-H參數表。

圖2 機器人連桿結構示意圖

序號連桿長度/mm連桿扭角/(°)關節距離/mm初始轉角/(°)關節轉角范圍/(°)1220902770±17026140090-150~+9031609000-90~+1504090611.50±18050-90090+45~-2256001240±360
建立六自由度串聯機器人虛擬樣機模型,必先進行CAD建模。考慮到建模的便捷性,本文借助SolidWorks三維軟件進行CAD模型的建立。再將模型轉化為Parasolid格式導入ADAMS軟件中,其中各零部件質量及轉動慣量等物理參數可由CAD模型計算獲得或用物理實體模型實測后輸入得到。
對導入的模型6個關節處添加運動副約束,在底座與大地之間添加固定副,并添加重力加速度。此時需要對仿真模型進行檢查,防止隱含錯誤,具體方法:可利用軟件自身的模型自檢工具,利用tools/model verify命令啟動自檢,系統會反饋自檢信息對話框,如圖3所示,框中具體呈現了模型包含的部件數、約束的類別與個數、系統的自由度數及模型的檢查內容結果信息。再設置適當的步長和仿真時間,檢驗模型在自身重力作用下各零件的運動狀態及零件之間的連接狀況,保證模型準確無誤[13-15]。圖4為定義完成的六自由度串聯機器人虛擬樣機模型。

圖3 自檢信息對話框
在機器人末端添加一般點驅動,利用多自由度驅動功能,定義三個平動驅動及三個旋轉驅動。選擇四個空間位置點A1(989,21,1133);B1(1102,-178,833);C1(797,-134,783);D1(850,171,699)。機器人末端在8 s內依次遍歷四個點并回到起始點,即定義路徑S為A1-B1-C1-D1-A1。

圖4 機器人虛擬樣機模型

圖5 末端軌跡S的定義
對于末端路徑的設定,可利用軟件函數庫中的三次多項式逼近Heaviside階躍函數,也即Step函數[16-18]。末端點X、Y、Z三個位置坐標隨時間的變化定義為:
TraX: disp(time)=STEP(time,0,0,2,-350)+STEP(time,2,0,4,50)+STEP(time,4,0,6,-134)+STEP(time,6,0,8,434);
TraY: disp(time)=STEP(time,0,0,2,-155)+STEP(time,2,0,4,-44)+STEP(time,4,0,6,349)+STEP(time,6,0,8,-150);
TraZ: disp(time)=STEP(time,0,0,2,192)+STEP(time,2,0,4,-305)+STEP(time,4,0,6,252)+STEP(time,6,0,8,-139);
Rot X=Rot Y=Rot Z=0*time;
設置仿真運行時間8 s,步長800步,每兩點之間用時2 s,通過軌跡跟蹤功能,可顯示出機器人末端變化軌跡S,如圖5所示。利用軟件后處理模塊中的測量功能,將仿真得到的運動曲線轉化為六個驅動軸的運動樣條函數,由此完成了機器人運動學的逆向求解過程。圖6為六個轉軸角度隨時間變化曲線??梢钥闯鯦1~J6關節角度隨時間連續變化,平順無劇烈抖動,機器人運動過程平穩無沖擊。

圖6 J1~J6關節轉角變化曲線
在后處理模塊中,可將圖6各軸位移時間曲線轉化為spline樣條曲線,機器人J1~J6曲線分別命名為spline1,spline2,spline3,spline4,spline5,spline6。
利用AKISPL(a,b,spline name,c)函數對各樣條形數據按照Akima插值方法進行微分計算,并返回一個樣條型數據[19-22]。其中,a、b是代表兩個獨立變量,c表示為微分的階次,可取0、1或2。此時,定義a為time,b和c都取為0。最終定義機器人J1軸的驅動函數如下:
AKISPL(time, 0, SPLINE_1, 0)*(-1d)
其余軸定義方式與J1軸相同。其中,添加“*(-1d)”表示角位移的單位為度。
再將機器人末端的點驅動移除掉,重新運行仿真,即由定義所有關節的驅動函數,仿真得到了機器人末端的運動軌跡,完成了機器人運動學的正解。給定仿真時間8 s,步數800步,測量得到機器人末端空間軌跡曲線S’并導入進后處理模塊,對比手臂末端一般點驅動的軌跡曲線S,可以發現S’與S很好的重合一起了。后處理模塊下將兩條曲線做減法,可得出數據最大誤差為6.1475×10-8,可以看出數值很小,可忽略不計。
圖7為機器人末端指定的Market點在X、Y、Z方向上的位移及速度隨時間變化曲線。由圖7看出,在關節樣條函數驅動條件下,機器人末端能根據規劃的路徑運動到各規劃點。軌跡規劃的結果表明運用該樣條函數進行軌跡規劃滿足機器人運動的連續性、平穩性,并保證了關節空間角位移、角速度的連續性。體現了運用樣條函數進行機器人軌跡規劃的優點。



圖7 末端Market點X、Y、Z方向位移、速度隨時間變化曲線
本文建立了基于ADAMS的六關節串聯機器人虛擬樣機,并進行了運動學分析。其結果表明:通過ADAMS仿真,可方便、快捷、準確的進行機器人運動學正、反解算,直觀了解機器人運動過程中的各連桿、各關節及末端執行器的運行狀態,為機器人軌跡規劃、動力學分析及離線編程、物理樣機實驗等提供了依據。