MATLAB机器人工具箱外文翻译资料

 2022-06-14 10:06

英语原文共 9 页,剩余内容已隐藏,支付完成后下载完整资料


MATLAB机器人工具箱

作者:P.I. Corke Div. of Manuf. Technol., CSIRO, Kenmore, Qld., Australia

来源:IEEE Robotics amp; Automation Magazine.1996(1):24-32

摘要

Robotics Toolbox是一个软件包,它允许MATLAB用户轻松创建和操作机器人基础的数据类型,例如齐次变换,四元数和轨迹。 针对任意串行链接操纵器提供的功能包括正向和反向运动学,雅可比行列式以及正向和反向动力学。 本文将以教程形式介绍Toolbox,并选择示例来演示一系列功能。 完整的工具箱和文档可以通过匿名ftp免费获得。

关键词:计算机语言;机器人动力学;机器人运动学;MATLAB;雅克比矩阵;机器人与自动化;四元数;轨道机器人技术;软件包;文档

MATLAB [4]是一个强大的线性代数和图形演示环境,可在各种计算机平台上使用。 核心功能可以通过应用程序特定的工具箱进行扩展。 机器人工具箱提供了机器人所需的许多功能,并解决了运动学,动力学和轨迹生成等领域。 结合交互式MATLAB环境及其强大的图形功能,它为机器人仿真和实验分析提供了非常方便的方法。

工具箱是基于一种用“描述矩阵”表示串行链接操纵器的运动学和动力学的非常普遍的方法。 在最简单的情况下,这包括机器人的Denavit和Hartenberg参数,并且可以由用户为任何串行链接操纵器创建。 为众所周知的机器人提供了许多例子,例如Puma 560和Stanford手臂。 通过增加矩阵,可以详细说明机械手的描述,包括链接惯性,电机惯性和摩擦参数。 这些矩阵为描述机器人模型提供了一个简洁的方法。工具箱还提供了操作数据类型和转换数据类型的函数,如矢量,齐次变换和单位四元数,这些数据类型是表示三维位置和方向所必需的。 由于教学原因,这些例程通常以直线前锋或教科书的方式编写,而不是为了最大计算效率。

本教程假定您对MATLAB有适度的熟悉,并开始介绍用于表示三维(3D)位置和方向的函数和数据类型。 在讨论了三维位置和方向的插值之后,我们介绍了任意串行链接机械手的一般矩阵表示和覆盖运动学; 正反解和机器人雅可比矩阵。 然后,我们考虑在配置或笛卡尔空间中创建轨迹,并扩展通用矩阵表示以包含操纵器刚体和电机动力学,并描述正向和反向操纵器动力学的功能。 最后,我们举一个更长的例子来说明Toolbox / MATLAB组合的强大功能,以解决机器人仿真中复杂的任务。

表示3D平移和定位

在笛卡尔坐标系中,坐标系转换可以用位置矢量来表示,相对于坐标系A的原点,并且其中。 如果没有给出A,则假定世界坐标框架。 3D方向的许多表示已被提出[3],但机器人中最常用的是正交旋转矩阵和单位四元数。 均匀变换是一个4times;4矩阵,它表示平移和方向,并且可以简单地通过矩阵乘法来复合。 这种矩阵表示法与MATLAB强大的矩阵操纵功能相匹配。均质转换:

根据笛卡尔平移,p和方向描述笛卡尔坐标系之间的关系。

表示为3times;3正交旋转矩阵R。 表示在X方向上0.5米的纯粹平移的齐次变换由

gt;gt; T=transl(0.5,0.0,0.0);

以及绕Y轴旋转90度

gt;gt; T=roty(pi/2);

例如,这种变换可以通过乘法连接,

gt;gt; T=transl(0.5,0.0,0.0)*troty(pi/2)*trotz(-pi/2)

T =

0.0000 0.0000 1.0000 0.5000

-1.0000 0.0000 0 0

-0.0000 -1.0000 0.0000 0

0 0 0 1.0000

新坐标系的方向可以用欧拉角来表示

gt;gt; tr2eul(T)

ans =

0 1.5708 -1.5708

单位为弧度,或滚动/俯仰/偏航角度

gt;gt; tr2rpy(T)

ans =

-1.5708 0.0000 -1.5708

可以使用函数eu12tr(),rpy2tr()和rotvec()分别从Euler或者roll / pitch / yaw角度生成均匀变换,或者使用函数eu12tr()旋转任意矢量。

旋转也可以用四元数表示,这将在这里表示

其中s是一个标量并且。 单位四元数有单位,即,在这种情况下s = sintheta;/2,并且q可以被认为是关于矢量v的theta;的旋转。可以将齐次变换的旋转分量转换为单位 - 四元

gt;gt; q=t2r(T)

q =

0.0000 0.0000 1.0000

-1.0000 0.0000 0

-0.0000 -1.0000 0.0000

这表明复合变换相当于向量[-1 1 -1]的0.5 rad的旋转。 四元数可以通过函数qmul()复合(“相乘”)。

插值

通常在机器人技术中,有必要在两个位置或方向之间进行插值。 在这种情况下,通过均匀转换函数来表示这些函数。

gt;gt; T=trinterp(T0,T1,r)

用于r是一个标量,使得0.5le;rle;1。 当r =0时,插值返回到TO,r=1返回T1。 这两个极值之间的r值返回“两个转换的旋转和平移分量的混合。 对于四元数的情况来说,混合旋转要简单得多。

gt;gt; q=qinterp(q0,q1,r)

运动学

