模型选用的是类似长得与UR5机械臂样子的GLUON_6L3机械臂,如下图
    
    
    
    
    
    
    
    
    
    下面的程序是基于matlab2020b版本编写,机器人工具箱9.10。不一定要求你们的版本与我的一样,只是有的太低版本可能运行不了,再此说明一下。
    
    pc配置:AMD5800 16G RTX3060 运行需要大概3分钟左右。如果你的电脑运行一直定住等等就行,不知道为什么运行这么慢。换成米制的时候,运行会很快。
   
    clear;clc;close all;
    
    % DH建模部分theta、 d、 a、 alpha
    
    L(1)=Link([ 0, 1015, 0, 0],‘modified’);
    
    L(2)=Link([ 0, 79.2, 0, -pi/2],‘modified’);
    
    L(3)=Link([ 0, -79.2, 173, 0],‘modified’);
    
    L(4)=Link([ 0, 79.2, 173, 0],‘modified’);
    
    L(5)=Link([ 0, 79.2, 0, pi/2],‘modified’);
    
    L(6)=Link([ 0, 41.7, 0, -pi/2],‘modified’);
   
    L(2).offset=-pi/2; %设定关节变量偏移量
    
    L(4).offset=pi/2;
   
    robot= SerialLink(L, ‘name’, ‘GLUON_6L3’); %建立机械臂模型
    
    figure(1)
    
    robot.plot([0 0 0 0 0 0]) %显示建立的机器人模型
    
    robot.teach %可以进行施教
    
    robot.display %打印出机器人模型的信息
   
    %调整坐标轴及视野
    
    set(gca,‘XLim’,[-600,600]); %将X轴范围设定为[-400,400]
    
    set(gca,‘YLim’,[-600,600]); %将X轴范围设定为[-500,500]
    
    set(gca,‘ZLim’,[0,600]); %将Z轴范围设定为[0,600],最小值设定为0,可以消除模型下面的长杆
    
    set(gca,‘XDir’,‘reverse’); %将x轴方向设置为反向
    
    set(gca,‘YDir’,‘reverse’); %将Y轴方向设置为反向
    
    set(gca,‘View’,[-85,10]); %设定视野方向角和俯仰角
   
    %设定关节变量范围,deg2rad()角度转弧度
    
    L(1).qlim=[deg2rad(-140) deg2rad(140)];
    
    L(2).qlim=[deg2rad(-90) deg2rad(90)];
    
    L(3).qlim=[deg2rad(-140) deg2rad(140)];
    
    L(4).qlim=[deg2rad(-140) deg2rad(140)];
    
    L(5).qlim=[deg2rad(-140) deg2rad(140)];
    
    L(6).qlim=[deg2rad(-360) deg2rad(360)];
   
    %轨迹规划参数设置
    
    init_ang = [0,0,0,0,0,0]; %起始角度
    
    targ_ang = [pi/3,pi/3,pi/4,pi/6,-pi/4,pi/6]; %停止角度
    
    T =(0:0.1:6); %整个过程6秒,步长0.1秒
   
    %5次多项式关节空间轨迹规划函数jtraj()
    
    [q,qd,qdd] = jtraj(init_ang,targ_ang,T); %直接得到角度、角速度、角加速度的的序列
   
    figure(2);
    
    title(‘规划过程’);
    
    Txy=robot.fkine(q); %正运动学
    
    henji=transl(Txy);
    
    x = henji(:,1);y = henji(:,2);z = henji(:,3);
    
    plot3(x,y,z,‘b’); %绘制轨迹图像
    
    hold on;
    
    robot.plot(q); % 轨迹痕迹显示
   
    figure(3);
    
    TT=robot.fkine(q); %正运动学
    
    guiji=transl(TT);
    
    x = guiji(:,1);y = guiji(:,2);z = guiji(:,3);
    
    plot3(x,y,z,‘r’); %轨迹图像绘制
    
    xlabel(‘X/mm’),ylabel(‘Y/mm’),zlabel(‘Z/mm’);
    
    hold on
    
    title(‘空间轨迹’);
    
    text(guiji(1,1),guiji(1,2),guiji(1,3),‘A点’);
    
    text(guiji(61,1),guiji(61,2),guiji(61,3),‘B点’); %0.1步长,6秒仿真时间
   
    %画关节位置、速度、加速度曲线,三个绘制在一幅图中,每个里面包含6个关节
    
    figure(4)
    
    subplot(3,1,1);
    
    plot(T,q);title(‘关节位移’);xlabel(‘时间t/s’);ylabel(‘位移s/rad’);
    
    legend(‘关节1’,‘关节2’,‘关节3’,‘关节4’,‘关节5’,‘关节6’,‘location’,‘northeastoutside’ );grid on;
   
    subplot(3,1,2);
    
    plot(T,qd);title(‘关节速度’);xlabel(‘时间t/s’);ylabel(‘速度v/(rad/s)’);
    
    legend(‘关节1’,‘关节2’,‘关节3’,‘关节4’,‘关节5’,‘关节6’,‘location’,‘northeastoutside’ );grid on;
   
    subplot(3,1,3);
    
    plot(T,qdd);title(‘关节加速度’);xlabel(‘时间t/s’);ylabel(‘加速度a/(rad/s^2)’);
    
    legend(‘关节1’,‘关节2’,‘关节3’,‘关节4’,‘关节5’,‘关节6’,‘location’,‘northeastoutside’ );grid on;
   
    运行结果如下:
    
    
    
    
    
    
    
     
   
    
    
    关节角度均为0时,即A点
    
    
    
    B点(pi/3,pi/3,pi/4,pi/6,-pi/4,pi/6)
    
    
    
    换成米制单位,就很快。这么耗费电脑计算量毫米
    
    
    
    
    
    米制单位
   
    clear;clc;close all;
    
    % DH建模部分theta、 d、 a、 alpha
    
    L(1)=Link([ 0, 0.1015, 0, 0],‘modified’);
    
    L(2)=Link([ 0, 0.0792, 0, -pi/2],‘modified’);
    
    L(3)=Link([ 0, -0.0792, 0.173, 0],‘modified’);
    
    L(4)=Link([ 0, 0.0792, 0.173, 0],‘modified’);
    
    L(5)=Link([ 0, 0.0792, 0, pi/2],‘modified’);
    
    L(6)=Link([ 0, 0.0417, 0, -pi/2],‘modified’);
   
    L(2).offset=-pi/2; %设定关节变量偏移量
    
    L(4).offset=pi/2;
   
    robot= SerialLink(L, ‘name’, ‘GLUON_6L3’); %建立机械臂模型
    
    figure(1)
    
    % robot.plot([pi/3 pi/3 pi/4 pi/6 -pi/4 pi/6]) %显示建立的机器人模型
    
    robot.plot([0 0 0 0 0 0])
    
    robot.teach %可以进行施教
    
    robot.display %打印出机器人模型的信息
   
    %调整坐标轴及视野
    
    set(gca,‘XLim’,[-0.6,0.6]); %将X轴范围设定为[-400,400]
    
    set(gca,‘YLim’,[-0.6,0.6]); %将X轴范围设定为[-500,500]
    
    set(gca,‘ZLim’,[0,0.6]); %将Z轴范围设定为[0,600],最小值设定为0,可以消除模型下面的长杆
    
    set(gca,‘XDir’,‘reverse’); %将x轴方向设置为反向
    
    set(gca,‘YDir’,‘reverse’); %将Y轴方向设置为反向
    
    set(gca,‘View’,[-85,10]); %设定视野方向角和俯仰角
   
    注:个人学习,程序仅供参考。感谢CSDN博主慕羽的机械臂模型及机械臂建模程序部分。
    
     
   
 
