当前位置:文档之家› 机器人运动学

机器人运动学

机器人运动学
机器人运动学

第2章 机器人位置运动学

2.1 引言

本章将研究机器人正逆运动学。当已知所有的关节变量时,可用正运动学来确定机器人末端手的位姿。如果要使机器人末端手放在特定的点上并且具有特定的姿态,可用逆运动学来计算出每一关节变量的值。首先利用矩阵建立物体、位置、姿态以及运动的表示方法,然后研究直角坐标型、圆柱坐标型以及球坐标型等不同构型机器人的正逆运动学,最后利用Denavit-Hartenberg(D-H)表示法来推导机器人所有可能构型的正逆运动学方程。

实际上,机器手型的机器人没有末端执行器,多数情况下,机器人上附有一个抓持器。根据实际应用,用户可为机器人附加不同的末端执行器。显然,末端执行器的大小和长度决定了机器人的末端位置,即如果末端执行器的长短不同,那么机器人的末端位置也不同。在这一章中,假设机器人的末端是一个平板面,如有必要可在其上附加末端执行器,以后便称该平板面为机器人的“手”或“端面”。如有必要,还可以将末端执行器的长度加到机器人的末端来确定末端执行器的位姿。

2.2 机器人机构

机器手型的机器人具有多个自由度(DOF ),并有三维开环链式机构。

在具有单自由度的系统中,当变量设定为特定值时,机器人机构就完全确定了,所有其他变量也就随之而定。如图2.1所示的四杆机构,当曲柄转角设定为120°时,则连杆与摇杆的角度也就确定了。然而在一个多自由度机构中,必须独立设定所有的输入变量才能知道其余的参数。机器人就是这样的多自由度机构,必须知道每一关节变量才能知道机器人的手处在什么位置。

图2.1 具有单自由度闭环的四杆机构

如果机器人要在空间运动,那么机器人就需要具有三维的结构。虽然也可能有二维多自

由度的机器人,但它们并不常见。

机器人是开环机构,它与闭环机构不同(例如四杆机构),即使设定所有的关节变量,也不能确保机器人的手准确地处于给定的位置。这是因为如果关节或连杆有丝毫的偏差,该关节之后的所有关节的位置都会改变且没有反馈。例如,在图2.2所示的四杆机构中,如果连杆AB 偏移,它将影响2O B 杆。而在开环系统中(例如机器人),由于没有反馈,之后的所有构件都会发生偏移。于是,在开环系统中,必须不断测量所有关节和连杆的参数,或者监控系统的末端,以便知道机器的运动位置。通过比较如下的两个连杆机构的向量方程,可以表示出这种差别,该向量方程表示了不同连杆之间的关系。

1122O A AB OO O B +=+ (2.1) 11O A AB BC OC ++= (2.2)

可见,如果连杆AB 偏移,连杆2O B 也会相应地移动,式(2.1)的两边随连杆的变化而改变。而另一方面,如果机器人的连杆AB 偏移,所有的后续连杆也会移动,除非1O C 有其他方法测量,否则这种变化是未知的。

为了弥补开环机器人的这一缺陷,机器人手的位置可由类似摄像机的装置来进行不断测量,于是机器人需借助外部手段(比如辅助手臂或激光束)来构成闭环系统。或者按照常规做法,也可通过增加机器人连杆和关节强度来减少偏移,采用这种方法将导致机器人重量重、体积大、动作慢,而且它的额定负载与实际负载相比非常小。

图2.2 (a)闭环机构;(b)开环机构

2.3 机器人运动学的矩阵表示

矩阵可用来表示点、向量、坐标系、平移、旋转以及变换,还可以表示坐标系中的物体

和其他运动元件。 2.3.1 空间点的表示

空间点P (如图2.3所示)可以用它的相对于参考坐标系的三个坐标来表示:

x y z P a i b j c k =++ (2.3)

其中,,,x y z a b c 是参考坐标系中表示该点的坐标。显然,也可以用其他坐标来表示空间点的 位置。

图2.3 空间点的表示

2.3.2 空间向量的表示

向量可以由三个起始和终止的坐标来表示。如果一个向量起始于点A ,终止于点B ,那么它可以表示为()()()AB x x y y z z P B A i B A j B A k =-+-+-。特殊情况下,如果一个向量起始于原点(如图2.4所示),则有:

x y z P a i b j c k =++ (2.4)

其中,,x y z a b c 是该向量在参考坐标系中的三个分量。实际上,前一节的点P 就是用连接到该点的向量来表示的,具体地说,也就是用该向量的三个坐标来表示。

图2.4 空间向量的表示

向量的三个分量也可以写成矩阵的形式,如式(2.5)所示。在本书中将用这种形式来表

示运动分量:

x y z a P b c ????=??????

(2.5) 这种表示法也可以稍做变化:加入一个比例因子w,如果x, y, z 各除以w,则得到

,,x y z

a b c 。

于是,这时向量可以写为:

x y P z w ??

??

??=??????

,其中,,x y x y

a b w w ==等等 (2.6)

变量w 可以为任意数,而且随着它的变化,向量的大小也会发生变化,这与在计算机图形学中缩放一张图片十分类似。随着w 值的改变,向量的大小也相应地变化。如果w 大于1,向量的所有分量都变大;如果w 小于1,向量的所有分量都变小。这种方法也用于计算机图形学中改变图形与画片的大小。

如果w 是1,各分量的大小保持不变。但是,如果w=0,,,x y z a b c 则为无穷大。在这种情况下,x ,y 和z (以及,,x y z a b c )表示一个长度为无穷大的向量,它的方向即为该向量所表示的方向。这就意味着方向向量可以由比例因子w=0的向量来表示,这里向量的长度并不重要,而其方向由该向量的三个分量来表示。

例2.1 有一个向量P=3i+5j+2k,按如下要求将其表示成矩阵形式:

(1)比例因子为2

(2)将它表示为方向的单位向量 解:

该向量可以表示为比例因子为2的矩阵形式,当比例因子为0时,则可以表示为方向向量,结果如下:

61042P ??????=?????? 和 3520P ??????=??????

然而,为了将方向向量变为单位向量,须将该向量归一化使之长度等于1。这样,向量的每一个分量都要除以三个分量平方和的开方:

222

356.16,0.487,6.16 6.16

X Y Z

x y P P P P P λ=

++====其中,等等和

0.4870.8110.3240unit P ??

??

?

?=??????

2.3.3 坐标系在固定参考坐标系原点的表示

一个中心位于参考坐标系原点的坐标系由三个向量表示,通常着三个向量相互垂直,称为单位向量,,n o a ,分别表示法线(normal )、指向(orientation )和接近(approach )向量(如图2.5所示)。正如2.3.3节所述,每一个单位向量都由它们所在参考坐标系着的三个分量表示。这样,坐标系F 可以由三个向量以矩阵的形式表示为:

x x

x y y y z

z

z n o a F n o a n o a ????=??????

(2.7)

图2.5 坐标系在参考坐标系原点的表示

2.3.4 坐标系在固定参考坐标系中的表示

如果一个坐标系不再固定参考坐标系的原点(实际上也可包括在原点的情况),那么该坐标系的原点相对于参考坐标系的位置也必须表示出来。为此,在该坐标系原点与参考坐标系原点之间做一个向量来表示该坐标系的位置(如图2.6所示)。这个向量由相对于参考坐标系的三个向量来表示。这样,这个坐标系就可以由三个表示方向的单位向量以及第四个位置向量来表示。

00

1x x x x y

y y y z z z z n o a p n o a p F n o a p ?????

?=??????

(2.8)

图2.6 一个坐标系在另一个坐标系中的表示

如式(2.8)所示,前三个向量是w=0的方向向量,表示该坐标系的三个单位向量,,n o a 的方向,而第四个w=1的向量表示该坐标系原点相对于参考坐标系的位置。与单位向量不同,向量P 的长度十分重要,因而使用比例因子为1。坐标系也可以由一个没有比例因子的3?4矩阵表示,但不常用。

