6.124 지수 좌표와 운동학적 관계

1. 개요

지수 좌표(exponential coordinates)는 회전 및 강체 변환을 리 대수(Lie algebra) 원소의 스칼라 배수로 매개변수화하는 방법이다. 이 표현은 행렬 지수 사상을 통해 리 군(Lie group)의 원소, 즉 회전 행렬 또는 동차 변환 행렬로 변환된다. 본 절에서는 \text{SO}(3)\text{SE}(3)에 대한 지수 좌표의 정의를 엄밀히 서술하고, 이것이 로봇의 순기구학(forward kinematics) 및 역기구학(inverse kinematics)과 어떻게 연결되는지 다룬다.

2. \text{SO}(3)의 지수 좌표

2.1 정의

\text{SO}(3)의 지수 좌표는 단위 회전축 벡터 \hat{\boldsymbol{\omega}} \in \mathbb{R}^3(\lVert \hat{\boldsymbol{\omega}} \rVert = 1)와 회전 각도 \theta \in \mathbb{R}의 곱으로 정의된다.

\hat{\boldsymbol{\omega}} \theta \in \mathbb{R}^3

이 벡터는 \text{so}(3) 리 대수의 원소 [\hat{\boldsymbol{\omega}}]\theta에 대응하며, 행렬 지수를 통해 회전 행렬을 생성한다.

R = e^{[\hat{\boldsymbol{\omega}}]\theta}

2.2 로드리게스 공식에 의한 계산

e^{[\hat{\boldsymbol{\omega}}]\theta} = I + \sin\theta \, [\hat{\boldsymbol{\omega}}] + (1 - \cos\theta) \, [\hat{\boldsymbol{\omega}}]^2

이 공식의 유도는 [\hat{\boldsymbol{\omega}}]의 거듭제곱에 대한 다음의 성질에 기초한다.

[\hat{\boldsymbol{\omega}}]^3 = -[\hat{\boldsymbol{\omega}}]

이로부터 행렬 지수 급수를 짝수차와 홀수차로 분리하여 삼각함수 급수로 정리할 수 있다.

2.3 지수 좌표의 기하학적 의미

지수 좌표 \hat{\boldsymbol{\omega}} \theta는 3차원 공간에서 하나의 벡터이다. 이 벡터의 방향은 회전축을, 크기는 회전 각도를 나타낸다. 따라서 \text{SO}(3)의 모든 회전은 원점을 중심으로 하는 반지름 \pi인 구(ball) 내의 점에 대응한다.

\hat{\boldsymbol{\omega}} \theta \in B_\pi(\mathbf{0}) \subset \mathbb{R}^3

다만 \theta = \pi인 경우 \hat{\boldsymbol{\omega}}\pi-\hat{\boldsymbol{\omega}}\pi는 동일한 회전을 나타내므로, 구의 대척점이 동일시된다.

3. \text{SE}(3)의 지수 좌표

3.1 정의

\text{SE}(3)의 지수 좌표는 나사 축(screw axis) \mathcal{S} = (\hat{\boldsymbol{\omega}}, \mathbf{v})^T \in \mathbb{R}^6과 스칼라 \theta의 곱이다.

\mathcal{S}\theta = \begin{bmatrix} \hat{\boldsymbol{\omega}} \theta \\ \mathbf{v} \theta \end{bmatrix} \in \mathbb{R}^6

행렬 지수를 통해 동차 변환 행렬이 생성된다.

T = e^{[\mathcal{S}]\theta} \in \text{SE}(3)

3.2 두 가지 경우

경우 1: \lVert \hat{\boldsymbol{\omega}} \rVert = 1 (회전 포함)

e^{[\mathcal{S}]\theta} = \begin{bmatrix} e^{[\hat{\boldsymbol{\omega}}]\theta} & G(\theta)\mathbf{v} \\ \mathbf{0}^T & 1 \end{bmatrix}

여기서

G(\theta) = I\theta + (1 - \cos\theta)[\hat{\boldsymbol{\omega}}] + (\theta - \sin\theta)[\hat{\boldsymbol{\omega}}]^2

경우 2: \hat{\boldsymbol{\omega}} = \mathbf{0}, \lVert \mathbf{v} \rVert = 1 (순수 병진)

e^{[\mathcal{S}]\theta} = \begin{bmatrix} I & \mathbf{v}\theta \\ \mathbf{0}^T & 1 \end{bmatrix}

4. 순기구학과 지수 좌표

4.1 지수 곱 공식(Product of Exponentials)

n-자유도 직렬 로봇의 순기구학은 각 관절의 지수 좌표를 이용하여 다음과 같이 표현된다.

T_{0n}(\boldsymbol{\theta}) = e^{[\mathcal{S}_1]\theta_1} \, e^{[\mathcal{S}_2]\theta_2} \cdots e^{[\mathcal{S}_n]\theta_n} \, M

이 공식에서 각 지수 항 e^{[\mathcal{S}_i]\theta_i}i번째 관절에 의한 강체 변환을 나타낸다. 관절 변수 \theta_i가 변할 때, 해당 지수 항만 변경되므로 기구학적 관계가 명시적이다.

4.2 관절 속도와의 관계

지수 좌표 표현으로부터 공간 야코비안(space Jacobian) J_s(\boldsymbol{\theta})를 유도할 수 있다. 말단 장치의 공간 트위스트는 다음과 같다.

\mathcal{V}_s = J_s(\boldsymbol{\theta}) \, \dot{\boldsymbol{\theta}}

여기서 J_si번째 열은 다음과 같다.

