使用SymPy进行欧拉角与RPY角的符号与数值计算
1. 基本概念与公式
1.1 RPY角定义
RPY角(Roll-Pitch-Yaw)是一种描述三维姿态的泰特-布莱恩角表示法,由三个绕固定参考系坐标轴的旋转组成:
- 偏航角(Yaw, ψ ψ ψ):绕固定Z轴的旋转
- 俯仰角(Pitch, θ θ θ):绕固定Y轴的旋转
- 滚转角(Roll, φ φ φ):绕固定X轴的旋转
标准旋转顺序为:先Yaw(z) → 再Pitch(y) → 最后Roll(x) ,数学表示为:
R R P Y = R x ( φ ) ⋅ R y ( θ ) ⋅ R z ( ψ ) R_{RPY} = R_x(φ) \cdot R_y(θ) \cdot R_z(ψ) RRPY=Rx(φ)⋅Ry(θ)⋅Rz(ψ)
1.2 旋转矩阵公式
基本旋转矩阵定义如下:
绕X轴旋转( φ φ φ)
R x ( φ ) = [ 1 0 0 0 cos φ − sin φ 0 sin φ cos φ ] R_x(φ) = \begin{bmatrix} 1 & 0 & 0 \\ 0 & \cos φ & -\sin φ \\ 0 & \sin φ & \cos φ \end{bmatrix} Rx(φ)= 1000cosφsinφ0−sinφcosφ
绕Y轴旋转( θ θ θ)
R y ( θ ) = [ cos θ 0 sin θ 0 1 0 − sin θ 0 cos θ ] R_y(θ) = \begin{bmatrix} \cos θ & 0 & \sin θ \\ 0 & 1 & 0 \\ -\sin θ & 0 & \cos θ \end{bmatrix} Ry(θ)= cosθ0−sinθ010sinθ0cosθ
绕Z轴旋转( ψ ψ ψ)
R z ( ψ ) = [ cos ψ − sin ψ 0 sin ψ cos ψ 0 0 0 1 ] R_z(ψ) = \begin{bmatrix} \cos ψ & -\sin ψ & 0 \\ \sin ψ & \cos ψ & 0 \\ 0 & 0 & 1 \end{bmatrix} Rz(ψ)= cosψsinψ0−sinψcosψ0001
1.3 完整RPY旋转矩阵
将三个基本旋转矩阵相乘,得到完整的RPY旋转矩阵:
R R P Y = R x ( φ ) ⋅ R y ( θ ) ⋅ R z ( ψ ) = [ cos θ cos ψ cos θ sin ψ − sin θ sin φ sin θ cos ψ − cos φ sin ψ sin