9.44 동차 변환 행렬의 합성과 연쇄 곱

9.44 동차 변환 행렬의 합성과 연쇄 곱

1. 합성의 정의

동차 변환 행렬의 합성(composition)은 두 개 이상의 강체 변환을 차례로 적용한 결과를 단일한 동차 변환 행렬로 표현하는 연산이다. 동차 변환 행렬이 4 \times 4 행렬이므로 합성은 행렬 곱으로 자연스럽게 표현된다.

\mathbf{T}_{\text{합성}} = \mathbf{T}_2 \cdot \mathbf{T}_1

여기서 \mathbf{T}_1이 먼저 적용되고 \mathbf{T}_2가 나중에 적용된다. 행렬 곱의 순서 규칙에 따라 첫 번째로 적용되는 변환이 가장 오른쪽에 위치한다.

2. 블록 단위의 합성 규칙

두 동차 변환 행렬

\mathbf{T}_1 = \begin{bmatrix}\mathbf{R}_1 & \mathbf{t}_1 \\ \mathbf{0}^T & 1\end{bmatrix}, \quad \mathbf{T}_2 = \begin{bmatrix}\mathbf{R}_2 & \mathbf{t}_2 \\ \mathbf{0}^T & 1\end{bmatrix}

의 곱을 블록 단위로 전개하면

\mathbf{T}_2\mathbf{T}_1 = \begin{bmatrix}\mathbf{R}_2 & \mathbf{t}_2 \\ \mathbf{0}^T & 1\end{bmatrix}\begin{bmatrix}\mathbf{R}_1 & \mathbf{t}_1 \\ \mathbf{0}^T & 1\end{bmatrix} = \begin{bmatrix}\mathbf{R}_2\mathbf{R}_1 & \mathbf{R}_2\mathbf{t}_1 + \mathbf{t}_2 \\ \mathbf{0}^T & 1\end{bmatrix}

이 된다. 이 결과는 다음의 구조적 규칙을 제공한다.

  • 합성된 회전: \mathbf{R}_2\mathbf{R}_1
  • 합성된 병진: \mathbf{R}_2\mathbf{t}_1 + \mathbf{t}_2

회전 부분은 단순히 두 회전의 곱이고, 병진 부분은 첫 번째 병진을 두 번째 회전으로 변환한 후 두 번째 병진을 더한다. 이 비대칭성은 회전과 병진의 비가환성을 반영한다.

3. 합성의 결합 법칙

행렬 곱이 결합 법칙을 만족하므로 동차 변환의 합성도 결합적이다.

(\mathbf{T}_3\mathbf{T}_2)\mathbf{T}_1 = \mathbf{T}_3(\mathbf{T}_2\mathbf{T}_1)

따라서 다단계 합성에서 괄호의 위치는 결과에 영향을 주지 않으며, 부분적 합성을 사전 계산하여 재사용할 수 있다. 이는 매니퓰레이터 기구학 계산의 효율적 구현에 활용된다.

4. 합성의 비가환성

일반적으로 동차 변환의 합성은 가환하지 않다.

\mathbf{T}_2\mathbf{T}_1 \neq \mathbf{T}_1\mathbf{T}_2

이는 회전 부분의 비가환성(\mathbf{R}_2\mathbf{R}_1 \neq \mathbf{R}_1\mathbf{R}_2)과 병진 부분이 회전에 의존하기 때문이다. 두 가지 합성을 비교하면

\mathbf{T}_2\mathbf{T}_1 = \begin{bmatrix}\mathbf{R}_2\mathbf{R}_1 & \mathbf{R}_2\mathbf{t}_1 + \mathbf{t}_2 \\ \mathbf{0}^T & 1\end{bmatrix}

\mathbf{T}_1\mathbf{T}_2 = \begin{bmatrix}\mathbf{R}_1\mathbf{R}_2 & \mathbf{R}_1\mathbf{t}_2 + \mathbf{t}_1 \\ \mathbf{0}^T & 1\end{bmatrix}

이며 두 결과가 일반적으로 다르다.