例2.2 如图2.7所示的F 坐标系位于参考坐标系中3,5,7的位置,它的n 轴与x 轴平行,o 轴相对于y 轴的角度为45°,a 轴相对于z 轴的角度为45°。该坐标系可以表示为:

1

00300.7070.707

500.7070.70770001F ??

??-?

?=???

???

图2.7 坐标系在空间的表示举例

2.3.5 刚体的表示

一个物体在空间的表示可以这样实现:通过在它上面固连一个坐标系,再将该固连的坐标系在空间表示出来。由于这个坐标系一直固连在该物体上,所以该物体相对于坐标系的位姿是已知的。因此,只要这个坐标系可以在空间表示出来,那么这个物体相对于固定坐标系的位姿也就已知了(如图2.8所示)。如前所述,空间坐标系可以用矩阵表示,其中坐标原点以及相对于参考坐标系的表示该坐标系姿态的三个向量也可以由该矩阵表示出来。于是有:

1x x x x y y y y object

z z z z n o a p n o a p F n o a p ??????=??????

(2.9) 如第1章所述,空间中的一个点只有三个自由度,它只能沿三条参考坐标轴移动。但在空间的一个钢体有六个自由度,也就是说,它不仅可以沿着X,Y ,Z 三轴移动,而且还可绕这三个轴转动。因此,要全面地定义空间以物体,需要用6条独立的信息来描述物体原点在参考坐标系中相对于三个参考坐标轴的位置,以及物体关于这三个坐标轴的姿态。而式(2.9)

给出了12条信息,其中9条为姿态信息,三条为位置信息(排除矩阵中最后一行的比例因子,因为它们没有附加信息)。显然,在该表达式中必定存在一定的约束条件将上述信息数限制为6。因此,需要用6个约束方程将12条信息减少到6条信息。这些约束条件来自于目前尚未利用的已知的坐标系特性,即:

?三个向量,,n o a 相互垂直 ?

每个单位向量的长度必须为1

图2.8 空间物体的表示

我们可以将其转换为以下六个约束方程: (1)0n o ?=

(2)0n a ?= (3)0a o ?=

(4)1n =(向量的长度必须为1) (2.10) (5)1o =

(6)1a =

因此,只有前述方程成立时,坐标系的值才能用矩阵表示。否则,坐标系将不正确。式(2.10)中前三个方程可以换用如下的三个向量的叉积来代替:

n o a ?= (2.11)

例2.3 对于下列坐标系,求解所缺元素的值,并用矩阵来表示这个坐标系。

?

0?50.707??3

??020001F ?????

?=?????? 解:

显然,表示坐标系原点位置的值5,3,2对约束方程无影响。注意在三个方向向量中只有三个值是给定的,但这也已足够了。根据式(2.10),得: 0x x y y z z n o n o n o ++= 或 (0)0.707()()x y z z n o n o ++=

0x x y y z z n a n a n a ++= 或 ()0.707()(0)

x x y z n a a n ++= 0x x y y z z a o a o a o ++= 或 (0)()0()x y y z a a o o +

+=

2221x y z n n n ++= 或 2220.7071x z n n ++= 2221x y z o o o ++= 或 22201y z o o ++= 2221x y z a a a ++= 或 22201x y a a ++=

将这些方程化简得:

0.7070y z z o n o += 0.7070x x y n a a +=

y y a o =

220.5x z n n +=

221

y z o o += 221

x y a a +=

解这六个方程得:0.707,0,0,1,0.7070.707x z y z x y n n o o a a =±====±=-和。应注意,x x n a 和必须同号。非唯一解的原因是由于给出的参数可能得到两组在相反方向上相互垂直的向

量。最终得到的矩阵如下:

0.70700.7070.70700.707301020001F ????-??=?????? 或

0.70700.707

0.70700.707301020001F --????-??=?????? 由此可见,两个矩阵都满足约束方程的要求。但应注意三个方向向量所表述的值不是任意的,而是受这些约束方程的约束,因此不可任意给矩阵赋值。

同样,可通过n o 与叉乘并令其等于a ,即n o a ?=来求解,表示如下:

x y z x y z x

y

z

i j k n n n a i a j

a k

o o o =++

或表示为:()()()y z z y x z z x x y y x x y z i n o n o j n o n o k n o n o a i a j a k ---+-=++ 将值代入方程得:

(0.707)()()z z y x z x y x y i o n o j n o k n o a i a j k

--+=++ 同时解下面这三个方程:

0.7070

z z

y x

x z y

x y o n o a n o a

n o -=-==

以此来代替三个点乘方程。联立三个单位向量长度的约束方程,便得到六个方程,求解这六

个方程,可得到相同的未知参数的解。

2.4 齐次变换矩阵

由于各种原因,变换矩阵应写成方型形式,3?3或4?4均可。首先,如后面看到的,计

算方形矩阵的逆要比计算长方形矩阵的逆容易得多。其次,为使两矩阵相乘,它们的维数必须匹配,即第一矩阵的列数必须与第二矩阵的行数相同。如果两矩阵是方阵则无上述要求。由于要以不同顺序将许多矩阵乘在一起得到机器人运动方程,因此,应采用方阵进行计算。 为保证所表示的矩阵为方阵,如果在同一矩阵中既表示姿态又表示位置,那么可在矩阵中加入比例因子使之成为4?4矩阵。如果只表示姿态,则可去掉比例因子得到3?3矩阵,或加入第四列全为0的位置数据以保持矩阵为方阵。这种形式的矩阵称为齐次矩阵,它们写为:

00

1x

x x x y

y y y z z z z n o a p n

o a p F n o a p ??????=??????

(2.12) 2.5 变换的表示

变换定义为空间的一个运动。当空间的一个坐标系(一个向量、一个物体或一个运动坐

标系)相对于固定参考坐标系运动时,这一运动可以用类似于表示坐标系的方式来表示。这

是因为变换本身就是坐标系状态的变化(表示坐标系位姿的变化),因此变换可以用坐标系来表示。变换可为如下几种形式中的一种: ?纯平移

?绕一个轴的纯旋转 ?平移与旋转的结合

为了解它们的表示方法,我们将逐一进行探讨。 2.5.1 纯平移变换的表示

如果一坐标系(它也可能表示一个物体)在空间以不变的姿态运动,那么该坐标就是纯平移。在这种情况下,它的方向单位向量保持同一方向不变。所有的改变只是坐标系原点相对于参考坐标系的变化,如图2.9所示。相对于固定参考坐标系的新的坐标系的位置可以用原来坐标系的原点位置向量加上表示位移的向量求得。若用矩阵形式,新坐标系的表示可以通过坐标系左乘变换矩阵得到。由于在纯平移中方向向量不改变,变换矩阵T 可以简单地表示为:

1000

100010

01x y z d d T d ?????

?=??????

(2.13)

图2.9 空间纯平移变换的表示

其中,,x y z d d d 是纯平移向量d 相对于参考坐标系,,x y z 轴的三个分量。可以看到,矩阵的前三列表示没有旋转运动(等同于单位阵),而最后一列表示平移运动。新的坐标系位置为:

1

00

100010

010*******x x x x x x x x x x

y y y y y y y y y y n e w z z z z z z z z z z d n o a p n o a p d d n o a p n o a p d F d n o a p n o a p d

+????????????+?

?????=?=??????+????????????

(2.14)

这个方程也可用符号写为:

(,,)n e w x y z o l d

F T r a n s d d d

F =? (2.15) 首先,如前面所看到的,新坐标系的位置可通过在坐标系矩阵前面左乘变换矩阵得到,后面

将看到,无论以何种形式,这种方法对于所有的变换都成立。其次可以注意到,方向向量经过纯平移后保持不变。但是,新的坐标系的位置是d 和P 向量相加的结果。最后应该注意到,齐次变换矩阵与矩阵乘法的关系使得到的新矩阵的维数和变换前相同。

