学习目标:
matlab机器人工具箱的使用(5)学习内容:
1、运动学正解学习记录:
机器人正运动学:给定各关节变量,就可以计算机器人末端的位姿。也就是说:当给定机器人所有关节和机械臂参数后,可以计算出各个相邻关节之间的位姿矩阵,将矩阵连乘得到机械臂末端相对于基坐标系的变换矩阵。
1.位置描述。
在直角坐标系A中,空间任意一点P的位置表示为:

2.姿态描述。
坐标系B相对于坐标系A的方位:

3.旋转变换:

绕x轴旋转的变换矩阵为:

绕y轴旋转的变换矩阵为:

绕z轴旋转的变换矩阵为:

4.平移坐标变换

5.总齐次变换矩阵
因为所有的运动都是对于当前坐标系所以都是右乘。得到


则机械臂末端的坐标系到机器人基座坐标系的总齐次变换矩阵为:

代码实现用机器人工具箱:
%standard DH 课本6R
L(1)=Link('revolute','d',0.504,'a',0.17,'alpha',pi/2);
L(2)=Link('revolute','d',0,'a',0.78,'alpha',0,'offset',pi/2);
L(3)=Link('revolute','d',0,'a',0.14,'alpha',pi/2);
L(4)=Link('revolute','d',1.06,'a',0,'alpha',pi/2,'offset',pi);
L(5)=Link('revolute','d',0,'a',0,'alpha',pi/2,'offset',pi);
L(6)=Link('revolute','d',0.125,'a',0,'alpha',0);
Six_dof = SerialLink(L,'name','6/-dof');
%Five_dof.base=transl(0,0,0.28);
%关节限制
L(1).qlim=[-180,180]/180*pi;
L(2).qlim=[-145,65]/180*pi;
L(3).qlim=[-65,220]/180*pi;
L(4).qlim=[-180,180]/180*pi;
L(5).qlim=[-135,135]/180*pi;
L(6).qlim=[-360,360]/180*pi;
Six_dof.teach
%正运动学求解
theta_0=[0,0,0,pi,pi,0]; %每个关节的角度
theta_1=[0,-pi/4,0,pi,pi,0]; %每个关节的角度
T0=Six_dof.fkine(theta_0); %正运动学求解theta_0的总变换矩阵T0
T1=Six_dof.fkine(theta_1); %正运动学求解theta_1的总变换矩阵T1
%看theta_0时的位姿
figure (1)
set(gca,'View',[50,20]); %设定视野方向角和俯仰角
Six_dof.plot(theta_0);
hold on
%看theta_1时的位姿
figure (3)
set(gca,'View',[50,20]); %设定视野方向角和俯仰角
Six_dof.plot(theta_1);
可以得到位姿的变换矩阵:
>> T0
T0 =
0 0 -1 1.105
0 1 0 0
1 0 0 1.424
0 0 0 1
>> T1
T1 =
0.7071 0 -0.7071 1.482
0 1 0 0
0.7071 0 0.7071 0.4934
0 0 0 1
>>
本文介绍了如何使用MATLAB机器人工具箱进行正运动学计算,详细解析了从关节变量到末端位姿的转换过程,包括位置和姿态描述、旋转变换矩阵、平移坐标变换及总齐次变换矩阵的概念。通过代码示例展示了如何利用工具箱求解机器人末端坐标系相对于基坐标系的变换矩阵。
4419

被折叠的 条评论
为什么被折叠?



