회전과 로보틱스 / NOTE 06

오일러각·쿼터니언 변환 유도

Euler → Quaternion · Derivation

회전행렬을 거쳐 쿼터니언 성분을 구하는 원문 전개를 보존합니다.

♫ 이 문서 듣기

개념에서 수식으로

먼저 이해할 내용

이 문서는 오일러각을 쿼터니언으로 옮기는 결과만 제시하는 것이 아니라, 회전행렬 성분을 대입하여 그 결과에 도달하는 중간 과정을 다룬다. 긴 식을 모두 한 번에 읽기보다 대입·정리·축별 분해·합성의 단계로 나누어 살펴본다.

기호를 먼저 읽기

φ, θ, ψ
세 축 회전의 각도
rᵢⱼ
오일러각으로 표현된 회전행렬 성분
Q[φ,θ,ψ]
세 각도에 대응하는 쿼터니언 표현
B[·,·]
이 전개에서 사용한 두 쿼터니언의 결합 표기
Sign[·]
제곱근으로 사라진 부호를 구별하는 항

이 글의 흐름

행렬에서 쿼터니언을 구하는 식에 삼각함수 표현을 대입한다. 그다음 한 축씩 남겨 단순한 형태를 확인하고, 세 축의 결과를 다시 결합한다.

행렬 성분으로 표현한 결과에서 출발한다

먼저 q₁부터 q₄까지를 회전행렬의 성분으로 적는다. 다음 단계에서 이 rᵢⱼ 자리에 오일러각의 사인·코사인 표현을 넣을 예정이다. 어떤 변수를 다른 표현으로 바꾸는지 먼저 알면 식의 길이가 늘어나는 이유를 이해할 수 있다.

주제와 표기

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

q 1 = 1 2 r 11 + r 22 + r 33 + 1
q 2 = − Sign [ r 32 − r 23 ] 2 r 11 − r 22 − r 33 + 1
q 3 = − Sign [ r 13 − r 31 ] 2 r 22 − r 33 − r 11 + 1
q 4 = − Sign [ r 21 − r 12 ] 2 r 33 − r 11 − r 22 + 1

1

삼각함수 표현을 대입하고 정리한다

대입 후에는 여러 사인·코사인의 곱이 제곱근과 부호 함수 안에 나타난다. 이 단계의 목적은 같은 회전을 φ·θ·ψ만으로 표현하는 것이다. 중간식의 길이를 줄이려고 항이나 부호를 생략하지 않고, 어느 q 성분을 계산하는지 구분해 따라간다.

q 1 = 1 2 r 11 + r 22 + r 33 + 1
= 1 2 1 + cos ⁡ [ θ ] cos ⁡ [ ϕ ] + cos ⁡ [ θ ] cos ⁡ [ ψ ] + cos ⁡ [ ϕ ] cos ⁡ [ ψ ] + sin ⁡ [ θ ] sin ⁡ [ ϕ ] sin ⁡ [ ψ ]
q 2 = − Sign [ r 32 − r 23 ] 2 r 11 − r 22 − r 33 + 1
수식
q 3 = − Sign [ r 13 − r 31 ] 2 r 22 − r 33 − r 11 + 1
수식
q 4 = − Sign [ r 21 − r 12 ] 2 r 33 − r 11 − r 22 + 1
수식

2

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

3

수식

한 축만 남겨 결과를 확인한다

Q[φ,0,0]에서는 x축 회전만 남고, Q[0,θ,0]과 Q[0,0,ψ]에서는 각각 y축과 z축 회전만 남는다. 다른 두 각도가 0이 되면 많은 항이 없어져 반각의 사인·코사인 두 값으로 단순해진다. 이는 복잡한 일반식을 이해하기 위한 가장 직접적인 확인 과정이다.

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

4

단순한 축 회전을 다시 합성한다

B[B[Qₓ,Qᵧ],Q_z]처럼 안쪽 결합부터 계산한다. 이 표기는 먼저 두 축을 결합한 다음 세 번째 축을 결합한다는 순서를 드러낸다. 이어지는 성분식은 이 결합을 실제 숫자와 삼각함수의 계산으로 펼친 결과이다.

수식
B [ B [ Q [ ϕ , 0 , 0 ] , Q [ 0 , θ , 0 ] ] , Q [ 0 , 0 , ψ ] ]
수식

5

B [ B [ { cos ⁡ [ ϕ 2 ] , − sin ⁡ [ ϕ 2 ] , 0 , 0 } , { cos ⁡ [ θ 2 ] , 0 , − sin ⁡ [ θ 2 ] , 0 } ] , { cos ⁡ [ ψ 2 ] , 0 , 0 , − sin ⁡ [ ψ 2 ] } ]
수식

최종 네 줄을 하나의 결과로 정리한다

마지막 네 식은 q₁·q₂·q₃·q₄를 각각 나타낸다. 앞 단계의 축별 반각 정의가 이 네 줄에 모두 남아 있다는 점을 확인한다. 특별한 각도를 대입하여 0이 되는 항을 지우면 일반식과 단일축 결과의 연결을 다시 살펴볼 수 있다.

q 1 = cos ⁡ [ ϕ 2 ] cos ⁡ [ θ 2 ] cos ⁡ [ ψ 2 ] + sin ⁡ [ ϕ 2 ] sin ⁡ [ θ 2 ] sin ⁡ [ ψ 2 ]
q 2 = − sin ⁡ [ ϕ 2 ] cos ⁡ [ θ 2 ] cos ⁡ [ ψ 2 ] + cos ⁡ [ ϕ 2 ] sin ⁡ [ θ 2 ] sin ⁡ [ ψ 2 ]
q 3 = − cos ⁡ [ ϕ 2 ] sin ⁡ [ θ 2 ] cos ⁡ [ ψ 2 ] − sin ⁡ [ ϕ 2 ] cos ⁡ [ θ 2 ] sin ⁡ [ ψ 2 ]
q 4 = − cos ⁡ [ ϕ 2 ] cos ⁡ [ θ 2 ] sin ⁡ [ ψ 2 ] + sin ⁡ [ ϕ 2 ] sin ⁡ [ θ 2 ] cos ⁡ [ ψ 2 ]

정리하면

긴 전개가 보여주는 것은 새로운 여러 공식이 아니라, 같은 회전을 서로 다른 표현으로 옮겨도 같은 구조에 도달하는 과정이다. 이미지 중간식의 세부 항은 해당 식이 표시될 때 함께 대조하며 읽는다.