机器人运动学笔记1——林沛群

1 导论

新增部分:无伤理解欧拉角中的“万向死锁”现象

参考自视频:台大机器人学之运动学——林沛群
平面:2个移动DOF,1个转动DOF
空间:3个移动DOF,3个转动DOF

刚体运动状态描述,在刚体上建立刚体坐标系(一般在质心):

  • 移动:刚体的位置通过坐标轴原点来表示
  • 转动:刚体的姿态通过刚体坐标轴相对于世界坐标轴之间的夹角来表示

记录运动轨迹,对轨迹进行微分,可以得到运动过程中的速度和加速度信息。

1.1 移动

移动:以向量P来描述{B}的原点相对于{A}的状态
在这里插入图片描述

1.2 转动

转动:描述{B}相对于{A}的姿态。——旋转矩阵
在这里插入图片描述

B A R _B^AR BAR为B相对于A的旋转矩阵, A X ^ B ^A\widehat{X}_B AX B表示B刚体的x轴基向量相对于世界坐标系A的各个分量。即B的x轴在A的三轴上的投影分量。
例题:
在这里插入图片描述

答案:
在这里插入图片描述

1.3 旋转矩阵

  • 特性1: B A R = A B R T _B^AR=_A^BR^T BAR=ABRT即B相对于A的旋转矩阵等于A相对于B的旋转矩阵的转置。
  • 特性2: B A R T _B^AR^T BART B A R _B^AR BAR= [ 0 − 1 1 0 ] \begin{bmatrix} 0 & -1 \\ 1 & 0 \end{bmatrix} [0110]= I \Iota I,可得 B A R T = B A R − 1 = A B R _B^AR^T =_B^AR^{-1} =_A^BR BART=BAR1=ABR,因此旋转矩阵是正交矩阵。旋转矩阵内三列两两垂直,又为单位正交基。行列式为1。

  由于是单位正交基,则有6个限制条件(3个(列的模为1)+3个两两垂直),但旋转矩阵有9个元素,因此旋转矩阵只有3个DOF,与空间中转动具有3个DOF符合。

旋转矩阵还可以用于转换向量的坐标:
  将在{B}坐标系中表示的向量P转换到在{A}坐标系中表示的向量P, A P ^{A}P AP= B A R _B^A R BAR B P ^BP BP

旋转矩阵还可以用于进一步描述物体转动的状态。
关于Z轴(逆时针为正)旋转的旋转矩阵为:
R z ^ A ( θ ) = [ c o s θ − s i n θ 0 s i n θ c o s θ 0 0 0 1 ] = [ c θ − s θ 0 s θ c θ 0 0 0 1 ] R_{\hat{z}_{A}(\theta )} =\begin{bmatrix} cos\theta & -sin\theta & 0 \\ sin\theta & cos\theta & 0 \\ 0 & 0 & 1 \end{bmatrix} =\begin{bmatrix} c\theta & -s\theta & 0 \\ s\theta & c\theta & 0 \\ 0& 0 & 1 \end{bmatrix} Rz^A(θ)= cosθsinθ0sinθcosθ0001 = cθsθ0sθcθ0001
关于X轴(逆时针为正)旋转的旋转矩阵为:
R x ^ A ( θ ) = [ 1 0 0 0 c o s θ − s i n θ 0 s i n θ c o s θ ] = [ 1 0 0 0 c θ − s θ 0 s θ c θ ] R_{\hat{x}_{A}(\theta )} =\begin{bmatrix} 1 & 0 & 0 \\ 0 & cos\theta & -sin\theta \\ 0 & sin\theta & cos\theta \end{bmatrix} =\begin{bmatrix} 1 & 0 & 0 \\ 0 & c\theta & -s\theta \\ 0 & s\theta & c\theta \end{bmatrix} Rx^A(θ)= 1000cosθsinθ0sinθcosθ = 1000cθsθ0sθcθ
关于Y轴(逆时针为正)旋转的旋转矩阵为:
R y ^ A ( θ ) = [ c o s θ 0 s i n θ 0 1 0 − s i n θ 0 c o s θ ] = [ c θ 0 s θ 0 1 0 − s θ 0 c θ ] R_{\hat{y}_{A}(\theta )} =\begin{bmatrix} cos\theta & 0 & sin\theta \\ 0 & 1 & 0 \\ -sin\theta & 0 & cos\theta \end{bmatrix} =\begin{bmatrix} c\theta & 0 & s\theta \\ 0 & 1 & 0 \\ -s\theta & 0 & c\theta \end{bmatrix} Ry^A(θ)= cosθ0sinθ010sinθ0cosθ = cθ0sθ010sθ0cθ
在这里插入图片描述在这里插入图片描述在这里插入图片描述
例题A投影到B:
在这里插入图片描述
答案:
在这里插入图片描述

