a)建立机构坐标系
写出三连杆平面操作臂的D-H参数
注意到由于所有的关节轴都是平行的,且所有的之轴都垂直纸面向外,因此α都为0。同样注意到,运动学分析最后总是归结到一个坐标系里,这个坐标系的原点位于最后一个关节轴上,因此在连杆参数里没有L3。
b)根据操作臂之间的连杆参数,推导出相邻变换矩阵 如下:
同时根据已知条件可以求出各相邻齐次变换矩阵:
syms t1 t2 t3 %θ1、θ2、θ3
a2 = [4 0 0];a3 = [3 0 0];
T01 = trotz(t1)
T12 = transl(a2)*trotz(t2)
T23 = transl(a3)*trotz(t3)
观察机构图可得 = [L3 , 0 ,0]' = [ 2 , 0 , 0]'.
c)利用matlab符号求解正运动学解 和 .
%定义符号变量
syms t1 t2 t3 L1 L2 L3 pi
a2 = [L1 0 0];a3 = [L2 0 0];
T01 = trotz(t1);
T12 = transl(a2)*trotz(t2);
T23 = transl(a3)*trotz(t3);
T3H = transl([L3,0,0]);
T03 = T01*T12*T23;
T0H = T03*T3H;
%化简矩阵
T03 = simplify(T03)
T0H = simplify(T0H)
%求解ii)输入参数下的输出
T2 = eval(subs(T0H,{'t1','t2','t3'},[10 20 30]*pi/180))
d)利用机器人工具箱验证计算结果
syms t1 t2 t3
% 定义各个连杆,默认为转动关节
% theta d a alpha
L(1)=Link([ 0 0 0 0],'modified'); L(1).qlim=[-pi,pi];
L(2)=Link([ 0 0 4 0],'modified'); L(2).qlim=[-pi,pi];
L(3)=Link([ 0 0 3 0],'modified'); L(3).qlim=[-pi,pi];
Robot3 = SerialLink(L,'name','R3');
T03 = Robot3.fkine([t1 t2 t3])
%求出特定输入参数下的旋转矩阵
T2 = Robot3.fkine([10 20 30],'deg')
把运行结果与c)中结果进行比较,得到结果一致。因此检验成功。
评论(0)
您还未登录,请登录后发表或查看评论