[논문 리뷰] Visualizing Quaternion Multiplication
[참고 논문]
Visualizing Quaternion Multiplication - Jongchan Baek
https://ieeexplore.ieee.org/abstract/document/7930375
Visualizing Quaternion Multiplication
Quaternion rotation is a powerful tool for rotating vectors in 3-D; as a result, it has been used in various engineering fields, such as navigations, robotics, and computer graphics. However, understanding it geometrically remains challenging, because it r
ieeexplore.ieee.org
3차원 공간에서 회전을 표현하기 위해 사용하는 대표적인 방법으로 오일러 각과 쿼터니언이 있다.
오일러 각은 직관적인 이해가 가능하지만, 짐벌락과 보간이 어렵다는 한계점이 존재한다.
쿼터니언은 짐벌락 현상이 없고 구면 보간이 가능하여 벡터의 회전을 표현하는 데 많이 사용된다. 하지만 4차원 공간을 시각화 해야 하기 때문에 직관적인 이해가 어렵다.
오늘 다룰 논문은 쿼터니언의 시각화를 위해 쿼터니언의 스칼라 부분을 3D 벡터 공간의 1D translation으로 해석한다. 그리고 이 회전을 3D 벡터 공간의 이동, 스케일링, 회전의 combined effect로 표현한다. 이렇게 표현했을 때의 쿼터니언 회전 공식과 쿼터니언의 도함수를 어떻게 표현하는지도 다룬다.
1. Introduction
쿼터니언은1844년 Hamilon이 만든 4-tuple number 시스템이다. 복소수로 확장하여 하나의 스칼라와 세 개의 허수로 구성되어 있으며 이들의 선형 결합으로 표현된다. 이들은 3차원 변환을 표현하기 위해 개발되었으나 4개의 수로 구성되어 있기 때문에 직관적인 이해가 힘들어 널리 사용되지 않았다. 대신 선형 대수가 발전하며 행렬곱과 오일러 각이 널리 사용되었다. 하지만 오일러각은 짐벌락과 많은 연산이 필요하였고, 비교적 적은 연산만으로도 가능하고 연속적인 회전도 간단히 표현할 수 있는 쿼터니언이 점차 컴퓨터 그래픽, 컴퓨터 시뮬레이션, 로보틱스, 자세 제어, 궤도 역학 분야에서 떠오르기 시작했다. (연속된 회전 표현에 있어서 오일러각은 짐벌락 효과가 나타날 수도 있고, 쿼터니언은 구형 선형 보간(Slerp, Spherical Linear Interpolation)이 가능하여 두 회전 상태 사이를 부드럽게 보간하는 데 유용하다.)
그럼에도 4차원을 묘사해야 하기 때문에 쿼터니언 회전을 시각화하는 것은 어렵다. 본 논문은 스칼라 파트를 3차원 벡터 공간의 translation 축으로 적용하여 4차원을 표현한다. 본 논문의 모델은 쿼터니언 곱을 3차원 벡터 공간에 대한 translation, reduction(또는 expansion), rotation으로 표현하고 축을 스케일링 하는 것을 보상하기 위해 magnitude-invariant 회전 공식을 유도한다.
제안한 기하학적 접근법은 엄격한 수학적 논리로부터 추상 공간 파티션을 구성하는 것의 requirement를 최소화하므로 쿼터니언을 시각화 함에 있어 기존 방법들보다 깔끔하다. 또한 이 방법에 의한 회전 공식의 기하학적 유도에서, 왜 쿼터니언의 곱의 형태가 한쪽이 아니라 샌드위치처럼 양쪽에서 곱해줘야 하는지 직관적으로 이해할 수 있다.
2. Preliminaries : Fundamental Algebra of Quaternion
쿼터니언은 복소수 도메인이다. 하나의 쿼터니언 $ q\left(q_0, \boldsymbol{q}\right) $은 하나의 스칼라 $q_0$과 하나의 벡터 $\boldsymbol{q}=\left(q_1, q_2, q_3\right)$로 구성되어 있고 다음과 같이 세 개의 허수 $\boldsymbol{i}, \boldsymbol{j}, \boldsymbol{k}$와 함께 표현된다. 스칼라 파트가 0이면 순수 쿼터니언(pure quaternion)이라고 부른다.
$$
q\left(q_0, \boldsymbol{q}\right)=\left(q_0, q_1, q_2, q_3\right)=q_0+q_1 \boldsymbol{i}+q_2 \boldsymbol{j}+q_3 \boldsymbol{k}
$$
Addition
두 쿼터니언의 합은 component-wise로 수행된다. 즉, 두 쿼터니언 $q=q\left(q_0, \boldsymbol{q}\right)$, $p=p\left(p_0, \boldsymbol{p}\right)$의 합은 다음과 같다.
$$
q+p=q\left(q_0+p_0, \boldsymbol{q}+\boldsymbol{p}\right)
$$
Multiplication
허수의 곱은 Hamilton이 도입한 다음의 기본적인 규칙을 만족한다. 이로 인해 쿼터니언의 곱은 교환법칙(commutative)이 성립하지 않는다.
$$
\begin{aligned}
i^2 & =j^2=k^2=i j k=-1 \\
i j & =k=-j i \\
j k & =i=-k j \\
k i & =j=-i k
\end{aligned}
$$
두 쿼터니언의 곱은 다음과 같이 정의한다. 아래 식에서 외적 항이 교환법칙을 성립하지 않음을 알 수 있다.
$$
\begin{aligned}
p q & =\left(p_0+p_1 \boldsymbol{i}+p_2 \boldsymbol{j}+p_3 \boldsymbol{k}\right)\left(q_0+q_1 \boldsymbol{i}+q_2 \boldsymbol{j}+q_3 \boldsymbol{k}\right) \\
& =p_0 q_0-\boldsymbol{p} \cdot \boldsymbol{q}+p_0 \boldsymbol{q}+q_0 \boldsymbol{p}+\boldsymbol{p} \times \boldsymbol{q}
\end{aligned}
$$
Conjugate
쿼터니언의 conjugate(켤레)는 복소수와 비슷하다. $q$의 conjugate $ q^* $는 다음과 같이 정의한다.
$$
\begin{aligned}
q^* & =q_0-\boldsymbol{q}=q_0-q_1 \boldsymbol{i}-q_2 \boldsymbol{j}-q_3 \boldsymbol{k} \\
(q p)^* & =p^* q^*
\end{aligned}
$$
Norm
3차원 벡터의 norm과 비슷하게, 쿼터니언 $q$의 norm $||q||$는 다음과 같이 정의된다.
$$
\begin{aligned}
\|q\| & =\sqrt{q_0^2+q_1^2+q_2^2+q_3^2}=\sqrt{q_0^2+\|\boldsymbol{q}\|^2}=\sqrt{q q^*} \\
\|q p\| & =\|q\|\|p\|
\end{aligned}
$$
norm이 1이면 단위 쿼터니언(unit quaternion)이라고 부른다.
3. Geometric Interpretation of Quaternions
쿼터니언은 4-tuples 이기 때문에 시각화를 위해서는 4차원 기하학적 모델을 구성해야 한다. 하지만 인간은 세상을 3차원으로 보기 때문에 네 개의 직교 축을 그리는 것은 불가능하다. 하지만 쿼터니언이 하나의 스칼라와 하나의 벡터로 구분된다는 것을 이용할 수 있다. 스칼라 요소를 벡터 공간의 1차원 위치로 해석한다. $\mathbb{R}$ 상의 모든 포인트는 $\mathbb{R}^4$를 구성하기 위해 자신만의 $\mathbb{R}^3$ 공간을 가지고 있기 때문에 ($\mathbb{R}^4=\mathbb{R}^1 \otimes \mathbb{R}^3$) 이는 기하학적 관점에서 매우 합리적이다. 이후 쿼터니언 $q=\left(q_0, q_1, q_2, q_3\right)$에 대해 다음과 같이 해석한다. '벡터 공간의 원점은 스칼라 파트 축 상의 $q_0$에 위치하고, 벡터 $\boldsymbol{q}\left(q_1, q_2, q_3\right)$는 이 공간 안에 있다.' 이 해석에 따르면 스칼라 파트를 표현하는 축을 그리고 이 축의 영점을 원점으로 하는 3차원 벡터 공간을 나타낼 수 있다. 이후 4차원 쿼터니언 공간의 원점을 $(0, 0, 0, 0)$으로 표시하고 축을 따라 거리 $q_0$만큼 이동하여 $\left(q_0, 0,0,0\right)$을 얻는다. 한 예시로 Fig. 1은 순수 쿼터니언을 포함하여 세 개의 쿼터니언을 묘사한다. 모델의 네 번째 축 $m$은 3차원의 이동 축(translation axis)이다. 이동 축은 어느 방향이든 상관없지만 지속성을 위해 한 번 선택되면 고정되어야 한다. 본 논문에서는 이동 축을 i-axis로 설정하였으며 따라서 스칼라 파트 축을 i-axis와 겹치게 그린다.
4. Geometric Interpretation of Quaternion Multiplication
곱해질때 단위 복소수가 쿼터니언 상에서 어떻게 동작하는지를 먼저 다룬다. 복소수는 쿼터니언으로 표현될 수 있기 때문에 이는 쿼터니언 곱의 특이 케이스이다. 그후 이 결과를 더 일반적인 경우로 확장해 쿼터니언에 단위 쿼터니언을 곱하는 경우를 다룬다.
4.1 Complex Multiplication To a Quaternion
단위 복소수는 2차원 공간에서 회전 연산자로 동작하고 $\cos \theta+\boldsymbol{k} \sin \theta$로 쓸 수 있다. 여기서 $\theta$는 회전각이고 $ \boldsymbol{k} $는 허수로 표현된 단위 벡터이다. 복소수는 다음과 같은 단위 쿼터니언으로 표현될 수 있음을 기억하자.
$$
q_{\theta, \boldsymbol{k}}=q(\cos \theta, \boldsymbol{k} \sin \theta)
$$
그러면 쿼터니언 곱셈의 특이 케이스로서, 2차원 회전 연산자 $q_{\theta, \boldsymbol{k}}$를 쿼터니언 $q\left(m_0, \boldsymbol{v} \right)$에 대해 left multiplication 하는 것은 두 파트로 나누어질 수 있다.
$$
\begin{aligned}
q_{\theta, \boldsymbol{k}} q\left(m_0, \boldsymbol{v}\right) & =q_{\theta, \boldsymbol{k}}\left\{q\left(m_0, c_3 \boldsymbol{k}\right)+q\left(0, c_1 \boldsymbol{i}+c_2 \boldsymbol{j}\right)\right\} \\
& =\underbrace{q_{\theta, \boldsymbol{k}} q\left(m_0, c_3 \boldsymbol{k}\right)}_{\text {Part } 1}+\underbrace{q_{\theta, \boldsymbol{k}} q\left(0, c_1 \boldsymbol{i}+c_2 \boldsymbol{j}\right)}_{\text {Part } 2}
\end{aligned}
$$
$\boldsymbol{v}=c_1 \boldsymbol{i}+c_2 \boldsymbol{j}+c_3 \boldsymbol{k}$은 3차원 벡터이다. Part 1은 complex multiplication(복소 곱셈)이고 다음과 같이 계산된다.
$$
\begin{aligned}
q_{\theta, \boldsymbol{k}} q\left(m_0, c_3 \boldsymbol{k}\right) & =(\cos \theta+\boldsymbol{k} \sin \theta)\left(m_0+c_3 \boldsymbol{k}\right) \\
& =\left(m_0 \cos \theta-c_3 \sin \theta\right)+\left(c_3 \cos \theta+m_0 \sin \theta\right) \boldsymbol{k}
\end{aligned}
$$
complex multiplication의 일반적인 해석에 따라, 기하학적 의미는 $m k$-plane에서 벡터 $m_0+c_3 \boldsymbol{k}$의 반시계방향 회전이다(Fig. 2a 참고). 이제 스칼라 파트를 Section 2에서 언급했던 대로 3차원 벡터 공간의 location으로 다뤄보자. 그럼 Part 1은 벡터 공간에서 이동과 스케일링의 joint effect로 해석할 수 있다(Fig. 2b 참고). 더 정확하게 단위 복소수 $q_{\theta, \boldsymbol{k}}$는 Part 1에 의해 $\boldsymbol{k}$의 방향에서 reduction (또는 expansion) 하면서 $q\left(m_0, v\right)$의 벡터 공간을 이동하였다(Fig. 4a).
동시에 Part 2는 다음과 같이 재구성 될 수 있다.
$$
\begin{aligned}
q_{\theta, \boldsymbol{k}} q\left(0, c_1 \boldsymbol{i}+c_2 \boldsymbol{j}\right)= & c_1 q_{\theta, \boldsymbol{k}} \boldsymbol{i}+c_2 q_{\theta, \boldsymbol{k}} \boldsymbol{j} \\
= & c_1 \underbrace{\boldsymbol{i} \cos \theta+\boldsymbol{j} \sin \theta)}_{\text {rotation of } \boldsymbol{i} \text { axis }} \\
& +c_2 \underbrace{(\boldsymbol{j} \cos \theta-\boldsymbol{i} \sin \theta)}_{\text {rotation of } \boldsymbol{j} \text { axis }}
\end{aligned}
$$
그러므로, Part 2는 $q\left(m_0, v\right)$의 벡터 공간의 반시계방향 회전을 구현하는데 회전축 $\boldsymbol{k}$를 중심으로 $\theta$ 만큼 회전한다.(Fig. 3 참고). 이제 Part 1과 Part 2을 합치면 단위 복소수는 쿼터니언의 왼쪽에 곱해졌을 때 3차원 벡터 공간에서 이동, 스케일링, 회전을 발생시킨다는 것을 알 수 있다(Fig. 4b 참고).
쿼터니언 곱에 대한 기하학적 해석의 주요 장점은 직접적인 연산 없이 결과를 유도할 수 있다는 것이다. Fig. 5는 다양한 $\theta$ 값에 따른 $q_{\theta, k} q(0, \boldsymbol{v})$의 변화를 보인다.
쿼터니언 곱은 교환법칙이 성립되지 않는다는 것을 기억하자. 그렇다면, 오른쪽에 곱한다면 결과가 변할까? 다음 명제는 left multiplication과 right multiplication의 차이를 보여준다. 쿼터니언 곱의 규칙에 따르면 다음 명제가 성립하는지 쉽게 알 수 있다.
Proposition 1: For $q_{\theta, \boldsymbol{k}}=\cos \theta+\boldsymbol{k} \sin \theta$ and $m_0, c_3 \in \mathbb{R}$,
(a). $q\left(m_0, c_3 \boldsymbol{k}\right) q_{\theta, \boldsymbol{k}}=q_{\theta, \boldsymbol{k}} q\left(m_0, c_3 \boldsymbol{k}\right)$
(b).
$$
\begin{aligned}
\underbrace{q\left(m_0, c_3 \boldsymbol{k}\right)}_{\text {No effect }} & =\underbrace{q_{\theta, \boldsymbol{k}} q\left(m_0, c_3 \boldsymbol{k}\right)}_{\text {Part } 1} q^*{ }_{\theta, \boldsymbol{k}} \\
& =q^*{ }_{\theta, \boldsymbol{k}} \underbrace{q_{\theta, \boldsymbol{k}} q\left(m_0, c_3 \boldsymbol{k}\right)}_{\text {Part } 1}
\end{aligned}
$$
Proposition 2: For $q_{\theta, \boldsymbol{k}}=\cos \theta+\boldsymbol{k} \sin \theta$ and $c_1, c_2 \in \mathbb{R}$,
(a). $q\left(0, c_1 \boldsymbol{i}+c_2 \boldsymbol{j}\right) q_{\theta, \boldsymbol{k}}=q^*{ }_{\theta, \boldsymbol{k}} q\left(0, c_1 \boldsymbol{i}+c_2 \boldsymbol{j}\right)$
(b).
$$
\begin{aligned}
\underbrace{q\left(0, c_1 \boldsymbol{i}+c_2 \boldsymbol{j}\right)}_{\text {No effect }} & =\underbrace{q_{\theta, \boldsymbol{k}} q\left(0, c_1 \boldsymbol{i}+c_2 \boldsymbol{j}\right)}_{\text {Part } 2} q_{\theta, \boldsymbol{k}} \\
& =q^*{ }_{\theta, \boldsymbol{k}} \underbrace{q_{\theta, \boldsymbol{k}} q\left(0, c_1 \boldsymbol{i}+c_2 \boldsymbol{j}\right)}_{\text {Part } 2}
\end{aligned}
$$
명제 1(a)는 Part 1이 교환법칙을 성립함을 의미하고, 1(b)는 Part 1의 효과(벡터 공간의 이동 및 스케일링)가 conjugate $q^*{ }_{\theta, \boldsymbol{k}}$을 왼쪽이나 오른쪽에 곱해 상쇄될 수 있음을 의미한다. 명제 2(a)는 Part 2가 교환법칙이 성립하지 않으며 오른쪽에 곱했을 때 시계 방향 회전, 왼쪽에 곱했을 때 반시계 방향 회전이 발생함을 의미한다. 명제 2(b)는 Part 1과 달리 Part 2의 효과(벡터 공간의 회전)은 conjugate $q^*{ }_{\theta, \boldsymbol{k}}$을 왼쪽에 곱하거나 회전 연산자 $q_{\theta, \boldsymbol{k}}$를 오른쪽에 다시 한 번 곱했을 때 상쇄될 수 있음을 의미한다.
위의 두 명제를 통해, 하나의 상쇄 매커니즘은 conjugate가 필요하고 다른 하나는 필요하지 않다는 것을 알 수 있다. 따라서 이러한 비대칭성을 이용하여 Part 1이나 Part 2와 관련된 원하는 효과만 남길 수 있다. 이 성질은 Section 5에서 쿼터니언 회전 공식을 유도할 때 사용된다.
4.2 Quaternion Multiplication To a Quaternion
지금까지 한 설명을 단위 쿼터니언을 쿼터니언에 곱하는 더 일반적인 케이스로 확장할 수 있다. 이 아이디어는 단위 쿼터니언은 다음 lemma에 따라 단위 복소수로 볼 수 있다는 사실에 기반한다.
Lemma 1 : 임의의 세 orthonormal 벡터들($\mathbb{R}^3$로 span) $\mathbf{q}, \mathbf{p}, \mathbf{n}(= \mathbf{q} \times \mathbf{p})$이 주어졌을 때, 각각을 허수 $ \mathbf{k}^{\prime}, \mathbf{i}^{\prime}, \mathbf{j}^{\prime} $로 고려할 수 있다.
Proof : $\boldsymbol{i}^2=q(0, \boldsymbol{i}) q(0, \boldsymbol{i})$ 임을 기억하자. 그러면,
$$
\begin{aligned}
& \boldsymbol{q}^2=q(0, \boldsymbol{q}) q(0, \boldsymbol{q})=-\boldsymbol{q} \cdot \boldsymbol{q}+\boldsymbol{q} \times \boldsymbol{q}=-1+0=-1 \\
& \boldsymbol{q} \boldsymbol{p}=q(0, \boldsymbol{q}) q(0, \boldsymbol{p})=-\boldsymbol{q} \cdot \boldsymbol{p}+\boldsymbol{q} \times \boldsymbol{p}=\boldsymbol{n} \\
& \boldsymbol{p} \boldsymbol{q}=q(0, \boldsymbol{p}) q(0, \boldsymbol{q})=-\boldsymbol{p} \cdot \boldsymbol{q}+\boldsymbol{p} \times \boldsymbol{q}=-\boldsymbol{n}
\end{aligned}
$$
비슷하게, 다음도 성립한다.
$$
\begin{aligned}
\boldsymbol{p} ^2 & = \boldsymbol{n} ^2= \boldsymbol{q} ^2= \boldsymbol{p} \boldsymbol{n} \boldsymbol{q} =-1 \\
\boldsymbol{p} \boldsymbol{n} & = \boldsymbol{q} =- \boldsymbol{n} \boldsymbol{p} \\
\boldsymbol{n} \boldsymbol{q} & = \boldsymbol{p} =- \boldsymbol{q} \boldsymbol{n} \\
\boldsymbol{q} \boldsymbol{p} & = \boldsymbol{n} =- \boldsymbol{p} \boldsymbol{q}
\end{aligned}
$$
위 식들은 $\boldsymbol{q}, \boldsymbol{p}, \boldsymbol{n}$이 허수의 성질과 쿼터니언의 곱셈 규칙을 만족하는 것을 보인다. 그러므로, 그들 각각을 허수 $ \mathbf{k}^{\prime}, \mathbf{i}^{\prime}, \mathbf{j}^{\prime} $로 취급할 수 있다.
Lemma 1에 따라, 단위 쿼터니언을 단위 복소수로 취급할 수 있다. 즉, $q_{\theta, \boldsymbol{q}}=q_{\theta, \boldsymbol{k}^{\prime}}$ 이다. 이제, 다음을 알아두자.
$$
\begin{aligned}
q\left(m_0, \boldsymbol{v}\right) & =q\left(m_0,(\boldsymbol{v} \cdot \boldsymbol{p}) \boldsymbol{p}+(\boldsymbol{v} \cdot \boldsymbol{n}) \boldsymbol{n}+(\boldsymbol{v} \cdot \boldsymbol{q}) \boldsymbol{q}\right) \\
& =q\left(m_0,\left(\boldsymbol{v} \cdot \boldsymbol{i}^{\prime}\right) \boldsymbol{i}^{\prime}+\left(\boldsymbol{v} \cdot \boldsymbol{j}^{\prime}\right) \boldsymbol{j}^{\prime}+\left(\boldsymbol{v} \cdot \boldsymbol{k}^{\prime}\right) \boldsymbol{k}^{\prime}\right)
\end{aligned}
$$
$\boldsymbol{q}, \boldsymbol{p}, \boldsymbol{n}$ 는 orthonormal 벡터들이다. 쿼터니언 곱 $q_{\theta, \boldsymbol{q}} q\left(m_0, \boldsymbol{v}\right)$을 다음과 같이 재구성 할 수 있다.
$$
\begin{aligned}
q_{\theta, \boldsymbol{q}} q\left(m_0, \boldsymbol{v}\right)= & q_{\theta, \boldsymbol{q}}\left\{q\left(m_0,(\boldsymbol{v} \cdot \boldsymbol{q}) \boldsymbol{q}\right)+q(0,(\boldsymbol{v} \cdot \boldsymbol{p}) \boldsymbol{p}+(\boldsymbol{v} \cdot \boldsymbol{n}) \boldsymbol{n})\right\} \\
= & \underbrace{q_{\theta, \boldsymbol{k}^{\prime}} q\left(m_0,\left(\boldsymbol{v} \cdot \boldsymbol{k}^{\prime}\right) \boldsymbol{k}^{\prime}\right)}_{\text {Part } 1} \\
& +\underbrace{q_{\theta, \boldsymbol{k}^{\prime}} q\left(0,\left(\boldsymbol{v} \cdot \boldsymbol{i}^{\prime}\right) \boldsymbol{i}^{\prime}+\left(\boldsymbol{v} \cdot \boldsymbol{j}^{\prime}\right) \boldsymbol{j}^{\prime}\right)}_{\text {Part } 2}
\end{aligned}
$$
그러면 이전의 특이 케이스에서 주어진 해석과 시각화를 일반 쿼터니언 곱 $q_{\theta, \boldsymbol{q}} q\left(m_0, \boldsymbol{v}\right)$에 적용할 수 있다. Part 1은 $q\left(m_0, \boldsymbol{v}\right)$ 벡터 공간의 이동 및 $\boldsymbol{q}$의 방향으로 reduction (또는 expansion)을 의미하고, Part 2는 회전 축 $\boldsymbol{q}$를 중심으로 $\theta$ 만큼의 회전을 의미한다. 그러므로, 단위 쿼터니언 곱의 기하학적 의미는 일반적으로 3차원 벡터 공간의 이동, 스케일링, 회전으로 해석될 수 있다.
5. Geometric Derivation of Rotation Fomula
Section 4에서 논의했던 것처럼, 3차원 벡터 공간의 회전은 단위 쿼터니언 곱의 Part 2로 구현될 수 있다. 그러나 이는 Part 1에서 발생하는 벡터 공간의 이동 및 스케일링이라는 바람직하지 않은 효과를 동시에 생성한다. 그러므로 쿼터니언 곱의 3차원 회전을 구현하기 위해서는 이러한 바람직하지 않은 효과를 제거해서 miagnitude-invariant 한 회전을 구현해야 한다. 이를 위해, 다양한 보상 기법에 따라 쿼터니언 곱을 활용한 회전 공식을 유도할 수 있다. 이 section에서는 두 가지 보상 기법을 소개하고 3가지 종류의 쿼터니언 회전 공식을 유도한다.
시작함에 있어서, 다음 간단한 회전 문제를 고려해보자.
Problem 1 (간단한 3D 회전) : $\boldsymbol{v}=c_1 \boldsymbol{i}+c_2 \boldsymbol{j}+c_3 \boldsymbol{k}$을 회전축 $\boldsymbol{k}$을 기준으로 반시계 방향으로 $\theta$만큼 회전했을 때 회전된 벡터 $ \boldsymbol{v}^{\prime}$를 찾아라.
첫 번째 방법으로, 쿼터니언 곱에서 회전 효과만을 얻기 위해 object vector $\boldsymbol{v}$에서 회전 축 요소인 $c_3 \boldsymbol{k}$만 빼고 보존하여 Part 1의 효과(벡터 공간의 이동과 스케일링)만 제거할 수 있다.그러면 $\boldsymbol{v}^{\prime}=q\left(0, \boldsymbol{v}^{\prime}\right)$에 따라 두 회전 공식을 공식화할 수 있다.
Formula 1: $\boldsymbol{v}^{\prime}=q_{\theta, \boldsymbol{k}} q\left(0, \boldsymbol{v}-c_3 \boldsymbol{k}\right)+c_3 \boldsymbol{k}$
Formula 2: $\boldsymbol{v}^{\prime}=q_{\theta, \boldsymbol{k}} q\left(c_3 \sin \theta, \boldsymbol{v}-(1-\cos \theta) c_3 \boldsymbol{k}\right)$
Fomula 1은 직접적으로 보상 기법을 공식화했고, Fomula 2는 Fomula 1에서 다음을 이용해 얻었다.
$$
\begin{aligned}
q\left(0, \boldsymbol{v}^{\prime}\right) & =q_{\theta, \boldsymbol{k}} q\left(0, \boldsymbol{v}-c_3 \boldsymbol{k}\right)+c_3 \boldsymbol{k} \\
& =q_{\theta, \boldsymbol{k}} q\left(0, \boldsymbol{v}-c_3 \boldsymbol{k}\right)+c_3 q_{\pi / 2, \boldsymbol{k}} \\
& =q_{\theta, \boldsymbol{k}} q\left(0, \boldsymbol{v}-c_3 \boldsymbol{k}\right)+c_3 q_{\theta, \boldsymbol{k}} q_{\pi / 2-\theta, \boldsymbol{k}} \\
& =q_{\theta, \boldsymbol{k}}\left(q\left(0, \boldsymbol{v}-c_3 \boldsymbol{k}\right)+c_3 q_{\pi / 2-\theta, \boldsymbol{k}}\right) \\
& =q_{\theta, \boldsymbol{k}}\left\{q\left(0, \boldsymbol{v}-c_3 \boldsymbol{k}\right)+c_3 q(\sin \theta, \boldsymbol{k} \cos \theta)\right\} \\
& =q_{\theta, \boldsymbol{k}} q\left(c_3 \sin \theta, \boldsymbol{v}-(1-\cos \theta) c_3 \boldsymbol{k}\right)
\end{aligned}
$$
두 번째 방법으로는, Section 4에서 다루었던 상쇄 매커니즘의 비대칭 특성을 사용한다. Proposition 1과 2에서, conjugate 쿼터니언을 $q_{\theta, \boldsymbol{k}} q(0, \boldsymbol{v})$에 대해 오른쪽 곱을 하면(즉, $q_{\theta, \boldsymbol{k}} q(0, \boldsymbol{v}) q_{\theta, \boldsymbol{k}}^*$) Part 1의 효과를 상쇄할 수 있고 동시에 Part 2의 효과를 보존할 수 있다. 즉, $q_{\theta, \boldsymbol{k}} q(0, \boldsymbol{v}) q_{\theta, \boldsymbol{k}}^*$은 $ q(0, \boldsymbol{v}) $의 벡터 공간을 회전축 $\boldsymbol{k}$를 중심으로 $2\theta$만큼 회전한 것이다. 따라서 $\theta$를 $\theta / 2$로 대체하여 세 번째 회전 공식인 sandwiching multiplication form을 유도한다.
Formula 3: $q\left(0, \boldsymbol{v}^{\prime}\right)=q_{\theta / 2, \boldsymbol{k}} q(0, \boldsymbol{v}) q^*{ }_{\theta / 2, \boldsymbol{k}}$
이제, 다음의 일반화 문제를 고려해보자.
Problem 2 (일반 3D 회전) : $\boldsymbol{v}=c_1 \boldsymbol{i}+c_2 \boldsymbol{j}+c_3 \boldsymbol{k}$을 회전축 $\boldsymbol{q}$을 기준으로 반시계 방향으로 $\theta$만큼 회전했을 때 회전된 벡터 $ \boldsymbol{v}^{\prime}$를 찾아라. $\|\boldsymbol{q}\|=1$ 이다.
Lemma 1을 이용하여, Fomula 1-3을 다음 Theorem 1로 일반화 할 수 있다. Theorem 1은 모든 종류의 회전 축 $ \boldsymbol{q} $을 커버한다.
Theorem 1 : $ \boldsymbol{v} $를 회전축 $ \boldsymbol{q} $를 중심으로 $\theta$만큼 회전한 벡터를 $ \boldsymbol{v}^{\prime}$라고 하자. 이때, $\|\boldsymbol{q}\|=1$ 이다. 그러면 다음이 성립한다.
(a). $\boldsymbol{v}^{\prime}=q_{\theta, \boldsymbol{q}} q(0, \boldsymbol{v}-(\boldsymbol{v} \cdot \boldsymbol{q}) \boldsymbol{q})+(\boldsymbol{v} \cdot \boldsymbol{q}) \boldsymbol{q}$
(b). $\boldsymbol{v}^{\prime}=q_{\theta, \boldsymbol{q}} q((\boldsymbol{v} \cdot \boldsymbol{q}) \sin \theta, \boldsymbol{v}-(1-\cos \theta)(\boldsymbol{v} \cdot \boldsymbol{q}) \boldsymbol{q})$
(c). $\boldsymbol{v}^{\prime}=q_{\theta / 2, \boldsymbol{q}} q(0, \boldsymbol{v}) q_{\theta / 2, \boldsymbol{q}}^*$
Proof
(a) : $\boldsymbol{q}, \boldsymbol{p}, \boldsymbol{n}(= \boldsymbol{q} \times \boldsymbol{p} )$을 $\mathbb{R}$로 span하는 orthonormal 벡터들이라고 하자. 그러면 $\boldsymbol{v}=(\boldsymbol{v} \cdot \boldsymbol{q}) \boldsymbol{q}+(\boldsymbol{v} \cdot \boldsymbol{p}) \boldsymbol{p}+(\boldsymbol{v} \cdot \boldsymbol{n}) \boldsymbol{n}$ 이고, Lemma 1에 의해 $\boldsymbol{v}=\left(\boldsymbol{v} \cdot \boldsymbol{k}^{\prime}\right) \boldsymbol{k}^{\prime}+\left(\boldsymbol{v} \cdot \boldsymbol{i}^{\prime}\right) \boldsymbol{i}^{\prime}+\left(\boldsymbol{v} \cdot \boldsymbol{j}^{\prime}\right) \boldsymbol{j}^{\prime}$ 이다. 이때 $\boldsymbol{q}=\boldsymbol{k}^{\prime}, \boldsymbol{p}=\boldsymbol{i}^{\prime}, \boldsymbol{n}=\boldsymbol{j}^{\prime}$ 이다. 이제 Fomula 1에 의해,
$$
\begin{aligned}
& q_{\theta, \boldsymbol{k}^{\prime}} q\left(0, \boldsymbol{v}-\left(\boldsymbol{v} \cdot \boldsymbol{k}^{\prime}\right) \boldsymbol{k}^{\prime}\right)+\left(\boldsymbol{v} \cdot \boldsymbol{k}^{\prime}\right) \boldsymbol{k}^{\prime} \\
& \quad=q_{\theta, \boldsymbol{q}} q(0, \boldsymbol{v}-(\boldsymbol{v} \cdot \boldsymbol{q}) \boldsymbol{q})+(\boldsymbol{v} \cdot \boldsymbol{q}) \boldsymbol{q}
\end{aligned}
$$
위 식은 벡터 $\boldsymbol{v}$를 회전축 $\boldsymbol{k}^{\prime}(=\boldsymbol{q})$를 중심으로 $\theta$만큼 회전했다.
(b), (c) : (a)와 비슷하게, Fomula 2-3의 $c_3$와 $\boldsymbol{k}$는 각각 $(\boldsymbol{v} \cdot \boldsymbol{q})$와 $\boldsymbol{q}$로 대체될 수 있다.
Theorem 1(c)는 일반적으로 'sandwiching formula'라고 불리고, $q_{\theta / 2, \boldsymbol{q}}$는 'a quaternion rotation operator'라고 불린다. 세 개의 공식 모두가 동일한 3차원 회전을 공식화하지만, Theorem 1(c)는 가장 간단하고 다음과 같이 sequential한 회전을 표현하기 편리하여서 널리 사용된다. $q_{\theta_3 / 2, \boldsymbol{q}_3}=q_{\theta_2 / 2, \boldsymbol{q}_2} q_{\theta_1 / 2, \boldsymbol{q}_1}$ 이다.
$$
\begin{aligned}
q\left(0, \boldsymbol{v}^{\prime}\right) & =q_{\theta_2 / 2, \boldsymbol{q}_2} q_{\theta_1 / 2, \boldsymbol{q}_1} q(0, \boldsymbol{v}) q_{\theta_1 / 2, \boldsymbol{q}_1} q_{\theta_2 / 2, \boldsymbol{q}_2} \\
& =q_{\theta_3 / 2, \boldsymbol{q}_3} q(0, \boldsymbol{v}) q_{\theta_3 / 2, \boldsymbol{q}_3}^*
\end{aligned}
$$
그러나 단일 회전인 경우 Theorem 1(a)나 1(b)를 사용하는 것이 sandwiching formula보다 연산이 적어 더 편리하다.
6. Geometric Derivation of Derivative Formula
이 section에서는 쿼터니언 곱의 물리적 의미에 기반한 쿼터니언 도함수을 유도한다.
쿼터니언 회전 연산자 $q_{\theta / 2, \boldsymbol{q}}$는 고유한(unique) 회전을 의미한다. 따라서 공간에서 object의 방향을 표현하는 데 사용할 수 있다. 이 경우 방향의 극소한 변화도 회전으로 표현할 수 있고 대응하는 회전축은 순간적인 각속도 벡터로 결정된다. 그러므로 만약 $q(t)$가 시간 $t$에서 객체의 방향을 표현하는 쿼터니언 회전 연산자일 때, $q(t+\Delta t)=q_{\Delta \theta / 2, \widehat{\omega}_t} q(t)$ 를 만족한다. 이때 $\omega_t$ 는 시간 $t$에서의 순간적인 각속도 벡터 $\widehat{\omega}_t=\omega_t /\left\|\omega_t\right\|$ 이고 $\Delta \theta=\left\|\omega_t\right\| \Delta t$ 이다. 그러면 $q(t)$에서의 순간적인 변화 $\Delta q$는 세 개의 파트(Fig. 6 참고)로 나누어진다.
$$
\Delta q=\text { translation }+ \text { scaling }+ \text { rotation }
$$
만약 $q(t)=\left(q_0, \boldsymbol{q}\right)$ 이면 세 파트는 다음과 같이 정의된다.
$$
\begin{aligned}
\text { translation }= & \left(q_0 \cos \frac{\Delta \theta}{2}-\widehat{\omega_t} \cdot \boldsymbol{q} \sin \frac{\Delta \theta}{2}\right)-q_0 \\
\text { scaling }= & \left(\widehat{\omega_{\boldsymbol{t}}} \cdot \boldsymbol{q} \cos \frac{\Delta \theta}{2}+q_0 \sin \frac{\Delta \theta}{2}\right) \widehat{\omega_{\boldsymbol{t}}}-\left(\widehat{\omega_{\boldsymbol{t}}} \cdot \boldsymbol{q}\right) \widehat{\omega_{\boldsymbol{t}}} \\
\text { rotation }= & q_{\Delta \theta / 2, \widehat{\boldsymbol{t}}} q\left(0, \boldsymbol{q}-\left(\widehat{\omega_{\boldsymbol{t}}} \cdot \boldsymbol{q}\right) \widehat{\omega_t}\right) \\
& -q\left(0, \boldsymbol{q}-\left(\widehat{\omega_{\boldsymbol{t}}} \cdot \boldsymbol{q}\right) \widehat{\omega_{\boldsymbol{t}}}\right)
\end{aligned}
$$
그리고 다음이 성립한다.
$$
\begin{aligned}
\lim _{\Delta t \rightarrow 0}(\text { translation } / \Delta t) & =-\left(\boldsymbol{\omega}_{\boldsymbol{t}} \cdot \boldsymbol{q}\right) / 2 \\
\lim _{\Delta t \rightarrow 0}(\text { scaling } / \Delta t) & =\left(q_0 \omega_t\right) / 2 \\
\lim _{\Delta t \rightarrow 0}(\text { rotation } / \Delta t) & =\left(\omega_{\boldsymbol{t}} \times \boldsymbol{q}\right) / 2
\end{aligned}
$$
최종적으로, 위 limit들의 합은 $q(t)$의 도함수를 보인다.
$$
\begin{aligned}
d q(t) / d t & =\lim _{\Delta t \rightarrow 0}(\Delta q / \Delta t) \\
& =\lim _{\Delta t \rightarrow 0} \frac{(\text { translation }+ \text { scaling }+ \text { rotation })}{\Delta t} \\
& =\left(-\omega_t \cdot \boldsymbol{q}+q_0 \omega_t+\boldsymbol{\omega}_{\boldsymbol{t}} \times \boldsymbol{q}\right) / 2 \\
& =q\left(0, \omega_t\right) q(t) / 2
\end{aligned}
$$
7. Conclusion
본 논문은 쿼터니언 공간을 선형 축을 따라 움직일 수 있는 3차원 공간으로 표현함으로써 쿼터니언 곱에 대한 새로운 기하학적 접근법을 제시했다. 스칼라 파트의 축을 3차원 벡터 공간의 1차원 이동축으로 고려함으로써, 쿼터니언을 곱하는 연산을 벡터 공간의 이동, 스케일링, 회전으로 해석할 수 있다. 이러한 해석을 통해 쿼터니언 회전 공식과 쿼터니언의 도함수를 증명했다. 제안한 기하학적 접근법의 가치는 쿼터니언 곱에 대한 시각적이고 이해하기 쉬운 설명을 제공하였다는 것에 있다. 제안한 기하학적 모델을 이용해 전체 쿼터니언 algebra를 시각적인 측면에서 이해할 수 있다.