“运动是相对的。”
让我们想想,达成同一个变换的结果,比如把点 (1,1) 变到点 (2,3) 去,你可以有两种做法。第一,坐标系不动,点动,把 (1,1)点挪到 (2,3) 去。第二,点不动,变坐标系,让 x 轴的度量(单位向量)变成原来的 1/2,让 y 轴的度量(单位向量)变成原先的 1/3,这样点还是那个点,可是点的坐标就变成 (2,3) 了。方式不同,结果一样。
从第一个方式来看,那就是我在《理解矩阵》1/2 中说的,把矩阵看成是运动描述,矩阵与向量相乘就是使向量(点)运动的过程。在这个方式下,Ma=b 的意思是:“向量 a 经过矩阵 M 所描述的变换,变成了向量 b。”
而从第二个方式来看,矩阵 M 描述了一个坐标系,姑且也称之为 M。那么:Ma=b 的意思是:
“有一个向量,它在坐标系 M 的度量下得到的度量结果向量为 a,那么它在坐标系 I 的度量下,这个向量的度量结果是 b。”
这里的 I 是指单位矩阵,就是主对角线是 1,其他为零的矩阵。
而这两个方式本质上是等价的。
欧拉角、姿态角、四元数、旋转矩阵、方向余弦矩阵、轴角
在空间中如何表示一个刚体的状态

https://zhuanlan.zhihu.com/p/67305147
Rotation Matrix
BAR: 左上角 A 表示基准坐标系,坐标系 B 相对于坐标系 A

表示三维旋转的旋转矩阵 R 是一个 3×3,行列式为 1 的正交矩阵,也就是说它的每个列向量都是单位向量,每两个列向量互相正交(垂直)。
Fixed Angles
x, y, z 三个轴固定,依次旋转
从左到右:绕 XA 旋转,绕 YA 旋转,绕 ZA 旋转

- 由 angles 推算 R
BARXYZ(γ,β,α)=RZ(α)RY(β)RX(α) 特点:先转放右边,后转放左边 v′= BARv=R3R2R1v
注:更换转动顺序后,旋转矩阵值与末姿态都不相同,即若转动角度相同,顺序不同,最终状态不同
BARXYZ(γ,β,α)=RZ(α)RY(β)RX(γ)=cosαsinα0−sinαcosα0001cosβ0−sinβ010sinβ0cosβ1000cosγsinγ0−sinγcosγ - 由 R 推算 angles
BARXYZ(γ,β,α)=r11r21r31r12r22r32r13r23r33 解出 γ,β,α

Euler Angles
欧拉角大概是最常用到的姿态表示方法了,它的思路是把一个三维旋转分解为三个绕坐标轴的旋转。欧拉角使用时最令人困惑的地方在于它的不同定义方法:根据三个坐标轴的不同顺序,可以有 12 种定义方法;根据坐标轴是惯性坐标系(extrinsic)还是体坐标系(intrinsic),可以有 2 种定义方法。因此,一共有 24 种可能的方法来定义欧拉角,而且这些定义方式没有一种是通用的,因此每次使用欧拉角时一定要说明是哪种定义。
个人理解,这里所说的绕惯性坐标系的旋转,也被称为 fixed angles
转动轴不固定,绕被转动转轴去做旋转
从左到右:先根据 ZB 转,再根据 YB 转,最后根据 XB 转

- 由 angles 推算 R【Z-Y-X】
BARZ′Y′X′(α,β,γ)=RZ′(α)RY′(β)RX′(α) 特点:先转放左面,后转放右面
BARZ′Y′X′(α,β,γ)=RZ′(α)RY′(β)RX′(γ)=cosαsinα0−sinαcosα0001cosβ0−sinβ010sinβ0cosβ1000cosγsinγ0−sinγcosγ 实际上 BARZ′Y′X′(α,β,γ)= BARXYZ(γ,β,α)
XYZ Fixed Angles 和 ZYX Euler Angles 的比较

https://zhuanlan.zhihu.com/p/28325851?utm_psn=1832196155464900609
注:更换转动顺序后,旋转矩阵值与末姿态都不相同,即若转动角度相同,顺序不同,最终状态不同
- 由 R 推算 angles【Z-Y-Z】


Quaternions
定义:q=s+xi+yj+zk s,x,y,z∈R
三个虚数单位服从以下运算规则
- i2=j2=k2=−1
- ij=k,jk=i,ki=j
三维旋转可以用单位四元数表示,即 ∣∣q∣∣=qw2+qx2+qy2+qz2=1
Summary
单位四元数可以通过旋转矢量 uθ 来表示三维旋转:
q=[cos(θ/2),sin(θ/2)ux,sin(θ/2)uy,sin(θ/2)uz]
将 θ=−θ,u=−u 代入上式得到 -q,说明 q 和 −q 表示相同的三维旋转。这是单位四元数的重要性质:它与三维旋转是 2 比 1 的对应关系,而非一一对应。
在四种表示方法中:旋转矢量和欧拉角使用三个参数;四元数使用四个参数和一个约束条件(长度为1);旋转矩阵使用九个参数和六个约束条件(矩阵的正交性)。旋转矢量和欧拉角在某些姿态下会出现奇异性,导致其导数趋向无穷大。四元数没有奇异性,但与姿态是 2 比 1 的对应关系。只有旋转矩阵既无奇异性,又与姿态一一对应。
Homogeneous transformation matrix
整合表达刚体的状态:把平动和转动用一个矩阵表示
在刚体(Rigid body)上建立 frame,常建立在质心上
- 平动:由 body frame 的原点位置判定
- 转动:由 body frame 的姿态判定
T=[R0p1]=r11r21r310r12r22r320r13r23r330p1p2p31(1) - 对平动复合
- 对转动复合
- 同时平动转动


原因:旋转矩阵一致,位移矩阵一致,当然一样
齐次变换矩阵的三种用法

连续运算法则

premultiply 左乘 固定轴
postmultiply 右乘