我是靠谱客的博主 帅气电话,最近开发中收集的这篇文章主要介绍用matlab机器人工具箱对SCARA机器人建模结构图示及D-H参数表机器人工具箱建模多段运动位移、速度、加速度曲线本文的问题:可能会出现的报错代码,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

(默认已经学会D-H参数法),直接上正文:

目录

  • 结构图示及D-H参数表
  • 机器人工具箱
  • 建模
    • D-H参数表
    • 让机器人动起来
  • 多段运动
  • 位移、速度、加速度曲线
  • 本文的问题:
  • 可能会出现的报错
    • 找不到SE3
    • 无法建立移动关节
  • 代码
    • 如果仔细阅读前文的话,是用不着这个下载链接的
    • 生成GIF

结构图示及D-H参数表

首先简单看一下SCARA机器人的结构还有D-H参数表:(选自机器人学导论)
在这里插入图片描述

机器人工具箱

打开MATLAB,先检查一下机器人工具箱安装好了没有,以及版本号。我自己安装的是10.3.1版本:
在这里插入图片描述

建模

D-H参数表

L1 = Link([ 0   0    1    0    ]); %由Link函数输入D-H参数表的各个参数
L2 = Link([ 0   0    0.75  pi  ]); %其中,10.751.5仅为样例臂长
L3 = Link([ 0   1.5  0    0    ]);
L3.jointtype='P';                  %声明L3是移动关节
L3.qlim=[0 2];                     %设定L3工作上下限
SCARA = SerialLink([L1 L2 L3], 'name', 'Kang'); %由D-H参数表建模

这个时候就可以让自己建的模型以任意关节变量显示了:

figure(1);
view(3);
SCARA.plot([pi/3 pi/2 1.4]); %输入参数分别为L1、L2、L3三个关节变量
  • 这里一定要加一句view(3),否则会报错

因为机器人工具箱在更新到10之后似乎就不能直接把三维的机器人模型打印出来了,要先写一句view(3)才可以。
在这里插入图片描述

  • 这里,如果是从旧版本(比如9.2)更新过来的,在执行SerialLink函数的时候可能会报错:
SCARA = SerialLink([L1 L2 L3], 'name', 'Kang'); %由D-H参数表建模

在这里插入图片描述
处理方法见“可能出现的报错–找不到SE3

  • 或者有可能是在建立移动关节时,建模失败,会有如下报错。这是因为旧版本的工具箱是不能直接建立移动关节的
%错误使用 SerialLink/plot>plot_options (line 711)
%Prismatic joint(s) present: requires the 'workspace' option
%
%出错 SerialLink/plot (line 207)
%    opt = plot_options(robot, varargin);

处理方法见“可能出现的报错–无法建立移动关节

让机器人动起来

q1 = [0 0 1.4];        %起点关节变量
q2 = [pi/3 pi/2 0];    %终点关节变量
q = jtraj(q1, q2, 50); %工具箱自带函数规划路线
%三个参数从左至右分别代表:起点、终点和迭代次数(步数)
figure(1);
view(3);
SCARA.plot(q);

在这里插入图片描述

多段运动

上文的代码只能让机器人的各个关节向着一个方向运动。如果我现在想要移动关节由最长缩短再伸长,用一句jtraj已经满足不了。

但是如果又用两次jtraj函数的话,由于分别进行S型速度曲线运动的缘故,机器人会在两段轨迹之间停一下,导致运动不连续:

%1/2时间,移动关节缩短
q11 = [0 0 1.4];
q12 = [pi/3/2 pi/2/2 0.5];
[q_1, v_1, a_1] = jtraj(q11, q12, 25);

%1/2时间,移动关节伸长
q21 = [pi/3/2 pi/2/2 0.5];
q22 = [pi/3 pi/2 1.4];
[q_2, v_2, a_2] = jtraj(q21, q22, 25);

Q = [q_1; q_2];
figure(1);
view(3);
SCARA.plot(Q);

在这里插入图片描述
这时有一种非常简单粗暴的方法:
我可以把两个旋转关节的运动只用一个jtraj生成,然后分别生成两段移动关节的运动,再合到一起,就是完整的先缩短再伸长:

%移动关节固定,直接生成起点与终点之间的运动轨迹
q1 = [0 0 1.4];
q2 = [pi/3 pi/2 1.4];
[q_m, v_m, a_m] = jtraj(q1, q2, 50);

