PUMA 560机器人正运动学TOC

1、 PUMA 560机器人介绍

PMUA 560机器人属于关节式机器人,6个关节都是转动关节,前三个确定手腕参考点位置,后3个确定手腕的方位。

2、D-H参数标定

D—H参数是有两种标定方式的,一种是标准的D-H参数法,还有一种是改进的D—H参数法,大部分书上现在都用到的是改进的D-H法,但也有一些书上用的是标准的D-H法,但是D-H法只是一种对连杆的坐标描述,最后的结果往往相同的参数就会有相同的物理含义在里面。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、PUMA 560 机器人运动学分析

本文选用改进后得D-H参数法,按照前面坐标系定义的方法,得到PUMA 560机器人的连杆坐标系,如图所示:
在这里插入图片描述
连杆坐标系i-1到坐标系i的变化可经过以下几步完成:
第一步:绕x_(i-1)轴旋转α_(i-1)角,使得z_(i-1)轴和z_i轴共面。
第二步:沿着x_(i-1)轴移动a_(i-1)距离,使得z_(i-1)轴和z_i轴共线。
第三步:绕z_i轴旋转θ_i角,使得x_(i-1)轴和x_i轴共线。
第四步:沿着z_i轴移动d_i距离,使得前后两个坐标系得原点重合。

通过上诉几步,我们可以得到连杆的参数:
在这里插入图片描述

MATLAB 机械臂建模

在MATLAB 中完成机械臂的正运动学、逆运动学、工作空间等问题的求解

% Modified DH
% PUMA 560 robot
clear;
clc;
th(1) = 0; d(1) = 0; a(1) = 0; alp(1) = 0;
th(2) = 0; d(2) = 149.09; a(2) = 0; alp(2) = -pi/2;   
th(3) = 0; d(3) = 0; a(3) = 431.8; alp(3) = 0;
th(4) = 0; d(4) = 433.07; a(4) = 20.32; alp(4) = -pi/2;
th(5) = 0; d(5) = 0; a(5) = 0; alp(5) = pi/2;
th(6) = 0; d(6) = 0; a(6) = 0; alp(6) = -pi/2;
% DH parameters  th     d    a    alpha  sigma
L1 = Link([th(1), d(1), a(1), alp(1), 0], 'modified');
L2 = Link([th(2), d(2), a(2), alp(2), 0], 'modified');
L3 = Link([th(3), d(3), a(3), alp(3), 0], 'modified');
L4 = Link([th(4), d(4), a(4), alp(4), 0], 'modified');
L5 = Link([th(5), d(5), a(5), alp(5), 0], 'modified');
L6 = Link([th(6), d(6), a(6), alp(6), 0], 'modified');
robot = SerialLink([L1, L2, L3, L4, L5, L6]);            %建立机械臂模型
robot.name='PUMA 650 Robot-6-dof';
robot.display() ;
% Forward Pose Kinematics
theta = [90, 0, -90, 0, 0, 0]*pi/180;
robot.plot(theta); 
theta2 = [45, 0, 90, 20, 0, 0]*pi/180;
t0 = robot.fkine(theta2);                           %运动学正解
qi=robot.ikine(t0,theta,[1 1 1 1 1 1])              %运动学逆解
hold on
 N=30000; 
 t1=-160*pi/180+(160*pi/180+160*pi/180)*rand(N,1);
 t2=-225*pi/180+(225*pi/180+45*pi/180)*rand(N,1);
 t3=-45*pi/180+(45*pi/180+225*pi/180)*rand(N,1);
 t4=-110*pi/180+(110*pi/180+170*pi/180)*rand(N,1);
 t5=-100*pi/180+(100*pi/180+100*pi/180)*rand(N,1);
 t6=-266*pi/180+(266*pi/180+266*pi/180)*rand(N,1);    %确定各个杆件的运动范围
for n=1:1:N
     photo=robot.fkine([t1(n),t2(n),t3(n),t4(n),t5(n),t6(n)]);  
     plot3(photo(1,4),photo(2,4),photo(3,4),'b.','MarkerSize',0.5);     %工作空间求解
end 

在这里插入图片描述

三级目录

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