现在的位置: 首页 > 综合 > 正文

matlab中robotics toolbox的函数解说

2014年02月03日 ⁄ 综合 ⁄ 共 2871字 ⁄ 字号 评论关闭

 

1. PUMA560MATLAB仿真

要建立PUMA560的机器人对象,首先我们要了解PUMA560D-H参数,之后我们可以利用Robotics Toolbox工具箱中的linkrobot函数来建立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可以取standardmodified,其中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.变换矩阵

利用MATLABRobotics Toolbox工具箱中的translrotxrotyrotz可以实现用齐次变换矩阵表示平移变换和旋转变换。下面举例来说明:

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提供的ctrajjtrajtrinterp函数可以实现笛卡尔规划、关节空间规划和变换插值。

其中ctraj函数的调用格式:

       TC = CTRAJ(T0, T1, N)

       TC = CTRAJ(T0, T1, R)

参数TC为从T0T1的笛卡尔规划轨迹,N为点的数量,R为给定路径距离向量,R的每个值必须在01之间。

其中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为从状态Q0Q1的关节空间规划轨迹,N为规划的点数,T为给定的时间向量的长度,速度非零边界可以用QD0QD1来指定。QDQDD为返回的规划轨迹的速度和加速度。

其中trinterp函数的调用格式:

TR = TRINTERP(T0, T1, R)

参数TR为在T0T1之间的坐标变化插值,R需在0

抱歉!评论已关闭.