正向运动学是解决笛卡尔位置和终端效应器方向的问题,只要知道运动学结构和关节坐标。 根据Denavit-Hartenberg参数[6]或修改Denavit-Hartenberg参数[2],可以对串行连杆机械手的运动学结构进行明确的描述。 在工具箱中,机械手的运动特性通常由dh矩阵表示,该矩阵作为工具箱运动功能的第一个参数给出。 dh矩阵描述了使用标准Denavit-Hartenberg惯例的操纵器的运动学,其中每行表示操纵器的一个连接,并且列根据表1进行分配。

如果没有给出最后一列,则工具箱功能假定操纵器是全旋转的。 对于n轴操纵器,dh因此是ntimes;4或ntimes;5矩阵。 关节角度代表由n元素行向量感知。 考虑Puma 560机械手的例子,一个普通的实验室机器人。运动学可以由puma560命令定义,该命令使用标准Denavit-Hartenberg惯例在工作区中创建运动学描述矩阵p560,以及Paul和Zhang [7]的特定帧分配。 它还创建了定义特殊关节角度姿势的工作空间变量:qz表示所有零关节角度,qr表示“READY”位置,qstretch表示完全伸展的手臂水平姿势。

表1 Toolbox dh矩阵的列分配

行数

符号

意义

1

连杆扭转角度(rad)

2

连杆长度

3

连杆旋转角度(rad)

4

连杆偏移距离

5

可选择关节类型:0代表旋转,对于棱柱为非0

可以针对零角度姿态计算正向运动

gt;gt; puma560 %定义puma运动学矩阵p560

gt;gt; fkine(p560,qz)

ans =

1 0 0

0 1 0

0 0 1

0 0 0

它返回对应于操纵器最后一个链接姿态的齐次变换。 由最后一列给出的翻译与dh矩阵中的Ai和Di数据具有相同的维度单位,在这种情况下为米。 这个姿势可以通过

gt;gt; plotbot(p560,qz)

其产生图1中所示的三维图。所绘制的线段不一定对应于机器人链接,而是加入顺序链接坐标框架的起点。 这种方法消除了对额外的,详细的机器人几何数据的需求。 在机器人的末端绘制一个小的右侧坐标系,以显示手腕方向。 X,Y和Z轴分别由红色,绿色和蓝色表示。

图1.零关节角度姿势下的可视化机器人-由plotbot(p560,qz)创建

逆运动学是找到机器人关节坐标的问题,给定了表示末端效应器姿态的齐次变换。 当路径在笛卡尔空间中进行规划时,它非常有用,例如后面会显示的直线路径。 首先生成对应于特定关节坐标的变换。

gt;gt; q=[0 -pi/4 -pi/4 pi/8 0]

q =

0 -0.7854 -0.7854 0.3927 0

gt;gt; T=fkine(p560,q);

现在重新计算原始关节角度

gt;gt; qi=ikine(p560,T)

qi =

0 -0.7854 -0.7854 0 0.3927 0

这与原始值相比很好。

任何特定机器人的逆运动学过程都可以象征性地推导出来[6],并且通常可以获得有效的闭式解。然而,工具箱只给出了运动学参数方面对操纵器的一般描述,因此必须使用迭代数值解[1]。这样的过程可能会很慢,并且起始值的选择会影响搜索时间和找到的解决方案,因为一般来说,操纵器可能会有几个配置,导致最后一个链接的姿态相同。可以指定解决方案的起点,或者默认为零(在这种情况下,这不是一个特别好的选择),并且对将找到的特定解决方案提供有限的控制。对于冗余操纵器,将找到解决方案,但不存在对空间的显式控制。对于一个具有n <6自由度的操纵器,需要附加的参数来表明6-n笛卡尔DOF中的哪一个在解中不受约束。基于由Craig[2]引入的改进型Denavit和Hartenberg表示法,运动学操作提供了有限的功能。这些函数前缀为“m”,例如mfkine()。

微分笛卡尔运动或速度可以由一个6元向量表示,其前3个元素是微分平移,最后3个元素是微分旋转。 可以根据复合变换评估相应的齐次变换,但更直接的方法是使用函数diff2tr()。

gt;gt; D=[0.1 0.2 0 -0.2 0.1 0.1]#39;;

gt;gt; diff2tr(D)

ans =

0 -0.1000 0.1000 0.1000

0 0 0.2000 0.2000

0.1000 -0.2000 0 0

0 0 0 0

这产生了Paul[6]提到的矩阵A,它具有一个斜对称旋转子矩阵。 更常见的是知道一个坐标系中的差分运动或速度如何出现在另一个帧中。 如果第二帧由齐次变换表示

gt;gt; T=transl(100,200,300)*troty(pi/8)*trotz(-pi/4);

对于第一帧,则第二帧中的差分运动将由下式给出

gt;gt; DT=tr2jac(T)*D;

gt;gt; DT#39;

ans =

-29.5109 69.7669 -42.3289 -0.2284 -0.0870 0.0159

tr2jac()计算出一个6times;6的雅可比矩阵,该矩阵转换了从第一帧到下一帧的差分变化。

操纵器的雅可比矩阵Jq映射配置和笛卡尔空间之间的差分运动或速度。 对于n轴机械手,末端执行器笛卡尔速度为

分别在基础或末端效应器坐标中,并且其中X是如上所述由6矢量表示的笛卡尔速度。 两个雅可比行列式分别由工具箱函数jacob0()和jacobn()计算。 对于n轴操纵器,雅可比矩阵是一个6times;n矩阵。 在末端执行器框架中

gt;gt; q=[0.1 0.75 -2.25 0.75 0];

gt;gt; J=jacobn(p560,q)

J =

0.0918 -0.7328 -0.3021 0 0 0

0.7481 0 0 0 0 0

0.0855 0.3397 0.3092 0 0 0

0.6

全文共12605字,剩余内容已隐藏,支付完成后下载完整资料


资料编号:[10953],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。