모든 기하학적인 문제의 출발은 2D 또는 3D 상의 한 점을 표현 하는 것입니다.
2D 상의 한 점
3D 상의 한 점
Representations of Rotation
Rotation을 표현 하는 방법에는 크게 4가지가 존재한다!
[첫번째] Rotation Matrix
3 by 3 matrix를 설정하여 벡터에 이 행렬을 곱하면 임의의 각도만큼 회전한 벡터가 나오는 행렬
rotation matrix는 아래 constraints을 만족한다.
•
일반적인 3 by 3 matrix의 경우 9 degree of freedom을 가지겠지만,
앞서 제시한 6개의 독립적인 constraints 때문에 3 dof를 가진다.
•
column vector 는 unit vector 를 rotation matrix를 통해 mapping 시킨 것과 같다.
•
rotation matrix 은 을 만족한다.
•
상태 추정을 하는데 직접 사용하기에 부적합하며(9개 파라미터 + constraints : 계산량이 넘 많아요)
주로 다른 형식으로 변환하여 회전 과정 진행
[두번째] Euler Angle
•
회전을 시각화할때 유용하다 (비행기, 자동차, 로봇 등등 실제 오브젝트에서 회전 표현 용이)
•
최소 3개의 파라미터가 필요하다 → 3 dof
•
가장 자주 쓰이는 방향 순서는 Z → Y → X
•
gimbal lock 현상이 존재한다 + Discontinuity
•
일반적인 state estimation 할 때 차선책 정도로 쓰인다.
3개의 고정된 축을 기준으로 회전을 순차적으로 진행하면서 회전을 표현한다. (ex. z - y - x axes)
이 때 회전축은 그 전에 회전한 축을 기준으로 돌아간다. (회전축이 고정되지 않음)
각각의 축을 이용한 회전을 식으로 표현하면 다음과 같다.
Euler angle representation의 가장 큰 특징은 회전을 진행할 때 어떤 축을 먼저 회전하는지에 따라
회전이 달라진다는 것이다. 아래의 회전의 식을 보면 알수 있겠지만 같은 축, 같은 각도로 회전을 시켜도 무슨 축을 먼저 돌렸는지에 따라 rotation matrix가 달라짐을 확인할 수 있다.
회전 1 (1 → 2 → 3)
회전 2 (3 → 2 → 1)
[3번째] Axis - Angle Representation
•
rotation axis를 표현하는 벡터와 rotation angle을 표현하는 스칼라의 형태로 회전을 표현
•
총 4개의 파라미터 사용! (3 for axis vector + 1 for angle scalar)
•
Singularity가 에서 존재합니다.
•
회전이 구간으로 제한됩니다.
•
연속되는 회전을 표현할 수 없습니다. (rotation matrix 로 변형해서 구해야 합니다.)
•
인간이 보기 편한 형태입니다.
총 4개의 파라미터로 표현하며, normalize할 경우 3개의 파라미터로 표현할 수도 있다. (Minimal)
[4번째] Quaternion
•
3차원 Complex component로 구성된 Complex number로 구성되어 구한다
•
4개의 파라미터가 필요하며, 회전을 표현하는 것이 unique합니다.
•
Singularity 와 discontinuities 가 없습니다.
Quaternion을 수학적으로 정의하면 4D-Vector의 형태를 가진다.
quaternion은 기본적인 대수법칙들을 만족합니다.
•
Addition :
•
Multiplication : → not cummutative
•
Inverse :
Quaternion을 회전으로 표현하기
앞서 axis-angle rotation representation 처럼 축과 각도를 쿼터니언에 표현하면 된다.
이 때, 은 normalized rotation axis로써 아래의 성질을 만족한다.
예시) 을 축으로 하여 만큼 회전할 때, quaternion으로 표현해!
우리에게 주어진 임의의 벡터를 주어진 각도와 축을 가지고 회전시킬 때 아래의 공식을 이용한다.
이 때, 주어지는 벡터는 의 형태로 표현하며 벡터 로 주어진 벡터의 3차원을 표현한다.
(스칼라 값은 0임을 기억하자), 그리고 회전을 나타내는 쿼터니언을 라고 정의하면 아래와 같이 연산한다.
Quaternion을 이용해 연속적으로 회전시키기
연속된 rotation은 quaternion multiplication을 통해 쉽게 이루어진다.
rotation 는 각각의 회전을 의미하는 의 곱의 형태로 표현 할수 있다. 로 나타낸다.
rotation matrix 형태로 표현한다면 의 형태로 나타내는 것과 같다.
Rotation 표현방법 비교해보기
•
Rotation matrix는 교환되는 형식으로써 역할을 한다.(이 행렬을 통해 다른 표현들로 바꿔 표현)
•
state estimation은 주로 quaternion을 통해 이루어진다.
•
angle-axis 표현 방법은 사람이 읽기에 좋다. (quaternion과 연계되어 사용)
이러한 특징들을 표로 나타내면 아래와 같다.
위의 제시한 4가지 방법은 서로서로 변환하는 공식이 이미 존재하고 이에 해당하는 계산기 또한 나와있다.