例2.4 坐标系F 沿参考坐标系的x 轴移动9个单位,沿z 轴移动5个单位。求新的坐标系位置。

0.5270.5740.62850.3690.8190.43930.76600.64380

001F -????

?

?=??-??

?? 解:由式(2.14)或式(2.15)得:

(,,)new x y z old F Trans d d d F =?=(9,0,5)old

Trans F ? 和 10

090.5270.5270.628501000.3690.8190.439300150.76600.6438000100010.5270.5740.628140.3690.8190.43930.76600.643130

001F -????

?????

???

=?????

-????????-?????

?=??

-??

??

2.5.2 绕轴纯旋转变换的表示

为简化绕轴旋转的推导,首先假设该坐标系位于参考坐标系的原点并且与之平行,之后将结果推广到其他的旋转以及旋转的组合。

假设坐标系(,,n o a )位于参考坐标系(,,x y z )的原点,坐标系(,,n o a )绕参考坐标系的x 轴旋转一个角度θ,再假设旋转坐标系(,,n o a )上有一点P 相对于参考坐标系的坐标为

,,x y z P P P ,相对于运动坐标系的坐标为,,n o a P P P 。当坐标系绕x 轴旋转时,坐标系上的点P 也随坐标系一起旋转。在旋转之前,P 点在两个坐标系中的坐标是相同的(这时两个坐标系位置相同,并且相互平行)。旋转后,该点坐标,,n o a P P P 在旋转坐标系(x ,y ,z )中保持不变,但在参考坐标系中,,x y z P P P 却改变了(如图2.10所示)。现在要求找到运动坐标系旋转后P 相对于固定参考坐标系的新坐标。

让我们从x 轴来观察在二维平面上的同一点的坐标,图2.10显示了点P 在坐标系旋转前后的坐标。点P 相对于参考坐标系的坐标是,,x y z P P P ,而相对于旋转坐标系(点P 所固连的坐标系)的坐标仍为,,n o a P P P 。

由图2.11可以看出,x P 不随坐标系统x 轴的转动而改变,而y P 和z P 却改变了,可以证明:

120340cos sin sin cos x n

y a z a P P P l l P P P l l P P θθθθ

==-=-=+=+ (2.16)

写成矩阵形式为:

1

00

0cos sin 0sin cos x n y o z a P P P P P P θθθ

θ??????

??????=-??????????????????

(2.17)

图2.10 在坐标系旋转前后的点的坐标

图2.11 相对于参考坐标系的点的坐标和从x 轴上观察旋转坐标系

可见,为了得到在参考坐标系中的坐标,旋转坐标系中的点P (或向量P )的坐标必须左乘旋转矩阵。这个旋转矩阵只适用于绕参考坐标系的x 轴做纯旋转变换的情况,它可表示为: (,)

x y z n o a

P R o t x P

θ=? (2.18) 注意在式(2.17)中,旋转矩阵的第一列表示相对于x 轴的位置,其值为1,0,0,它表示沿x 轴的坐标没有改变。

为简化书写,习惯用符号C θ表示cos θ以及用S θ表示sin θ。因此,旋转矩阵也可写为:

10

0(,)00Rot x C S S C θθ

θθθ??

??=-??????

(2.19) 可用同样的方法来分析坐标系绕参考坐标系y 轴和z 轴旋转的情况,可以证明其结果为:

10

0(,)00Rot x C S S C θθθθ

θ????=-?????? 和 10

0(,)00Rot x C S S C θθθθ

θ??

??=-??????

(2.20) 式(2.18)也可写为习惯的形式,以便于理解不同坐标系间的关系,为此,可将该变换

表示为u

R T (读作坐标系R 相对于坐标系U (Universe )的变换),将noa P 表示为R

P (P 相对于

坐标系R ),将

xyz

P 表示为u

P (P 相对于坐标系U ),式(2.18)可简化为:

u u R

R P T P

=?

(2.21) 由上式可见,去掉R 便得到了P 相对于坐标系U 的坐标。

例2.5 旋转坐标系中有一点P ()234T

,此坐标系绕参考坐标系x 轴旋转90度。求旋转后该点相对于参考坐标系的坐标,并且用图解法检验结果。

解:

由于点P 固连在旋转坐标系中,因此点P 相对于旋转坐标系的坐标在旋转前后保持不变。该点相对于参考坐标系的坐标为:

1

00

100220cos sin 001340sin cos 01043x n y o z a P P P P P P θθθθ????????????

????????????=-=-=-????????????????????????????????????

如图2.12所示,根据前面的变换,得到旋转后P 点相对于参考坐标系的坐标为2,-4

,3.

图2.12 相对于参考坐标系的坐标系旋转

2.5.3 复合变换的表示

复合变换是由固定参考坐标系或当前运动坐标系的一系列沿轴平移和绕轴旋转变换所组成的。任何变换都可以分解为按一定顺序的一组平移和旋转变换。例如,为了完成所要求的变换,可以先绕x 轴旋转,再沿,,x y z 轴平移,最后绕y 轴旋转。在后面将会看到,这个变换顺序很重要,如果颠倒两个依次变换的顺序,结果将会完全不同。

为了探讨如何处理复合变换,假定坐标系(,,n o a )相对于参考坐标系(,,x y z )依次进行了下面三个变换:

(1)绕x 轴旋转α度;

(2)接着平移[]123l l l (分别相对于,,x y z 轴); (3)最后绕y 轴旋转β度。

比如点noa P 固定在旋转坐标系,开始时旋转坐标系的原点与参考坐标系的原点重合。随着坐标系(,,n o a )相对于参考坐标系旋转或者平移时,坐标系中的P 点相对于参考坐标系也跟着改变。如前面所看到的,第一次变换后,P 点相对于参考坐标系的坐标可用下列方程进行计算。

1,(,)xyz noa

P Rot x P α=? (2.22)

其中,1,xyz P 是第一次变换后该点相对于参考坐标系的坐标。第二次变换后,该点相对于参考坐标系的坐标是:

2,1,(1,2,3)(1,2,3)(,)

x y z x y z

n o a

P T r a n s l l l P T r a n s l l l R o t x P

α

=?=?? 同样,第三次变换后,该点相对于参考坐标系的坐标为:

3,

2,

(,)(,)(1,2,3)(,)x y z x y z

x y z

n o a

P P R o t y P R o t y T r a n s l l l R o t x P

ββα==?

=??? 可见,每次变换后该点相对于参考坐标系的坐标都是通过用每个变换矩阵左乘该点的坐

标得到的。当然,矩阵的顺序不能改变。同时还应注意,对于相对于参考坐标系的每次变换,矩阵都是左乘的。因此,矩阵书写的顺序和进行变换的顺序正好相反。

例2.6 固连在坐标系(,,n o a )上的点P ()732T

经历如下变换,求出变换后该点相对于参考坐标系的坐标。

(1)绕z 轴旋转90度;

(2)接着绕y 轴旋转90度; (3)接着再平移[4,-3,7]。 解:

表示该变换的矩阵方程为:

(4,3,7)(,90)100

40010010076010301001000340017100000102100

010

01

0111

x y z n o a

P T r a n s R o t y P =-=-????????????????????-?????????????=??

????????-????????????????

????

从图2.13可以看到,(,,n o a )坐标系首先绕z 轴旋转90度,接着绕y 轴旋转,最后相对于参考坐标系的,,x y z 轴平移。坐标系中的P 点相对于,,n o a 轴的位置如图所示,最后该点在

,,x y z 轴上的坐标分别为4+2=6,-3+7=4,7+3=10

。请确认也能从图中理解上述结果。

图2.13 三次顺序变换的结果

例 2.7 根据上例,假定(,,n o a )坐标系上的点()732T

P 经历相同变换,但变换按如下不同顺序进行,求出变换后该点相对于参考坐标系的坐标。 (1)绕z 轴旋转90度;

(2)接着平移[4,-3,7]; (3)接着再绕y 轴旋转90度。 解:

表示该变换的矩阵方程为:

