学习目标:
matlab机器人工具箱的使用(3)学习内容:
1、 工具箱常用函数 (串联机械臂,示教,绘制,正运动学,逆运动学)学习记录:
- SerialLink
串联机械臂的(串联机器人) - teach
示教GUI - plot
可以给定相应的参数,给定1*n的矩阵[]。n为机械臂所含关节的个数。
例如:
给[0,0,0,0,0,0]六自由度机械臂在初始位置。
如果给定m*n的矩阵[]。那么就可以运行一个动画。
plot中还有很多个性化设置。可以自己设置。 - plot3d
可以展示3维的机械臂模型。真实的机械臂模型。 - fkine
正向运动学求解函数。
q0=[pi/2 pi/2 0 0 0];
T=Five_dof.fkine(q0);
>> jixiebi_sd_5
>> q0=[pi/2 pi/2 0 0 0];
T=Five_dof.fkine(q0);
>> T
T =
0 1 0 0
-1 0 0 -0.645
0 0 1 1.181
0 0 0 1
>>
得到前两个关节是pi/2的情况下的变换矩阵。(其中jixiebi_sd_5为机械臂模型,代码放在文章最后。)
- ikine
- ikcon
- ikine3
- ikine6s
- ikine_sym
- ikinem
- ikunc
这些都是逆运动学。
%因为是5轴机械臂欠约束所以加一个mask。将不太重要的一个自由度置为0
%ikunc不需要考虑这些
q1=Five_dof.ikine(T,'mask',[1 1 1 1 1 0]);
q2=Five_dof.ikunc(T);
>> q1=Five_dof.ikine(T,'mask',[1 1 1 1 1 0]);
q2=Five_dof.ikunc(T);
>> q1
q1 =
1.5708 1.5708 -0.0000 0.0000 0
>> q2
q2 =
1.5708 1.5708 0.0000 0.0000 -0.0000
>>
jixiebi_sd_5机械臂模型:
%standard DH
L(1)=Link('revolute','d',0.216,'a',0,'alpha',pi/2);
L(2)=Link('revolute','d',0,'a',0.5,'alpha',0,'offset',pi/2);
L(3)=Link('revolute','d',0,'a',sqrt(0.145^2+0.42746^2),'alpha',0,'offset',-atan(427.46/145));
L(4)=Link('revolute','d',0,'a',0,'alpha',pi/2,'offset',atan(427.46/145));
L(5)=Link('revolute','d',0.258,'a',0,'alpha',0);
Five_dof = SerialLink(L,'name','5-dof');
Five_dof.base=transl(0,0,0.28);
Five_dof.teach