2 旋转矩阵与转角

  拆解成三次旋转连乘时要注意,旋转矩阵不支持交换律,因此需要明确多次旋转的先后顺序,旋转转轴也需要明确定义,是对固定不动的轴旋转还是对当下frame坐标轴的转轴做旋转。

由于上述原因将拆解方式分为两种:

  1. 对方向固定不动得转轴旋转Fixed angles。
  2. 对转动得frame当下所在的转轴方向旋转Euler angles。

2.1 Fixed Angles——正解

在这里插入图片描述
每次旋转都是对于不动的绿色坐标轴做旋转。
公式为: B A R X Y Z ( γ , β , α ) = R Z ( α ) R Y ( β ) R X ( γ ) = [ c α − s α 0 s α c α 0 0 0 1 ] [ c β 0 s β 0 1 0 − s β 0 c β ] [ 1 0 0 0 c γ − s γ 0 s γ c γ ] = [ c α c β c α s β s γ − s α c γ c α s β c γ + s α s γ s α c β s α s β s γ + c α c γ s α s β c γ − c α s γ − s β c β s γ c β c γ ] _{B}^{A}R_{XYZ}(\gamma ,\beta ,\alpha ) =R_{Z}(\alpha )R_{Y}(\beta )R_{X}(\gamma)=\begin{bmatrix} c\alpha& -s\alpha & 0 \\ s\alpha& c\alpha& 0 \\ 0 & 0 & 1 \end{bmatrix}\begin{bmatrix} c\beta& 0 & s\beta\\ 0 & 1 & 0\\ -s\beta& 0 & c\beta \end{bmatrix}\begin{bmatrix} 1 & 0 & 0\\ 0 & c\gamma & -s\gamma\\ 0 & s\gamma & c\gamma \end{bmatrix}=\begin{bmatrix} c\alpha c\beta & c\alpha s\beta s\gamma-s\alpha c\gamma & c\alpha s\beta c\gamma+s\alpha s\gamma\\ s\alpha c\beta & s\alpha s\beta s\gamma+c\alpha c\gamma & s\alpha s\beta c\gamma-c\alpha s\gamma\\ -s\beta & c\beta s\gamma & c\beta c\gamma \end{bmatrix} BARXYZ(γ,β,α)=RZ(α)RY(β)RX(γ)= cαsα0sαcα0001 cβ0sβ010sβ0cβ 1000cγsγ0sγcγ = cαcβsαcβsβcαsβsγsαcγsαsβsγ+cαcγcβsγcαsβcγ+sαsγsαsβcγcαsγcβcγ
顺序是从开始到结束不断左乘旋转矩阵,即先转的放后面。
例题:
在这里插入图片描述

2.2 Fixed Angles——逆解

B A R X Y Z ( γ , β , α ) = [ c α c β c α s β s γ − s α c γ c α s β c γ + s α s γ s α c β s α s β s γ + c α c γ s α s β c γ − c α s γ − s β c β s γ c β c γ ] = [ r 11 r 12 r 13 r 21 r 22 r 23 r 31 r 32 r 33 ] _{B}^{A}R_{XYZ}(\gamma ,\beta ,\alpha ) =\begin{bmatrix} c\alpha c\beta & c\alpha s\beta s\gamma-s\alpha c\gamma & c\alpha s\beta c\gamma+s\alpha s\gamma\\ s\alpha c\beta & s\alpha s\beta s\gamma+c\alpha c\gamma & s\alpha s\beta c\gamma-c\alpha s\gamma\\ -s\beta & c\beta s\gamma & c\beta c\gamma \end{bmatrix}=\begin{bmatrix} r_{11} & r_{12} & r_{13}\\ r_{21} & r_{22} & r_{23}\\ r_{31} & r_{32} & r_{33} \end{bmatrix} BARXYZ(γ,β,α)= cαcβsαcβsβcαsβsγsαcγsαsβsγ+cαcγcβsγcαsβcγ+sαsγsαsβcγcαsγcβcγ = r11r21r31r12r22r32r13r23r33
If β ≠ 90 ° \beta\neq90° β=90°
β = A t a n 2 ( − r 31 , r 11 2 + r 21 2 ) \beta=Atan2(-r_{31},\sqrt{{r_{11}}^2+{r_{21}}^2}) β=Atan2(r31,r112+r212 )
α = A t a n 2 ( r 21 / c β , r 11 / c β ) \alpha=Atan2(r_{21}/c\beta,r_{11}/c\beta) α=Atan2(r21/cβ,r11/cβ)
γ = A t a n 2 ( r 32 / c β , r 33 / c β ) \gamma=Atan2(r_{32}/c\beta,r_{33}/c\beta) γ=Atan2(r32/cβ,r33/cβ)
在这里插入图片描述在这里插入图片描述

