쿼터니언이란 무엇인가?

쿼터니언(Quaternion)이란 선형대수학에서 사용되는 개념으로 3차원 벡터 공간에서 회전을 표현하는 수학적 개념이다. 우리말로 사원수라고 일컬으며 4개의 요소로 구성된 복소수 시스템이다.

 

쿼터니언은 어떤 배경에서 고안되었는가?

쿼터니언은 3차원 공간의 회전을 표현한다고 했다. 이러한 3차원 공간의 회전을 표현하는 데 있어 원래는 오일러 각(roll, pitch, yaw)을 사용해 표현한다. 하지만 이 오일러 각을 사용할 경우 Gimbal Lock 현상이 발생한다. 잠깐 Gimbal에 대한 개념을 설명하자면, 단일 축에 대한 회전을 허용하는 수평 유지 장치를 의미한다. 

 

(좌): 각각의 짐벌은 roll, pitch, yaw의 자유도를 갖는다.

 

Gimbal Lock 현상은 3차원 공간상에서 두 축이 겹쳐 한 축이 소실되거나 자유도가 떨어지는 현상이다.  각 Gimbal들은 각자 특정 축(x, y, z)으로만 회전하도록 되어 있다. 하지만 위 우측 그림의 STATIC POSITION을 보면 맨 안쪽의 Gimbal은 다른 Gimbal을 회전시켜 두지 않는 이상 더 이상 roll 축으로 회전할 수 없게 된다. 이를 Gimbal Lock 현상이라 한다. 그렇다면 왜 Gimbal Lock 현상이 발생할까? 그 원인은 세 축이 의존적이기 때문이다. 예를 들어 z축을 회전시키면 x, y축도 함께 회전하게 되기 때문이다.

 

또 다르게 말하면 오일러 각에서 회전 자체를 세 축으로 나눠서 계산하기 때문이다. 예를 들어 어떤 물체 a가 있고 이 물체 a를 roll에 대해 회전하고 pitch에 대해 회전하고 yaw에 대해 회전한다고 가정하자. 어떤 물체 a는 roll에 대해 회전한 뒤 a’가 된다. 이후 pitch에 대해 회전한다고 하면 a에 대해 회전하는 게 아니라 a` 에서 회전하게 된다. 또 yaw에 대해 회전한다고 하면 a`가 아니라 a``에 대해 회전시킨다. 즉 각 축에 대한 회전은 이전 축에 의존하는 것이다.

 

쿼터니언은 이 Gimbal Lock 문제를 어떻게 해결할까?

쿼터니언은 정확히는 Gimbal Lock 문제를 해결하진 못한다. 다만 오일러 각을 사용해 회전을 표현할 때보다 Gimbal Lock 문제를 최소화시킬 수 있다. 쿼터니언은 4차원 복소수 공간의 벡터로 마찬가지로 벡터 공간에서의 회전을 표현하는 역할을 한다. 쿼터니언은 다음과 같은 형태를 가진다.

 

$$ q = xi + jy + zk + w $$

 

크게 보자면 쿼터니언 q는 xi + jy + zk는 벡터 요소, w는 스칼라 요소로 구성된다. i, j, k는 각각 x, y, z 축을 나타내는 허수 단위 벡터다. 이러한 쿼터니언은 4개의 요소로 구성되어 4차원 공간에서 회전을 표현한다. 이렇게 회전을 4차원으로 표현하는 쿼터니언은 세 개의 축을 사용하는 3차원 오일러 각과 달리 축의 의존성을 없애고 독립성을 가져오는 데 도움을 준다. 쿼터니언의 수식적 표현으로 파고들어 쿼터니언의 4차원 구조와 회전 연산 수식에 내재된 특성으로 짐벌락 문제를 해결하는 원리를 이해하는 데 도움될 수 있다 생각드나 짐벌락 문제 자체는 직관적으로 이해하는 것이 더 직접적이란 생각이 든다.

 

Reference

[1] https://handhp1.tistory.com/3

[2] https://luv-n-interest.tistory.com/805

[3] https://kangworld.tistory.com/185

[4] https://ko.wikipedia.org/wiki/짐벌

+ Recent posts