位姿,线性变换与坐标变换.yuque
内旋,外旋, 左乘,右乘很容易把人绕晕是因为缺少一种科学的符号。
 自己的符号,如果经常变不稳定,对推理和理解都很不利。
 一旦问题复杂起来, 直观和直觉靠不住, 只能靠代数符号来推理
 约定
 P1: A,B,C…是空间中的标准正交基
 P2: [a1,a2,…an] 是系A的基, [b1,b2,…bn] 是系B的基,其中aj 和bj 都是n维列向量
 一个坐标系可以用它的基表示,故A=[a1,a2,…an] B=[b1,b2…bn]。 aj 和 bj 的表示需要依赖世界系[e1,e2,…en]
 P3:AP是点P在A系中的齐次坐标A [Px,Py,Pz,1]T或欧式坐标A[Px,Py,Pz]T ,根据上下文区分
 P4: AT是A系的中的线性变换, 满足AP2=AT * AP1 (就是把P1变换到P2点)
 P5: ABT 是B系在A系中的位姿,指的是系B的每一个基在系A的坐标表示即
 [b1,b2…bn]=[a1,a2,…an] ABT
 ABT * BAT =I
 P6: 在线性代数中 T * 0=0 ,即所有系原点重合,但在齐次坐标中根本不存在[0,0,0,0]T, 而是用 [0,0,0,1]T 表示原点,所以齐次坐标可处理平移问题
 P7: 常用的线性变换使用作用来描述,比如拉伸,旋转,平移,镜像,透视,而抽象的线性变换则只能使用矩阵来描述。
 定理1: 坐标变换定理 AP= ABT BP
 坐标变换定理描述了同一个点P在两个系中的关系
 P1: B=[b1,b2…bn]=[a1,a2,…an]C=AC ; (C是过渡矩阵)
 P2: AP=[p1,p1,…pn]T BP=[p1,p1,…pn,]T P=AAP=BBP=ACBP
 P3: AP=CBP ; C就是ABT
 P4: 如果P1中的A取I=[e1,e2…en] 则 B=C=ABT
 定理2: 线性变换定理 AP2= ABT AP1
 令 AT = ABT , 则 AP2= AT AP1
 线性变换定理描述了在同一个系中两个点的关系 (线性变换的特点是左上角在一个系中)
 AT 产生的作用就是A系到B系的作用
 定理3: ACT=ABTBCT
 虽然这个定理很好证明,但对它的不同解释延伸出了很多有意思的结论,内旋,外旋都来源于此
 P1: AP= ABT BP =ACT CP BP= BCT CP
 P2: AP= ABT BCT CP =ACT CP
 P3: ABT BCT =ACT
 定理4: 内外旋定理
 该定理源于对公式 ACT=ABTBCT 的两种解释
 本地系的作用是内旋用右乘 , 世界系作用是外旋用左乘
达到上图的状态有两种方式
 方式1: 运动系,内旋,右乘的解释
 P1: ABC重合
 P2: BC相对A运动ABT
 P3: C相对B运动BcT
 ACT=ABTBCT 可以看作ABT与BCT 的合成, 上面都是相对运动系作用
 方式2: 世界系,外旋,左乘的解释
 P1: ABC重合
 P2: C相对AB运动BcT
 P3: BC相对A运动ABT
 ACT=ABTBCT 可以看作是先BcT作用后ABT作用, 上面都是相对世界系作用
 例1: 在平面上,求绕点(x,y)逆时针旋转θ对应的线性变换
 P1: A系为世界系
 P2: B系由A系平移到(x,y)得到
 P3: C系由B系逆时针旋转θ得到
 P4: P1绕B系原点逆时针旋转θ到达P2 ,求在A系中P1到P2的线性变换
AP1=ABTBCTCP1
 AP2=ABTBCTCP2
 CP2=BCTCP1 ;(同时有BP2=BCTBP1)
 AP2=MAP1
 联立上面方程可解得 M=ABTBCTBAT (把前三个方程带入第4个方程)
 将ABT= [ 1 0 x 0 1 y 0 0 1 ] \begin{bmatrix} 1 &0 & x \\ 0 & 1 & y \\ 0 & 0 &1 \end{bmatrix}  100010xy1  BCT= [ cos  θ − sin  θ 0 sin  θ cos  θ 0 0 0 1 ] \begin{bmatrix} \cos \theta & -\sin \theta & 0 \\ \sin \theta & \cos \theta & 0 \\ 0 & 0 &1 \end{bmatrix}  cosθsinθ0−sinθcosθ0001  BAT= [ 1 0 x 0 1 y 0 0 1 ] − 1 \begin{bmatrix} 1 &0 & x \\ 0 & 1 & y \\ 0 & 0 &1 \end{bmatrix} ^{-1}  100010xy1 −1
 带入上式得到
 M= [ cos  θ − sin  θ ( 1 − c o s θ ) ∗ x + s i n θ ∗ y sin  θ cos  θ − s i n θ ∗ x + ( 1 − c o s θ ) ∗ y 0 0 1 ] \begin{bmatrix} \cos \theta & -\sin \theta & (1-cos\theta)*x+sin\theta*y \\ \sin \theta & \cos \theta & -sin\theta*x+(1-cos\theta)*y \\ 0 & 0 &1 \end{bmatrix}  cosθsinθ0−sinθcosθ0(1−cosθ)∗x+sinθ∗y−sinθ∗x+(1−cosθ)∗y1 
 例1的过程可以自然的推广到三维中绕定轴旋转对应的线性变换
 为