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]之间

猜你喜欢

转载自blog.csdn.net/qq_24182661/article/details/83473271