(,90)(4,3,7)(,90)0010100401007901000103100034100000170010210

0010001000111xyz noa P Rot y Trans Rot z P =-=

-??????????

??????????-??????????

???=??????????

--??????????

??????????

不难发现,尽管所有的变换与例2.6完全相同,但由于变换的顺序变了,该点最终坐标与前例完全不同。用图2.14可以清楚地说明这点,这时可以看出,尽管第一次变换后坐标系的变化与前例完全相同,但第二次变换后结果就完全不同,这是由于相对于参考坐标系轴的

平移使得旋转坐标系()

,,n o a 向外移动了。经第三次变换,该坐标系将绕参考坐标系y 轴旋转,因此向下旋转了,坐标系上点P 的位置也显示在图中。

请证明该点相对于参考坐标系的坐标为7+2=9,-3+7=4和-4+3=-1,

它与解析的结果相同。

图2.14 变换的顺序改变将改变最终结果

2.5.4 相对于旋转坐标系的变换

到目前为止,本书所讨论的所有变换都是相对于固定参考坐标系。也就是说,所有平移、旋转和距离(除了相对于运动坐标系的点的位置)都是相对参考坐标系轴来测量的。然而事实上,也有可能做相对于运动坐标系或当前坐标系的轴的变换。例如,可以相对于运动坐标系(也就是当前坐标系)的n 轴而不是参考坐标系的x 轴旋转90度。为计算当前坐标系中的点的坐标相对于参考坐标系的变化,这时需要右乘变换矩阵而不是左乘。由于运动坐标系中的点或物体的位置总是相对于运动坐标系测量的,所以总是右乘描述该点或物体的位置矩阵。

例2.8 假设与例2.7中相同的点现在进行相同的变换,但所有变换都是相对于当前的运动坐标系,具体变换出如下。求出变换完成后该点相对于参考坐标系的坐标。 (1)绕a 轴旋转90度;

(2)然后沿,,n o a 轴平移[4,-3,7]; (3)接着绕o 轴旋转90度。

解:

在本例中,因为所作变换是相对于当前坐标系的,因此右乘每个变换矩阵,可得表示该坐标的方程为:

(,90)(4,3,7)(,90)01001

0040

0107010000103010036001000171

0002000

010

010

00

111xyz noa P Rot a Trans Rot o P =-=-??????????

??????????-?

????

????????=??????????-?

???????????????????

如所期望的,结果与其他各例完全不同,不仅因为所作变换是相对于当前坐标系的,而且也因为矩阵顺序的改变。下面的图展示了这一结果,应注意它是怎样相对于当前坐标来完成这个变换的。

同时应注意,在当前坐标系中p 点的坐标7,3,2是变换后得到相对于参考坐标系的坐标0,6,0

的。

图2.15 相对于当前坐标系的变换

例2.9 坐标系B 绕x 轴旋转90°,然后沿当前坐标系a 轴做了3英寸的平移,然后在绕z 轴旋转90,最后沿当前坐标系o 轴做5英寸的平移。

(a)写出描述该运动的方程。

(b)求坐标系中的点p (1,5,4)相对于参考坐标系的最终位置。 解:

在本例中,相对于参考坐标系以及当前坐标系的运动是交替进行的。 (a)相应地左乘或右乘每个运动矩阵,得到:

u

B T =Rot (z,90)Rot(x,90)Trans(0,0,3)Trans(0,5,0)

(b)带入具体的矩阵并将它们相乘,得到:

01001

010001

00010

0000100100010500100

1000

0130

01000

010

00100010

001U

U B B P T P -????????????????-?

????

??

?=?=????????

?

????

??

?

????????

00171001010100

00

1??????=???

???

2.6 变换矩阵的逆

正如前面所提到的,在机器人分通过析中有很多地方要用到矩阵的逆,在下面的例子中

可以看到一种涉及变换矩阵的情况。在图2.16中,假设机器人要在零件p 上钻孔而须向零件

p 处移动。机器人基座相对于参考坐标系u 的位置用坐标系R 来描述,机器人手用坐标系H 来描述,末端执行器(即用来钻孔的钻头的末端)用坐标系E 来描述,零件的位置用坐标系P 来描述。钻孔的点的位置于参考坐标系U 可以通过两个独立的路径发生联系:一个是通过该零件的路径,另一个是通过机器人的路径。因此,可以写出下面的方程:

U

U R H

U

P

E

R H E P E T T T T T T == (2.24)

这就是说,该零件中点E 的位置可以通过从U 变换到P ,并从P 变换到E 来完成,或者从U

变换到R ,从R 变换到H ,再从H 变换到E

图2.16 全局坐标系、机器人坐标系、手坐标系、零件坐标系及末端执行器坐标系

事实上,由于在任何情况下机器人的基座位置在安装时就是已知的,因此变换U R T (坐标系R 相对于坐标系U 的变换)时已知的。比如,一个机器人安装在一个工作台上,由于它被紧固在工作台上,所以它的基座的位置时已知的。即使机器人时可移的或放在传送带上,因为控制

器始终掌控着机器人基座的运动,因此它在任意时刻的位置也是已知的。由于用于末端执行器的任何器械都是已知的,而且其尺寸和结构也是已知的,所以H E T (机器人末端执行器相对于机器人手的变换)也是已知的。此外,U P T (零件相对于全局坐标系的变换)也是已知的,还必须要知道将在其上面钻孔的零件的位置,该位置可以通过将该零件放在钻模上,让后用照相机,视觉系统,传送带,传感器或其他类似仪器来确定。最后需要知道零件上钻孔的位置,所以P E T 也是已知的。此时,唯一未知的变换就是R H T (机器人手相对于机器人基座的变换)。因此,必须找出机器人的关节变量(机器人旋转关节的角度以及滑动关节的连杆长度),以便将末端执行器定位在要钻孔的位置上。可见,必须要计算出这个变换,它指出机器人需要完成的工作。后面将用所求出的变换来求解机器人关节的角度和连杆的长度。

不能像在代数方程中那样来计算这个矩阵,即不能简单的用方程的右边除以方程的左边,而应该用合适的矩阵的逆并通过左乘或右乘来将它们从左边去调。因此有:

1111()()()()()()U U R H H U U P H R R H E E R P E E T T T T T T T T T ----= (2.25)

由于1()()1U U R R T T -=和1()()1H H E E T T -=,式(2.25)的左边可简化为R H T ,于是得:

11R

U U P H H R P E E T T T T T --= (2.26)

该方程的正确性可以通过认为E

H T 与1

()H E T -相同来加以检验。因此,该方程可重写为:

11R

U U P H R U P E R H R P E E U P E H H T T T T T T T T T T --=== (2.27)

显然为了对机器人运动学进行分析,需要能够计算变换矩阵的逆。

我们来看看关于x 轴的简单旋转矩阵的求逆计算情况。关于x 轴的旋转矩阵是:

1

00(,)00R o t x C S S C θθθθθ????=-??

????

(2.28) 必须采用一下的步骤来计算矩阵的逆:

?计算矩阵的行列式; ?将矩阵转置;

?将转置矩阵的每个元素用它的子行列式(伴随矩阵)代替; ?用转换后的矩阵除以行列式。 将上面的步骤用到该旋转,得到:

221()01C S θθ?=++=

1

00(,)00T R o t x C S S C θθθθθ????=??

??-??

现在计算每一个子行列式(伴随矩阵)。例如,元素2,2的子行列式是0C C θθ-=,元素1,1的子行列式221C S θθ+=。可以注意到,这里的每一个元素的子行列式与其本身相同,因此有:

m i n (,)(,)T T or Rot x Rot x

θθ= 由于原旋转矩阵的行列式为1,因此用min (,)T or Rot x θ矩阵除以行列式仍得出相同的结果。因此,关于x 轴的旋转矩阵的逆的行列式与它的转置矩阵相同,即:

1(,)(,)T Rot x Rot x θθ-= (2.29)

