Euler Angle 과 Roll Pitch Yaw
Euler Angle(오일러 각) 과 Roll Pitch Yaw에 대해서 알아보자.
3D Rotation Matirx
로봇공학을 하다보면 필수적으로 3D Rotation Matrix에 대해서 접하게 된다.
3D Rotation Matrix란 좌표계 간의 회전 변환 관계를 나타내기 위해 사용하는 행렬이다. 우리가 사는 세상(World)은 3차원이므로 로봇을 해석할 때, 여러 좌표계들이 존재하는데 이 좌표계 간의 회전 변환 관계를 3D Rotation Matrix를 사용하여 표현한다.
3D Rotation Matrix를 어떻게 사용하는지 예를 들어 알아보자.
위 그림과 같이 점 P가 존재할 때, 좌표계 $(x,y,z)$로도 점 P를 표현할 수 있고, 좌표계 $(u,v,w)$로도 점 P를 표현할 수 있다.
좌표계 간의 관계를 행렬로 표현하면 다음과 같이 표현할 수 있다.
이 3X3 행렬을 표현하기 위해선 총 9개의 원소가 필요하다.
하지만 하나의 행렬을 표현하기 위해 9개의 원소를 하나하나 다 찾아서 쓴다는 것은 너무 비효율적이다. 우리는 회전을 표현할 때 회전이 이루어진 축과 회전이 이루어진 각도를 활용하여 얼마든지 회전 행렬을 표현할 수 있다.
Euler Angle이란
Euler Angle은 강체의 자세를 좌표축의 회전으로 표현하는 여러 방법 가운데 하나로 3X3 행렬을 직관적으로 이해하고, 행렬의 원소를 단 3개의 Parameter로 간략하게 표현하기 위해 사용하는 방법이다.
Euler Angle을 이해하라면 다음과 같은 기호를 이해해야한다.
$R(\hat{z}, \theta)$ 는 $\theta$가 양수일 경우 Z축을 기준으로 $\theta$만큼 축을 반시계 방향으로 돌렸다는 것을 의미한다.
이를 3X3 행렬로 표현하면 다음과 같다.
Euler Angle을 이해하려면 또 하나 알아야 할 사실이 있다.
회전 축을 돌릴 때, 그 직전의 회전 축을 기준으로 회전하는 경우 post-multiplication이라는 규칙을 사용하고, 고정된 회전 축을 기준으로 회전하는 경우 pre-multiplication라는 규칙을 사용한다는 것이다.
이는 Euler Angle과 Roll Pitch Yaw를 이해하려면 꼭 알아야 할 규칙이다.
post-multiplication의 경우 행렬을 뒤에다 곱하는 것을 말하고, pre-multiplication의 경우 행렬을 앞에다 곱하는 것을 말한다.
Euler Angle은 회전한 축을 기준으로 축을 회전 시키기 때문에 post-multiplication 규칙을 사용한다.
또한 축을 회전 시키는 순서에 따라 여러가지 Type으로 나뉜다.
회전 순서에 따라 XYZ,ZXY,ZXZ,XYX,YXY,YZY,ZYZ,ZXZ,XZY,YXZ,YZX,ZYX와 같이 12개의 서로 다른 표현법이 존재한다.
Euler Angle 종류 중 하나인 ZYZ type을 기호로 나타내면 다음과 같다.
이를 Matrix로 나타내면 다음과 같다.
Roll Pitch Yaw란
Roll Pitch Yaw도 강체의 자세를 좌표축의 회전으로 표현하는 방법이다.
단, Roll Pitch Yaw같은 경우 고정된 회전 축을 기준으로 회전을 표현한다.
Roll Pitch Yaw를 활용해서 x축으로 $\psi$ 만큼, y축으로 $\theta$ 만큼, z축으로 $\phi$ 만큼 회전한 물체를 다음과 같이 그림으로 나타낼 수 있다.
Roll은 x축을 기준으로 회전한 각도, Pitch는 y축을 기준으로 회전한 각도, Yaw는 z축을 기준으로 회전한 각도이다.
Roll-Pitch-Yaw는 고정 frame을 기준으로 회전을 진행하기 때문에 pre-multiplication 규칙을 적용하여 행렬을 곱해준다.
Roll-Pitch-Yaw를 행렬로 표현하면 아래와 같다.
Euler Angle과 Roll Pitch Yaw 관계
Euler Angle과 Roll Pitch Yaw 모두 3D Rotation Marix를 표현하는 방법들이다.
그렇다면 이 두 방법의 관계는 어떻게 될까?
답부터 말하면 Euler Angle을 표현하는 한 가지 방법이 Roll Pitch Yaw와 표현 방법이 같다.
Euler angle Type 중 ZYX 표현 방법은 Roll Pitch Yaw (XYZ) 표현 방법과 같은데 이는 pre-multiplication와 post-multiplication 규칙 때문에 생긴 결과이다.
Euler Angle의 한계
Euler Angle을 사용하면 3개의 Parameter로 Rotation Matrix를 표현할 수 있지만, 치명적인 단점을 가지고 있다.
3개의 자유도 중 1개의 자유도를 잃어버리는 짐벌락(Gimbal lock) 현상이다.
짐벌락은 Euler (gimbal lock) Explained 영상에 자세히 설명이 나와있다.
이러한 Euler Angle의 단점을 보완하기 위해 쿼터니안이라는 방법이 존재한다.
또한 Euler Angle의 경우 3개의 축에 대해서 종속적이기 때문에 2개의 오일러 각도 사이를 보간(Interpolation)할 때에도 문제가 발생한다. 따라서 물체의 회전을 표현할 때는 Euler Angle을 사용하지 않는다.
예를 들어 $R_{ZYX} (0,180,0) = R_{ZYX} (180,0,180)$은 같은 물체 방향을 표현한다. 이 때 $(0,0,0) → (0,180,0)$으로 보간을 하게 되면 $(0,90,0)$의 결과가 나오지만, $(0,0,0) → (180,0,180)$으로 보간을 하게 되면 $(90,0,90)$으로 결과가 나오므로써 서로 완전히 다른 방향으로 회전을 하게 된다.
References
- Euler Angle 개념 정리
- [영상 Geometry #5] 3D 변환 - 다크프로그래머
- Three-Dimensional Rotation Matrices
- Are Euler angles the same as pitch, roll and yaw?
- Euler ZYX Convention
- Yaw, pitch, and roll rotations
댓글남기기