6.83 작업 공간에서의 강체 변환 연산

로봇 매니퓰레이터가 작업을 수행하기 위해서는 말단 장치와 대상 물체, 도구, 센서 등 다양한 객체의 공간적 관계를 강체 변환으로 기술하고 연산할 수 있어야 한다. 본 절에서는 작업 공간(task space 또는 operational space)에서 발생하는 다양한 강체 변환 연산을 체계적으로 다룬다.

1. 작업 공간의 정의와 구조

작업 공간은 말단 장치가 도달할 수 있는 모든 위치와 자세의 집합으로 정의된다. 수학적으로 3차원 작업 공간에서의 강체 변환은 특수 유클리드 군 SE(3)의 원소로 표현되며, 이는 회전군 SO(3)과 병진 공간 \mathbb{R}^3의 반직접곱(semi-direct product)으로 구성된다.

SE(3) = SO(3) \ltimes \mathbb{R}^3

SE(3)의 각 원소는 4 \times 4 동차 변환 행렬로 표현된다.

T = \begin{bmatrix} R & \mathbf{p} \\ \mathbf{0}^\top & 1 \end{bmatrix} \in SE(3)

여기서 R \in SO(3)는 회전 행렬, \mathbf{p} \in \mathbb{R}^3는 위치 벡터이다.

2. 좌표계 간 변환 연산

작업 공간에서 여러 좌표계 사이의 관계를 기술할 때, 동차 변환 행렬의 곱으로 좌표계 간 변환을 수행한다. 기준 좌표계 \{A\}에서 표현된 점 {}^A\mathbf{p}를 좌표계 \{B\}에서의 표현 {}^B\mathbf{p}로 변환하려면 다음의 관계를 사용한다.

\begin{bmatrix} {}^B\mathbf{p} \\ 1 \end{bmatrix} = T_A^B \begin{bmatrix} {}^A\mathbf{p} \\ 1 \end{bmatrix}

여기서 T_A^B는 좌표계 \{A\}에서 좌표계 \{B\}로의 변환 행렬이다. 이를 성분별로 전개하면 다음과 같다.

{}^B\mathbf{p} = R_A^B \, {}^A\mathbf{p} + \mathbf{p}_{A}^{B}

여기서 R_A^B \in SO(3)는 좌표계 \{A\}의 축 방향을 \{B\}에서 표현한 회전 행렬이고, \mathbf{p}_{A}^{B}\{A\}의 원점을 \{B\}에서 표현한 위치 벡터이다.

3. 변환의 연쇄 합성

작업 공간에서 여러 좌표계를 경유하는 경우, 변환 행렬의 연쇄 곱(chain product)으로 최종 변환을 구할 수 있다. 좌표계 \{A\}에서 \{B\}를 거쳐 \{C\}로의 변환은 다음과 같다.

T_A^C = T_B^C \, T_A^B

이 성질을 일반화하면 n개의 좌표계를 순차적으로 경유하는 변환은 다음과 같이 표현된다.

T_1^n = T_{n-1}^n \, T_{n-2}^{n-1} \cdots T_1^2

합성 시 행렬 곱의 순서가 중요하며, 이는 회전 연산의 비가환성(non-commutativity)에 기인한다. 즉, 일반적으로 T_A^B \, T_C^D \neq T_C^D \, T_A^B이다.

4. 역변환 연산

좌표계 \{A\}에서 \{B\}로의 변환 T_A^B가 주어졌을 때, 역변환 T_B^A = (T_A^B)^{-1}은 다음과 같이 계산된다.

T_B^A = (T_A^B)^{-1} = \begin{bmatrix} R_A^{B\top} & -R_A^{B\top} \mathbf{p}_A^B \\ \mathbf{0}^\top & 1 \end{bmatrix}

이 공식은 회전 행렬의 직교성(R^{-1} = R^\top)을 활용한 것으로, 일반적인 4 \times 4 행렬의 역행렬 계산보다 훨씬 효율적이다. 역변환은 다음의 관계를 만족한다.

