静态网站系统,做分析图地图网站,tint-k主题做企业网站,wordpress目录分页文章目录 1 创建机器人的几种方法1.1 方法11.2 方法21.3 方法31.4 方法41.5 方法51.6 方法6 2 定义Link属性3 查看Link属性 1 创建机器人的几种方法
1.1 方法1
% theta d a alpha sigmaL1Link([0 1 0.5 0 0],standard)L1
Revolute(std): thetaq, d1, a0… 文章目录 1 创建机器人的几种方法1.1 方法11.2 方法21.3 方法31.4 方法41.5 方法51.6 方法6 2 定义Link属性3 查看Link属性 1 创建机器人的几种方法
1.1 方法1
% theta d a alpha sigmaL1Link([0 1 0.5 0 0],standard)L1
Revolute(std): thetaq, d1, a0.5, alpha0, offset0L2Link([0 1 0 0 0],standard)L2
Revolute(std): thetaq, d1, a0, alpha0, offset0R SerialLink([L1 L2],name,myrobot)R myrobot:: 2 axis, RR, stdDH, slowRNE
----------------------------------------------------------
| j | theta | d | a | alpha | offset |
----------------------------------------------------------
| 1| q1| 1| 0.5| 0| 0|
| 2| q2| 1| 0| 0| 0|
----------------------------------------------------------1.2 方法2
%% STD-DH参数
%定义连杆的D-H参数
%连杆偏移
d1 398;
d2 -0.299;
d3 0;
d4 556.925;
d5 0;
d6 165;
%连杆长度
a1 168.3;
a2 650.979;
a3 156.240;
a4 0;
a5 0;
a6 0;
%连杆扭角
alpha1 pi/2;
alpha2 0;
alpha3 pi/2;
alpha4 -pi/2;
alpha5 pi/2;
alpha6 0;
%建立机器人模型
% theta d a alpha
L1Link([0 d1 a1 alpha1]);
L2Link([0 d2 a2 alpha2]);L2.offset pi/2;
L3Link([0 d3 a3 alpha3]);
L4Link([0 d4 a4 alpha4]);
L5Link([0 d5 a5 alpha5]);
L6Link([0 d6 a6 alpha6]);
%限制机器人的关节空间
L1.qlim [(-165/180)*pi,(165/180)*pi];
L2.qlim [(-95/180)*pi, (70/180)*pi];
L3.qlim [(-85/180)*pi, (95/180)*pi];
L4.qlim [(-180/180)*pi,(180/180)*pi];
L5.qlim [(-115/180)*pi,(115/180)*pi];
L6.qlim [(-360/180)*pi,(360/180)*pi];
%连接连杆机器人取名为myrobot
robotSerialLink([L1 L2 L3 L4 L5 L6],name,myrobot);
robot myrobot:: 6 axis, RRRRRR, stdDH, slowRNE
----------------------------------------------------------
| j | theta | d | a | alpha | offset |
----------------------------------------------------------
| 1| q1| 398| 168.3| 1.5708| 0|
| 2| q2| -0.299| 650.979| 0| 1.5708|
| 3| q3| 0| 156.24| 1.5708| 0|
| 4| q4| 556.925| 0| -1.5708| 0|
| 5| q5| 0| 0| 1.5708| 0|
| 6| q6| 165| 0| 0| 0|
----------------------------------------------------------1.3 方法3
clc
clear all
close all
deg pi/180;L1 Revolute(d, 0, a, 0, alpha, 0,modified, ...I, [0.1183 -0.0001 0.0001;-0.0001 0.1182 0.0001;0.0001 0.0001 0.0140], ...r, [0.0002 0.0002 0.1264], ...m, 5.6431, ...Jm, 2.2e-4, ...G, 81, ...B, 1.48e-3, ...Tc, [0.395 -0.435], ...qlim, [-180 180]*deg );L2 Revolute(d, 0.06, a, 0, alpha, -pi/2,modified, ...I, [0.0723,0.0000,-0.0051;0.0000,0.0784,0.0000;-0.0051,0.0000,0.0169;], ...r, [-0.0062,0.0001,0.1080], ...m, 5.0478, ...Jm, 2.2e-4, ...G, 121, ...B, .817e-3, ...Tc, [0.126 -0.071], ...qlim, [-105 105]*deg );
L3 Revolute(d, -0.004, a, 0.332, alpha, 0, modified, ...I, [0.4263,0.0000,-0.0072;0.0000,0.4334,0.0001;-0.0072,0.0001,0.0191], ...r, [-0.0131,0.0001,0.2402], ...m, 5.7542, ...Jm, 2.2e-4, ...G, 81, ...B, 1.38e-3, ...Tc, [0.132, -0.105], ...qlim, [-225 45]*deg );L4 Revolute(d, -0.056, a, 0, alpha, pi/2, modified, ...I, [0.0821,0.0000,-0.0314;0.0000,0.1257,0.0001;-0.0314,0.0001,0.0451], ...r, [-0.0850,0.0003,0.1540], ...m, 3.0870, ...Jm, 2.2e-4, ...G, 81, ...B, 71.2e-6, ...Tc, [11.2e-3, -16.9e-3], ...qlim, [-110 110]*deg);
L5 Revolute(d, 0.050, a, 0, alpha, -pi/2, modified, ...I, [0.0235,0.0000,-0.0002;0.0000,0.0253,0.0000;-0.0002,0.0000,0.0045], ...r, [0.0001,0.0002,0.0982], ...m, 2.0459, ...Jm, 2.2e-4, ...G, 81, ...B, 82.6e-6, ...Tc, [9.26e-3, -14.5e-3], ...qlim, [-115 115]*deg );
L6 Revolute(d, -0.050, a, 0, alpha, pi/2, modified, ...I, [0.0684,0.0000,0.0001;0.0000,0.0696,-0.0001;0.0001,-0.0001,0.0047], ...r, [-0.0111,-0.0003,0.1366], ...m, 2.6317, ...Jm, 2.2e-4, ...G, 51, ...B, 36.7e-6, ...Tc, [3.96e-3, -10.5e-3], ...qlim, [-180 180]*deg );
robotSerialLink([L1,L2,L3,L4,L5,L6],name,VIPER7,comment,LL); %SerialLink类函数
robot VIPER7:: 6 axis, RRRRRR, modDH, slowRNE - LL;
----------------------------------------------------------
| j | theta | d | a | alpha | offset |
----------------------------------------------------------
| 1| q1| 0| 0| 0| 0|
| 2| q2| 0.06| 0| -1.5708| 0|
| 3| q3| -0.004| 0.332| 0| 0|
| 4| q4| -0.056| 0| 1.5708| 0|
| 5| q5| 0.05| 0| -1.5708| 0|
| 6| q6| -0.05| 0| 1.5708| 0|
----------------------------------------------------------1.4 方法4
%% 参数定义
clear;
close all;
clc;%角度转换
anglepi/180; %转化为角度制%D-H参数表
theta1 0; D1 0.4; A1 0.025; alpha1 pi/2; offset1 0;
theta2 pi/2;D2 0; A2 0.56; alpha2 0; offset2 0;
theta3 0; D3 0; A3 0.035; alpha3 pi/2; offset3 0;
theta4 0; D4 0.515; A4 0; alpha4 pi/2; offset4 0;
theta5 pi; D5 0; A5 0; alpha5 pi/2; offset5 0;
theta6 0; D6 0.08; A6 0; alpha6 0; offset6 0;%% DH法建立模型,关节转角关节距离连杆长度连杆转角关节类型0转动1移动standard建立标准型D-H参数
L(1) Link([theta1, D1, A1, alpha1, offset1], standard)
L(2) Link([theta2, D2, A2, alpha2, offset2], standard)
L(3) Link([theta3, D3, A3, alpha3, offset3], standard)
L(4) Link([theta4, D4, A4, alpha4, offset4], standard)
L(5) Link([theta5, D5, A5, alpha5, offset5], standard)
L(6) Link([theta6, D6, A6, alpha6, offset6], standard)% 定义关节范围
L(1).qlim [-180*angle, 180*angle];
L(2).qlim [-180*angle, 180*angle];
L(3).qlim [-180*angle, 180*angle];
L(4).qlim [-180*angle, 180*angle];
L(5).qlim [-180*angle, 180*angle];
L(6).qlim [-180*angle, 180*angle];%% 显示机械臂把上述连杆“串起来”
robot0 SerialLink(L,name,six);
robot0 six:: 6 axis, RRRRRR, stdDH, slowRNE
----------------------------------------------------------
| j | theta | d | a | alpha | offset |
----------------------------------------------------------
| 1| q1| 0.4| 0.025| 1.5708| 0|
| 2| q2| 0| 0.56| 0| 0|
| 3| q3| 0| 0.035| 1.5708| 0|
| 4| q4| 0.515| 0| 1.5708| 0|
| 5| q5| 0| 0| 1.5708| 0|
| 6| q6| 0.08| 0| 0| 0|
----------------------------------------------------------1.5 方法5 clear;
clc;
L(1) Link(standard,d, 100, a, 0, alpha, pi/2,offset,0,qlim,[0,0]/180*pi);
L(2) Link(revolute,d, 0, a, 420, alpha, 0,offset,pi/2,qlim,[-90,90]/180*pi);
L(3) Link(revolute,d, 0, a, 480, alpha, 0,offset,-pi/2,qlim,[-90,130]/180*pi);
L(4) Link(revolute,d, 0, a, 840, alpha, 0,offset,pi/2,qlim,[-120,90]/180*pi);bot SerialLink(L, name, 4-dof);
bot 4-dof:: 6 axis, RRRRRR, stdDH, slowRNE
----------------------------------------------------------
| j | theta | d | a | alpha | offset |
----------------------------------------------------------
| 1| q1| 100| 0| 1.5708| 0|
| 2| q2| 0| 420| 0| 1.5708|
| 3| q3| 0| 480| 0| -1.5708|
| 4| q4| 0| 840| 0| 1.5708|
| 5| q5| 0| 0| 1.5708| 0|
| 6| q6| 0.08| 0| 0| 0|
----------------------------------------------------------1.6 方法6
clear,clc,close all;
format compact
syms q1 q2 dq1 dq2 ddq1 ddq2 m1 m2 L1 Lc1 Lc2 Izz1 Izz2 g real
L(1)RevoluteMDH(d,0,a,0,alpha,0);
L(2)RevoluteMDH(d,0,a,L1,alpha,0,offset,0); %-pi/2
twolink SerialLink(L);
twolink
noname:: 2 axis, RR, modDH, slowRNE
----------------------------------------------------------
| j | theta | d | a | alpha | offset |
----------------------------------------------------------
| 1| q1| 0| 0| 0| 0|
| 2| q2| 0| L1| 0| 0|
----------------------------------------------------------2 定义Link属性
% theta d a alpha sigma
L1Link([0 1 0.5 0 0],standard);
L2Link([0 1 0 0 0],standard);
R SerialLink([L1 L2],name,myrobot);
L1.a 0.1;
L1.offset 0.5;
L1.m 2; %连杆质量
L1.Jm 0.1; %电机转动惯量
L1.r [1,0,0]; %连杆质心位置
L1.I [0,0,0;0,0,0;0,0,2]; %连杆惯性张量
L1.qlim [(-165/180)*pi,(165/180)*pi]; %关节限位
R.base transl(0,0,1); %世界坐标系定为0013 查看Link属性
R.n; % 连杆数
R.display(); %Link类函数显示建立机器人DH参数
theta1[0 -pi/2]; %机器人伸直且垂直
R.plot(theta1); %SerialLink类函数,显示机器人图像
qplot(q(:,i));grid on;title(位置);%绘制每个关节位置
qplot(qd(:,i));grid on;title(速度);%绘制每个关节速度
qplot(qdd(:,i));grid on;title(加速度);%绘制每个关节加速度
Q robot.rne(q,qd,qdd);%获得每个时间点所需要的关节力矩
t[0:0.01:2];
qplot(t,Q);grid on;title(关节力矩);%绘制每个关节的力矩
R.teach(); %可以自由拖动的关节角度