J_{s,i} = \text{Ad}_{e^{[\mathcal{S}_1]\theta_1} \cdots e^{[\mathcal{S}_{i-1}]\theta_{i-1}}} \, \mathcal{S}_i

이 결과는 각 관절의 트위스트가 선행 관절들의 운동에 의해 수반 변환(adjoint transformation)되어야 함을 보여 준다.

5. 행렬 로그와 역운동학적 관계

5.1 \text{SO}(3)의 행렬 로그

주어진 회전 행렬 R \in \text{SO}(3)로부터 지수 좌표 \hat{\boldsymbol{\omega}}\theta를 추출하는 과정은 다음과 같다.

경우 1: R = I이면 \theta = 0이고 \hat{\boldsymbol{\omega}}는 미정이다.

경우 2: \text{tr}(R) = -1이면 \theta = \pi이고

\hat{\boldsymbol{\omega}} = \frac{1}{\sqrt{2(1 + r_{33})}} \begin{bmatrix} r_{13} \\ r_{23} \\ 1 + r_{33} \end{bmatrix}

단, 1 + r_{33} \neq 0인 경우이다. r_{33} = -1이면 다른 대각 원소를 사용한다.

경우 3: 그 외의 경우

\theta = \cos^{-1}\left(\frac{\text{tr}(R) - 1}{2}\right)

[\hat{\boldsymbol{\omega}}] = \frac{1}{2\sin\theta}(R - R^T)

5.2 \text{SE}(3)의 행렬 로그

동차 변환 행렬 T = (R, \mathbf{p})가 주어지면, 먼저 회전 부분에서 \hat{\boldsymbol{\omega}}\theta를 구하고, 병진 부분에서 \mathbf{v}를 구한다.

\mathbf{v} = G^{-1}(\theta) \, \mathbf{p}

여기서

G^{-1}(\theta) = \frac{1}{\theta}I - \frac{1}{2}[\hat{\boldsymbol{\omega}}] + \left(\frac{1}{\theta} - \frac{1}{2}\cot\frac{\theta}{2}\right)[\hat{\boldsymbol{\omega}}]^2

6. 지수 좌표의 미분적 성질

6.1 속도 관계

관절 변수 \theta_i가 시간에 따라 변할 때, 지수 항의 시간 미분은 다음과 같다.

\frac{d}{dt} e^{[\mathcal{S}_i]\theta_i} = [\mathcal{S}_i] \, e^{[\mathcal{S}_i]\theta_i} \, \dot{\theta}_i

이 관계는 트위스트 \mathcal{S}_i가 관절 i의 순간 운동을 기술함을 의미한다.

6.2 가속도 관계

2차 미분을 취하면 다음을 얻는다.

\frac{d^2}{dt^2} e^{[\mathcal{S}_i]\theta_i} = \left([\mathcal{S}_i]^2 \dot{\theta}_i^2 + [\mathcal{S}_i] \ddot{\theta}_i\right) e^{[\mathcal{S}_i]\theta_i}

이 결과는 동역학 모델링에서 관절 가속도의 영향을 분석하는 데 활용된다.

7. 지수 좌표와 다른 매개변수화의 비교

매개변수화차원특이점이중 피복비고
지수 좌표 \hat{\boldsymbol{\omega}}\theta3\theta = 0, \pi아니오리 대수 기반
오일러 각 (\phi, \theta, \psi)3짐벌 락 존재아니오직관적이나 특이점 문제
단위 쿼터니언 (q_0, q_1, q_2, q_3)4 (제약 1)없음예 (q \sim -q)보간에 유리
회전 행렬 R9 (제약 6)없음아니오직접 사용 가능

지수 좌표는 최소 매개변수 표현이면서 리 군-리 대수의 이론적 체계와 직접 연결된다는 장점이 있다. 다만 \theta = 0 근방에서 축 방향이 불확정(indeterminate)이 되는 점과 \theta = \pi에서의 불연속성이 존재한다.

8. 역기구학에서의 활용

역기구학 문제에서 원하는 말단 장치 형상 T_d가 주어졌을 때, 현재 형상 T(\boldsymbol{\theta})와의 차이를 지수 좌표로 표현할 수 있다.

T(\boldsymbol{\theta})^{-1} T_d = e^{[\mathcal{V}_b]\theta_e}

행렬 로그를 적용하면 오차 트위스트를 구한다.

[\mathcal{V}_b]\theta_e = \log\left(T(\boldsymbol{\theta})^{-1} T_d\right)

이를 뉴턴-랩슨(Newton-Raphson) 반복법에 적용하면 수치적 역기구학 알고리즘을 구성할 수 있다.

\boldsymbol{\theta}_{k+1} = \boldsymbol{\theta}_k + J_b^{\dagger}(\boldsymbol{\theta}_k) \, \mathcal{V}_b \theta_e

여기서 J_b^{\dagger}는 물체 야코비안의 의사역행렬(pseudoinverse)이다.

9. 참고 문헌

  1. Lynch, K. M., & Park, F. C. (2017). Modern Robotics: Mechanics, Planning, and Control. Cambridge University Press.
  2. Murray, R. M., Li, Z., & Sastry, S. S. (1994). A Mathematical Introduction to Robotic Manipulation. CRC Press.
  3. Selig, J. M. (2005). Geometric Fundamentals of Robotics. 2nd ed., Springer.
  4. Park, F. C. (1995). “Distance metrics on the rigid-body motions with applications to mechanism design.” ASME Journal of Mechanical Design, 117(1), pp. 48–54.
  5. Brockett, R. W. (1984). “Robotic manipulators and the product of exponentials formula.” Mathematical Theory of Networks and Systems, pp. 120–129.

v 0.1