6.89 자코비안의 재귀적 계산 방법

직렬 매니퓰레이터의 자코비안 행렬은 순기구학의 연쇄 구조를 활용하여 재귀적(recursive)으로 효율적으로 계산할 수 있다. 재귀적 방법은 기저에서 말단 장치 방향으로, 또는 그 역방향으로 각 링크의 운동학적 양을 순차적으로 전파하여 자코비안을 구성한다. 본 절에서는 순방향 재귀와 역방향 재귀에 기반한 자코비안 계산 알고리즘을 기술한다.

1. 재귀적 계산의 기본 원리

직렬 매니퓰레이터에서 각 관절의 운동은 그 이후의 모든 링크에 영향을 미친다. 이 연쇄적 구조를 이용하면, 링크 i의 운동학적 양(위치, 자세, 속도)을 링크 i-1의 운동학적 양으로부터 점진적으로 계산할 수 있다. 이 과정을 순방향 재귀(forward recursion)라 한다.

기하학적 자코비안의 열 벡터를 구성하려면 다음의 세 가지 양이 필요하다.

  • \mathbf{z}_{i-1}: 관절 i의 축 방향 벡터 (기준 좌표계에서 표현)
  • \mathbf{p}_{i-1}: 좌표계 \{i-1\}의 원점 위치 (기준 좌표계에서 표현)
  • \mathbf{p}_n: 말단 장치 좌표계의 원점 위치 (기준 좌표계에서 표현)

이들은 동차 변환 행렬의 순방향 연쇄 곱으로부터 추출된다.

2. 순방향 재귀에 의한 동차 변환 행렬 계산

기준 좌표계에서 좌표계 \{i\}까지의 동차 변환 행렬은 다음의 재귀식으로 계산된다.

T_i^0 = T_{i-1}^0 \, T_i^{i-1}(q_i), \quad i = 1, 2, \dots, n

초기 조건은 T_0^0 = I_4이다. 각 관절의 국소 변환 행렬 T_i^{i-1}(q_i)는 Denavit-Hartenberg 파라미터 또는 지수곱(product of exponentials) 공식으로 구성된다.

T_i^0로부터 관절 축 벡터와 원점 위치를 추출한다.

\mathbf{z}_i = R_i^0 \, \mathbf{e}_3, \quad \mathbf{p}_i = \mathbf{d}_i^0

여기서 R_i^0T_i^03 \times 3 회전 부분, \mathbf{d}_i^04 \times 1 병진 부분의 상위 3개 성분, \mathbf{e}_3 = [0, 0, 1]^\top이다.

3. 자코비안 열 벡터의 순차적 구성

순방향 재귀로 T_0^0, T_1^0, \dots, T_n^0을 모두 계산한 후, 기하학적 자코비안의 각 열 벡터를 다음과 같이 구성한다.

관절 i가 회전 관절인 경우:

\mathbf{j}_i = \begin{bmatrix} \mathbf{z}_{i-1} \times (\mathbf{p}_n - \mathbf{p}_{i-1}) \\ \mathbf{z}_{i-1} \end{bmatrix}

관절 i가 직동 관절인 경우:

\mathbf{j}_i = \begin{bmatrix} \mathbf{z}_{i-1} \\ \mathbf{0} \end{bmatrix}

이 과정은 i = 1부터 i = n까지 순차적으로 수행되며, 전체 자코비안은 J = [\mathbf{j}_1, \mathbf{j}_2, \dots, \mathbf{j}_n]으로 구성된다.

4. 알고리즘 1: 순방향 재귀 자코비안 계산

전체 알고리즘을 의사 코드(pseudocode)로 정리하면 다음과 같다.

입력: 관절 변수 \mathbf{q}, 관절 유형 \sigma_i (0: 회전, 1: 직동), DH 파라미터

출력: 기하학적 자코비안 J \in \mathbb{R}^{6 \times n}

  1. T \leftarrow I_4 (초기 변환 행렬)
  2. for i = 1 to n do
  • T \leftarrow T \cdot T_i^{i-1}(q_i) (순방향 변환 누적)
  • \mathbf{z}_{i-1} \leftarrow 이전 Tz축 열 (또는 별도 저장)
  • \mathbf{p}_{i-1} \leftarrow 이전 T의 병진 벡터
  • T_i^0 \leftarrow T 저장
  1. \mathbf{p}_n \leftarrow T_n^0의 병진 벡터
  2. for i = 1 to n do
  • \mathbf{z}_{i-1}, \mathbf{p}_{i-1}T_{i-1}^0에서 추출
  • if \sigma_i = 0 (회전 관절) then
  • \mathbf{j}_i \leftarrow [\mathbf{z}_{i-1} \times (\mathbf{p}_n - \mathbf{p}_{i-1}); \; \mathbf{z}_{i-1}]
  • else (직동 관절)
  • \mathbf{j}_i \leftarrow [\mathbf{z}_{i-1}; \; \mathbf{0}]

5. 재귀적 속도 전파법

자코비안을 명시적으로 구성하지 않고, 각 링크의 속도를 기저에서 말단 장치 방향으로 재귀적으로 전파하여 최종적으로 말단 장치의 속도를 구하는 방법이다. 이 접근법은 Newton-Euler 동역학 알고리즘의 순방향 단계와 동일한 구조를 가진다.

5.1 각속도의 순방향 전파

링크 i의 각속도를 좌표계 \{i\}에서 표현한 값을 {}^i\boldsymbol{\omega}_i라 하자. 재귀 관계는 다음과 같다.