当然,如果采用附录A 中提到的第二种方法也能得到同样的结果。具有这种特征的矩阵称为酉矩阵,也就是说所有的旋转矩阵都是酉矩阵。因此,计算旋转矩阵的逆就是将该矩阵转置。可以证明,关于y 轴和z 轴的旋转矩阵同样也是酉矩阵。

应注意,只有旋转矩阵才是酉矩阵。如果一个矩阵不是一个简单的旋转矩阵,那么它也许就不是酉矩阵。

以上结论只对简单的不表示位置的3×3旋转矩阵成立。对一个齐次的4×4变换矩阵而言,它的求逆可以将矩阵分为两部分。矩阵的旋转部分仍是酉矩阵,只需简单的转置;矩阵的位置部分是向量P 分别与,,n o a 向量点积的负值,其结果为:

0001x x

x x y

y y y z z z z n o a p n o a p F n o a p ??????=?????? (2.30) 0

1x y z x

y z x y z n n n P n o o o P o F a a a P a ??

-???-???

=??-???????

如上所示,矩阵的旋转部分是简单的转置,位置的部分由点乘的负值代替,而最后一行

(比例因子)则不受影响。这样做对于计算变换矩阵的逆是很有帮助的,而直接计算4×4矩阵的逆是一个很冗长的过程。 例2.10 计算表示1(,40)Rot x ?-的矩阵

解:绕x 轴旋转40°的矩阵为:

1

00000.7660.643

0(,40)00.6430.76600

001Rot x ???

??-?

?=???

???

其矩阵的逆是:

11

00000.7660.6430(,40)00.6430.76600001Rot x ?-????

?

?=??-????

需注意的是,由于矩阵的位置向量为0,它与,,n o a 向量的点积也为零。

例2.11 计算如下变换矩阵的逆。

0.500.86630.86605201050

001T ????-?

?=??

??

??

解:

根据先前的计算,变换矩阵的逆是:

10.50.8660(30.520.86650)001(302051)0.8660.50(30.86620.550)0001T --?+?+???

??-?+?+??

?=??--?+?-+?????

0.50.8660 3.200150.8660.50 1.5980001-????-?

?=??--???

? 可以证明1

TT -是单位阵。

例2.12 一个具有六个自由度的机器人的第五个连杆上装有照相机,照相机观察物体并测定它

相对于照相机坐标系的位置,然后根据以下数据来确定末端执行器要到达物体所必须完成的运动。

5

0013010010050001cam

T -????-?

?=??

-?

?

?? 501

001000001400

01H T -?????

?=?????? 0012100201040

00

1cam

obj

T ??????=??

???? 1

00010000130

1

H E T ??????=?????? 解:

参照式(2.24),可以写出一个与它类似的方程,它将不同的变换和坐标系联系在一起。

5555R

H E R cam H E obj cam obj

T T T T T T T ???=??

由于方程两边都有5R T ,所以可以将它消去。除了E obj T 之外所有其他矩阵都是已知的,所以:

151555E

H cam E H cam obj E H cam obj H cam obj

T T T T T T T T T --=???=???

110000

10000130

001H

E T -?????

?=??

-??

?? 511

100100000140

01H T -????-??=??

-????

将矩阵及矩阵的逆代入前面的方程,得:

10000

100001

30012010010000100100200130

014100

5010400

010

0100010

00

1E

obj

T -????????????????--???

??

???=????????---?????

???????????

1002010100140

001E

obj

T --??????=??

--??

??

2.7 机器人的正逆运动学

假设有一个构型已知的机器人,即它的所有连杆长度和关节角度都是已知的,那么计算机器人手的位姿就称为正运动学分析。换言之,如果已知所有机器人关节变量,用正运动学方程就能计算任一瞬间机器人的位姿。然而,如果想要将机器人的手放在一个期望的位姿,就必须知道机器人的每一个连杆的长度和关节的角度,才能将手定位在所期望的位姿,这就叫做逆运动学分析,也就是说,这里不是把已知的机器人变量代入正向运动学方程中,而是要设法找到这些方程的逆,从而求得所需的关节变量,使机器人放置在期望的位姿。事实上,逆运动学方程更为重要,机器人的控制器将用这些方程来计算关节值,并以此来运行机器人到达期望的位姿。下面首先推导机器人的正运动学方程,然后利用这些方程来计算逆运动学方程。

对正运动学,必须推导出一组与机器人特定构型(将构件组合在一起构成机器人的方法)有关的方程,以使得将有关的关节和连杆变量代入这些方程就能计算出机器人的位姿,然后可用这些方程推出逆运动学方程。

根据第一章中的相关内容,要确定一个刚体在空间的位姿,须在物体上固连一个坐标系,然后描述该坐标系的原点位置和它三个轴的姿态,总共需要六个自由度或六条信息来完整地定义该物体的位姿。同理,如果要确定或找到机器人手在空间的位姿,也必须在机器人手上固连一个坐标系并确定机器人手坐标系的位姿,这正是机器人正运动学方程所要完成的任务。换言之,根据机器人连杆和关节的构型配置,可用一组特定的方程来建立机器人手的坐标系和参考坐标系之间的联系。图2.17所示为机器人手的坐标系、参考坐标系以及它们的相对位姿,两个坐标系之间的关系与机器人的构型有关。当然,机器人可能有许多不同的构型,后面将会看到将如何根据机器人的构型来推导出与这两个坐标系相关的方程。

为使过程简化,可分别分析位置和姿态问题,首先推导出位置方程,然后再推导出姿态方程,再将两者结合在一起而形成一组完整的方程。最后,将看到关于Denavit-Hartenberg 表示法的应用,该方法可用于对任何机器人构型建模。

puma250机器人运动学分析

焊接机器人运动分析 摘要:针对puma250焊接机器人,分析了它的正运动学、逆运动学的问题。采用D-H坐标系对机器人puma250 建立6个关节的坐标系并获取D-H 参数,并对其运动建立数学模型用MATLAB编程,同时仿真正运动学、逆运动学求解和轨迹规划利用pro-e对puma250建模三维模型。 关键词:puma250焊接机器人;正逆解;pro-e;Matlab;仿真 一、建立机器手三维图 Puma250机器人,具有6各自由度,即6个关节,其构成示意图如图1。各连杆包括腰部、两个臀部、腕部和手抓。设腰部为1连杆,两个臀部分别为2、3连杆,腰部为4连杆,手抓为5、6连杆,基座不包含在连杆范围之内,但看作0连杆,其中关节2、3、4使机械手工作空间可达空间成为灵活空间。1关节连接1连杆与基座0,2关节连接2连杆与1连杆,3关节连接3连杆与2连按,4关节连接4连杆与3连杆,5关节连接5连杆与4连杆。各连杆坐标系如图 2 所示。

图1 puma250 机器人二、建立连杆直角坐标系。

三、根据坐标系确定D-H表。 四、利用MATLAB 编程求机械手仿真图。>>L1=Link([pi/2 0 0 0 0],'standard'); L2=Link([0 0 0 -pi/2 0],'standard'); L3=Link([0 -4 8 0 0],'standard'); L4=Link([-pi/2 0 8 0 0],'standard'); L5=Link([-pi/2 0 0 -pi/2 0],'standard'); L6=Link([0 2 0 -pi/2 0],'standard'); bot=SerialLink([L1 L2 L3 L4 L5 L6],'name','ROBOT'); ([0 0 0 0 0 0])

机器人运动学(培训教材)

