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_s의 i번째 열은 다음과 같다.
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}}\theta | 3 | \theta = 0, \pi | 아니오 | 리 대수 기반 |
| 오일러 각 (\phi, \theta, \psi) | 3 | 짐벌 락 존재 | 아니오 | 직관적이나 특이점 문제 |
| 단위 쿼터니언 (q_0, q_1, q_2, q_3) | 4 (제약 1) | 없음 | 예 (q \sim -q) | 보간에 유리 |
| 회전 행렬 R | 9 (제약 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. 참고 문헌
- Lynch, K. M., & Park, F. C. (2017). Modern Robotics: Mechanics, Planning, and Control. Cambridge University Press.
- Murray, R. M., Li, Z., & Sastry, S. S. (1994). A Mathematical Introduction to Robotic Manipulation. CRC Press.
- Selig, J. M. (2005). Geometric Fundamentals of Robotics. 2nd ed., Springer.
- 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.
- Brockett, R. W. (1984). “Robotic manipulators and the product of exponentials formula.” Mathematical Theory of Networks and Systems, pp. 120–129.
v 0.1