회전 관절 i의 경우:

{}^i\boldsymbol{\omega}_i = R_{i-1}^{i} \, {}^{i-1}\boldsymbol{\omega}_{i-1} + \dot{q}_i \, \mathbf{e}_3

직동 관절 i의 경우:

{}^i\boldsymbol{\omega}_i = R_{i-1}^{i} \, {}^{i-1}\boldsymbol{\omega}_{i-1}

여기서 R_{i-1}^i = (R_i^{i-1})^\top은 좌표계 \{i-1\}에서 \{i\}로의 회전 행렬이다.

5.2 선속도의 순방향 전파

링크 i의 원점 선속도를 좌표계 \{i\}에서 표현한 값은 다음과 같이 전파된다.

회전 관절 i의 경우:

{}^i\mathbf{v}_i = R_{i-1}^{i}\left({}^{i-1}\mathbf{v}_{i-1} + {}^{i-1}\boldsymbol{\omega}_{i-1} \times {}^{i-1}\mathbf{p}_{i}\right)

직동 관절 i의 경우:

{}^i\mathbf{v}_i = R_{i-1}^{i}\left({}^{i-1}\mathbf{v}_{i-1} + {}^{i-1}\boldsymbol{\omega}_{i-1} \times {}^{i-1}\mathbf{p}_{i}\right) + \dot{q}_i \, \mathbf{e}_3

여기서 {}^{i-1}\mathbf{p}_i는 좌표계 \{i-1\}에서 좌표계 \{i\}의 원점까지의 벡터이다.

5.3 초기 조건

기저 좌표계의 초기 조건은 고정 기저의 경우 다음과 같다.

{}^0\boldsymbol{\omega}_0 = \mathbf{0}, \quad {}^0\mathbf{v}_0 = \mathbf{0}

이동 기저(mobile base)의 경우에는 기저의 속도를 초기 조건으로 설정한다.

6. 지수곱 공식에 기반한 재귀적 계산

지수곱(product of exponentials) 공식에 기반한 공간 자코비안(space Jacobian)의 재귀적 계산은 수반 표현(adjoint representation)을 이용한다. 공간 자코비안의 i번째 열은 다음과 같이 계산된다.

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

여기서 \mathcal{S}_ii번째 관절의 스크류 축이고, \text{Ad}_TSE(3)의 수반 행렬이다.

\text{Ad}_T = \begin{bmatrix} R & \mathbf{0} \\ [p]_\times R & R \end{bmatrix} \in \mathbb{R}^{6 \times 6}

이 계산은 중간 변환 행렬 T_1, T_1 T_2, \dots를 순차적으로 누적하면서 수행할 수 있으므로 본질적으로 재귀적이다.

물체 자코비안(body Jacobian)은 유사하게 역방향 재귀로 계산된다.

J_{b,i}(\mathbf{q}) = \text{Ad}_{e^{-[\mathcal{B}_{i+1}]\theta_{i+1}} \cdots e^{-[\mathcal{B}_n]\theta_n}} \, \mathcal{B}_i

7. 계산 복잡도 비교

자코비안 계산 방법에 따른 계산 복잡도를 비교하면 다음과 같다.

방법시간 복잡도공간 복잡도비고
해석적 편미분O(n)O(n)닫힌 형태의 유도 필요
순방향 재귀O(n)O(n)범용적, 체계적
수치적 유한 차분O(n^2)O(n)n회 순기구학 평가 필요
재귀적 속도 전파O(n)O(n)J\dot{\mathbf{q}} 직접 계산에 적합

순방향 재귀 방법과 재귀적 속도 전파법은 모두 O(n)의 시간 복잡도를 가지므로 관절 수에 대해 선형적으로 증가한다. 이는 다관절 로봇에서의 실시간 계산에 적합하다.

8. 재귀적 알고리즘의 실용적 장점

재귀적 자코비안 계산은 다음과 같은 실용적 장점을 가진다.

  1. 체계성: 관절 수와 관절 유형에 무관하게 동일한 알고리즘 구조를 적용할 수 있어 범용 소프트웨어 구현이 용이하다.

  2. 중간 결과 재활용: 순기구학 계산 과정에서 생성되는 중간 변환 행렬 T_i^0를 자코비안 구성에 직접 활용하므로 중복 연산이 최소화된다.

  3. 확장성: 가지형(branching) 구조나 폐쇄 연쇄(closed-chain) 기구에 대해서도 재귀 구조를 확장하여 적용할 수 있다.

  4. 동역학과의 통합: Newton-Euler 역동역학 알고리즘의 순방향 단계에서 이미 속도 전파가 수행되므로, 추가 연산 없이 자코비안 관련 양을 함께 얻을 수 있다.


9. 참고 문헌

  • Craig, J. J. (2005). Introduction to Robotics: Mechanics and Control. 3rd ed. Pearson Prentice Hall.
  • Featherstone, R. (2008). Rigid Body Dynamics Algorithms. Springer.
  • Lynch, K. M., & Park, F. C. (2017). Modern Robotics: Mechanics, Planning, and Control. Cambridge University Press.
  • Siciliano, B., Sciavicco, L., Villani, L., & Oriolo, G. (2009). Robotics: Modelling, Planning and Control. Springer.
  • Luh, J. Y. S., Walker, M. W., & Paul, R. P. C. (1980). “On-Line Computational Scheme for Mechanical Manipulators.” Journal of Dynamic Systems, Measurement, and Control, 102(2), 69–76.

v 0.1