从传感器到姿态:旋转矩阵、四元数与欧拉角的定义、转换及坐标系应用全解


摘要

本文系统讲解了三维空间中最常用的旋转表示形式——旋转矩阵、四元数 与 欧拉角。
从数学定义出发,逐步推导它们之间的转换关系,
再结合实际传感器采集过程(IMU、VIO、LiDAR等)说明如何获得旋转信息,
最后给出坐标系应用与工程中最常用的转换流程,
从而真正理解“旋转”从几何到工程实现的完整闭环。


一、三种旋转表示的基本定义

在三维空间中,旋转可以有多种数学表示方式。
最常用的三种是 旋转矩阵 (Rotation Matrix)、四元数 (Quaternion) 和 欧拉角 (Euler Angles)。
它们都描述同一个物理过程——绕某个轴旋转一定角度,但适用场景不同。

表示方式定义特点是否有奇异点
旋转矩阵 R R R3×3 正交矩阵,满足 R ⊤ R = I , det ⁡ R = 1 R^\top R=I, \det R=1 R⊤R=I,detR=1直观、线性代数友好无奇异,但参数冗余
四元数 q = ( w , x , y , z ) q=(w,x,y,z) q=(w,x,y,z)单位四元数 q = cos ⁡ ( θ 2 ) + n sin ⁡ ( θ 2 ) q=\cos(\tfrac{\theta}{2})+\mathbf{n}\sin(\tfrac{\theta}{2}) q=cos(2θ​)+nsin(2θ​)紧凑、数值稳定无奇异、±q 等价
欧拉角 (roll, pitch, yaw)按固定顺序依次旋转(如 Z–Y–X)可读性强有奇异点(万向节锁)

二、三者之间的相互转换公式

1️⃣ 四元数 → 旋转矩阵

R ( q ) = [ 1 − 2 ( y 2 + z 2 ) 2 ( x y − w z ) 2 ( x z + w y ) 2 ( x y + w z ) 1 − 2 ( x 2 + z 2 ) 2 ( y z − w x ) 2 ( x z − w y ) 2 ( y z + w x ) 1 − 2 ( x 2 + y 2 ) ] R(q)= \begin{bmatrix} 1-2(y^2+z^2) & 2(xy-wz) & 2(xz+wy)\\ 2(xy+wz) & 1-2(x^2+z^2) & 2(yz-wx)\\ 2(xz-wy) & 2(yz+wx) & 1-2(x^2+y^2) \end{bmatrix} R(q)= ​1−2(y2+z2)2(xy+wz)2(xz−wy)​2(xy−wz)1−2(x2+z2)2(yz+wx)​2(xz+wy)2(yz−wx)1−2(x2+y2)​ ​

这来自四元数夹乘 q v q − 1 q\mathbf{v}q^{-1} qvq−1,
表示用四元数旋转向量的矩阵化形式。


2️⃣ 旋转矩阵 → 四元数

w = 1 2 1 + t r R , x = r 32 − r 23 4 w ,   y = r 13 − r 31 4 w ,   z = r 21 − r 12 4 w . w=\tfrac12\sqrt{1+\mathrm{tr}R},\quad x=\frac{r_{32}-r_{23}}{4w},\ y=\frac{r_{13}-r_{31}}{4w},\ z=\frac{r_{21}-r_{12}}{4w}. w=21​1+trR ​,x=4wr32​−r23​​, y=4wr13​−r31​​, z=4wr21​−r12​​.


3️⃣ 欧拉角 → 四元数(Z–Y–X 顺序)

w = c ϕ c θ c ψ + s ϕ s θ s ψ , x = s ϕ c θ c ψ − c ϕ s θ s ψ , y = c ϕ s θ c ψ + s ϕ c θ s ψ , z = c ϕ c θ s ψ − s ϕ s θ c ψ , \begin{aligned} w &= c_\phi c_\theta c_\psi + s_\phi s_\theta s_\psi,\\ x &= s_\phi c_\theta c_\psi - c_\phi s_\theta s_\psi,\\ y &= c_\phi s_\theta c_\psi + s_\phi c_\theta s_\psi,\\ z &= c_\phi c_\theta s_\psi - s_\phi s_\theta c_\psi, \end{aligned} wxyz​=cϕ​cθ​cψ​+sϕ​sθ​sψ​,=sϕ​cθ​cψ​−cϕ​sθ​sψ​,=cϕ​sθ​cψ​+sϕ​cθ​sψ​,=cϕ​cθ​sψ​−sϕ​sθ​cψ​,​

其中 c ϕ = cos ⁡ ( ϕ / 2 ) , s ϕ = sin ⁡ ( ϕ / 2 ) c_\phi=\cos(\phi/2), s_\phi=\sin(\phi/2) cϕ​=cos(ϕ/2),sϕ​=sin(ϕ/2)。


4️⃣ 四元数 → 欧拉角

