1. 程式人生 > >MATLAB-Robotics工具箱(2)座標變換和軌跡規劃

MATLAB-Robotics工具箱(2)座標變換和軌跡規劃

在理解關節機器人運動學原理的基礎上用MATLAB開始做機器人的運動學模擬1.關節引數 要在MATLAB建立機器人物件,首先要了解D-H引數,利用工具箱的LINK和ROBOT函式建立物件。 LINK函式

L = LINK([alpha A theta D]) 
L = LINK([alpha A theta D sigma])
L = LINK([alpha A theta D sigma offset])
L = LINK([alpha A theta D],CONVENTION)
L = LINK([alpha A theta D sigma],CONVENTION)
L = LINK([alpha A theta D sigma offset],CONVENTION)

CONVENTION: 選取standard和modified,其中standard代表標準D-H引數,modified代表改進D-H引數 alpha: 扭轉角 A: 連桿長度 theta: 關節角 D: 橫距 sigma: 關節型別(選取0或者非0值)

LINK的資料結構

L.alpha		%返回扭轉角
L.A		%返回連桿長度
L.theta		%返回關節角
L.D		%返回橫距
L.sigma		%返回關節型別
L.RP		%返回R(旋轉)/P(移動)型別
L.mdh		%若是標準D-H引數則返回0,改進D-H引數返回1
L.offset	%返回關節量偏移
L.qlim		%返回關節變數的最大最小值
L.islimit(q)	%如果關節變數超過限制返回-1/0/1
L.I		%返回3X3慣性矩陣
L.m		%返回關節質量
L.r		%返回3X1關節齒輪向量
L.G		%返回齒輪傳動比
L.Jm		%返回電機慣性
L.B		%返回粘性摩擦
L.Tc		%返回庫倫摩擦
L.dh		%返回DH行向量
L.dyn		%返回DYN行向量

robot函式:

ROBOT			%建立一個空的機器人物件
ROBOT(robot)		%建立robot副本
ROBOT(robot,LINK)	%用LINK來建立新機器人物件來代替robot
ROBOT(LINK,...)		%用LINK建立機器人物件
ROBOT(DH,...)		%用D-H矩陣來建立機器人物件
ROBOT(DYN,...)		%用DYN矩陣建立機器人物件

2.座標變換 利用工具箱中的transl,rotx,roty,rotz可以實現用齊次變換表示平移和旋轉變換。 transl表示對座標的平移變換 rotx,roty,rotz表示對座標的旋轉變換 3.軌跡規劃 利用Robotics提供的ctraj,jtraj和trinterp

函式實現笛卡爾規劃、關節空間規劃和變換插值 ctraj函式呼叫

TC = CTRAJ(T0,T1,N)
TC = CTRAJ(T0,T1,R)
example:
T1 = transl(0.6,-0.5,0.0);
T2 = transl(0.4,0.5,0.2);
t = [0:0.056:0.2];
T = ctraj(T1,T2,length(t));
得到
T(:,:,1) =
    1.0000         0         0    0.6000
         0    1.0000         0   -0.5000
         0         0    1.0000         0
         0         0         0    1.0000
T(:,:,2) =
    1.0000         0         0    0.5500
         0    1.0000         0   -0.2500
         0         0    1.0000    0.0500
         0         0         0    1.0000
T(:,:,3) =
    1.0000         0         0    0.4500
         0    1.0000         0    0.2500
         0         0    1.0000    0.1500
         0         0         0    1.0000
T(:,:,4) =
    1.0000         0         0    0.4000
         0    1.0000         0    0.5000
         0         0    1.0000    0.2000
         0         0         0    1.0000

T是T1到T2的笛卡爾軌跡規劃,N是點的數量,R是給定路徑向量R的每個值必須在0到1之間

jtraj函式呼叫

[Q QD QDD] = JTRAJ(Q0,Q1,N)
[Q QD QDD] = JTRAJ(Q0,Q1,N,QD0,QD1)
[Q QD QDD] = JTRAJ(Q0,Q1,T)
[Q QD QDD] = JTRAJ(Q0,Q1,T,QD0,QD1)
%引數Q為狀態Q0到Q1的關節空間規劃軌跡,N為規劃的點數,T為給定時間向量的長度,速度非零邊界可以用QD0和QD1來指定,QD和QDD為返回的規劃軌跡的速度和加速度

trinterp函式呼叫

TR = TRINTERP(T0,T1,R)		%引數TR是在T0和T1直線的座標變化插值,R需要在[0,1]之間