工业机器人运动学-1数学基础.ppt_第1页
工业机器人运动学-1数学基础.ppt_第2页
工业机器人运动学-1数学基础.ppt_第3页
工业机器人运动学-1数学基础.ppt_第4页
工业机器人运动学-1数学基础.ppt_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第三章 工业机器人运动学,引言,要实现对工业机器人在空间运动轨迹的控制,完成预定的作业任务,就必须知道机器人在空间瞬时的位置与姿态。如何计算机器人手部在空间的位姿是实现对机器人的控制首先要解决的问题。本章讨论机器人运动学的基本问题,将引入齐次坐标变换。推导出坐标变换方程;利用DH参数法,进行机器人的位姿分析;介绍机器人正向和逆运动学的基础知识。,主要内容,数学基础齐次坐标变换 机器人运动学方程的建立(正运动学) 机器人逆运动学分析,一、机器人数学基础齐次坐标变换,1.1 引言 1.2 点向量和平面的描述 1.3 变换 1.4 平移变换 1.5 旋转变换 1.6 坐标系 1.7 相对变换 1.8 物体的描述 1.9 逆变换 1.10 一般性旋转变换 1.11 等价旋转角与旋转轴 1.12 扩展与缩小 1.13 透视变换 1.14 变换方程 1.15 小结,1.1 引言 (Introduction),机器人操作涉及到各物体之间的关系和各物体与机械手之间的关系。这一章将给出描述这些关系必须的表达方法。类似这种表示方法在计算机图形学中已经解决。在计算机图形学和计算机视觉中,物体之间的关系是用齐次坐标变换来描述的。在本课程我们将采用齐次坐标变换来描述机械手各关节坐标之间、各物体之间以及各物体与机械手之间的关系。 本章首先介绍向量和平面的表示方法,然后引出向量和平面的坐标变换,这些变换基本上是由平移和旋转组成,因此可以用坐标系来描述各种物体和机械手的空间位置和姿态。稍后还要介绍逆变换,逆变换是运动学求解的基础。,1.2 点向量和平面的描述(Notation of point vectors and planes),1.2.1 点向量(Point vectors) 点向量描述空间的一个点在某个坐标系的空间位置。同一个点在不同坐标系的描述及位置向量的值也不同。如图1.1中,点p在E坐标系上表示为 Ev,在H坐标系上表示为 Hu,且v u。一个点向量可表示为 v = ai + bj + ck 通常用一个(n + 1)维列矩阵表示,即除 x、y、z 三个方向上的分量外,再加一个比例因子 w ,即 v = x y z w T 其中 a = x/w, b = y/w, c = z/w。,改变比例因子 w,则分量 a、b、c 的数值相应改变,但描述的还是同一个点向量。如 v = 3i + 4j + 5k 可表示为 v = 3 4 5 1 T = 6 8 10 2 T = -3 -4 -5 -1T 在向量中增加一个比例因子 w 是为了方便坐标变换中的矩阵运算。,已知两个向量 a = ax i + ay j + az k b = bx i + by j + bz k (1.1) 向量的点积是标量。用“ ”来定义向量点积,即 a b = ax bx + ay by + az bz (1.2 ) 向量的叉积是一个垂直于由叉积的两个向量构成的平面的向量。用“”表示叉积,即 a b = ( ay bz az by ) i + ( az bx ax bz ) j + ( ax by ay by ) k ( 1.3) 可用行列式表示为 i j k a b = ax ay az (1.4) bx by bz,1.2.2 平面(Planes),平面可用一个行矩阵表示,即 p = a b c d (1.5) 它表示了平面p的法线方向,且距坐标原点的 距离为d / m,其中 m = (1.6) 如图1.2所示,如果将 xy 平面沿z 轴正 方向平移一个单位距离,构成平面 p,则 p = 0 0 1 -1 即 a = 0, b = 0, c = 1, d = -1, m = = 1 平面p上任一点v为 v = x y 1 1 T,它与平面p的点乘为零,即 p v = 0 平面p上方任一点v,如 v = 0 0 2 1 T,它与平面p的点乘为一个正数,即 p v = 1 平面p下方任一点v,如 v = 0 0 0 1 T,它与平面p的点乘为一个负数,即 p v = -1 注意:平面 0 0 0 0 无定义。,H空间的变换是由44矩阵来完成的,它可以表示平移、旋转、扩展和透视等各种变换。如已知点u(在平面p上),它的变换v(在平面q上)用矩阵积表示为 v = H u (1.7) 其中H为44 变换矩阵,u和v为41的点列向量,相应的平面p到q的变换是 q = p H-1 (1.8) 其中H-1为H的逆阵,p和q为14 的平面行向量。 经变换后的平面向量q与点向量v的点乘为 q v = p H-1 H u p u ( 1.9) 与变换前平面p与点u的点乘相等,证明了变换的等效性。,1.3 变换(Transformation),1.4 平移变换(Translation transformation),用向量 h a i + b j + c k 进行平移,其相应的H变换矩阵是 1 0 0 a 0 1 0 b H = Trans ( a b c ) = 0 0 1 c (1.10) 0 0 0 1 因此对向量 u = x y z w T,经H变换为向量v可表示为 x + aw x / w + a y + bw y / w + b v = z + cw = z / w + c (1.11) w 1 可见,平移实际上是对已知向量 u = x y z w T 与平移向量 h = a b c 1 T 相加。,【例1.1】对点向量 u = 2 3 2 1 T 进行平移,平移向量为 h = 4 -3 7 1 T,则平移后的向量为 v = 6 0 9 1 T,或 1 0 0 4 2 6 0 1 0 3 3 0 v = H u = 0 0 1 7 2 = 9 0 0 0 1 1 1 点向量的平移过程如图1.3所示。 对平面的平移则用 H1 进行变换,如对平面 p = 1 0 0 -2 进行 H 变换为平面q,则根据变 换原理有 1 0 0 -4 0 1 0 3 q p H1 1 0 0 -2 0 0 1 -7 0 0 0 1 1 0 0 -6 平面 p 1 0 0 -2 是 yz 平面沿 x 正方向移动2个单位形成的平面(图1.3),点u = 2 3 2 1 T 是平面 p上的一个点,它们的点乘 p u = 0。经 H 变换后的平面 q 1 0 0 -6 是 yz 平面沿 x 正方向移动6个单位形成的平面,点v = 6 0 9 1T 是平面 q上一个点,平面 q 与点 v 的点乘也应是零,即 q v 0,说明变换前后的结果不变,证明 H 变换是正确的。,1.5 旋转变换(Rotation transformation),如图1.4所示,绕 x, y, z 轴旋转一个角 的相应变换是 1 0 0 0 0 cos - sin 0 Rot ( x, ) = 0 sin cos 0 (1.12) 0 0 0 1 cos 0 sin 0 0 1 0 0 Rot ( y, ) = - sin 0 cos 0 (1.13) 0 0 0 1 cos - sin 0 0 sin cos 0 0 Rot ( z, ) = 0 0 1 0 (1.14) 0 0 0 1,注意:角旋转的正方向遵循右手螺旋法则(如图1.4所示),【例1.2】点 u = 7i + 3j + 2k,它绕z轴旋转90为v, 经式(1.14)变换得到( sin=1,cos=0) 0 -1 0 0 7 -3 1 0 0 0 3 7 v = Rot ( z, 90) = 0 0 1 0 2 2 0 0 0 1 1 1 起始点u和终点v如图1.5所示。如将v点再绕y轴 旋转90得到w。用式(1.13)变换得到 0 0 1 0 -3 2 0 1 0 0 7 7 w = Rot ( y, 90) = -1 0 0 0 2 3 0 0 0 1 1 1 结果如图1.6所示。如果将上述两次旋转结合起来, 写成一个表达式得到 w = Rot ( y, 90) v Rot ( y, 90) Rot ( z, 90) u 用两个变换矩阵 Rot ( y, 90) 、 Rot ( z, 90) 和起始 点u代入上式计算的结果与前面分两次计算的结果相同。,为此,先将点u绕z轴旋转90,然后再绕y轴旋转90,我们得到 0 0 1 0 0 -1 0 0 7 2 0 1 0 0 1 0 0 0 3 7 w Rot ( y, 90) Rot ( z, 90) u = -1 0 0 0 0 0 1 0 2 3 0 0 0 1 0 0 0 1 1 1 如果按着逆序旋转,首先绕y轴旋转90,然后再绕z轴旋转90,其结果为 0 -1 0 0 0 0 1 0 7 -3 1 0 0 0 0 1 0 0 3 2 w = Rot ( z, 90) Rot ( y, 90) u = 0 1 0 0 -1 0 0 0 2 = -7 0 0 0 1 0 0 0 1 1 1 逆序旋转的结果如图1.7所示。显然,变换的顺序不同,其结果也不同 。这从 矩阵相乘是不可交换的(ABBA)也可以得到证明。,如对经过两次旋转变换得到的点向量w再进行一次平移(平移向量为 h 4 -3 7 1T ), 则可得到如图1.8所示的点向量n。变换过程如下 1 0 0 4 2 6 0 1 0 -3 7 4 n = Trans (4, 3, 7) w = 0 0 1 7 3 = 10 0 0 0 1 1 1,1.6 坐标系 (Coordinate frames),齐次变换矩阵H由四个列向量组成,它的前三个列向量称为方向向量,由式 (1.12)到式(1.14)的旋转变换(分别绕 x、y、z 轴旋转角)确定,第四个列向 量称为平移向量,它的平移分量(沿 x、y、z 轴的平移量)由式(1.10)第四列的前 三个元素确定。如 0 0 1 4 1 0 0 -3 HTrans ( 4, -3, 7 ) Rot ( y, 90) Rot ( z, 90) = 0 1 0 7 (1.15) 0 0 0 1 坐标系的原点,即零向量 0 0 0 1 T 的 H 变换是 4 -3 7 1 T,相当于将原点按平移 向量的各个分量进行平移的结果( 如图 1.9 所 示)。如果对 x、y、z 轴的单位向量进行 H变 换,分别得到 4 -2 7 1 T 、 4 -3 8 1 T 和 5 -3 7 1 T。这四个向量在图1.9中标出,并 形成了一个新坐标系。,这个新坐标系的 x、y、z 轴的方向分别是 0,1,0,0 T、 0,0,1,0 T 和 1,0,0,0 T,它是由单位向量的H变换减去这个坐标原点的向量得到的。这些方向向量相应于变换矩阵的前三列(见式(1.15)。可见,H变换矩阵描述了一个坐标系绕原参考坐标系旋转和对参考坐标系平移的三个轴的方向和原点的位置(见图1.9)。如图1.10所示,当对一个向量 n 进行式(1.15)给出的 H 变换时,原向量 n 可以被认为是在新坐标系描述的那个向量 u ,即被变换了的向量 u 就是相对于参考坐标系描述的同一个向量 n 。,1.7 相对变换(Relative transformation),我们刚刚描述的旋转和平移都是相对于一个固定的坐标系而进行的。这样,在 已给的例子里 0 0 1 4 1 0 0 -3 Trans ( 4, -3, 7 ) Rot ( y, 90) Rot ( z, 90) = 0 1 0 7 (1.16) 0 0 0 1 坐标系首先绕参考坐标系 z 轴旋转90,然后绕 y 轴旋转 90,最后平移 4i3j+7k, 如图2.9所示。如果以相反次序从左到右来进行这些操作:首先对坐标平移4i3j+7k,然 后将它绕当前坐标系的 y 轴旋转 90,此时当前坐标系的 y 轴与参考坐标系的 y 轴是相同 的。然后再绕着新坐标系(当前的)坐标系的 z 轴旋转90,所得结果与前面的方法相同 (见图1.11)。,一般的情况下,如果我们用一个旋转和/或平移变换矩阵右乘一个坐标系的变换,那么产生的平移和/或旋转是相对于前一个变换的坐标系(当前坐标系)的轴来说的。如果我们用一个描述平移和/或旋转的变换矩阵左乘一个坐标系的变换,那么产生的平移和/或旋转是相对于基坐标系来说的。 【例1.3】给一个坐标系C和一个变换T,T为绕 z 轴旋转90,并在 x 轴方向上平移10个单位,当变换是相对于基坐标系产生时,我们用 T 左乘 C 得到新的位置 x 为 0 -1 0 10 1 0 0 20 0 0 1 0 1 0 0 0 0 0 -1 10 1 0 0 20 x = T C = 0 0 1 0 0 1 0 0 0 1 0 0 (1.17) 0 0 0 1 0 0 0 1 0 0 0 1 当变换是相对于当前坐标系 C 轴产生时,我们用 T 右乘 C 得到新的位置 y 为 1 0 0 20 0 -1 0 10 0 -1 0 30 0 0 -1 10 1 0 0 0 0 0 -1 10 y = C T = 0 1 0 0 0 0 1 0 1 0 0 0 (1.18) 0 0 0 1 0 0 0 1 0 0 0 1 结果如图1.12所示。,1.8 物体的描述(Object representation),变换可用来描述物体的位置与方向(方位)。如图1.13所示的楔形物体用六个角点 来描述,这六个角点是相对于物体所在的参考坐标系的。如果把物体绕 z 轴旋转 90, 然后绕 y 轴旋转 90,接着沿 x 方向平移4个单位,我们可以描述这个变换为 0 0 1 4 1 0 0 0 Trans ( 4, 0, 0 ) Rot ( y, 90) Rot ( z, 90) = 0 1 0 0 0 0 0 1 这个变换表示了对参考坐标系的旋转和平移操作,变换后物体的六个角点为 4 4 6 6 4 4 0 0 1 4 1 -1 -1 1 1 -1 1 -1 -1 1 1 -1 1 0 0 0 0 0 0 0 4 4 0 0 0 0 4 4 = 0 1 0 0 0 0 0 2 2 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 变换后该物体在坐标上的方位如图1.13所示。,从图1.13可以看出,由于楔形物体的角点与它所在的坐标系有固定的关系,因此没有必要对所有的角点进行变换,只要对物体所在的坐标系进行变换,就可得到变换后的各个角点在基坐标中的位置,将这些角点用直线连接起来就可得到楔形物体的边缘,它与逐点变换的结果完全相同(见图1.14)。,1.9 逆变换(Inverse transformation),所谓逆变换就是将被变换的坐标系返回到原来的坐标系,在数学上就是求变换矩阵的逆。 下面我们写出变换矩阵的一般表达形式 nx ox ax px ny oy ay py T = nz oz az pz (1.19) 0 0 0 1 式中 n, o, a 是旋转变换列向量,p 是平移向量,其逆是 nx ny nz - p.n ox oy oz - p.o T-1 = ax ay az - p.a (1.20) 0 0 0 1 式中的 “ . ” 表示向量的点积。这个结果很容易用式1.19右乘式1.20是单位矩阵来证明。,1.10 一般性旋转变换(General rotation transformation),前面我们介绍的旋转变换都是绕 x,y,z 轴旋转的旋转变换,这些变换都有一个简单的几何解释。例如:在绕 z 轴旋转的情况下,表示 z 轴保持恒定,x 轴和 y 轴将如图1.15所示那样变化。,如图1.16所示,给出一个变换矩阵 C,它绕 任意向量 k 旋转,我们把 k当作 C坐标系的 z 轴单 位向量。 nx ox ax 0 ny oy ay 0 C = nz oz az 0 (1.21) 0 0 0 1 k = ax i + ay j + az k (1.22) 绕 k 旋转就相等于绕 C 坐标系的 z 轴旋转。 Rot( k,)= Rot(Cz,) (1.23) 如果我们给一个坐标系T,它在参考坐标 系里被描述,它在C坐标系里用X描述,这样 T = C X (1.24) 其中X描述T相对C的位姿,求X,我们得到 X = C-1 T (1.25),T 绕 k 旋转就等于绕坐标系的 z 轴旋转 Rot( k, ) C Rot( z, )X (1.26) Rot( k, ) C Ro t( z, )C-1 T (1.27) 这样 Rot( k, ) C Rot( z, )C-1 (1.28) 展开式(1.28),我们发现 C Rot( z, )C-1 仅是 k 的函数。 用C-1右乘 Rot( z, ) ,我们得到 cos -sin 0 0 nx ny nz 0 sin cos 0 0 ox oy oz 0 Rot( z, )C-1 0 0 1 0 ax ay az 0 0 0 0 1 0 0 0 1 nx cosox sin ny cosoy sin nz cosoz sin 0 nx cos + ox sin ny cos + oy sin nz cos+ oz sin 0 = ax ay az 0 (1.29) 0 0 0 1 再用C左乘 nx ox ax 0 ny oy ay 0 C = nz oz az 0 (1.30) 0 0 0 1,得到 C Rot( z, )C-1 = nxnx cos nxox sin+ nxox sin+ oxox cos+ ax ax nynx cos nyox sin+ nxoy sin+ oyox cos+ ay ax nznx cos nzox sin+ nxoz sin+ oz ox cos+ az ax 0 nxny cos nxoy sin+ nyox sin+ oyox cos+ ax ay nyny cos nyoy sin+ nyoy sin+ oyoy cos+ ay ay nzny cos nzoy sin+ nyoz sin+ oyoz cos+ az ay 0 nxnz cos nxoz sin+ nzox sin+ ozox cos+ ax az 0 nynz cos nyoz sin+ nzoy sin+ ozoy cos+ ay az 0 nznz cos nzoz sin+ nzoz sin+ ozoz cos+ az az 0 (1.31) 0 1,应用下列关系进行简化: C 坐标系任意的行或列与其他行或列的点积为零,因为这些向量是正交的; C 坐标系任意的行或列与其自身的点积为I ,因为它们是单位量; z 向量是 x 和 y 向量的叉积:a = n o,它有下列分量 ax = ny oz nz oy ay = nz ox nx o z az = nx oy ny ox 正矢 Vers=(1cos),简写成 Vers,且 kx = ax ,ky = ay ,kz = az 。由此可得到简化式为 Rot ( k, ) = kx kx Vers+ cos ky kx Verskz sin kz kx Vers + kysin 0 kx kyVers+ kz sin ky ky Vers+ cos kz kyVers kzxsin 0 kx kzVerskysin ky kz Vers + kxsin kz kzVers+ cos 0 (1.32) 0 0 0 1 上式是一般性的旋转变换的重要结论。从这个结论可以得出每一个基本旋转变换。例如: Rot ( x, )就是Rot ( k, )当 kx= 1,ky= 0, kz= 0 的情况,将这些值代入式(1.32)得到 1 0 0 0 0 cos -sin 0 Rot ( x, ) = 0 sin cos 0 (1.33) 0 0 0 1 这个结果与以前一样。,1.11 等价旋转角与旋转轴(Equivalent angle and axis of rotation),任给一个旋转变换,从(1.32)方程得到一个轴,绕这个轴旋转的等价旋转角可由 如下方法得到。已知一个旋转变换 R nx ox ax 0 ny oy ay 0 R = nz oz az 0 (1.34) 0 0 0 1 令 R 和式 (1.32)的 Rot ( k, ) 相等,并将对角线各项相加得到 nx + oy + az +1 = k2x Vers+ cos+ k2yVers+ cos + k2z Vers+ cos+1 (1.35) nx + oy + az = ( k2x + k2y + k2z ) Vers+ 3cos = 1 + 2cos (1.36) 由此可得到旋转角的余弦是 cos = 1/2(nx + oy + az1) (1.37) 对非对角线项相减,我们得到 oz ay = 2 kx sin (1.38) ax nz = 2 ky sin (1.39) ny ox = 2 kz sin (1.40) 把式(1.38)到式(1.40)两边平方并相加有 (oz ay)2 +( ax nz)2 +( ny ox )2 = 4 sin2 (1.41),我们得到了sin的表达式 sin = 1/2(oz ay)2 +( ax nz)2 +( ny ox )2 (1.42) 规定这个旋转是绕 k 正方向旋转,当 0180时,在上式中取十号是合理的。 这个旋转角被唯一定义为 tan =(oz ay)2 +( ax nz)2 +( ny ox )2 /(nx + oy + az1 ) (1.43) k的各分量为 kx =(ozay)/ 2 sin (1.44) ky =(axnz)/ 2 sin (1.45) kz =(nyox)/ 2 sin (1.46) 注意:当旋转角较小或接近 180时,上述三个式子的分子和分母都很小,所计算的k值是不精确的。为此可继续根据式(1.32)和式(1.33)对应元素以及它们的代数和相等的关系来求出k的各个分量。,1.12 扩展与缩小(Stretching and scaling),一个变换T a 0 0 0 0 b 0 0 T = 0 0 c 0 (1.47) 0 0 0 1 将沿着 x 轴以 a 因子,沿着 y 轴以 b 因子,沿着 z 轴 c 因子均匀扩展着各种物 体。假定在一个物体上任意一个点 x i + y j + z k ,它的变换是 a x a 0 0 0 x b y 0 b 0 0 y c z = 0 0 c 0 z (1.48) 1 0 0 0 1 1 这个正好表示出所说的扩展。这样,一个正方体可以由这个变换变成长方体。变换s s 0 0 0 0 s 0 0 s = 0 0 s 0 (1.49) 0 0 0 1 将以s为比例因子来扩展或缩小任一物体。,1.13 透视变换(Perspective transformation),假设由一个简单透镜把一个物体形成的像 如图1.17所示。透镜的轴沿着 y 的方向,焦距 为f ,物体上的一个点 x, y, z 成象为 x/, y/, z/。 y/ 表示象距,它随着物距 y 而变化。如果在通 过 y/ 而垂直于 y 的平面(照相机的底片)上画 出各个点,那么就形成了一个透视像。射线穿 过透镜中心不偏转,则 z / y = z/ / y/ (1.50) x / y = x/ / y/ (1.51) 根据平行透镜的轴的射线通过焦点,我们 可以写出 z / f = z/ / ( y/ + f ) (1.52) x / f = x/ / ( y/ + f ) (1.53) x/ y/ 和 z/ 是负数,而 f 是正数。用式(1.50) 和式(1.52)消去 y/ ,得 z / f = z/ ( z/ y / z + f ) (1.54),求出 x/ = x ( 1y/f ) (1.55) y/ = y ( 1y/f ) (1.56) z/ = z ( 1y/f ) (1.57) 齐次变换 p 能导出同样结果,变换 p 是 1 0 0 0 0 1 0 0 p = 0 0 1 0 (1.58) 0 -1/f 0 1 任何一点 x i + y j + z k 变换为 x 1 0 0 0 x y 0 1 0 0 y z = 0 0 1 0 z (1.59) 1y/f 0 -1/f 0 1 1 用比例因子 1 y / f 除得到的象点 x/, y/, z/ 有 x /(1y/f) i + y/(1y/f) j + z/(1y/f) k (1.60) 这个结果与前面利用透视原理的结果完全相同。在

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论