第2章机器人位置运动学 2.1 引言 本章将研究机器人正逆运动学。当已知所有的关节变量时,可用正运动学来确定机器人末端手的位姿。如果要使机器人末端手放在特定的点上并且具有特定的姿态,可用逆运动学来计算出每一关节变量的值。首先利用矩阵建立物体、位置、姿态以及运动的表示方法,然后研究直角坐标型、圆柱坐标型以及球坐标型等不同构型机器人的正逆运动学,最后利用Denavit-Hartenberg(D-H)表示法来推导机器人所有可能构型的正逆运动学方程。 实际上,机器手型的机器人没有末端执行器,多数情况下,机器人上附有一个抓持器。根据实际应用,用户可为机器人附加不同的末端执行器。显然,末端执行器的大小和长度决定了机器人的末端位置,即如果末端执行器的长短不同,那么机器人的末端位置也不同。在这一章中,假设机器人的末端是一个平板面,如有必要可在其上附加末端执行器,以后便称该平板面为机器人的“手”或“端面”。如有必要,还可以将末端执行器的长度加到机器人的末端来确定末端执行器的位姿。 2.2 机器人机构 机器手型的机器人具有多个自由度(DOF),并有三维开环链式机构。 在具有单自由度的系统中,当变量设定为特定值时,机器人机构就完全确定了,所有其他变量也就随之而定。如图2.1所示的四杆机构,当曲柄转角设定为120°时,则连杆与摇杆的角度也就确定了。然而在一个多自由度机构中,必须独立设定所有的输入变量才能知道其余的参数。机器人就是这样的多自由度机构,必须知道每一关节变量才能知道机器人的手处在什么位置。

图2.1 具有单自由度闭环的四杆机构 如果机器人要在空间运动,那么机器人就需要具有三维的结构。虽然也可能有二维多自由度的机器人,但它们并不常见。 机器人是开环机构,它与闭环机构不同(例如四杆机构),即使设定所有的关节变量,也不能确保机器人的手准确地处于给定的位置。这是因为如果关节或连杆有丝毫的偏差,该关节之后的所有关节的位置都会改变且没有反馈。例如,在图2.2所示的四杆机构中,如果连杆AB 偏移,它将影响2O B 杆。而在开环系统中(例如机器人),由于没有反馈,之后的所有构件都会发生偏移。于是,在开环系统中,必须不断测量所有关节和连杆的参数,或者监控系统的末端,以便知道机器的运动位置。通过比较如下的两个连杆机构的向量方程,可以表示出这种差别,该向量方程表示了不同连杆之间的关系。 1122O A AB OO O B +=+ (2.1) 11O A AB BC OC ++= (2.2) 可见,如果连杆AB 偏移,连杆2O B 也会相应地移动,式(2.1)的两边随连杆的变化而 改变。而另一方面,如果机器人的连杆AB 偏移,所有的后续连杆也会移动,除非1O C 有其他方法测量,否则这种变化是未知的。 为了弥补开环机器人的这一缺陷,机器人手的位置可由类似摄像机的装置来进行不断测 量,于是机器人需借助外部手段(比如辅助手臂或激光束)来构成闭环系统。或者按照常规做法,也可通过增加机器人连杆和关节强度来减少偏移,采用这种方法将导致机器人重量重、

焊接机器人逆运动学位姿分析

