logo

3차원 회전변환 행렬: 롤, 피치, 요 📂행렬대수

3차원 회전변환 행렬: 롤, 피치, 요

정의 1

3차원 공간 $\mathbb{R}^{3}$ 에서 벡터를 $x$축, $y$축, $z$축을 기준으로 반시계반향으로 $\theta$ 만큼 회전시키는 행렬 $R_{x}$, $R_{y}$, $R_{z}$ 은 다음과 같다. $$ \begin{align*} R_{x} =& \begin{bmatrix} 1 & 0 & 0 \\ 0 & \cos \theta & - \sin \theta \\ 0 & \sin \theta & \cos \theta \end{bmatrix} \\ R_{y} =& \begin{bmatrix} \cos \theta & 0 & \sin \theta \\ 0 & 1 & 0 \\ - \sin \theta & 0 & \cos \theta \end{bmatrix} \\ R_{z} =& \begin{bmatrix} \cos \theta & - \sin \theta & 0 \\ \sin \theta & \cos \theta & 0 \\ 0 & 0 & 1 \end{bmatrix} \end{align*} $$

관습적으로 $R_{x}$ 를 roll, $R_{y}$ 를 피치pitch, $R_{z}$ 를 yaw라 부르기도 한다.

성질

직교성

  • [1]: 3차원 회전변환 행렬 $R$ 은 직교행렬이다. 다시 말해, 다음이 성립한다. $$ R^{-1} = R^{T} $$

불가환성

  • [2]: 회전변환행렬들의 집합에서는 행렬곱에 대한 교환법칙이 성립하지 않는다. 다시 말해, 두 회전변환행렬 $R_{1}$ 과 $R_{2}$ 에 대해 $R_{1} R_{2} \ne R_{2} R_{1}$ 일 수 있다.

설명

소개된 행렬들은 다름 아닌 3차원 회전변환이기에 큰 의미가 있다. 수학적으로는 그냥 $\mathbb{R}^{3 \times 3}$ 에 속하는 행렬에 불과하지만 이 세상이 3차원이고 우리가 살아가는 세상에서 가장 쓸모 있다. 대표적이랄 것도 없이 기계의 제어에서 빠질 수가 없고, 공학적 응용이라는 맥락에서 행렬의 불가환성non-commutativity은 대칭이동행렬들과 크게 구분된다.

수식에서 주의해야할 점으로는, 롤 $R_{x}$ 과 요 $R_{z}$ 는 해당 축만 내버려두고 2차원 회전변환을 채워놓은 것처럼 생겼지만 피치 $R_{y}$ 는 $\sin$ 의 부호가 반대로 들어가있다는 점이다.

증명

[1]

기하적으로 자명하다. 회전변환행렬 $R$ 이 하나의 축을 기준으로 $\theta$ 만큼 회전시킨다면 $R^{-1}$ 는 $-\theta$ 만큼 거꾸로 회전시키는 행렬이고, $\sin \left( - \theta \right) = - \sin \theta$ 기 때문에 세 종류의 회전변환행렬 모두 $R^{-1} = R^{T}$ 를 만족시킨다.

[2]

곱의 좌우를 바꿨을 때 결과가 달라지는 조합을 적어도 하나만 보여주면 충분하다. $R_{y} \left( \pi / 2 \right)$ 와 $R_{z} \left( \pi / 2 \right)$ 의 곱을 계산해보면 다음과 같다. $$ \begin{align*} R_{y} \left( {{ \pi } \over { 2 }} \right) R_{z} \left( {{ \pi } \over { 2 }} \right) =& \begin{bmatrix} 0 & 0 & 1 \\ 0 & 1 & 0 \\ -1 & 0 & 0 \end{bmatrix} \begin{bmatrix} 0 & -1 & 0 \\ 1 & 0 & 0 \\ 0 & 0 & 1 \end{bmatrix} \\ =& \begin{bmatrix} 0 & 0 & 1 \\ 1 & 0 & 0 \\ 0 & 1 & 0 \end{bmatrix} \\ \ne & \begin{bmatrix} 0 & -1 & 0 \\ 0 & 0 & 1 \\ -1 & 0 & 0 \end{bmatrix} \\ =& \begin{bmatrix} 0 & -1 & 0 \\ 1 & 0 & 0 \\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} 0 & 0 & 1 \\ 0 & 1 & 0 \\ -1 & 0 & 0 \end{bmatrix} \\ =& R_{z} \left( {{ \pi } \over { 2 }} \right) R_{y} \left( {{ \pi } \over { 2 }} \right) \end{align*} $$


  1. Craig. (2013). Introduction to Robotics: Pearson New International Edition PDF eBook: Mechanics and Control: p40 ↩︎