3차원 공간 상에서 로봇의 orientation, 특히 rotation을 나타내는 represenstation 두 가지를 정리한다.
- Euler
- Quarternion
Euler Rotation Sequence
3축 환경에서 Euler rotation은 2개의 축에 대한 불연속적인 회전으로 모든 회전을 표현한다(repetitive, but not consecutive rotations around two axes). 예를 들어 X축에 대해 α, Z축에 대해 β, 다시 X축에 대해 γ만큼 회적을 적용하면 3축 모두의 회전이 일어난 것과 유사한 환경을 볼 수 있다는 컨셉이다.
혹은, 3차원 상에서의 회전은 공간의 어느 정점을 지나는 특정 축에 대한 하나의 회전으로 표현할 수도 있다. 이 경우 v
가 회전한 벡터, k가 축이 되는 unit vector일 때 Rodrigues Formula를 따라 아래와 같이 계산할 수 있다.
Euler rotation의 특수한 경우로 3축 모두에 대한 회전으로 정의하는 Cardan Rotation의 방법도 있으나 보편적으로 Euler Rotation이 변수가 적어 수학적으로 더 많이 이용된다.
Quaternion Rotation
Quaternion은 ROS에서 기본적으로 사용하는 회전 계산법이다. 3개의 벡터 $(q_1,q_2,q_3)$와 1개의 스칼라 $q_0$로 구성된다.
위 요소들을 이용해
$q = q_0 + q_1 \hat{i} + q_2 \hat{j} + q_3 \hat{k}$
의 식으로 표현한다. 이때 $\hat{i},\hat{j},\hat{k}$는 서로 수직인 3개의 unit vector이다. 이 표현을 x,y,z 축에 대한 $(\theta,\hat{x},\hat{y},\hat{z})$의 식으로 변형하면 아래와 같은 관계가 성립한다.
Robotics에서 Quaternion을 사용하는 이유는 아래와 같다. 기본적으로 더 안정적이고 연산이 단순하다.
- Euler에 비해 구현이 단순하며 gimbal lock 문제가 발생할 확률이 적다.
- Euler rotation에 사용되는 rotation matrix 연산에 비해 안정적이고 계산이 효율적이다.
'ROBOTICS > Robot Localization' 카테고리의 다른 글
이론 : TF package의 이해 (0) | 2022.10.17 |
---|---|
이론 : 2D & 3D Frame Transformation (0) | 2022.10.01 |
Topic 정리 (0) | 2022.09.28 |
댓글