2.3 Euler Angles——Z-Y-X由angle推算R

在这里插入图片描述
每次旋转都是对于当下坐标系的轴做旋转。转轴先后为Z-Y-X。
公式是: B A R Z ′ Y ′ X ′ ( α , β , γ ) = R Z ′ ( α ) R Y ′ ( β ) R X ′ ( γ ) _{B}^{A} R_{Z'Y'X'} (\alpha ,\beta ,\gamma )=R_{Z'} (\alpha)R_{Y'} (\beta)R_{X'} (\gamma) BARZYX(α,β,γ)=RZ(α)RY(β)RX(γ)
先转的放前面,结果与固定轴X-Y-Z旋转获得同样的结果。欧拉角先对Y转30°再对X转60°,等于固定角先对X转60°再对Y转30°。

2.4 Euler Angles——Z-Y-Z由angle推算R和R求解angle

Z-Y-Z公式为: B A R Z ′ Y ′ Z ′ ( α , β , γ ) = R Z ′ ( α ) R Y ′ ( β ) R Z ′ ( γ ) _{B}^{A} R_{Z'Y'Z'} (\alpha ,\beta ,\gamma )=R_{Z'} (\alpha)R_{Y'} (\beta)R_{Z'} (\gamma) BARZYZ(α,β,γ)=RZ(α)RY(β)RZ(γ)
B A R Z ′ Y ′ Z ′ ( α , β , γ ) = [ 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 β ] = [ r 11 r 12 r 13 r 21 r 22 r 23 r 31 r 32 r 33 ] {_B^A}R_{Z^\prime Y^\prime Z^\prime}(\alpha,\beta,\gamma)=\left[\begin{matrix}c\alpha c\beta c\gamma-s\alpha s\gamma&-c\alpha c\beta s\gamma-s\alpha c\gamma&c\alpha s\beta\\s\alpha c\beta c\gamma+c\alpha s\gamma&-s\alpha c\beta s\gamma+c\alpha c\gamma&s\alpha s\beta\\-s\beta c\gamma&s\beta s\gamma&c\beta\\\end{matrix}\right]=\left[\begin{matrix}r_{11}&r_{12}&r_{13}\\r_{21}&r_{22}&r_{23}\\r_{31}&r_{32}&r_{33}\\\end{matrix}\right] BARZYZ(α,β,γ)= cαcβcγsαsγsαcβcγ+cαsγsβcγcαcβsγsαcγsαcβsγ+cαcγsβsγcαsβsαsβcβ = r11r21r31r12r22r32r13r23r33
If β ≠ 0 ° \beta\neq0° β=
β = A t a n 2 ( r 31 2 + r 32 2 , r 33 ) \beta=Atan2(\sqrt{{r_{31}}^2+{r_{32}}^2},r_{33}) β=Atan2(r312+r322 ,r33)
α = A t a n 2 ( r 23 / s β , r 13 / s β ) \alpha=Atan2(r_{23}/s\beta,r_{13}/s\beta) α=Atan2(r23/sβ,r13/sβ)
γ = A t a n 2 ( r 32 / s β , − r 31 / s β ) \gamma=Atan2(r_{32}/s\beta,-r_{31}/s\beta) γ=Atan2(r32/sβ,r31/sβ)
在这里插入图片描述
例题:
在这里插入图片描述

