第2章 间描述与坐标变换

2020-03-01 234浏览

  • 1.第2章 空间描述与坐标变换 机器人学简明教程 第2章 间描述与坐标变换 2.1 位置姿态表示与坐标系描述 2.2 坐标变换 2.3 齐次坐标变换 2.4 齐次变换算子 2.5 复合变换 2.6 齐次变换的逆变换 2.7 变换方程 2.8 姿态的欧拉角表示
  • 2.第2章 空间描述与坐标变换 2.1 位置姿态表示与坐标系描述 1.位置描述 假设已经建立了坐标系,我们可以用一个3×1的位置矢 量对世界坐标系中的任何点进行定位。因为经常需要定义多 个坐标系来描述机器人的几何关系和运动,在描述一个位置 矢量的时候需要指明是用哪一个坐标系描述的。如图2-1表 示的一个坐标系和位置矢量,用三个单位正交基矢量表示坐 标系{A},坐标原点和沿坐标轴的单位矢量均用下标“A”表 示它们属于{A}坐标系。矢量Ap表示箭头指向点的位置矢量, 其中右上角标“A”表示该点是用{A}坐标系描述的。位置矢 量Ap可以用分量表示为  px  A p   p y   p z  (2-1)
  • 3.第2章 空间描述与坐标变换 图2-1 坐标系和位置矢量
  • 4.第2章 空间描述与坐标变换 2.姿态描述 一个刚体除了需要描述它的位置外,还需要描述它的方 位(姿态)。任意平面刚体都可以用三个参数(x,y,θ)唯一 描述其姿态。例如图2-2所示的机器人,为了完整描述地面 上的机器人,除了机器人的位置(质心OB坐标x,y)以外, 还需要知道机器人的方位(头的方向θ)。平面机器人位置 一般用两个坐标系来描述,一个是固定的场地坐标系{A}, 另一个是与机器人固连在一起的机器人(运动)坐标系{B}。 机器人的位姿可以用机器人坐标系{B}的原点和坐标轴在固 定坐标系{A}中的方向来描述。
  • 5.第2章 空间描述与坐标变换 图2-2 平面机器人位姿表示
  • 6.第2章 空间描述与坐标变换 三维刚体的描述比较复杂,如图2-3所示的机械手末端 工具,需要描述工具的空间位置和姿态(方位),三维姿态 的描述一般通过固定在物体上的坐标系来实现。 图2-3 机械手末端工具及坐标系
  • 7.第2章 空间描述与坐标变换 图2-3中坐标系{B}与机械手末端工具固连,工具的位 置可以用固连坐标系{B}的原点描述、工具的姿态可以由坐 标系{B}的方向来描述。而坐标系{B}的方向可以用沿三个 坐标轴的单位矢量来表示: A B R  A XB A YB A ZB   r11  r21  r31 r12 r22 r32 r13  r23  r33  (2-2)
  • 8.第2章 A B 空间描述与坐标变换 R 称为旋转矩阵,即坐标系可以用旋转矩阵来描述。根据坐 标矢量的正交性和单位长度条件,可以得到 6 个约束方程,因 此旋转矩阵只有 3 个独立变量,后面将介绍采用 3 个独立变量 描述刚体姿态的方法。式(2-2)中旋转矩阵的元素可以用坐标 系{B}的单位矢量在坐标系{A}单位矢量上的投影来表示 A B R  A XB A YB A ZB   X TA X B    Y AT X B  Z TA X B  X TA YB Y AT YB Z TA YB X TA Z B   B X TA     Y AT Z B    BY AT  Z TA Z B   B Z TA  (2-3)
  • 9.第2章 空间描述与坐标变换 式(2-3)中内积运算的矢量都是在坐标系{A}下表示 的,因此,为了简单省略了矢量的上标。事实上,矢量的内 积与所选择的坐标系无关,由矢量内积的定义得 r11  X B  X A  X BT X A  X B X A cos  cos (2-4) 其中  表示矢量 XB 和 XA 的夹角, X B 表示矢量的长度。因为 XB 是单位矢量,所以 X B =1。式(2-4)表明,r11 是两个坐标系 X 轴夹角的余弦,旋转矩阵的其余元素的表示与(2-4)类似,因 此,旋转矩阵的元素也称为方向余弦。
  • 10.第2章 空间描述与坐标变换 A 旋转矩阵 B R 是用坐标系{A}来表示坐标系{B}沿坐标轴方向单位 矢量组成的矩阵,同样我们也可以用坐标系{B}来表示坐标系{A} B 的单位矢量得到旋转矩阵 A R B A R  B XA B YA B ZA   X BT X A  T   YB X A  Z BT X A  X BT Y A YBT Y A Z BT Y A X BT Z A   A X BT   A T T YB Z A    YB  (2-5) Z BT Z A   A Z BT  对比式(2-3)和式(2-5)可知两个旋转矩阵互为转置,再 根据正交矩阵的性质可得以下关系: B A A B T A B R R  R 1
  • 11.第2章 空间描述与坐标变换 根据坐标系单位矢量的正交关系可以验证式(2-6)成立。  A X BT  A T A T A R R  B B  YB   A Z BT     A XB A YB A ZB  1 0 0  0 1 0 0 0 1 (2-7)
  • 12.第2章 空间描述与坐标变换 3.坐标系描述 从前面介绍的位置和姿态描述可知,刚体的位姿可以用 固连在刚体上的坐标系来描述,坐标原点表示刚体的位置, 坐标轴的方向表示刚体的姿态。因此,固连坐标系把刚体位 姿描述问题转化为坐标系的描述问题。图2-3中坐标系{B} 可以在固定坐标系{A}中描述为 { B} { BA R, A PBo } A (2-8) A 旋转矩阵 B R 描述坐标系{B}的姿态,矢量 PBo 描述坐标系{B}的原点位置。
  • 13.第2章 空间描述与坐标变换 2.2 坐标变换 1.平移坐标变换 在图2-4中,BP为坐标系{B}描述的某一空间位置,同 样,我们也可以用AP(坐标系{A})描述同一空间位置。假 设坐标系{A}和坐标系{B}姿态相同,则坐标系{B}可以理解 为坐标系{A}的平移。APBO称为坐标系{B}相对坐标系{A}的 平移矢量,也可以理解为坐标系{B}原点在坐标系{A}描述 下的位置矢量。因为两个坐标系具有相同的姿态,同一个点 在不同坐标系下的描述满足以下关系 A B A P  P  PBo (2-9)
  • 14.第2章 空间描述与坐标变换 式(2-9)表明了不同坐标系描述同一个点位置矢量之间的变 A 换关系,变换关系由平移矢量 PBo 唯一确定。可以从另外一个角 度理解式(2-9)表示的变换关系,假设开始坐标系{B}与坐标系{A} 重合,矢量 BP 与坐标系{B}固定,将坐标系{B}连同矢量 BP 一起平 A 移 PBo 。这样理解式(2-9)表示的是同一坐标系描述的位置矢量 之间的平移关系。
  • 15.第2章 空间描述与坐标变换 图2-4 平移坐标变换
  • 16.第2章 空间描述与坐标变换 2.旋转坐标变换  A px  B X TA B P  A B T B p  YA P  y A B T B  pz  Z A P (2-10)
  • 17.第2章 空间描述与坐标变换 图2-5 旋转坐标变换
  • 18.第2章 空间描述与坐标变换 将(2-9)式写成矩阵形式得(参见(2-3)式)  B X TA   B T B A B A P  YA  P B R P  B Z TA    (2-11) 式(2-11)即为我们要求的旋转变换关系,该变换是 通过两个坐标系之间的旋转变换实现的。式(2-11)实现 了空间点在不同坐标系下描述的转换,下面用平面旋转坐 标变换的例子说明上述算法。
  • 19.第2章 空间描述与坐标变换 例2-1 图2-6给出了两个平面坐标系的位置关系,计 算旋转变换矩阵BAR和同一矢量P在两个坐标系下表示之间 的关系,假设矢量长度为r。 解: 因为坐标轴为单位矢量,根据几何关系得  A X B   cos  X A  sin YA A  YB   sin  X A  cos YA 所以,根据式(2-3)可知旋转变换矩阵为 A B cos  R  sin   sin   cos  
  • 20.第2章 空间描述与坐标变换 再根据式(2-11)可得矢量间的变换关系 A cos   sin   r cos   P R P   r sin   sin  cos     cos  cos   sin  sin   r  cos  sin   sin  cos    cos(   )  r  sin(    )   A B B 观察图2-6,根据几何关系直接计算P在{A}下的表示显然 与上式相同,印证了坐标变换方法的正确性。
  • 21.第2章 空间描述与坐标变换 图2-6 平面旋转变换
  • 22.第2章 空间描述与坐标变换 也可以从另一个角度获得矢量P在{A}下的表示,首先 将矢量在{B}下表示 B P  r cos  X B  r sin  YB 再根据前面的结果,将坐标系{B}的基矢量用坐标系{A}的 基矢量表示,得 A P  r cos  A XB  r sin  AYB  r(cos  cos  sin  sin ) X A  r(cos  sin  sin  cos )YA  r cos(   ) X A  r sin(   )YA 结果与前面计算的相同。
  • 23.第2章 空间描述与坐标变换 图2-7给出了两个坐标系关系的示意图,为了得到位置 矢量BP和AP之间的变换关系,我们建立一个中间坐标系{C}。 坐标系{C}与坐标系{B}原点重合,且与坐标系{A}的姿态相 同。通过引入坐标系{C},可以采用前面介绍的平移与旋转 变换得到一般情况下的变换关系: C A C (2-12) P BC RBP BARBP A A B B A P  P  PCo  R P  PBo (2-13)
  • 24.第2章 空间描述与坐标变换 图2-7 复合变换
  • 25.第2章 空间描述与坐标变换 2.3 齐次坐标变换 式(2-13)表示了一般情况下的变换关系,在机器 人学中经常需要计算多个坐标系之间的坐标变换,采用上述 表达不够简明和清楚。因此,常用所谓的“齐次坐标变换” 来描述坐标系之间的变换关系。坐标变换式(2-13)可以 写成以下形式  A P   BA R    1   0 A PBo   B P    1  1  (2-14)
  • 26.第2章 空间描述与坐标变换 将位置矢量用4×1矢量表示,增加1维的数值恒为1,我们仍 然用原来的符号表示4维位置矢量并采用以下符号表示坐标 变换矩阵 A  A BR BT    0 A PBo   1  (2-15) 可以得到齐次坐标变换关系 A P  AB T BP (2-16) A B T 是 44 矩阵,称为齐次坐标变换矩阵。ABT 可以理解为坐 标系{B}在固定坐标系{A}中的描述。齐次坐标变换的主要作 用是表达简洁,同时在表示多个坐标变换的时候比较方便。
  • 27.第2章 空间描述与坐标变换 2.4 齐次变换算子 1.平移算子 上面介绍了同一个点在不同坐标系下描述的变换关系(2-15) 。 在机器人学中还经常用到下面的变换,如图 2-8,矢量 AP1 沿矢量 A Q 平移至的 AQ 终点,得一矢量 AP2。已知 AP1 和 AQ 求 AP2 的过程 称之为平移变换,与前面不同,这里只涉及单一坐标系。 A A A P2  P1  Q (2-17)
  • 28.第2章 空间描述与坐标变换 图2-8 平移算子
  • 29.第2章 空间描述与坐标变换 可以采用齐次变换矩阵表示平移变换 A A A P2  Trans ( Q ) P1 (2-18) Trans(AQ)称为平移算子,其表达式为 I A Trans( Q )   0 Q  1  A (2-19) 其中I是3×3单位矩阵。例如若AQ=ai+bj+ck,其中i、j和k分 别表示坐标系{A}三个坐标轴的单位矢量,则平移算子表示 为 1 0 Trans( a, b, c)   0  0 0 1 0 0 0 0 1 0 a b  c  1 (2-20)
  • 30.第2章 空间描述与坐标变换 2.旋转算子 同样,我们可以研究矢量在同一坐标系下的旋转变换, 如图2-9所示,AP1绕Z轴转θ角得到AP2。则 A P2  Rot ( z ,  ) A P1 (2-21) Rot(z,θ)称为旋转算子,其表达式为 c  s Rot( z, )   0  0 s c 0 0 0 0 0 0 1 0  0 1 (2-22)
  • 31.第2章 空间描述与坐标变换 图2-9 旋转算子
  • 32.第2章 空间描述与坐标变换 同理,可以得到绕X轴和Y轴的旋转算子 1 0 0 c Rot( x, )   0 s  0 0  c  0 Rot( y, )   s   0 0 s c 0 0 0 0  1 0 s 0 1 0 0 0 c 0  0 0 1 式中“c”,“s”分别代表“cos”和“sin”。 (2-23)
  • 33.第2章 空间描述与坐标变换 定义了平移算子和旋转算子以后,可以将它们复合实现 复杂的映射关系。变换算子与前面介绍的坐标变换矩阵形式 完全相同,因为所有描述均在同一坐标系下,所以不需上下 标描述(坐标系)。 A P2  T A P1 (2-24)
  • 34.第2章 空间描述与坐标变换 例2-2 已知矢量AP1=[370]T,先将其绕ZA旋转30°,再 沿XA轴平移10个单位、沿YA轴平移5个单位,计算变换后得 到的矢量AP2。 解: 根据式(2-15)得变换算子: cos 30o  o sin 30 T   0   0 A  sin 30o cos 30o 0 0 0 10 0.866 0.5 0 10    0 5   0.5 0.866 0 5   0 1 0 1 0  0    0 0 1 0 1  0 P2  T A P1  [9.098 12.562 0]T
  • 35.第2章 空间描述与坐标变换 3.齐次坐标变换总结 A B (1)坐标系的描述。 T 表示坐标系{B}在坐标系{A}下的 描述,BA R 的各列是坐标系{B}三个坐标轴方向的单位矢量, 而APBO表示坐标系{B}原点位置。 (2)不同坐标系间的坐标变换。如 A P  ABT B P。 (3)同一坐标系内的变换算子。如 A P2  T A P 1 。 齐次坐标变换是复杂空间变换的基础,必须认真理解和 掌握。具体应用的关键是理解它代表的是上面三种含义的哪 一种,而不是简单的套用公式。
  • 36.第2章 空间描述与坐标变换 2.5 复合变换 复合变换主要有两种应用形式,一种是建立了多个坐标 系描述机器人的位姿,任务是确定不同坐标系下对同一个量 描述之间的关系;另一种是一个空间点在同一个坐标系内顺 序经过多次平移或旋转变换,任务是确定多次变换后点的位 置。 如图2-10表示的三个坐标系,已知坐标系{A}、{B}和 {C}之间的变换矩阵 A B T, B C T 和位置矢量CP,求在坐标系{A} 下表示同一个点的位置矢量AP。先计算在坐标系{B}下表示 同一个点的位置矢量BP,然后计算在坐标系{A}下表示同一 个点的位置矢量AP。
  • 37.第2章 空间描述与坐标变换 P  CB T CP (2-25) P  ABT BP  ABT CBT CP (2-26) B A 根据坐标变换的定义得 A C T  ABT CBT (2-27)
  • 38.第2章 空间描述与坐标变换 图2-10 复合坐标变换
  • 39.第2章 空间描述与坐标变换 例2-3 已知点u=7i+3j+2k,先对它进行绕Z轴旋转90° 的变换得点v,再对点v进行绕Y轴旋转90°的变换得点 w,求v和w。 解:由旋转变换的公式得  0 1 1 0 v  Rot( z ,90o )u   0 0  0 0 0 0 1 0 0   7   3  0   3   7   0 2  2      1  1   1  0 0 w  Rot( y,90o )v    1  0 1 0 0 0 0  3 2 0  7  7  0  2   3      1   1  1  0 1 0 0
  • 40.第2章 空间描述与坐标变换 如果只关心最后的变换结果,可以按下式计算 w  Rot ( y,90o )v  Rot ( y,90o ) Rot ( z,90o ) u 0 1  0  0 0 0 1 0 1 0 0 0 0  7   2  0   3  7   0 2 3     1  1  1  计算结果与前面的相同,R=Rot(y,90°)Rot(z,90°)称为复合 旋转算子。图2-11(a)给出了变换前后点的位置。如果改 变旋转顺序,先对它进行绕Y轴旋转90°,再绕Z轴旋转90°, 结果如图2-11(b)所示。比较图2-11(a)和图2-11(b) 可以发现最后的结果并不相同,即旋转顺序影响变换结果, 从数学角度解释就是矩阵乘法不满足交换率,Rot (y,90°) Rot(z,90°)≠Rot(z,90°)Rot(y,90°)。
  • 41.第2章 空间描述与坐标变换 图2-11 旋转顺序对变换结果的影响
  • 42.第2章 空间描述与坐标变换 2.6 齐次变换的逆变换 A 已知坐标系{B}相对坐标系{A}的描述 BT ,求坐标系{A}相对 B 坐标系{B}的描述 AT ,即为齐次变换的求逆问题。一种直接的方 法是采用线性代数中的矩阵求逆,另一种方法是根据变换矩阵的 特点直接得出逆变换。后一种方法使用起来更加简单方便。 A A B B 给定 ABT 计算 BAT 等价为:已知 B R 和 PBo ,求 A R 和 PAo 。根据 前面的讨论,旋转矩阵关系为 B A R BAR 1  BART (2-28)
  • 43.第2章 空间描述与坐标变换 将坐标变换用于坐标系{B}的原点得 B BP PBo  AB R APBo  BPAo (2-29) BO是坐标系{B}的原点在坐标系{B}中的描述,显然为零矢 量。由式(2-29)得 B PAo   AB R A PBo   BA R T A PBo (2-30) 因此,逆变换可以直接用正变换的旋转矩阵和平移矩阵表示 A T  B BR AT    0 逆变换矩阵推导的另一种方法  BART A PBo   1  (2-31)
  • 44.第2章 空间描述与坐标变换 根据坐标变换式(2-13)AP  BAR B P  APBo 可得: B P  BAR1( AP  APBo )  BART ( AP  APBo )  BART AP  BART APBo (2-32) 将坐标系{A}到坐标系{B}的变换: B P  ABR AP  B PAo 比较式(2-32)和式(2-33)得 B A R  BART , B PAo   BART APBo 结果与前面推导的式(2-31)完全相同。 (2-33)
  • 45.第2章 空间描述与坐标变换 例2-4 如图2-12给出的楔形块角点坐标系,求齐次 A B A T , T , 坐标变换 B C CT 图2-12 楔形块角点坐标系
  • 46.第2章 空间描述与坐标变换 解:为了简化公式表示,用“c”和“s”分别代表“cos”和 “sin”。 (1){A}沿xA平移3个单位,再绕新的zA轴转180°得{B}。 c180  s180 0   1 0 0   s180 c180 0    0 1 0  A R  B      0 0 1   0 0 1  因此  1 0  0 1 A  BT  0 0  0 0 0 0 1 0 3 0  0  1
  • 47.第2章 空间描述与坐标变换 (2){B}沿zB平移2个单位,然后绕yB轴转90o再绕新xB 轴转150°得{C}。  c90  0 B R  C    s90 0 0   0 1  1 0 0 s90 1 0 0  1 0  0 c150  s150 0 c90 0 s150 c150  1  1 0 0  0 0  3 2 1 2  0 0 1 2  3 2   3  1 0 2 2    3  1 0 2 2   1 0 0  
  • 48.第2章 空间描述与坐标变换 因此  1 0  0 1 A A B  T  C BT CT  0 0  0 0  0  12  3 0 2   1 0  0 0 也可以按以下方法计算: 3 1 2 2 0 0 0 3  0  0 0   0 1 0   1  0 1  0 3  0 2  1 1  3 2  3 2 1 2 2 0 0 0 0 0  0 2  1
  • 49.第2章 空间描述与坐标变换 ③{A}沿xA和zA平移3个和2个单位,然后绕yA轴转90°, 再绕新xA轴转-30°得{C}。 0 0   c90 0 s90  1  0  0 c 30  s 30  A R  1 0     C     s90 0 c90 0 s  30  c  30    0 0 1  1   0 1 0  0  1 0 0  0 0 3 1 2 2 0  0  1   2  0 3   1 2  1 3 2 2 0   1 2  0  3 2
  • 50.第2章 空间描述与坐标变换 因此可以得到相同的结果,  0  12  3 0 2 A  T  C  1 0  0 0 3 1 2 2 0 0 3  0 2  1 事实上,对于像本例题这种简单的情况,可以直接利用齐次 坐标变换的定义得到变换矩阵。即直接写出坐标系{C}坐标 轴矢量在坐标系{A}下表示的旋转矩阵,平移矢量为坐标系 {C}的原点在坐标系{A}下的矢量表示。
  • 51.第2章 空间描述与坐标变换 2.7 变换方程 图2-13表示了多个坐标系的关系图,可以用两种不同的 方式得到世界坐标系{U}下坐标系{D}的描述。 U D T UAT DAT (2-34) T UBT CBT CDT (2-35) U D 可以利用变换方程(2-36)求解其中任意一个未知变换。例 如,假设除UBT以外其余变换均为已知,则该未知变换可以用 下式计算 T  UAT DAT CDT 1 CBT 1 U B (2-37)
  • 52.第2章 空间描述与坐标变换 图2-13 坐标变换序列
  • 53.第2章 空间描述与坐标变换 我们在坐标系的图形表示方法中,采用从一个坐标系的 原点指向另一个坐标系原点的箭头表示坐标系的描述关系。 例如在图2-14中,相对{D}定义坐标系{A}。在图中将箭头 串联起来,通过简单的变换矩阵相乘即可得到起点到终点的 坐标系描述。如果一个箭头的方向与串联的方向相反,只需 先求出该变换的逆再相乘即可。例如在图2-14中坐标系{C} 的两种描述为 U C U B B C T T T (2-38) T  UAT DAT 1 DCT (2-39) U C
  • 54.第2章 空间描述与坐标变换 图2-14 坐标变换序列
  • 55.第2章 空间描述与坐标变换 例2-5 假设已知图2-15中机械臂末端工具坐标系{T} 相对基座坐标系{B}的描述,还已知工作台坐标系{S}相对 基座坐标系{B}的描述,并且已知螺栓坐标系{G}相对工作 台坐标系{S}的描述。计算螺栓相对机械臂工具坐标系的位 姿。 解:添加从工具坐标系{T}原点到螺栓坐标系{G}原点的 箭头,可以得到如下变换方程 B S T GST  BTT GTT (2-40) 螺栓相对机械臂工具坐标系的位姿描述为 T  BT T 1 BST GST T G (2-41)
  • 56.第2章 空间描述与坐标变换 图2-15 机械臂对螺栓操作
  • 57.第2章 空间描述与坐标变换 2.8 姿态的欧拉角表示 2.1节采用3×3的旋转矩阵描述了三维刚体的姿态,但9 个分量中只有3个独立的分量。能否使用3个独立的分量描述 三维刚体的姿态呢?答案是肯定的,比较常用的是下面的Z YZ欧拉角描述方法。欧拉角用一个绕Z轴旋转角,再 绕新的Y轴旋转θ角,最后绕新的Z轴旋转ψ角来描述任何可 能的姿态,见图2-16。图中虚线表示旋转形成的新坐标轴。 根据旋转关系可以得到变换矩阵 Rzyz  Rot  z,   Rot  y,  Rot  z,  (2-42)
  • 58.第2章 空间描述与坐标变换 图2-16 Z-Y-Z欧拉角
  • 59.第2章 空间描述与坐标变换 具体计算结果计算如下: Ryz  Rot  y,   Rot  z,   c   0   s 0 s  c 1 0   s 0 c   0  s c 0 0   c c 0    s 1    s c  c s c s s s  0  c  c s 0  c c c s s  Rzyz  Rot  z,  Ryz  s c 0  s c 0   0 0 1 s c s s c  cc c  s s cc s  sc c s   sc c  c s sc s  cc s s   s c s s c 
  • 60.第2章 空间描述与坐标变换 另一种常用的旋转组合是横滚(roll)、俯仰(pitch) 和偏转(yaw)。图2-17给出了变换的示意图,这三个角 度表示了船航行的三个方位描述。需要注意的是,横滚、俯 仰和偏转表示都是相对固定坐标系表述的,而前面介绍的Z -Y-Z欧拉角描述是相对动坐标系描述的。规定变换顺序 为偏转ψ角、俯仰θ角和横滚¢角。根据旋转关系可以得到 变换矩阵 Rxyz  Rot  z ,   Rot  y ,   Rot  x , c s 0  c 0 Rxyz  s c 0  0 1  0 0 1 s 0 cc cs s  sc  sc ss s  cc  s c s  s  1 0 0  0  0 c s  c  0 s c  csc  ss  (2-43) ssc  cs   cc
  • 61.第2章 空间描述与坐标变换 图2-17 横滚、仰俯和偏转表示姿态
  • 62.第2章 空间描述与坐标变换 1.通用旋转算子 我们已经研究了绕坐标轴的旋转变换,下面研究绕任意 轴(用单位矢量f表示)旋转θ角的旋转矩阵。如图2-18所 示,假设矢量f在固定坐标系{A}下表示,另外,我们通过矢 量Ap绕任意轴f旋转θ角得到旋转矩阵。以f为Z轴建立与{A} 固连的坐标系{C},其原点与{A}的原点重合,因此可以用 旋转矩阵描述坐标系{C}。用n、o和f表示坐标系{C}三个坐 标轴的单位矢量,在坐标系{A}下表示为  n  nx i  n y j  nz k   o  o x i  o y j  oz k f  f i f j f k x y z  (2-46)
  • 63.第2章 空间描述与坐标变换 则旋转矩阵表示为  nx A  C R  ny   nz ox oy oz fx  fy   fz  (2-47) 因为固连的坐标系{C}与{A}固连,所以绕 f 旋转等价于绕 ZC 旋转。为此我们先将 Ap 在坐标系{C}下表示,再绕 ZC 旋转  角,最后再把旋转得到的矢量用坐标系{A}表示。 Ap 1 C A = Rot(f,) Ap A C p R p R C A T A (2-48) p p1  Rot ( z ,  ) Cp  Rot ( z ,  ) CA RT A p C (2-49) (2-50)
  • 64.第2章 空间描述与坐标变换 图2-18 绕任意轴旋转变换
  • 65.第2章 空间描述与坐标变换 再将Cp1在坐标系{A}下表示 A p1  CA R C p1  CA R Rot ( z ,  ) CA R T A p (2-51) 比较式(2-48)和式(2-51)可得 Rot ( f ,  )  CA R Rot ( z ,  ) CA RT  nx  ny   nz ox oy oz f x  c f y   s  fz   0  nx  ny   nz  n1   n2 n  3 ox oy oz f x   nx c  ox s f y   nx s  ox c  f z   fx o1 o2 o3 a1  a2  a3   s c 0 0   nx 0   ox   1  f x  ny oy fy nz  oz   f z  n y c  o y s n y s  o y c fy nz c  oz s  nz s  oz c   fz  (2-52)
  • 66.第2章 空间描述与坐标变换 式中,旋转矩阵的各表达式如下 n1  nx nx c  nx ox s  nx ox s  ox ox c  f x f x n  n n c  n o s  n o s  o o c  f f x y y x x y x y x y  2 n3  nx nz c  nz ox s  nx oz s  ox oz c  f x f z o  n n c  n o s  n o s  o o c  f f x y x y y x x y x y  1 o2  ny ny c  ny oy s  ny oy s  oy oy c  f y f y o  n n c  n o s  n o s  o o c  f f y z z y y z y z y z  3 a1  nx nz c  nx oz s  nz ox s  ox oz c  f x f z a2  ny nz c  ny oz s  nz oy s  oy oz c  f y f z  a3  nz nz c  nz oz s  nz oz s  oz oz c  f z f z (2-53)
  • 67.第2章 空间描述与坐标变换 上式中的n和o各分量是未知的,需要用f的各分量表示, 根据坐标系的右手规则知n×o=f,叉积可以按下式计算 i n  o  nx ox j ny oy k nz  ( n y oz  nz o y ) i  ( nz ox  nx oz ) j  ( nx o y  n y ox ) k oz (2-54) 因此  ( n y oz  nz o y )  f x ,   ( nz ox  nx oz )  f y , ( n o  n o )  f y x z  x y (2-55)
  • 68.第2章 空间描述与坐标变换 再根据旋转矩阵的正交性可以得到与下式类似的一系列等式 nx o y  ox ox  f x f x  1, nx o y  ox o y  f x f y  0 (2-56) 最后可以得到绕f旋转θ角的旋转矩阵  f x f x v  c Rot ( f ,  )   f x f yv  f z s   f x f z v  f y s f x f y v  f z s f y f yv  c f y f z v  f x s f x f z v  f y s  f y f zv  f x s  , v  1  c  f z f z v  c  (2-57)
  • 69.第2章 空间描述与坐标变换 2.等效转轴与转角 前面讨论了给定转轴和转角可以得到旋转矩阵,那么是 否任意给定的旋转矩阵都可以确定等效的转轴f和转角θ呢? 也就是两个坐标原点重合的坐标系可以通过绕固定轴转一定 的角度来实现从一个坐标系转换到另一个坐标系。实际上是 可以的,假设给定旋转矩阵,令其与式(2-57)相等  r11 A  C R  r21 r  31 r12 r22 r32 r13   f x f x v  c r23    f x f y v  f z s   r33   f x f z v  f y s 将上式对角线相加得 f x f y v  f z s f y f y v  c f y f z v  f x s f x f z v  f y s  f y f z v  f x s   f z f z v  c  (2-58) r11+ r22+ r33=1+2cθ  cθ=( r11+ r22+ r33 -1)/2 (2-59)
  • 70.第2章 空间描述与坐标变换 将关于对角线对称的两个元素分别相减得 (2-60) 将式(2-60)平方求和得 4s2θ=( r32-r23)2+( r13-r31)2+(r21-r12)2 (2-61) 假设限定绕矢量f正向旋转,且0≤θ≤180°,则 1 s  ( r32  r23 ) 2  ( r12  r31 ) 2  ( r21  r12 ) 2 (2-62) 2
  • 71.第2章 空间描述与坐标变换 由式(2-59)和式(2-62)可得θ的值  s    atan    c  (2-63) 至此,我们已经获得转角θ的值,再由式(2-57)可以得到 方向矢量f各分量的值 r32  r23 fx  2s (2-64) r13  r31 fy  2s (2-65) r21  r12 fz  2s (2-66)
  • 72.第2章 空间描述与坐标变换 在应用中需要注意的是,当转角θ的值接近0°或180°时, 方向矢量f各分量的值计算出现问题,属于奇异情况。