MATLAB-Robotics工具箱(2)座標變換和軌跡規劃
阿新 • • 發佈:2018-12-18
在理解關節機器人運動學原理的基礎上用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
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]之間