• Matlab Robitic Toolbox学习笔记Day2


    1.对于之前已经建立好的SCARA机器人模型,进行动画演示。9.10版本的工具箱中原来的drivebot函数替换为teach函数,用来生成可修改关节变量q的演示图。值得注意的是,在使用teach函数之前,必须在建立各个杆件的时候设置好关节变量q的范围,即qlim;以及设置好所显示图形的范围,即workspace。如果没有设置好,则teach函数会报错。

    代码如下所示:

    clc, clear, close all;
    deg = pi/180;
    % Joints setting
    L1 = Link('d', 3.3, 'a', 0, 'alpha', 0, 'qlim', [-105 105]*deg,'modified');
    L2 = Link('d', 0, 'a', 3.25, 'alpha', 0, 'qlim', [-150 150]*deg,'modified');
    L3 = Link('theta', 0, 'a', 2.75, 'alpha', pi,'qlim', [0 2.1],'modified');
    L4 = Link('d', 0, 'a', 0, 'alpha',0, 'qlim', [-360 360]*deg,'modified');
    bot = SerialLink([L1 L2 L3 L4], 'name', 'SCARA');
    % Initial position/Starting position
    q = [0 0 1 0];
    q1=[90*deg 0 2 0]
    a=7;
    W = [-a a -a a -a/2 a];
    bot.plot(q,'workspace', W);

    图形界面如图所示


    之前在网上搜索的实例大多是puma560机器人,由于该机器人全部关节均为转动关节,所以在进行仿真的时候可以不必添加workspace的选项,而scara机器人的第三关节是移动关节,所以在使用teach函数的时候必须规定好workspace的大小。

    2.jtraj函数。jtraj函数用来生成轨迹

    q = [0 0 1 0];
    q1=[90*deg 0 2 0];
    a=7;
    W = [-a a -a a -a/2 a];

    c = jtraj(q , q1 , 40 );
    bot.plot(c,'workspace', W);

    使用robotic toolbox自带的plot函数画出的图形都为动图,如果需要得到一个静态图,则可以使用哪个plot3函数,具体的使用方法如下。

    plot3函数与plot函数用法十分相似,其调用格式为:
    plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,…,xn,yn,zn,选项n)
    其中每一组x,y,z组成一组曲线的坐标参数,选项的定义和plot函数相同。当x,y,z是同维向量时,则x,y,z 对应元素构成一条三维曲线。当x,y,z是同维矩阵时,则以x,y,z对应列元素绘制三维曲线,曲线条数等于矩阵列数。
      例  绘制三维曲线。
    程序如下:
    t=0:pi/100:20*pi;
    x=sin(t);
    y=cos(t);
    z=t.*sin(t).*cos(t);
    plot3(x,y,z);
    title('Line in 3-D Space');
    xlabel('X');ylabel('Y');zlabel('Z');
    (参考来源:http://www.ilovematlab.cn/thread-243883-1-1.html)

    3.在进行模型的动力学分析的时候,用serialLink.rne函数求得力矩。

    rtbdemo中的puma560的实例如下:

    t = [0:.056:2]; % create time vector 

     [q,qd,qdd] = jtraj(qz, qr, t); % compute joint coordinate trajectory 

    tau = p560.rne(q, qd, qdd); % compute inverse dynamics
    %  Now the joint torques can be plotted as a function of time
     plot(t, tau(:,1:3)); xlabel('Time (s)'); ylabel('Joint torque (Nm)')

    4.尚不明确的地方:

    五次三项式的插值函数?关于第三第四关节的简化中,实际力矩的求解?

  • 相关阅读:
    ZOJ 1649: Rescue(BFS)
    UVA
    hdu2458:Kindergarten (最大独立集)
    hdu3829:Cat VS Dog (最大独立集)
    Java 泛型
    request.getParameter() 和request.getAttribute() 区别
    Solr版本安装部署指南
    java.sql.SQLException: Incorrect string value: 'xE6x88x91xE7x9Ax84...' for column 'groupName'
    Incorrect string value: 'xF0x9Fx98x84xF0x9F
    java里面byte数组和String字符串怎么转换
  • 原文地址:https://www.cnblogs.com/fengf1/p/9226778.html
Copyright © 2020-2023  润新知