位姿、线性变换与坐标变换
位姿、线性变换、坐标变换其实是同一个矩阵 BAT 在不同视角下的名字。内旋、外旋、左乘、右乘容易混淆,是因为缺少科学的符号。一旦问题复杂,直观和直觉靠不住,只能靠代数符号推理。
为了简化符号,数学上经常会用同一个符号来表示能够相互确定的一组对象,比如:
A 可能指:{参考系、参考系的一组基、基张成的列空间、参考系的矩阵、一个线性变换、线性变换对应的矩阵}。
但在具体场景下,A只可能是其中的一个。
例如:
- BAT=A−1B 中左边的A是参考系,右边的A是矩阵,两者可以相互确定。
- P2=AP1 中的A是矩阵,P2=A(P1) 中的A是线性变换,大多数情况无需区分。
BAT 有三个含义(矩阵形式一样,能相互确定):
- P1: B系在A系中的位姿(姿态矩阵)
- P2: A系到B系的过渡矩阵(用于坐标变换)
- P3: A系到B系的运动算子作用(用于线性变换)
约定
-
P1: A, B, C 是空间中的参考系或其标准正交基,或正交基对应的矩阵。
-
T, R, M 是线性变换或其矩阵。
-
AT 特指A系中的线性变换或其矩阵。
-
P, P1, P2 是与参考系无关的点。
-
AP 是点P在A系中的坐标列向量。
-
符号左上角和左下角是两个参考系。
-
P2: [a1,a2,...,an] 是A系的基,[b1,b2,...,bn] 是B系的基,aj 和 bj 都是n维列向量。
一个坐标系可以用它的基表示,故 A=[a1,...,an],B=[b1,...,bn]。aj 和 bj 的表示依赖世界系 [e1,...,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: BAT 是B系在A系中的位姿,指系B每个基在A系的坐标表示,即:
[b1,...,bn]=[a1,...,an]⋅BAT
BAT=A−1B
ABT=B−1A
BAT⋅ABT=I
-
P6: 常用线性变换用“作用”描述,如拉伸、旋转、平移、镜像、透视,抽象线性变换只能用矩阵描述。
-
P7: 作用M是线性变换,M乘点是对点变换,M乘矩阵可看作对多个点变换,也可看作对坐标系变换。
-
P8: 线性变换M在A系的矩阵 AM 与在B系的矩阵 BM 是相似矩阵。
AP2=AMAP1
BP2=BMBP1
BP2=ABT AM BAT BP1
BM=ABT AM BAT=ABT AM (ABT)−1
定理1:坐标变换定理
AP=BAT BP
坐标变换定理描述了同一个点P在两个系中的关系。
- B=[b1,...,bn]=[a1,...,an]C=AC,C是过渡矩阵
- AP=[p1,...,pn]T,BP=[p1′,...,pn′]T,P=AAP=BBP=ACBP
- AP=CBP,C就是 BAT
- 若A取I=[e1,...,en],则 B=C=BAT
定理2:线性变换定理
AP2=BAT AP1
令 AP2=MAP1
线性变换定理描述了在同一个系中两个点的关系(线性变换的特点是左上角在一个系中)。
M 产生的作用就是A系到B系的作用,B系是假想出来的,P1跟随B系一起运动到达P2。
P2在B系的坐标和P1在A系的坐标一样,假定为 V=[v1,...,vn]T。
即有:
- BP2=AP1=V
- P1=AAP1=AV
- P2=BBP2=BV
- AP2=MAP1=BAT BP2=BAT AP1
故 M=BAT
定理3:链式变换定理
CAT=BAT CBT
不同解释延伸出有趣的内外旋定理。
- AP=BATBP=CATCP
- BP=CBTCP
- AP=BATCBTCP=CATCP
- BATCBT=CAT
定理4:内外旋定理
该定理源于 CAT=BATCBT 的两种解释。
- 本地系的作用是内旋用右乘。
- 世界系作用是外旋用左乘。

达到上图状态有两种方式:
方式1:运动系,内旋,右乘
- ABC重合
- BC相对A运动 BAT
- C相对B运动 CBT
- CAT=BATCBT,即先 BAT 作用,后 CBT 作用,都是相对运动系作用。
方式2:世界系,外旋,左乘
- ABC重合
- C相对AB运动 CBT
- BC相对A运动 BAT
- CAT=BATCBT,即先 CBT 作用,后 BAT 作用,都是相对世界系作用。
例1:平面上绕点 (x,y) 逆时针旋转 θ 的线性变换 M
- A系为世界系
- B系由A系平移到 (x,y) 得到
- C系由B系逆时针旋转 θ 得到
- P1 绕B系原点逆时针旋转 θ 到达 P2,求在A系中 P1 到 P2 的线性变换 M,即 AM

AP1=BATCBTCP1
AP2=BATCBTCP2
CP2=CBTCP1
AP2=MAP1
联立上式可解得 M=BATCBTABT,可见 M 与 CBT 是相似阵。
这是因为绕 (x,y) 旋转 θ 这个线性变换在A系中的矩阵是 M,在B系中的矩阵是 CBT,线性变换在不同基中的矩阵是相似阵。
将
BAT=100010xy1
CBT=cosθsinθ0−sinθcosθ0001
ABT=(BAT)−1=100010xy1−1
带入上式得到:
M=cosθsinθ0−sinθcosθ0(1−cosθ)x+sinθy−sinθx+(1−cosθ)y1
其中 M 表示在世界系下,绕点 (x,y) 逆时针旋转 θ 的齐次变换矩阵。
例2:三维空间中绕定轴 k 旋转 θ 的线性变换 M
- k 为定轴方向矢量,作用 M 是将点绕 k 轴旋转 θ
- A为世界系
- A'、B' 的z轴与 k 重合
- B系由A系绕 k 轴旋转 θ 得到,B'由A'绕 k 轴旋转 θ 得到
- B系在A系中的位姿就是 M=BAR
当 θ=0 时,A与B重合,A'与B'重合,M 作用于A和A'得到B和B'。
B=M(A)=MA(M把A系变成B系)
B′=M(A′)=MA′
B−1B′=(MA)−1MA′=A−1A′
A′AR=B′BR=[n,o,k](k为定轴,n和o可略去)
A为世界系,A'在A中的位姿为 [n,o,k]