1.1连杆的坐标系 应用D-H 法来建立机器人杆件的坐标系。在这种坐标系中,可以把机械手的任一连杆i (i=1,2,3···,n )看作是一个刚体,与它相邻的两个关节i 、i-1的轴线i 和i-1 之间的关系也由它确定,如图1,可以用以下四个参数描 式中,cθi =cosθi ,sθi =sinθi ,i=1,2,3,···,n 图1连杆坐标系{i}到{i-1}的变换 i αi-1/(rad )a i-1/(cm )d i /(cm 12340 90°090°042.5410014.520011.895.3表1机器人连杆参数表

定义了连杆坐标系和相应得连杆参数,就能建立运动学方程,焊接机器人末端关节的坐标系{n}相对于基础坐标系{0}中的齐次变换公式为: 对于6自由度的焊接机器人公式可以写为 (2 变换矩阵0 n T是关于n个关节变量的函数,这些变量 可以通过放置在关节上的传感器测得,则机器人末端连杆再基坐标系中的位置和姿态就能描述出来。 E n表示焊接机器人末端关节的姿态, 器人在世界坐标系中的位置。[3] 2机器人的逆运动学分析 逆运动学求解是已知机器人末端的位置和姿态即 求解机器人对应于该位置和姿态的关节角 只要0 n T表示的末端连杆坐标系的位置和姿态位于机 械手的可达空间内,则运动学方程至少有一个解, 达空间内,机械手具有任意姿态,导致运动学方程可能出现重解。 机器人的运动学方程是一组非线性方程式, 求解过程中,我们逐次在公式(4)的两端同时左乘一 即为 在上式两边的矩阵中寻找简单的表达式或常数, 对应相等,计算过程如下: ( ( ( ( ( (3求取各关节的解集 依靠D-H法求解关节角的过程是和焊接机器人本身的结构相关的,换句话说,也就是特定配置的机器人需要特定的解决方案。通过公式(6)-(16)可以看出每个关节角的结果是不唯一的,如果采用已有的求解方法,显而易见该过程是缓慢的,复杂的。本文提出了一种计算最终执行器位置的所有精确值的算法。该算法是在MATLAB 程实现的。通过该算法得到各节点的解是更快速、有效的。 用变换矩阵 6T定义一条具有两个端点A和B 轨迹,如公式(17)和(19)。从而θ能够被求出,如公式20)

ABB工业机器人运动学研究报告

ABB IRB 6600工业机器人运动学 研究报告 目录 1机器人结构简介 (1) 2机器人的运动学 (2) 2.1、机器人正运动学 (2) 2.2、机器人逆运动学 (10) 2.2.1求各关节到末端的坐标变换矩阵 (10) 2.2.2求Jacobian矩阵各列 (14)

1机器人结构简介 ABB工业机器人可以用于实现喷雾、涂胶、物料搬运、点焊等多种功能,是典型的机械臂,在网络上可以查找到较多的相关资料。本次作业就选取ABB IRB 6600机器人作为研究对象,首先对其结构进行简单简介。 图1

图2 ABB IRB 6600是六自由度机器人,具有六个旋转关节,底座固定,通过各关节的旋转可以完成三维空间内的运动。图1是ABB IRB 6600机器人的照片及工作范围图,图2是其结构简图和各轴的转动的参数。 2机器人的运动学 在这部分中运用所学知识对ABB IRB 6600 机器人进行D-H建模并求出对应的转换矩阵,并运用Jacobian 法进行逆运动学分析,求出Jacobian变换矩阵。 2.1、机器人正运动学 为了计算方便把机器人各关节前后两连杆共线作为初始状态,画出结构简图如图3

图3 图3中的关节7实际上是末端执行机构。运用学过的D-H建模方法建立模型,建模过程中为了方便画出各关节坐标系,将部分连杆进行了拉长,且由于部分关节坐标的Z轴垂直于纸面,所以用X轴Y轴画出坐标系,用右手定则既得到对应的Z轴。最终建立模型如图4:

图4 根据图4的可以得到对应的D-H参数表: 由此算出各关节变换矩阵:

? ? ??? ? ? ?????+-=1000 10000)cos()sin(0 0)sin()cos( 21111110 h h T θθθθ ?? ? ?? ? ????????----=100000)sin()cos(01000)cos()sin(22' 22221θθθθh T ?? ???? ? ?????-=1000010000)sin()cos(0)cos()sin(3333332θθθθh T ? ? ???? ? ???? ?+-=100000)cos()sin(1000 )sin()cos(44544443 θθθθh h T ?? ? ?? ? ? ???????-=100000)cos()sin(01000)sin()cos(55'55554θθθθh T ?? ??? ? ? ???? ?-=100000)cos()sin(10000 )sin()cos(6666665 θθθθh T ??? ? ?? ? ???????=100 000010000 07'776 h h T 将这些关节坐标变换矩阵连乘就得到了由基坐标系到末端的坐标变换矩阵: T T T T T T T T 7665544332211070 = 但是由于矩阵规模较大,不便用矩阵形式写出,所以把malab 计算得出的矩阵用分项的形式写出:

SCARA机器人的运动学分析

电子科技大学 实验报告 学生姓名: 一、实验室名称:机电一体化实验室 二、实验项目名称:实验三SCARA 学号: 机器人的运动学分析 三、实验原理: 机器人正运动学所研究的内容是:给定机器人各关节的角度,计算机器人末端执行器相对于参考坐标系的位置和姿态问题。 各连杆变换矩阵相乘,可得到机器人末端执行器的位姿方程(正运动学方程) 为: n x o x a x p x 0T40T1 11T2 22T3 d3 n y o y a y p y ( 1-5)3T4 4= o z a z p z n z 0001 式 1-5 表示了 SCARA 手臂变换矩阵0 T4,它描述了末端连杆坐标系{4} 相对基坐标系 {0} 的位姿,是机械手运动分析和综合的基础。 式中: n x c1c2c4s1 s2 c4 c1 s2s4s1 c2 s4,n y s1c2 c4c1 s2 c4s1 s2 s4c1c2 s4 n z0 , o x c1c2 s4s1 s2 s4 c1 s2 c4s1c2c4 o y s1c2 s4c1 s2 s4s1 s2 c4c1c2c4 o z0 , a x0 , a y0 , a z1 p x c1 c2 l2s1s2l 2c1l 1, p y s1c2 l 2 c1 s2 l 2 s1l1, p z d3 机器人逆运动学研究的内容是:已知机器人末端的位置和姿态,求机器人对应于这个位置和姿态的全部关节角,以驱动关节上的电机,从而使手部的位姿符合要求。与机器人正运动学分析不同,逆问题的解是复杂的,而且具有多解性。

1)求关节 1: 1 A arctg 1 A 2 l 12 l 22 p x 2 p y 2 arctg p x 式中:A p x 2 ; p y 2l 1 p y 2 2)求关节 2: 2 r cos( 1 ) arctg ) l 1 r sin( 1 式中 : r p x 2 p y 2 ;arctg p x p y 3). 求 关节变 量 d 3 令左右矩阵中的第三行第四个元素(3.4)相等,可得: d 3 p z 4). 求 关节变 量 θ 4 令左右矩阵中的第二行第一个元素(1.1,2.1 )相等,即: sin 1 n x cos 1n y sin 2 cos 4 cos 2 sin 4 由上式可求得: 4 arctg ( sin 1 n x cos 1 n y )2 cos 1 n x sin 1 n y 四、实验目的: 1. 理解 SCARA 机器人运动学的 D-H 坐标系的建立方法; 2. 掌握 SCARA 机器人的运动学方程的建立; 3. 会运用方程求解运动学的正解和反解; ( 1-8) ( 1-9) ( 1-10 )

基于MATLAB的仿人焊接机械手运动学分析和仿真_王求

作者简介:王求(1978-),男,在读硕士研究生;研究方向为焊接机器人运动学,材料焊接及其数值模拟。 合肥工业大学材料科学与工程学院 王求 胡小建 李雷阵 摘 要:关键词:针对在狭小空间或密闭容器内以及危险作业环境中焊接的特殊要求,以UG软件为基础设计了一种仿人焊接 机械手。采用D-H方法建立了焊接机械手的运动学方程,并讨论了该机械手的运动学问题。然后运用MATLAB软件对机械手的运动学进行了仿真,通过仿真观察到机械手各个关节的运动,并得到所需的数据,说明了所设计参数的合理性和运动算法的正确性,为焊接机械手的动力学、控制及轨迹规划的研究提供了可靠的依据。焊接机械手;运动学;仿真;Matlab 基于MATLAB的仿人焊接机械手运动学分析和仿真 机器人技术作为信息技术和先进制造技术的典型代表和主要技术手段,已成为世界各发达国家竞相发展的高技术,其发展水平已经成为衡量一个国家技术发展水平的重要标志之一。焊接是制造业中最重要的工艺技术之一,它在机械制造、核工业、航空航天、能源交通、石油化工及建筑和电子等行业中的应用越来越广泛。从21世纪先进制造技术的发展要求来看,焊接自动化生产已是必然趋势,而焊接机器人是焊接自动化的革命性进步 。但是现阶段的焊接机器人都是具 有固定底座的机械手(臂),只能在固定位置完成一定范围内的操作,适应性较低。进行复杂苛刻条件(如小直径的容器内径中焊接)和危险环境(如有辐射等作业环境)中焊接作业时,要求可以代替人类从事焊接作业的机器人,而焊接机械手是实现焊接机器人的关键技术,因此设计出一种小型焊接机械手,可以作为仿人焊接机器人的执行末端,也可以直接作为 [1] [2] 焊接的执行末端,能代替焊工实现在狭小空间或者密闭容器内以及危险作业环境中的焊接。本文根据预定要求对焊接机械手进行机械结构设计,以UG软件进行造型,然后运用D-H坐标系理论为基础建模,讨论了机械手的运动学问题,并运用Matlab中的Ro-boticsToolbox完成了机械手的运动学仿真和轨迹规划。 机械手主要用于点焊或弧焊,其 末端载荷要求不高,能够承受焊枪质量即可,以抓持力1kg为依据进行设计。考虑机械手的工作条件,机械手本体质量小于10kg。机械手本体由基座、肩部、大臂、小臂、手腕、末端执行器所组成,共6个自由度,其中前3个自由度用于控制焊枪端部的空间位置,后3个自由度用于控制焊枪的空间姿态。机械手共6个关节,6个关节全部为转动关节,每个关节实现1个自由度,6个关节实现的运动分别是:1-肩部回转;2-大臂俯仰;3-小臂俯仰;4-小臂回转;5-手腕俯仰;6-手腕 [3] [4] 1焊接机械手结构设计 回转,如图1所示。根据机械手的设计要求,对机械手进行整体设计,使用UG软件进行机械手的三维建模,三维造型如图2所示。 机械手的运动学主要研究机械手 相对于固定参考系的运动,特别是研究机械手末端执行器位置和姿态与关节空间变量的关系。机械手运动学要 2运动学分析 [5]Analysis and simulation of kinesiology of simulated welding mechanical hand based on MATLAB

六轴运动机器人运动学求解分析

六轴联动机械臂运动学及动力学求解分析 V0.9版 随着版本的不断更新,旧版本文档中的一些笔误得到了修正,同时文档内容更丰富,仿真程序更完善。 作者朱森光 Email zsgsoft@https://www.doczj.com/doc/e54933736.html, 完成时间 2016-02-28

1引言 笔者研究六轴联动机械臂源于当前的机器人产业热,平时比较关注当前热门产业的发展方向。笔者从事的工作是软件开发,工作内容跟机器人无关,但不妨碍研究机器人运动学及动力学,因为机器人运动学及动力学用到的纯粹是数学和计算机编程知识,学过线性代数和计算机编程技术的人都能研究它。利用业余时间翻阅了机器人运动学相关资料后撰写此文,希望能够起到抛砖引玉的作用引发更多的人发表有关机器人技术的原创性技术文章。本文内容的正确性经过笔者编程仿真验证可以信赖。 2机器建模 既然要研究机器人,那么首先要建立一个机械模型,本文将以典型的六轴联动机器臂为例进行介绍,图2-1为笔者使用3D技术建立的一个简单模型。首先建立一个大地坐标系,一般教科书上都是以大地为XY平面,垂直于大地向上方向为Z轴,本文为了跟教科书上有所区别同时不失一般性,将以水平向右方向为X轴,垂直于大地向上方向为Y轴,背离机器人面向人眼的方向为Z轴,移到电脑屏幕上那就是屏幕水平向右方向为X轴,屏幕竖直向上方向为Y轴,垂直于屏幕向外为Z轴,之所以建立这样不合常规的坐标系是希望能够突破常规的思维定势训练在任意空间建立任意坐标系的能力。 图2-1 图2-1中的机械臂,底部灰色立方体示意机械臂底座,定义为关节1,它能绕图中Y轴旋转;青色长方体示意关节2,它能绕图中的Z1轴旋转;蓝色长方体示意关节3,它能绕图中的Z2轴旋转;绿色长方体示意关节4,它能绕图中的X3轴旋转;深灰色长方体示意关节5,它能绕图中的Z4轴旋转;末端浅灰色机构示意关节6即最终要控制的机械手,机器人代替人的工作就是通过这只手完成的,它能绕图中的X5轴旋转。这儿采用关节这个词可能有点不够精确,先这么意会着理解吧。 3运动学分析 3.1齐次变换矩阵 齐次变换矩阵是机器人技术里最重要的数学分析工具之一,关于齐次变换矩阵的原理很多教科书中已经描述在此不再详述,这里仅针对图2-1的机械臂写出齐次变换矩阵的生成过程。首先定义一些变量符号,关节1绕图中Y轴旋转的角度定义为θ0,当θ0=0时,O1点在OXYZ坐标系内的坐标是(x0,y0,0);关节2绕图中的Z1轴旋转的角度定义为θ1,图中的θ1当前位置值为+90度;定义O1O2两点距离为x1,关节3绕图中的Z2轴旋转的角度定义为θ2,图中的θ2当前位置值为-90度;O2O3两点距离为x2,关节4绕图中的X3轴旋转的角度定义为θ3, 图中的θ3当前位置值为0度;O3O4两点距离为x3,关节5绕图中的Z4轴旋转的角度定义为θ4, 图中的θ4当前位置值为-60度;O4O5两点距离为x4,关节6绕图中的X5轴旋转的角度定义为θ5, 图中的θ5当前位置值为0度。以上定义中角度正负值定义符合右手法则,所有角度定义值均为本关节坐标系相对前一关节坐标系的相对旋转角度值(一些资料上将O4O5两点重合在一起即O4O5两点的距离x4退化为零,本文定义x4大于零使得讨论时更加不失一般性)。符号定义好了,接下来描述齐次变换矩阵。 定义R0为关节1绕Y轴的旋转矩阵 =cosθ0 s0 = sinθ0 //c0 R0 =[c0 0 s0 0 0 1 0 0 0 c0 0 -s0 0 0 0 1] 定义T0为坐标系O1X1Y1Z1相对坐标系OXYZ的平移矩阵 T0=[1 0 0 x0 0 1 0 y0 00 1 0 0 0 0 1] 定义R1为关节2绕Z1轴的旋转矩阵 R1=[c1 –s1 0 0 s1 c1 0 0

机器人运动学

第2章 机器人位置运动学 2.1 引言 本章将研究机器人正逆运动学。当已知所有的关节变量时,可用正运动学来确定机器人末端手的位姿。如果要使机器人末端手放在特定的点上并且具有特定的姿态,可用逆运动学来计算出每一关节变量的值。首先利用矩阵建立物体、位置、姿态以及运动的表示方法,然后研究直角坐标型、圆柱坐标型以及球坐标型等不同构型机器人的正逆运动学,最后利用Denavit-Hartenberg(D-H)表示法来推导机器人所有可能构型的正逆运动学方程。 实际上,机器手型的机器人没有末端执行器,多数情况下,机器人上附有一个抓持器。根据实际应用,用户可为机器人附加不同的末端执行器。显然,末端执行器的大小和长度决定了机器人的末端位置,即如果末端执行器的长短不同,那么机器人的末端位置也不同。在这一章中,假设机器人的末端是一个平板面,如有必要可在其上附加末端执行器,以后便称该平板面为机器人的“手”或“端面”。如有必要,还可以将末端执行器的长度加到机器人的末端来确定末端执行器的位姿。 2.2 机器人机构 机器手型的机器人具有多个自由度(DOF ),并有三维开环链式机构。 在具有单自由度的系统中,当变量设定为特定值时,机器人机构就完全确定了,所有其他变量也就随之而定。如图2.1所示的四杆机构,当曲柄转角设定为120°时,则连杆与摇杆的角度也就确定了。然而在一个多自由度机构中,必须独立设定所有的输入变量才能知道其余的参数。机器人就是这样的多自由度机构,必须知道每一关节变量才能知道机器人的手处在什么位置。 图2.1 具有单自由度闭环的四杆机构 如果机器人要在空间运动,那么机器人就需要具有三维的结构。虽然也可能有二维多自 由度的机器人,但它们并不常见。 机器人是开环机构,它与闭环机构不同(例如四杆机构),即使设定所有的关节变量,也不能确保机器人的手准确地处于给定的位置。这是因为如果关节或连杆有丝毫的偏差,该关节之后的所有关节的位置都会改变且没有反馈。例如,在图2.2所示的四杆机构中,如果连杆AB 偏移,它将影响2O B 杆。而在开环系统中(例如机器人),由于没有反馈,之后的所有构件都会发生偏移。于是,在开环系统中,必须不断测量所有关节和连杆的参数,或者监控系统的末端,以便知道机器的运动位置。通过比较如下的两个连杆机构的向量方程,可以表示出这种差别,该向量方程表示了不同连杆之间的关系。 1122O A AB OO O B +=+ (2.1) 11O A AB BC OC ++= (2.2)

机器人运动学知识介绍

机器人运动学知识介绍 收藏 21:53|发布者: dynamics|查看数: 1125|评论数: 2| 来自: 东方早报 摘要: 现在你可能正拿着一本书,边看边翻页,并时不时回头,越过肩膀察看后面是否有红眼的恶意机器人。随着书页的翻动,你也许会在无意识里考虑这个问题。作为人类,在物理世界移动是如此自然,只需要一丁点的意识即可。而 ... 丹尼尔·威尔逊 现在你可能正拿着一本书,边看边翻页,并时不时回头,越过肩膀察看后面是否有红眼的恶意机器人。随着书页的翻动,你也许会在无意识里考虑这个问题。作为人类,在物理世界移动是如此自然,只需要一丁点的意识即可。而另一方面,机器人———就像最后一个选择踢球的孩子———为了避免伤到自己和别人,每一个动作都必须经过仔细考虑。机器 人专家管这个过程叫做“操作研究”。 前进和逆转 如果你醒来发现自己处在一具新的躯体中,拥有金属手臂,每只手只有三根手指,你会怎么样呢?如果不知道手臂的长度,拿东西会很困难;如果只有三根手指,那么你必须找到一个全新的抓取和握东西的方法;由于弯曲的金属手臂,你可能再也没有约会的机会。这些就是身处各地的孤独的机器人们所面临的重大问题。 运动学研究旨在解决机器人的手臂转向何方(动力学则为了解决移动的速度和劲道)。机器人运动学可分两类:前进和逆转。前进运动学的问题是机器人运用它对自身的了解(关节角度和手臂长度)来判断自己在三维空间中到底身处何方。这算是简单的部分,逆转运动学正好相反,它解决机器人如何移动才能达到合适的姿势(改变关节位置)这一问题。机器人在握你手之前,需要知道你手的大概方位,以及从这里移向那里的最优顺序。有时候,可能没有最好的解决方案(试试用你的右手碰你的右肘)。 对逆转运动学来说,大多数方案运用传感器(通常是视觉和力)来估计机器人身体的当前位置。只要有了这个,机器人就能够计划下一步行动(握手、问好或绞断你的脖子)。机器人的反应很敏捷,日本ATR实验室的类人机器人能够更新视觉,估计世界形势,并且在一秒钟里能够做60个动作。这些类人机器人已经能够跳舞,耍弄彩球,玩篮球和曲棍球。 扫描环境和选择动作的过程叫做反馈环路。新的信息被经常性地用于更新当前的决定。如果缺乏经常性更新,机器人的操作技能会变得糟糕。传感器的损伤(或非常不可信赖的传感器)会干扰这一重要的环路。比如以视觉为基础的跟踪遇到混乱的场景会大受干扰,或者浪费资源去跟踪一些无意义的目标(比如落叶等)。震动可以扰乱力传感器,即使它们位于机器人手臂的内部。虽然机器人能够反应得更快更精确,但它们总是依赖于不断更新的信息和持续改进的计划。

相关主题
文本预览
相关文档 最新文档