2.5 Fixed angles和Euler angles小结

两种方法达到某个姿态都有12种根据坐标轴转动三次的旋转方式(3X2X2)。
Angle-axis表达法:
在这里插入图片描述
Quaternion(四元数)表达法:
在这里插入图片描述

2.6 Mapping——齐次变换矩阵

将移动和转动整合到一起,完成两个参考系之间的映射。
齐次变换矩阵描述了一个参考系相对于另一个参考系的状态。
齐次变换矩阵(Homogeneous transformation matrix): B A T = [ B A R 3 × 3   A P B   o r g   3 × 1 0 0 0 1 ] 4 × 4 {_B^A}T=\left[\begin{matrix}{_B^A}R_{3\times3}&{_\ ^A}P_{{B\ org\ }_{3\times1}}\\\begin{matrix}0&0&0\\\end{matrix}&1\\\end{matrix}\right]_{4\times4} BAT=[BAR3×3000 APB org 3×11]4×4
示例向量P从B参考系转换到A参考系:
在这里插入图片描述
在这里插入图片描述
转换矩阵可以连乘来达到参考系的转换: B A T = C A T D C T B D T {_B^A}T={_C^A}T{_D^C}T{_B^D}T BAT=CATDCTBDT,从B参考系转换到A参考系,中间经过C和D参考系。

2.7 Operators——齐次变换矩阵

齐次变换矩阵做为运算子。对向量进行移动旋转操作。类似mapping,只不过mapping是将B参考系的向量映射到A参考系,而operator是将A参考系向量运算到与B参考系相同的向量下时,此时这个向量相对A参考系的坐标位置。
示例(先旋转再移动):
在这里插入图片描述
齐次变换矩阵做为运算子。对参考系进行与向量相反的移动旋转操作。即当看作是对向量做运算时,将向量向前移动,参考系不动,当看作对参考系做运算时,相当于将参考系向后移,向量不动。
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
示例:
在这里插入图片描述

2.8 Transformation Matrix

连续运算   A P = B A T   B P = B A T C B T   C P = [ B A R C B R   A P B   o r g + B A R   B P C   o r g 0 0 0 1 ] = C A T   C P {_\ ^A}P={_B^A}T{_\ ^B}P={_B^A}T{_C^B}T{_\ ^C}P=\left[\begin{matrix}{_B^A}R{_C^B}R&{_\ ^A}P_{B\ org}+{_B^A}R{_\ ^B}P_{C\ org}\\\begin{matrix}0&0&0\\\end{matrix}&1\\\end{matrix}\right]={_C^A}T{_\ ^C}P  AP=BAT BP=BATCBT CP=[BARCBR000 APB org+BAR BPC org1]=CAT CP将C参考系种的向量转换到A坐标系
在这里插入图片描述
齐次矩阵的逆矩阵: B A T = [ B A R 3 × 3   A P B   o r g   3 × 1 0 0 0 1 ] 4 × 4 {_B^A}T=\left[\begin{matrix}{_B^A}R_{3\times3}&{_\ ^A}P_{{B\ org\ }_{3\times1}}\\\begin{matrix}0&0&0\\\end{matrix}&1\\\end{matrix}\right]_{4\times4} BAT=[BAR3×3000 APB org 3×11]4×4
B A T − 1 = A B T = [ B A R T − B A R T   A P B   o r g 0 0 0 1 ] {_B^A}T^{-1}={_A^B}T=\left[\begin{matrix}{_B^A}R^T&-{_B^A}R^T{_\ ^A}P_{B\ org}\\\begin{matrix}0&0&0\\\end{matrix}&1\\\end{matrix}\right] BAT1=ABT=[BART000BART APB org1]
向量变换过程中的左乘和右乘:
在这里插入图片描述

  1. operator角度:某一个在{A}的向量,经过与{B}相同的变换,与{B}中向量重合。左乘
  2. mapping角度:某一个在{B}参考系中的向量,经过变换后,以{A}参考系表达该向量。右乘

以固定的{A}或者移动的{B}为基准做移动旋转操作,变换矩阵应该用不同的连乘方式。


总结

本文主要包含了基础性的矩阵内容笔记,为接下来是正、逆运动学部分做准备,下一篇是正、逆运动学部分内容笔记。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值