puma560 工作空间云图绘制 -MATLAB

 

puma560 工作空间云图绘制 -MATLAB_第1张图片

图1 PUMA 560机器人坐标系

 

如上图建立坐标系,各连杆的变换矩阵如下:

   

 

以上各连杆变换矩阵相乘得到机械手变换矩阵:

 

参数如下:

表1 PUMA560机器人的连杆参数

 

 

图1 PUMA 560机器人坐标系

 

如上图建立坐标系,各连杆的变换矩阵如下:

   

 

以上各连杆变换矩阵相乘得到机械手变换矩阵:

 

参数如下:

表1 PUMA560机器人的连杆参数

关节i

 

 

 

 

变化范围/(o)

1

90

0

0

0

-160~160

2

0

-90

0

149.09

-225~45

3

-90

0

431.8

0

-45~225

4

0

-90

20.32

443.07

-110~170

5

0

90

0

0

-100~100

6

0

-90

0

56.25

-266~266

 

机械手的旋转角不影响工作空间的计算,不考虑其变化范围,取。

用Matlab编程计算得到工作空间,程序如下:

clc;
clear;
for cta1=-70:20:250
    T01=[cosd(cta1),-sind(cta1),0,0;
        sind(cta1), cosd(cta1),0,0;
        0,        0,       1,0;
        0,        0,       0,1];
            for cta2=-225:45:45
                T02=T01*[cosd(cta2),-sind(cta2),0,    0;
                        0,        0,       1, 149.09;
                        -sind(cta2),-cosd(cta2),0,    0;
                        0,        0,        0,    1] ;
                for cta3=-135:30:135 
                    T03=T02*[cosd(cta3),-sind(cta3),0,431.8;
                        sind(cta3), cosd(cta3), 0,   0;
                        0,        0,       1,   0;
                        0,        0,       0,   1];
                for cta4=-110:20:170                                             
                        T04=T03*[cosd(cta4),-sind(cta4),0,20.32;
                            0,        0,       1,433.07;
                            -sind(cta4),-cosd(cta4),0,0;
                            0,        0,       0,    1];
                    for cta5=-100:20:100         
                            T05=T04*[cosd(cta5),-sind(cta5),0,0;
                                0,        0,       -1,0;
                                sind(cta5), cosd(cta5), 0,0;
                                0,        0,       0,1];                                                                               
                            T06=T05*[1 0 0 0;
                                0 0 1 56.25;
                                0 -1 0 0;
                                0 0 0 1];                                                                        
                            O=T06*[0;0;0;1];                                                             
                            plot3(O(1)/O(4),O(2)/O(4),O(3)/O(4));        
                            hold on;
                    end
            end
        end
    end
end
hold off;

 

         
           

你可能感兴趣的:(机器人算法)