5. 좌표계 연쇄 변환

5.1 첨자 표기 관례

좌표계 \{i\}에서 \{j\}로의 변환을 \mathbf{T}_{i,j} 또는 {}^i\mathbf{T}_j로 표기한다. 이 행렬의 의미는 좌표계 \{j\}의 기저 벡터와 원점을 좌표계 \{i\}의 좌표로 표현한 것이다.

5.2 연쇄 곱 규칙

세 좌표계 \{1\}, \{2\}, \{3\}이 있을 때 \{1\}에서 \{3\}으로의 변환은 다음의 연쇄 곱으로 얻어진다.

{}^1\mathbf{T}_3 = {}^1\mathbf{T}_2 \cdot {}^2\mathbf{T}_3

이 규칙은 첨자가 “사슬처럼” 연결된다는 점에서 직관적으로 이해된다. 안쪽 첨자({}^1\mathbf{T}_{2}2{}^2\mathbf{T}_{3}2)가 같으면 행렬 곱이 가능하며, 결과의 첨자는 양 끝(즉, 13)이다.

5.3 n단계 연쇄

n개의 좌표계 \{0\}, \{1\}, \{2\}, \ldots, \{n\}이 연쇄적으로 정의되어 있을 때, \{0\}에서 \{n\}으로의 누적 변환은 다음과 같다.

{}^0\mathbf{T}_n = {}^0\mathbf{T}_1 \cdot {}^1\mathbf{T}_2 \cdots {}^{n-1}\mathbf{T}_n = \prod_{i=0}^{n-1}{}^i\mathbf{T}_{i+1}

이는 매니퓰레이터의 순기구학 공식이다. 베이스에서 말단 장치까지의 누적 변환이 각 링크의 상대 변환의 곱으로 표현된다.

6. 매니퓰레이터 순기구학에의 적용

6.1 링크 변환

n개의 관절을 가진 매니퓰레이터의 각 링크 i의 상대 변환 {}^{i-1}\mathbf{T}_i는 그 관절의 운동 매개변수(회전 관절의 경우 관절 각)에 의존한다. 표준 DH 규약으로 표현하면

{}^{i-1}\mathbf{T}_i(\theta_i, d_i, a_i, \alpha_i) = \mathbf{Rot}_z(\theta_i)\mathbf{Trans}_z(d_i)\mathbf{Trans}_x(a_i)\mathbf{Rot}_x(\alpha_i)

이며, 네 개의 기본 변환의 합성으로 구성된다.

6.2 말단 장치 위치와 자세

베이스 좌표계에서 말단 장치 좌표계까지의 누적 변환은

{}^0\mathbf{T}_n(\boldsymbol{\theta}) = \prod_{i=1}^n{}^{i-1}\mathbf{T}_i(\theta_i)

이며, 이 행렬의 우상단 3 \times 1 블록이 말단 장치의 위치, 좌상단 3 \times 3 블록이 말단 장치의 자세이다. 관절 변수 벡터 \boldsymbol{\theta} = (\theta_1, \ldots, \theta_n)^T의 함수로서 말단 위치/자세가 결정되는 사상이 순기구학(forward kinematics)이다.

6.3 자코비안 계산

순기구학의 미분(자코비안)도 연쇄 곱 구조에서 효율적으로 계산된다. 부분 변환 {}^0\mathbf{T}_i를 사전 계산하고, 각 관절 변수에 대한 미분을 차례로 산출하는 방식이 표준적이다.

7. 좌표계 연쇄의 시각화

연쇄 곱의 의미를 시각적으로 이해하려면 다음과 같이 생각할 수 있다. 매니퓰레이터의 베이스에 좌표계 \{0\}이 부착되어 있고, 첫 번째 관절을 회전시키면 두 번째 좌표계 \{1\}이 그 관절에 따라 움직인다. 두 번째 관절을 회전시키면 세 번째 좌표계 \{2\}가 움직이는데, 이 좌표계는 이미 첫 번째 좌표계 위에 부착되어 있으므로 이전 변환의 영향을 받는다.

