회전과 로보틱스 / NOTE 10

자세 표현의 연결

Orientation Representations

쿼터니언, 반각 공식, 회전축과 회전행렬을 연결합니다.

♫ 이 문서 듣기

개념에서 수식으로

먼저 이해할 내용

이 글은 쿼터니언, 축-각도, 회전행렬이 어떻게 연결되는지 단계별로 정리한다. 같은 관계를 제곱하거나 정리하면서 삼각함수를 쿼터니언 성분으로 바꾸는 것이 전개의 중심이다.

기호를 먼저 읽기

q₁ … q₄
단위 쿼터니언의 네 성분
ϑ
축-각도 표현에서의 회전각
rₓ, rᵧ, r_z
회전축의 성분
R
최종적으로 구성할 회전행렬

이 글의 흐름

반각 관계에서 출발해 각 성분을 제곱하고, 코사인과 축 성분의 곱을 q의 제곱으로 정리한다. 다음으로 이 결과를 회전행렬에 넣어 표현 간의 연결을 확인한다.

하나의 회전을 여러 표현으로 읽는다

처음의 쿼터니언 정의와 회전행렬은 같은 자세 관계를 나타내려는 출발점이다. 이어지는 반각 관계는 θ/2로 적힌 항을 θ로 바꾸기 위한 연결 고리이다. 근호가 어떤 범위를 덮는지와 ±의 선택을 함께 확인한다.

주제와 표기

Orientation BAq^ → Axis γ/Angle ϑ → Rotation Matrix BAR

BAq^=(q1q2q3q4)=(cos[θ2]rxsin[θ2]rysin[θ2]rzsin[θ2])
수식

Half-Angle Identities

cos[θ2]=1+cos[θ]2
sin[θ2]=1cos[θ]2

Quaternion BAq^ →Rotation MatrixABR

cos[ϑ2]=±1+cos[ϑ]2;sin[ϑ2]=±1cos[ϑ]2;
BAq^=(q1q2q3q4)=(cos[ϑ2]rxsin[ϑ2]rysin[ϑ2]rzsin[ϑ2])

1

q1=cos[ϑ2]=1+cos[ϑ]2
q2=rxsin[ϑ2]=rx1cos[ϑ]2
q3=rysin[ϑ2]=ry1cos[ϑ]2
q4=rzsin[ϑ2]=rz1cos[ϑ]2

2

성분을 제곱해 삼각함수와 연결한다

각 q 성분을 제곱하면 반각 사인·코사인의 제곱이 나타난다. 이 관계를 정리하면 cosϑ와 rₓ²(1−cosϑ) 같은 묶음을 q의 제곱으로 바꿀 수 있다. 한 줄씩 새 공식을 만든다기보다 같은 정의의 양변을 변형하는 과정으로 읽는다.

q12=1+cos[ϑ]2
q22=rx21cos[ϑ]2
q32=ry21cos[ϑ]2
q42=rz21cos[ϑ]2

3

cos[ϑ]=2q121
rx2(1cos[ϑ])=2q22
ry2(1cos[ϑ])=2q32
rz2(1cos[ϑ])=2q42

4

사인과 축 성분을 다시 분리한다

cosϑ의 관계에서 sinϑ와 축 성분을 정리하는 구간이다. 제곱근을 취하는 과정에서는 절댓값과 부호 조건이 중요하다. 특히 앞서 벡터부에 음의 부호를 두었으므로, 축 성분을 되돌리는 중간식과 정의의 부호가 일관되는지 확인한다.

sin[ϑ]=1cos[ϑ]2=(1cos[ϑ])(1+cos[ϑ])=2q12(1cos[ϑ])=2q11cos[ϑ]

5

rx=2q21cos[ϑ]
ry=2q31cos[ϑ]
rz=2q41cos[ϑ]
sin[ϑ]=2q11cos[ϑ]

6

행렬에 대입해 같은 관계인지 확인한다

앞에서 얻은 성분 관계를 회전행렬에 대입하고 동류항을 정리한다. 중간 행렬과 마지막 행렬은 계산 형식이 달라도 같은 정의에서 나와야 한다. 그림으로 남아 있는 행렬의 개별 항은 실제 표시된 식을 기준으로 확인한다.

BAq^=(q1q2q3q4)=(cos[ϑ2]rxsin[ϑ2]rysin[ϑ2]rzsin[ϑ2])
수식

7

수식

8

수식

9

q1=cos[ϑ2];q2=rxsin[ϑ2];q3=rysin[ϑ2];q4=rzsin[ϑ2];
수식
수식

정리하면

제곱을 이용한 정리는 계산을 단순하게 하지만 부호 정보를 줄일 수 있다. 따라서 원래의 정의와 각도의 범위를 끝까지 함께 유지하는 것이 중요하다.