四轴飞行器基础知识学习笔记(一)— 旋转矩阵与欧拉角的关系
需要的数学知识有:
- 向量代数
- 解析几何
- 线性代数
参考书籍及文档:
- <<惯性器件与惯性导航系统>>
- Development of a quaternion-based quadrotor control system
1.方向余弦矩阵的几何意义
在研究三维立体的方向余弦矩阵之前先了解二维平面的方向余弦矩阵,设一矢量 R \bm{R} R在二维平面O x y {xy} xy坐标系中有分量 R x i {R}_x\bm{i} Rxi和 R y j {R}_y\bm{j} Ryj,二维平面O x 1 y 1 {x_1 y_1} x1y1坐标系为O x y {xy} xy坐标系逆时针旋转 θ \theta θ得到,矢量 R \bm{R} R在O x 1 y 1 {x_1y_1} x1y1坐标系分量为 R x 1 i 1 {R}_{x_1}\bm{i_1} Rx1i1和 R y 1 j 1 {R}_{y_1}\bm{j_1} Ry1j1,所以可以得到如下公式:
R = R x i + R y j R = R x 1 i 1 + R y 1 j 1 \begin{aligned} \bm{R} &= {R}_{x}\bm{i} + {R}_{y}\bm{j} \\ \bm{R} &= {R}_{x_1}\bm{i_1} + {R}_{y_1}\bm{j_1} \end{aligned} RR=Rxi+Ryj=Rx1i1+Ry1j1
由上式可以得到:
R x i + R y j = R x 1 i 1 + R y 1 j 1 {R}_{x}\bm{i} + R_{y}\bm{j} = {R}_{x_1}\bm{i_1} + {R}_{y_1}\bm{j_1} Rxi+Ryj=Rx1i1+Ry1j1
在等式两端同时乘以 i 1 \bm{i_1} i1或者 j 1 \bm{j_1} j1,得到如下等式:
i 1 ⋅ ( R x i + R y j ) = i 1 ⋅ ( R x 1 i 1 + R y 1 j 1 ) j 1 ⋅ ( R x i + R y j ) = j 1 ⋅ ( R x 1 i 1 + R y 1 j 1 ) \begin{aligned} \bm{i_1} \cdot ({R}_{x}\bm{i} + R_{y}\bm{j}) &= \bm{i_1} \cdot ({R}_{x_1}\bm{i_1} + {R}_{y_1}\bm{j_1}) \\ \bm{j_1} \cdot ({R}_{x}\bm{i} + R_{y}\bm{j}) &= \bm{j_1} \cdot ({R}_{x_1}\bm{i_1} + {R}_{y_1}\bm{j_1}) \end{aligned} i1⋅(Rxi+Ryj)j1⋅(Rxi+Ryj)=i1⋅(Rx1i1+Ry1j1)=j1⋅(Rx1i1+Ry1j1)
根据向量点乘公式 a ⋅ b = ∣ a ∣ ∣ b ∣ cos ∠ ( a , b ) \bm{a} \cdot \bm{b} = |a||b|\cos \angle{(\bm{a},\bm{b})} a⋅b=∣a∣∣b∣cos∠(a,b),因为 i \bm{i} i和 j \bm{j} j是单位向量,所以 ∣ i ∣ = 1 , ∣ j ∣ = 1 |i| = 1, |j| = 1 ∣i∣=1,∣j∣=1,化简得到:
R x 1 = R x i ⋅ i 1 + R y j ⋅ i 1 R y 1 = R x i ⋅ j 1 + R y j ⋅ j 1 \begin{aligned} {R}_{x_1} &= {R}_{x}\bm{i} \cdot \bm{i_1} + R_{y}\bm{j} \cdot \bm{i_1} \\ {R}_{y_1} &= {R}_{x}\bm{i} \cdot \bm{j_1} + R_{y}\bm{j} \cdot \bm{j_1} \end{aligned} Rx1Ry1=Rxi⋅i1+Ryj⋅i1=Rxi⋅j1+Ryj⋅j1
根据图中 i \bm{i} i与 i 1 \bm{i_1} i1及 j \bm{j} j与 j 1 \bm{j_1} j1夹角为 θ \theta θ, i \bm{i} i与 i 1 \bm{i_1} i1及 j \bm{j} j与 j 1 \bm{j_1} j1夹角为 90 ° − θ 90\degree-\theta 90°−θ,继续将上式化简得到:
R x 1 = R x cos ( θ ) + R y cos ( 90 ° − θ ) = R x cos ( θ ) + R y sin ( θ ) R y 1 = R x cos ( 90 ° + θ ) + R y cos ( θ ) = − R x sin ( θ ) + R y cos ( θ ) \begin{aligned} {R}_{x_1} &= {R}_{x}\cos(\theta) + R_{y}\cos(90\degree-\theta) = {R}_{x}\cos(\theta) + R_{y}\sin(\theta)\\ {R}_{y_1} &= R_{x}\cos(90\degree+\theta) + {R}_{y}\cos(\theta) = -{R}_{x}\sin(\theta) + R_{y}\cos(\theta) \end{aligned} Rx1Ry1=Rxcos(θ)+Rycos(90°−θ)=Rxcos(θ)+Rysin(θ)=Rxcos(90°+θ)+Rycos(θ)=−Rxsin(θ)+Rycos(θ)
使用矩阵形式表示,则有:
[ R x 1 R y 1 ] = [ cos ( θ ) sin ( θ ) − sin ( θ ) cos ( θ ) ] [ R x R y ] \begin{bmatrix} {R}_{x_1} \\ {R}_{y_1} \end{bmatrix} = \begin{bmatrix} \cos(\theta) & \sin(\theta) \\ -\sin(\theta) & \cos(\theta) \end{bmatrix} \begin{bmatrix} {R}_{x} \\ {R}_{y} \end{bmatrix} [Rx1Ry1]=[cos(θ)−sin(θ)sin(θ)cos(θ)][RxRy