연쇄 곱은 이 누적적 부착 관계를 대수적으로 표현한다. 각 단계의 변환이 이전 단계의 결과 위에 적용되는 방식이 행렬 곱의 순서로 자연스럽게 인코딩된다.

8. 합성의 역

연쇄 곱의 역은 각 변환의 역을 역순으로 곱한 것과 같다.

({}^0\mathbf{T}_n)^{-1} = ({}^0\mathbf{T}_1 \cdot {}^1\mathbf{T}_2 \cdots {}^{n-1}\mathbf{T}_n)^{-1} = ({}^{n-1}\mathbf{T}_n)^{-1} \cdots ({}^1\mathbf{T}_2)^{-1}({}^0\mathbf{T}_1)^{-1}

{}^{i-1}\mathbf{T}_i의 역은 동차 변환의 역 공식으로 효율적으로 계산된다.

({}^{i-1}\mathbf{T}_i)^{-1} = {}^i\mathbf{T}_{i-1} = \begin{bmatrix}\mathbf{R}_i^T & -\mathbf{R}_i^T\mathbf{t}_i \\ \mathbf{0}^T & 1\end{bmatrix}

9. 합성의 효율적 구현

9.1 마지막 행의 활용

동차 변환 행렬의 마지막 행이 항상 (0, 0, 0, 1)이므로, 일반 4 \times 4 행렬 곱(64회의 곱셈)보다 적은 연산으로 합성을 수행할 수 있다. 마지막 행을 명시적으로 계산하지 않으면

  • 회전 부분: 27회 곱셈, 18회 덧셈
  • 병진 부분: 9회 곱셈, 9회 덧셈

총 36회 곱셈과 27회 덧셈으로 충분하다. 이는 일반 행렬 곱에 비해 거의 절반의 연산이다.

9.2 부분 변환의 캐싱

매니퓰레이터의 자코비안 계산이나 동역학 계산에서 부분적 누적 변환 {}^0\mathbf{T}_i를 사전 계산하여 캐싱하면 중복 계산을 피할 수 있다.

9.3 재사용 가능한 연산

여러 점을 동일한 변환으로 처리하는 경우(예: 점군의 전체 변환), 한 번의 합성으로 누적 변환 행렬을 구하고 각 점에 적용하는 것이 효율적이다.

10. SE(3)의 군 구조와의 관계

연쇄 곱은 SE(3)이 행렬 곱 연산에 관해 군을 이룸을 직접 확인하는 방법이다. 두 동차 변환의 곱이 다시 동차 변환이고, 항등 원소가 단위 행렬이며, 모든 원소가 가역(역행렬도 동차 변환 형태)이다. 이러한 군 성질이 매니퓰레이터의 기구학 연쇄, SLAM의 포즈 그래프, 좌표 변환 트리 등의 수학적 기반이 된다.

11. 좌표 변환 트리에서의 연쇄

ROS의 TF/TF2 프레임워크나 일반적 좌표 변환 트리에서 임의의 두 좌표계 사이의 변환은 트리 경로를 따른 연쇄 곱으로 계산된다. 트리의 각 에지가 부모-자식 관계의 동차 변환이며, 두 노드 사이의 변환은 한 노드에서 공통 조상까지 올라가고 다시 다른 노드까지 내려오는 경로의 변환들을 곱한 것이다.

12. 참고 문헌

  • Siciliano, B., Sciavicco, L., Villani, L., & Oriolo, G. (2009). Robotics: Modelling, Planning and Control. Springer.
  • Craig, J. J. (2018). Introduction to Robotics: Mechanics and Control (4th ed.). Pearson.
  • Spong, M. W., Hutchinson, S., & Vidyasagar, M. (2020). Robot Modeling and Control (2nd ed.). Wiley.
  • Murray, R. M., Li, Z., & Sastry, S. S. (1994). A Mathematical Introduction to Robotic Manipulation. CRC Press.
  • Lynch, K. M., & Park, F. C. (2017). Modern Robotics: Mechanics, Planning, and Control. Cambridge University Press.

version: 1.0