MTALAB机器人工具箱

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Robotic tool提供了一些如运动学,动力学和生成机器人轨迹的许多有用功能。用这个工具箱进行仿真以及分析与真正的机器人得到实验结果是非常有用。工具箱的优点是代码是一个相当成熟的算法,对于教学源代码是免费的。该工具箱提供了机器人动力学正解和逆解,其次坐标转换所必需的三维位置和方向。

该工具箱可以计算任意结构机器人的正反运动学(用数值积分的方法,不是给出解析解)、正反动力学(反运动学采用的是递归牛顿欧拉方法,效率很高)、路径规划等;里面还有Puma560和Stanford机器人的实例。

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.变换矩阵

利用MA TLAB中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)

相关文档
最新文档