matlab中robotics toolbox的函数解说
1. PUMA560的MATLAB仿真
要建立PUMA560的机器人对象,首先我们要了解PUMA560的D-H参数,之后我们可以利用Robotics Toolbox工具箱中的link和robot函数来建立PUMA560的机器人对象。
其中link函数的调用格式:
L = LINK([alpha A theta D])
      L =LINK([alpha A theta D sigma])
      L =LINK([alpha A theta D sigma offset])
      L =LINK([alpha A theta D], CONVENTION)
      L =LINK([alpha A theta D sigma], CONVENTION)
      L =LINK([alpha A theta D sigma offset], CONVENTION)
参数CONVENTION可以取‘standard’和‘modified’,其中‘standard’代表采用标准的D-H参数,‘modified’代表采用改进的D-H参数。参数‘alpha’代表扭转角 ,参数‘A’代表杆件长度,参数‘theta’代表关节角,参数‘D’代表横距,参数‘sigma’代表关节类型:0代表旋转关节,非0代表移动关节。另外LINK还有一些数据域:
      LINK.alpha      %返回扭转角
      LINK.A        %返回杆件长度
      LINK.theta      %返回关节角
      LINK.D        %返回横距
      LINK.sigma    %返回关节类型
      LINK.RP          %返回‘R’(旋转)或‘P’(移动)
      LINK.mdh      %若为标准D-H参数返回0,否则返回1
      LINK.offset    %返回关节变量偏移
      LINK.qlim        %返回关节变量的上下限 [min max]
      LINK.islimit(q)  %如果关节变量超限,返回 -1, 0, +1
      LINK.I        %返回一个3×3 对称惯性矩阵
      LINK.m              %返回关节质量
      LINK.r        %返回3×1的关节齿轮向量
      LINK.G              %返回齿轮的传动比
      LINK.Jm      %返回电机惯性
      LINK.B              %返回粘性摩擦
      LINK.Tc      %返回库仑摩擦
      LINK.dh            return legacy DH row
      LINK.dyn        return legacy DYN row
其中robot函数的调用格式:
      ROBOT                          %创建一个空的机器人对象
      ROBOT(robot)            %创建robot的一个副本
      ROBOT(robot, LINK)    %用LINK来创建新机器人对象来代替robot
      ROBOT(LINK, ...)        %用LINK来创建一个机器人对象
      ROBOT(DH, ...)            %用D-H矩阵来创建一个机器人对象
      ROBOT(DYN, ...)            %用DYN矩阵来创建一个机器人对象
2.变换矩阵
利用MATLAB中Robotics Toolbox工具箱中的transl、rotx、roty和rotz可以实现用齐次变换矩阵表示平移变换和旋转变换。下面举例来说明:
A 机器人在x轴方向平移了0.5米,那么我们可以用下面的方法来求取平移变换后的齐次矩
阵:
>> transl(0.5,0,0)
ans =
    1.0000        0        0    0.5000
        0    1.0000        0        0
        0        0    1.0000        0
        0        0        0    1.0000
B 机器人绕x轴旋转45度,那么可以用rotx来求取旋转后的齐次矩阵:
>> rotx(pi/4)
ans =
    1.0000        0        0        0
        0    0.7071  -0.7071        0
        0    0.7071    0.7071        0
        0        0        0    1.0000
C 机器人绕y轴旋转90度,那么可以用roty来求取旋转后的齐次矩阵:
>> roty(pi/2)
ans =
    0.0000        0    1.0000        0
        0    1.0000        0        0
  -1.0000        0    0.0000        0
        0        0        0    1.0000
D 机器人绕z轴旋转-90度,那么可以用rotz来求取旋转后的齐次矩阵:
>> rotz(-pi/2)
ans =
    0.0000    1.0000        0        0
  -1.0000    0.0000        0        0
        0        0    1.0000        0
        0        0        0    1.0000
当然,如果有多次旋转和平移变换,我们只需要多次调用函数在组合就可以了。另外,可以和我们学习的平移矩阵和旋转矩阵做个对比,相信是一致的。
3 轨迹规划
利用Robotics Toolbox提供的ctraj、jtraj和trinterp函数可以实现笛卡尔规划、关节空间规划和变换插值。
其中ctraj函数的调用格式:
      TC = CTRAJ(T0, T1, N)
      TC = CTRAJ(T0, T1, R)
参数TC为从T0到T1的笛卡尔规划轨迹,N为点的数量,R为给定路径距离向量,R的每个值必须在0到1之间。
其中jtraj函数的调用格式:
      [Q QD QDD] = JTRAJ(Q0, Q1, N)
      [Q QD QDD] = JTRAJ(Q0, Q1, N, QD0, QD1)
      [Q QD QDD] = JTRAJ(Q0, Q1, T)
      [Q QD QDD] = JTRAJ(Q0, Q1, T, QD0, QD1)
参数Q为从状态Q0到Q1的关节空间规划轨迹,N为规划的点数,T为给定的时间向量的长
度,速度非零边界可以用QD0和QD1来指定。QD和QDD为返回的规划轨迹的速度和加速度。
其中trinterp函数的调用格式:
TR = TRINTERP(T0, T1, R)
参数TR为在T0和T1之间的坐标变化插值,R需在0和1之间。
要实现轨迹规划,首先我们要创建一个时间向量,假设在两秒内完成某个动作,采样间隔是56ms,那么可以用如下的命令来实现多项式轨迹规划:t=0:0.056:2; [q,qd,qdd]=jtraj(qz,qr,t);
tool工具箱其中t为时间向量,qz为机器人的初始位姿,qr为机器人的最终位姿,q为经过的路径点,qd为运动的速度,qdd为运动的加速度。其中q、qd、qdd都是六列的矩阵,每列代表每个关节的位置、速度和加速度。如q(:,3)代表关节3的位置,qd(:,3)代表关节3的速度,qdd(:,3)代表关节3的加速度。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。