회전과 로보틱스 / NOTE 07

오일러각에서 쿼터니언으로

Euler → Quaternion

축별 회전과 수치 예제로 쿼터니언 표현을 살펴봅니다.

♫ 이 문서 듣기

개념에서 수식으로

먼저 이해할 내용

세 축의 회전각이 주어졌을 때, 이를 자세 계산에 사용할 네 성분으로 표현하는 것이 이 글의 목적이다. 앞의 긴 유도 과정을 압축하여 일반 표현과 단일축 예제를 함께 읽는다.

기호를 먼저 읽기

Q[φ,θ,ψ]
세 회전각으로 정한 쿼터니언
Qₓ, Qᵧ, Q_z
한 축만 회전하는 경우
π/2
90도에 해당하는 라디안 각도
1/√2
π/4의 사인·코사인에 나타나는 값

이 글의 흐름

일반 성분식에서 시작해 두 각도를 0으로 놓고, 남은 한 축의 회전을 확인한다. 마지막에는 각 축에 π/2를 넣어 수치적인 형태를 확인한다.

일반식과 축별 표현을 연결한다

q₁의 식은 여러 대각 성분을 오일러각으로 펼친 결과이다. 이어지는 q₂·q₃·q₄와 함께 네 성분 전체를 구성한다. 이미지로 제시된 성분식은 실제 항을 확인해야 하므로, 나머지 성분의 부호를 q₁ 식만 보고 추정하지 않는다.

주제와 표기

Euler Angle (Roll φ x ^ B , Pitch θ y ^ B , Yaw ψ z ^ B , ZYX) →Quaternio n B A q ^

q 1 = 1 2 1 + cos ⁡ [ θ ] cos ⁡ [ ϕ ] + cos ⁡ [ θ ] cos ⁡ [ ψ ] + cos ⁡ [ ϕ ] cos ⁡ [ ψ ] + sin ⁡ [ θ ] sin ⁡ [ ϕ ] sin ⁡ [ ψ ]
수식
수식
수식

다른 두 각도를 0으로 놓는다

Qₓ[φ]에서는 θ와 ψ를 0으로 놓는다. 이에 따라 y·z 성분이 없어지고 q₁과 x 성분만 남는다. 같은 방법을 y축과 z축에 적용하면 각 축의 단일회전 표현을 얻는다.

Q x [ ϕ ] = Q [ ϕ , 0 , 0 ] = { 1 2 2 + 2 cos ⁡ [ ϕ ] , − 1 2 2 − 2 cos ⁡ [ ϕ ] Sign [ sin ⁡ [ ϕ ] ] , 0 , 0 } = { cos ⁡ [ ϕ 2 ] , − sin ⁡ [ ϕ 2 ] , 0 , 0 }
Q y [ θ ] = Q [ 0 , θ , 0 ] = { 1 2 2 + 2 cos ⁡ [ θ ] , 0 , − 1 2 2 − 2 cos ⁡ [ θ ] Sign [ sin ⁡ [ θ ] ] , 0 } = { cos ⁡ [ θ 2 ] , 0 , − sin ⁡ [ θ 2 ] , 0 }
Q z [ ψ ] = Q [ 0 , 0 , ψ ] = { 1 2 2 + 2 cos ⁡ [ ψ ] , 0 , 0 , − 1 2 2 − 2 cos ⁡ [ ψ ] Sign [ sin ⁡ [ ψ ] ] } = { cos ⁡ [ ψ 2 ] , 0 , 0 , − sin ⁡ [ ψ 2 ] }

90도 회전을 네 성분으로 읽는다

원문 예제의 π/2를 반으로 나누면 π/4가 된다. 그 사인과 코사인 때문에 1/√2가 나타나며, 회전축에 해당하는 성분에만 음의 값이 들어간다. 나머지 두 벡터 성분이 0이라는 사실은 다른 축의 회전이 들어 있지 않음을 보여준다.

Q [ π 2 , 0 , 0 ] = { 1 2 , − 1 2 , 0 , 0 }
Q [ 0 , π 2 , 0 ] = { 1 2 , 0 , − 1 2 , 0 }
Q [ 0 , 0 , π 2 ] = { 1 2 , 0 , 0 , − 1 2 }

정리하면

일반식을 이해하기 어렵다면 단일축 예제부터 확인할 수 있다. 이때 스칼라 성분의 위치와 벡터부의 음의 부호는 일반식과 동일하게 유지한다.