Matlab机器人工具箱绘制机器人末端运动的可达工作空间。

记录一下工业机器人的其中一个实验,上图为老师指定的D-H参数

蒙特卡罗法

clear;
clc;
%建立机器人模型
q1_lim = [-180,180];q1_lim = deg2rad(q1_lim);
q2_lim = [-90,90];q2_lim = deg2rad(q2_lim);
q3_lim = [-90,90];q3_lim = deg2rad(q3_lim);%限制每个关节的运动角度,转弧度制
q4_lim = [-90,90];q4_lim = deg2rad(q4_lim);
q5_lim = [-90,90];q5_lim = deg2rad(q5_lim);
q6_lim = [-90,90];q6_lim = deg2rad(q6_lim);

%       theta    d       a       alpha       offset
L1=Link([0      0        0        0        0     ]);L1.qlim = q1_lim;%定义连杆的D-H参数
L2=Link([0     0.06     0        -1.571          0     ]);L2.qlim = q2_lim;
L3=Link([0    -0.004    0.332     0          0     ]);L3.qlim = q3_lim;
L4=Link([0    -0.056     0      1.571        0    ]); L4.qlim = q4_lim;
L5=Link([0     0.05      0       -1.571        0    ]); L5.qlim = q5_lim;
L6=Link([0     -0.05     0       1.571         0   ]); L6.qlim = q6_lim;
%%关节限制
robot=SerialLink([L1 L2 L3 L4 L5 L6],'name','S725'); %连接连杆,机器人取名manman
N=3000;                                               %随机次数
theta1=q1_lim(1)+diff(q1_lim)*rand(N,1); %关节1限制
theta2=q2_lim(1)+diff(q2_lim)*rand(N,1); %关节2限制
theta3=q3_lim(1)+diff(q3_lim)*rand(N,1); %关节3限制
theta4=q4_lim(1)+diff(q4_lim)*rand(N,1); %关节4限制
theta5=q5_lim(1)+diff(q5_lim)*rand(N,1); %关节5限制
theta6=q6_lim(1)+diff(q6_lim)*rand(N,1); %关节6限制
pos = {1,N};
% 正运动学求解
for i=1:N
    pos{i}=robot.fkine([theta1(i) theta2(i) theta3(i) theta4(i) theta5(i) theta6(i)]);
end
% 绘图
figure
robot.plot([0 0 0 0 0 0],'jointdiam',1)
axis equal;
hold on;
for i=1:N
    plot3(pos{i}(1,4),pos{i}(2,4),pos{i}(3,4),'r.');
    hold on;
end
grid off
view(20,30)
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值