%1/2时间,移动关节缩短
q11 = [0 0 1.4];
q12 = [pi/3/2 pi/2/2 0.5];
[q_1, v_1, a_1] = jtraj(q11, q12, 25);

%1/2时间,移动关节伸长
q21 = [pi/3/2 pi/2/2 0.5];
q22 = [pi/3 pi/2 1.4];
[q_2, v_2, a_2] = jtraj(q21, q22, 25);

%把原L3不动的轨迹替换为把两段L3运动轨迹合并后的的轨迹
q_m(:, 3) = [q_1(:,3);q_2(:, 3)];%针对移动关节进行轨迹合并
v_m(:, 3) = [v_1(:,3);v_2(:, 3)];%针对移动关节进行速度融合
a_m(:, 3) = [a_1(:,3);a_2(:, 3)];%针对移动关节进行加速度融合
%q_m, v_m, a_m是最终的三轴位移、速度、加速度

figure(1);
view(3);         %打开三维视图
SCARA.plot(q_m); %动态显示

那么此时,它的运动轨迹就是:
在这里插入图片描述
实际上,机器人工具箱是有圆弧运动的轨迹函数的hhhhh在这里由于它只涉及到一个移动关节的伸缩,就用这种方法替代了。

位移、速度、加速度曲线

figure(2);       %显示位移、速度、加速度曲线
subplot(1, 3, 1);plot(1:50, q_m);
subplot(1, 3, 2);plot(1:50, v_m);
subplot(1, 3, 3);plot(1:50, a_m);

在这里插入图片描述

本文的问题:

  1. SCARA机器人是四轴的(三个旋转一个位移),在本文中忽略了第三个旋转轴
  2. 圆弧运动
  3. and else…

这些问题就等有缘再补全好了,可能是暑假想起来它就会把这些缺口补上。

可能会出现的报错

找不到SE3

更新完工具箱后,使用SerialLink会报错:
在这里插入图片描述

有时候就算已经改完工作路径了,它还是会出现这样的报错。
这时候需要跳转到机器人工具箱源文件的目录,然后运行startup_rvc,比如

cd(''F:文件tool'')
startup_rvc

一般这时候就解决了

无法建立移动关节

貌似在10之后才可以给移动关节建模?
我在使用9.2版本的时候,如果都用旋转关节建模是不会报错的,可是一旦换为移动关节,他就会报错:

%错误使用 SerialLink/plot>plot_options (line 711)
%Prismatic joint(s) present: requires the 'workspace' option
%
%出错 SerialLink/plot (line 207)
%    opt = plot_options(robot, varargin);

嗯,换成10就好了。
当然,在换成10之后可能就会遇见“找不到SE3”的报错hhhhh。

代码

如果仔细阅读前文的话,是用不着这个下载链接的

生成GIF

放进这篇文章里的gif没有用到录屏软件,是用matlab自己生成的,这里就以这个两段运动轨迹硬合成一个的运动为例:
在这里插入图片描述

cd('F:文件MGIF_Out')
Num = 1;
Q = [q_1; q_2];
figure(3);
view(3);
for time = 1:50 %因为源程序就是定了50步,这里就写50
    SCARA.plot(Q(time,:)); %让机器人一帧一帧地动
    F1=getframe(gcf); %获取当前帧
    F2=frame2im(F1);
    [F2,F3]=rgb2ind(F2,256);
    if Num == 1  %创建
        imwrite(F2, F3, 'SCARA_err12.gif', 'gif', 'Loopcount', inf, 'DelayTime', 0.2);
    else         %修改
        imwrite(F2, F3, 'SCARA_err12.gif', 'gif','WriteMode','append','DelayTime',0.2);
    end
    Num = Num + 1;
end

最后

以上就是帅气电话为你收集整理的用matlab机器人工具箱对SCARA机器人建模结构图示及D-H参数表机器人工具箱建模多段运动位移、速度、加速度曲线本文的问题:可能会出现的报错代码的全部内容,希望文章能够帮你解决用matlab机器人工具箱对SCARA机器人建模结构图示及D-H参数表机器人工具箱建模多段运动位移、速度、加速度曲线本文的问题:可能会出现的报错代码所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部