ϕ = arctan ⁡ 2 ( 2 ( w x + y z ) , 1 − 2 ( x 2 + y 2 ) ) , θ = arcsin ⁡ ( 2 ( w y − z x ) ) , ψ = arctan ⁡ 2 ( 2 ( w z + x y ) , 1 − 2 ( y 2 + z 2 ) ) . \begin{aligned} \phi &= \arctan2(2(wx+yz), 1-2(x^2+y^2)),\\ \theta &= \arcsin(2(wy-zx)),\\ \psi &= \arctan2(2(wz+xy), 1-2(y^2+z^2)). \end{aligned} ϕθψ​=arctan2(2(wx+yz),1−2(x2+y2)),=arcsin(2(wy−zx)),=arctan2(2(wz+xy),1−2(y2+z2)).​

当 pitch=±90° 时会出现奇异点(万向节锁)。


5️⃣ 欧拉角 ↔ 旋转矩阵

R = [ 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 = \begin{bmatrix} c_\psi c_\theta & c_\psi s_\theta s_\phi - s_\psi c_\phi & c_\psi s_\theta c_\phi + s_\psi s_\phi\\ s_\psi c_\theta & s_\psi s_\theta s_\phi + c_\psi c_\phi & s_\psi s_\theta c_\phi - c_\psi s_\phi\\-s_\theta & c_\theta s_\phi & c_\theta c_\phi \end{bmatrix} R= ​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ϕ​​ ​


三、在坐标系中的实际作用

设有两个坐标系:

  • 世界系 { W } \{W\} {W}
  • 机体系 { B } \{B\} {B}

若同一点在两坐标系下的坐标为:
p W = R W B p B + t W B , \mathbf{p}_W = R_{WB}\mathbf{p}_B + \mathbf{t}_{WB}, pW​=RWB​pB​+tWB​,
其中:

  • R W B R_{WB} RWB​:从机体系到世界系的旋转;
  • t W B \mathbf{t}_{WB} tWB​:机体系原点在世界系中的位置。

使用四元数时:
p W = q W B p B q W B − 1 + t W B . \mathbf{p}_W = q_{WB}\mathbf{p}_B q_{WB}^{-1} + \mathbf{t}_{WB}. pW​=qWB​pB​qWB−1​+tWB​.
逆变换为:
p B = R W B ⊤ ( p W − t W B ) . \mathbf{p}_B = R_{WB}^\top(\mathbf{p}_W - \mathbf{t}_{WB}). pB​=RWB⊤​(pW​−tWB​).


四、从传感器到姿态矩阵的形成

在实际采集过程中,不同类型传感器输出的姿态信息形式不同:

传感器类型输出形式旋转表示常见来源
IMU / 飞控四元数 + 欧拉角✅ 四元数Madgwick / EKF 姿态融合
视觉 / SLAM位姿矩阵 (T=[R, t])✅ 旋转矩阵PnP、SVD、Bundle Adjustment
LiDAR / 点云位姿矩阵 T T T✅ 旋转矩阵ICP / NDT 配准
混合导航系统 (VIO / INS)同时输出四元数与矩阵两者兼具内部自动转换

实际例子

1️⃣ IMU 驱动(ROS sensor_msgs/Imu)

orientation:
  x: 0.12
  y: -0.01
  z: 0.36
  w: 0.92

→ 可直接转为旋转矩阵 R ( q ) R(q) R(q)。

2️⃣ VIO 或 SLAM 系统

T = [ R | t ]

→ 从矩阵中提取 R,即为姿态旋转矩阵。


五、常用旋转表示的工程应用

表示方式常用场景优点缺点
旋转矩阵点云配准、坐标变换链无奇异、线性运算方便存储冗余
四元数姿态融合、VIO / SLAM紧凑稳定、可插值抽象、不直观
欧拉角调试与人机界面易读奇异性强、顺序依赖

✅ 在大多数工程系统(ROS、SLAM、IMU融合)中:
姿态存储用四元数,计算与坐标变换用旋转矩阵。


六、总结:从传感器到坐标变换的闭环

层次内容说明
定义层三种旋转表示(R, q, 欧拉角)数学表达方式
转换层它们的相互转换公式理论统一
传感器层IMU→q, SLAM→R实际采集形式
坐标层 p W = R W B p B + t W B \mathbf{p}_W = R_{WB}\mathbf{p}_B + t_{WB} pW​=RWB​pB​+tWB​坐标变换本质
工程层四元数 ↔ 矩阵最常用稳定高效的标准方案

🧭 一句话总结:
在现实中,我们从传感器获得的姿态往往以四元数或旋转矩阵的形式存在;
它们通过互相转换参与坐标系变换与数据融合;
四元数 ↔ 旋转矩阵 是工程实现中最稳定、最通用的姿态转换形式。

最后,有兴趣的话可以看看我前面的这篇关于四元数的推导文章加深印象:
从几何到四元数:三维旋转的完整推导与工程意义

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