T_A^B \, T_B^A = T_B^A \, T_A^B = I_4

5. 점, 벡터, 프레임의 변환

작업 공간에서 변환되는 기하학적 객체의 유형에 따라 변환 연산이 다르게 적용된다.

5.1 점의 변환

공간상의 점 \mathbf{p}는 위치 정보를 포함하므로 동차 좌표에서 마지막 성분이 1이다.

\tilde{\mathbf{p}} = \begin{bmatrix} \mathbf{p} \\ 1 \end{bmatrix}, \quad \tilde{\mathbf{p}}' = T \, \tilde{\mathbf{p}}

5.2 방향 벡터의 변환

방향 벡터 \mathbf{v}는 위치 정보가 없으므로 동차 좌표에서 마지막 성분이 0이다.

\tilde{\mathbf{v}} = \begin{bmatrix} \mathbf{v} \\ 0 \end{bmatrix}, \quad \tilde{\mathbf{v}}' = T \, \tilde{\mathbf{v}} = \begin{bmatrix} R \mathbf{v} \\ 0 \end{bmatrix}

따라서 방향 벡터에는 회전만 적용되고 병진은 영향을 주지 않는다.

5.3 좌표 프레임의 변환

좌표 프레임 \{B\}를 변환 T에 의해 이동시킨 새로운 프레임 \{B'\}는 다음과 같이 계산된다.

T_{B'}^A = T \, T_B^A

이는 로봇 말단 장치에 부착된 도구 좌표계를 기준 좌표계로 변환하는 데 직접적으로 활용된다.

6. 상대 변환 연산

두 물체의 좌표계 \{A\}\{B\}가 기준 좌표계 \{0\}에 대해 각각 T_A^0T_B^0로 표현될 때, \{A\}에서 본 \{B\}의 상대 변환은 다음과 같다.

T_B^A = (T_A^0)^{-1} \, T_B^0

이 연산은 로봇이 파지(grasping) 작업을 수행할 때 말단 장치와 대상 물체 사이의 상대적 위치 및 자세를 계산하는 데 핵심적이다.

7. 작업 공간에서의 미소 변환

말단 장치의 미소 변위(infinitesimal displacement)는 작업 공간에서 6차원 트위스트(twist) 벡터로 표현된다.

\boldsymbol{\xi} = \begin{bmatrix} \mathbf{v} \\ \boldsymbol{\omega} \end{bmatrix} \in \mathbb{R}^6

여기서 \mathbf{v} \in \mathbb{R}^3는 선속도 벡터, \boldsymbol{\omega} \in \mathbb{R}^3는 각속도 벡터이다. 미소 변환과 동차 변환 행렬의 관계는 다음과 같이 표현된다.

\dot{T} = [\boldsymbol{\xi}]_\wedge \, T

여기서 [\boldsymbol{\xi}]_\wedge는 트위스트 벡터의 4 \times 4 행렬 표현이다.

[\boldsymbol{\xi}]_\wedge = \begin{bmatrix} [\boldsymbol{\omega}]_\times & \mathbf{v} \\ \mathbf{0}^\top & 0 \end{bmatrix} \in \mathfrak{se}(3)

여기서 [\boldsymbol{\omega}]_\times는 각속도 벡터의 반대칭 행렬이며, \mathfrak{se}(3)SE(3)에 대응하는 리 대수이다.

8. 강체 변환의 보간

작업 공간에서 두 변환 T_0T_1 사이의 부드러운 경로를 생성하기 위해 보간(interpolation)이 필요하다.

8.1 위치의 선형 보간

위치 벡터에 대해서는 통상적인 선형 보간을 적용한다.

\mathbf{p}(t) = (1 - t) \, \mathbf{p}_0 + t \, \mathbf{p}_1, \quad t \in [0, 1]

8.2 자세의 구면 선형 보간

회전 성분에 대해서는 단위 쿼터니언을 이용한 구면 선형 보간(SLERP)을 적용하는 것이 바람직하다.

\mathbf{q}(t) = \frac{\sin((1-t)\Omega)}{\sin\Omega} \, \mathbf{q}_0 + \frac{\sin(t\Omega)}{\sin\Omega} \, \mathbf{q}_1

여기서 \Omega = \arccos(\mathbf{q}_0 \cdot \mathbf{q}_1)이다. 또한 행렬 지수와 로그를 이용한 보간도 가능하다.

T(t) = T_0 \, \exp\left(t \, \log\left(T_0^{-1} T_1\right)\right)

이 방법은 SE(3) 위에서의 측지선(geodesic)을 따르는 보간에 해당한다.

9. 작업 공간 변환의 로봇 공학적 응용

작업 공간에서의 강체 변환 연산은 다음과 같은 로봇 공학 문제에 직접적으로 활용된다.

9.1 순기구학 연산

직렬 매니퓰레이터의 말단 장치 변환은 각 관절 변환의 연쇄 곱으로 계산된다.

T_n^0(\mathbf{q}) = \prod_{i=1}^n T_i^{i-1}(q_i)

9.2 도구 좌표계 변환

말단 장치에 도구가 장착된 경우, 도구 끝점(tool center point)의 변환은 다음과 같다.

T_{\text{tool}}^0 = T_n^0 \, T_{\text{tool}}^n

여기서 T_{\text{tool}}^n은 말단 장치 좌표계에 대한 도구 좌표계의 고정 변환이다.

9.3 센서-말단 장치 캘리브레이션

카메라 등의 센서가 말단 장치에 장착된 경우, 기준 좌표계에서 센서가 관측한 물체의 위치는 다음과 같이 계산된다.

T_{\text{obj}}^0 = T_n^0 \, T_{\text{sensor}}^n \, T_{\text{obj}}^{\text{sensor}}

여기서 T_{\text{sensor}}^n은 핸드-아이 캘리브레이션(hand-eye calibration)을 통해 결정되는 센서와 말단 장치 간의 고정 변환이다.

9.4 물체 파지를 위한 상대 변환

대상 물체를 파지하기 위해 말단 장치가 취해야 할 자세는 다음의 역변환으로 결정된다.

T_n^0 = T_{\text{obj}}^0 \, (T_{\text{grasp}}^{\text{obj}})^{-1} \, (T_{\text{tool}}^n)^{-1}

여기서 T_{\text{grasp}}^{\text{obj}}는 물체 좌표계에서 정의된 파지 자세이다.

10. 수치적 고려 사항

작업 공간에서 강체 변환 연산을 반복적으로 수행하면 부동 소수점 오차가 누적되어 회전 행렬의 직교성이 손상될 수 있다. 이를 방지하기 위해 주기적으로 다음의 정규화를 수행하여야 한다.

  • 그람-슈미트 직교화: 회전 행렬의 열 벡터를 재직교화하여 R^\top R = I_3 조건을 복원한다
  • SVD 기반 투영: R에 대해 특이값 분해 R = U \Sigma V^\top을 수행한 후 R_{\text{corrected}} = U V^\top으로 가장 가까운 직교 행렬로 투영한다
  • 쿼터니언 정규화: 쿼터니언 표현을 사용하는 경우 \mathbf{q} \leftarrow \mathbf{q} / \|\mathbf{q}\|로 단위 구속 조건을 유지한다

11. 참고 문헌

  • Craig, J. J. (2005). Introduction to Robotics: Mechanics and Control. 3rd ed. Pearson Prentice Hall.
  • Siciliano, B., Sciavicco, L., Villani, L., & Oriolo, G. (2009). Robotics: Modelling, Planning and Control. Springer.
  • 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.
  • Corke, P. (2017). Robotics, Vision and Control: Fundamental Algorithms in MATLAB. 2nd ed. Springer.

v 0.1