机械臂matlab学习一## 标题
clear ; clc; close all;
% 机器人各连杆DH参数
d1 = 50;
d2 = 0;
d4 = 0;
d5 = 661;
d6 = 614;
% 由于关节4为移动关节,故d4为变量,theta4为常量
theta3 = 0;
theta7 = 0;
a1 = 195;
a2 = 150;
a3 = -50;
a4 = 0;
a5 = 0;
a6 = 60;
a7 = 245.5;
alpha1 = 0 / 180 * pi;
alpha2 = 90 / 180 * pi;
alpha3 = 90 / 180 * pi;
alpha4 = 0 / 180 * pi;
alpha5 = pi/2;
alpha6 = pi/2;
alpha7 = pi/2;
% 定义各个连杆,默认为转动关节
% theta d a alpha
L(1)=Link([ 0 d1 a1 alpha1],‘modified’); L(1).qlim=[-42 / 180 * pi,42 / 180 * pi];
L(2)=Link([ 0 d2 a2 alpha2],‘modified’); L(2).qlim=[-55 / 180 * pi,42 / 180 * pi]; L(2).offset=pi/2;
% 移动关节需要特别指定关节类型–jointtype
L(3)=Link([ theta3 0 a3 alpha3],‘modified’); L(3).qlim=[0,2500]; L(3).jointtype=‘P’; L(3).offset=1000;
L(4)=Link([0 d4 a4 alpha4],‘modified’); L(4).qlim=[-pi,pi];
L(5)=Link([0 d5 a5 alpha5],‘modified’); L(5).qlim=[-280 / 180 * pi,100 / 180 * pi]; L(5).offset=pi/2;
L(6)=Link([0 d6 a6 alpha6],‘modified’); L(6).qlim=[-60/ 180 * pi,14 / 180 * pi];L(6).offset=pi/2;
% 移动关节需要特别指定关节类型–jointtype
L(7)=Link([ theta7 0 a7 alpha7],‘modified’); L(7).qlim=[0,1800]; L(7).jointtype=‘P’; L(7).offset=1000;
% 把上述连杆“串起来”
Scara=SerialLink(L,‘name’,‘Scara’);
% 定义机器人基坐标和工具坐标的变换
Scara.base = transl(0 ,0 ,305);
Scara.tool = transl(0 ,0 ,100);
view(3)
Scara.teach();