회전과 로보틱스 / 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) →QuaternionBAq^

q1=121+cos[θ]cos[ϕ]+cos[θ]cos[ψ]+cos[ϕ]cos[ψ]+sin[θ]sin[ϕ]sin[ψ]
수식
수식
수식

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

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

Qx[ϕ]=Q[ϕ,0,0]={122+2cos[ϕ],1222cos[ϕ]Sign[sin[ϕ]],0,0}={cos[ϕ2],sin[ϕ2],0,0}
Qy[θ]=Q[0,θ,0]={122+2cos[θ],0,1222cos[θ]Sign[sin[θ]],0}={cos[θ2],0,sin[θ2],0}
Qz[ψ]=Q[0,0,ψ]={122+2cos[ψ],0,0,1222cos[ψ]Sign[sin[ψ]]}={cos[ψ2],0,0,sin[ψ2]}

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

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

Q[π2,0,0]={12,12,0,0}
Q[0,π2,0]={12,0,12,0}
Q[0,0,π2]={12,0,0,12}

정리하면

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