9.5 좌표계 간 변환의 기본 원리

1. 좌표 변환의 필요성

로봇 시스템은 다수의 좌표계를 동시에 사용한다. 세계 좌표계, 몸체 좌표계, 센서 좌표계, 관절 좌표계 등이 공존하며, 이들 사이의 변환이 로봇의 모든 기하학적 연산에 필수적이다. 한 좌표계에서의 측정이나 제어 명령을 다른 좌표계로 변환하는 것이 좌표 변환의 기본 원리이다.

2. 강체 변환(Rigid Body Transformation)

두 좌표계가 모두 직교 정규 오른손 좌표계이면, 이들 사이의 변환은 회전과 병진으로 완전히 기술된다. 이러한 변환을 강체 변환(rigid body transformation) 또는 유클리드 변환(Euclidean transformation)이라 한다. 강체 변환은 두 점 사이의 거리와 벡터 사이의 각도를 보존한다.

3. 점의 변환

좌표계 \{B\}에서 점 {}^B\mathbf{p}가 주어졌을 때, 동일 점의 좌표계 \{A\}에서의 표현 {}^A\mathbf{p}는 다음과 같다.

{}^A\mathbf{p} = {}^A_B\mathbf{R}\,{}^B\mathbf{p} + {}^A\mathbf{t}_B

여기서:

  • {}^A_B\mathbf{R}: 좌표계 \{B\}에서 \{A\}로의 회전 행렬
  • {}^A\mathbf{t}_B: 좌표계 \{A\}에서 본 좌표계 \{B\}의 원점 위치

첫 항은 점을 좌표계 \{A\}의 방향으로 회전시키고, 둘째 항은 좌표계 \{B\}의 원점 오프셋을 보정한다.

4. 벡터의 변환

벡터는 두 점 사이의 변위이므로 병진에 무관하다. 벡터의 좌표 변환은 회전만 포함한다.

{}^A\mathbf{v} = {}^A_B\mathbf{R}\,{}^B\mathbf{v}

이는 점의 변환과 대비되는 중요한 차이이다.

5. 회전 행렬의 기하학적 해석

회전 행렬 {}^A_B\mathbf{R}은 좌표계 \{B\}의 기저 벡터를 좌표계 \{A\}의 좌표로 표현한 것이다.

{}^A_B\mathbf{R} = \begin{bmatrix}{}^A\hat{\mathbf{x}}_B & {}^A\hat{\mathbf{y}}_B & {}^A\hat{\mathbf{z}}_B\end{bmatrix}

즉, 각 열이 좌표계 \{B\}의 기저 벡터 \hat{\mathbf{x}}_B, \hat{\mathbf{y}}_B, \hat{\mathbf{z}}_B의 좌표계 \{A\}에서의 좌표이다.

6. 역변환

좌표계 \{A\}에서 좌표계 \{B\}로의 변환은 {}^A_B\mathbf{T}의 역변환이다.

{}^B\mathbf{p} = {}^A_B\mathbf{R}^T({}^A\mathbf{p} - {}^A\mathbf{t}_B)

또는:

{}^B_A\mathbf{R} = {}^A_B\mathbf{R}^T

{}^B\mathbf{t}_A = -{}^A_B\mathbf{R}^T\,{}^A\mathbf{t}_B

회전 행렬의 역은 전치와 같으므로 계산이 효율적이다.

7. 변환의 합성

세 좌표계 \{A\}, \{B\}, \{C\}가 있을 때, \{C\}에서 \{A\}로의 변환은 두 단계의 합성이다.

{}^A\mathbf{p} = {}^A_B\mathbf{R}(({}^B_C\mathbf{R}\,{}^C\mathbf{p}) + {}^B\mathbf{t}_C) + {}^A\mathbf{t}_B

이를 정리하면:

{}^A\mathbf{p} = {}^A_B\mathbf{R}\,{}^B_C\mathbf{R}\,{}^C\mathbf{p} + {}^A_B\mathbf{R}\,{}^B\mathbf{t}_C + {}^A\mathbf{t}_B

즉:

{}^A_C\mathbf{R} = {}^A_B\mathbf{R}\,{}^B_C\mathbf{R}

{}^A\mathbf{t}_C = {}^A_B\mathbf{R}\,{}^B\mathbf{t}_C + {}^A\mathbf{t}_B

회전은 곱으로, 병진은 회전된 병진의 합으로 결합된다.

8. 동차 변환(Homogeneous Transformation)

회전과 병진을 단일 행렬 연산으로 표현하기 위해 동차 좌표(homogeneous coordinate)를 도입한다. 3차원 점 \mathbf{p}를 4차원 동차 좌표 [\mathbf{p}^T, 1]^T로 확장한다.

\begin{bmatrix}{}^A\mathbf{p} \\ 1\end{bmatrix} = \begin{bmatrix}{}^A_B\mathbf{R} & {}^A\mathbf{t}_B \\ \mathbf{0}^T & 1\end{bmatrix}\begin{bmatrix}{}^B\mathbf{p} \\ 1\end{bmatrix}

4 \times 4 동차 변환 행렬:

{}^A_B\mathbf{T} = \begin{bmatrix}{}^A_B\mathbf{R} & {}^A\mathbf{t}_B \\ \mathbf{0}^T & 1\end{bmatrix}

8.1 동차 변환의 이점

  • 합성의 간결성: 합성이 단순 행렬 곱셈 {}^A_C\mathbf{T} = {}^A_B\mathbf{T}\,{}^B_C\mathbf{T}
  • 역변환: {}^B_A\mathbf{T} = {}^A_B\mathbf{T}^{-1}
  • 통일적 표현: 회전과 병진을 단일 객체로 취급

8.2 역변환의 계산

{}^A_B\mathbf{T}^{-1} = \begin{bmatrix}{}^A_B\mathbf{R}^T & -{}^A_B\mathbf{R}^T\,{}^A\mathbf{t}_B \\ \mathbf{0}^T & 1\end{bmatrix}

전체 행렬의 역을 계산할 필요 없이 회전의 전치와 병진의 회전-부호 변화로 구한다.

9. 로봇 공학에서의 연쇄 변환

9.1 기구학 체인

매니퓰레이터의 순방향 기구학은 연쇄된 링크 사이의 좌표 변환의 곱으로 계산된다.

{}^0_n\mathbf{T} = {}^0_1\mathbf{T}\,{}^1_2\mathbf{T}\,\cdots\,{}^{n-1}_n\mathbf{T}

{}^{i-1}_i\mathbf{T}는 관절 i의 DH 파라미터로 구성된다.

9.2 센서 융합

서로 다른 센서 좌표계의 관측을 공통 좌표계로 변환하여 융합한다.

9.3 ROS의 tf

ROS의 tf(Transform Library) 시스템이 좌표계의 동적 관리와 변환 조회를 체계적으로 제공한다.

10. 참고 문헌

  • 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.

version: 1.0