평면 변환 행렬

로봇공학을 위한 평면의 변환 행렬(Transformation Matrix)

로봇공학에서 물체의 위치와 자세를 표현하고 조작하는 것은 가장 기본적이면서도 중요한 작업입니다. 본 문서는 2차원 평면과 3차원 공간에서의 변환 행렬을 체계적으로 설명하며, 회전(Rotation), 병진(Translation), 그리고 이들의 조합을 수학적으로 엄밀하게 다룹니다.


목차

Part I: 2D 변환

  1. 좌표계와 기본 개념
  2. 2D 병진 변환
  3. 2D 회전 변환
  4. 동차 좌표계
  5. 2D 강체 변환
  6. 변환의 합성과 역변환
  7. 2D 실전 예제

Part I: 2D 변환


1. 좌표계와 기본 개념

1.1 좌표계의 정의

로봇공학에서 물체의 위치를 표현하기 위해서는 기준 좌표계(Reference Frame)가 필요합니다. 2D 평면에서 한 점의 위치는 두 개의 좌표 $(x, y)$로 표현됩니다.

그림1

그림 1. 2D 직교 좌표계

1.2 좌표계의 종류

로봇공학에서 일반적으로 사용되는 좌표계는 다음과 같습니다:

  1. 세계 좌표계(World Frame, {W}): 절대 기준이 되는 고정 좌표계
  2. 로봇 좌표계(Robot Frame, {R}): 로봇의 베이스에 고정된 좌표계
  3. 도구 좌표계(Tool Frame, {T}): 로봇 엔드 이펙터에 부착된 좌표계
  4. 작업 좌표계(Task Frame, {Task}): 작업 대상물에 정의된 좌표계

1.3 벡터의 표현

2D 평면에서 점 또는 벡터는 열 벡터(Column Vector) 형태로 표현됩니다:

$$ \mathbf{p} = \begin{bmatrix} x \\ y \end{bmatrix} $$

여기서:

  • $x$: X축 방향 성분
  • $y$: Y축 방향 성분

1.4 좌표계 간의 관계

서로 다른 좌표계에서 같은 점을 표현할 때, 좌표계를 명시하기 위해 상위 첨자(Superscript)를 사용합니다:

$$ {}^A\mathbf{p} = \begin{bmatrix} {}^Ax \ {}^Ay \end{bmatrix} $$

이는 “좌표계 {A}에서 표현된 점 p”를 의미합니다.


2. 2D 병진 변환

2.1 병진 변환의 정의

병진 변환(Translation)은 물체를 회전 없이 일정한 방향으로 이동시키는 변환입니다.

점 $\mathbf{p}$를 벡터 $\mathbf{d} = \begin{bmatrix} d_x \\ d_y \end{bmatrix}$만큼 이동시키면:

$$ \begin{aligned} \mathbf{p}’ &= \mathbf{p} + \mathbf{d} \\ &= \begin{bmatrix} x \\ y \end{bmatrix} + \begin{bmatrix} d_x \\ d_y \end{bmatrix} \\ &= \begin{bmatrix} x + d_x \\ y + d_y \end{bmatrix} \end{aligned} $$

그림2

그림 2. 병진 변환의 시각화

2.2 병진의 성질

  1. 교환 법칙(Commutative): $\mathbf{p} + \mathbf{d}_1 + \mathbf{d}_2 = \mathbf{p} + \mathbf{d}_2 + \mathbf{d}_1$
  2. 결합 법칙(Associative): $(\mathbf{p} + \mathbf{d}_1) + \mathbf{d}_2 = \mathbf{p} + (\mathbf{d}_1 + \mathbf{d}_2)$
  3. 항등원(Identity): $\mathbf{p} + \mathbf{0} = \mathbf{p}$
  4. 역원(Inverse): $\mathbf{p} + \mathbf{d} + (-\mathbf{d}) = \mathbf{p}$

2.3 좌표계 간 병진 관계

좌표계 {B}가 좌표계 {A}에 대해 벡터 ${}^A\mathbf{p}_{B,org}$만큼 떨어져 있을 때, 좌표계 {B}에서 표현된 점 ${}^B\mathbf{p}$를 좌표계 {A}에서 표현하면:

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


3. 2D 회전 변환

3.1 회전 변환의 정의

회전 변환(Rotation)은 원점을 중심으로 점 또는 좌표계를 회전시키는 변환입니다.

  • 그림3

    그림 3. 2D 회전 변환

3.2 회전 행렬의 유도

점 $P(x, y)$를 원점을 중심으로 각도 $\theta$만큼 반시계 방향(CCW: Counter-Clockwise)으로 회전시킨 점을 $P'(x’, y’)$라 하면:

극좌표로 표현하면:

  • 회전 전: $x = r\cos\phi$, $y = r\sin\phi$
  • 회전 후: $x’ = r\cos(\phi + \theta)$, $y’ = r\sin(\phi + \theta)$

삼각함수 덧셈 공식을 적용하면:

$$ \begin{aligned} x’ &= r\cos(\phi + \theta) \\ &= r(\cos\phi\cos\theta – \sin\phi\sin\theta) \\ &= x\cos\theta – y\sin\theta \end{aligned} $$

$$ \begin{aligned} y’ &= r\sin(\phi + \theta) \\ &= r(\sin\phi\cos\theta + \cos\phi\sin\theta) \\ &= x\sin\theta + y\cos\theta \end{aligned} $$

이를 행렬 형태로 표현하면:

$$ \begin{aligned} \begin{bmatrix} x’ \\ y’ \end{bmatrix} = \begin{bmatrix} \cos\theta & -\sin\theta \\ \sin\theta & \cos\theta \end{bmatrix} \begin{bmatrix} x \\ y \end{bmatrix} \end{aligned} $$

3.3 회전 행렬(Rotation Matrix)

각도 $\theta$에 대한 2D 회전 행렬은 다음과 같이 정의됩니다:

$$ \mathbf{R}(\theta) = \begin{bmatrix} \cos\theta & -\sin\theta \\ \sin\theta & \cos\theta \end{bmatrix} $$

기호 표기:

  • $\mathbf{R}(\theta)$: 각도 $\theta$만큼의 회전
  • $\mathbf{R}_z(\theta)$: Z축(2D에서는 평면에 수직인 축) 중심 회전을 명시적으로 표현할 때

3.4 회전 행렬의 성질

회전 행렬은 직교 행렬(Orthogonal Matrix)이며, 다음의 중요한 성질을 가집니다:

(1) 직교성(Orthogonality)

$$ \mathbf{R}^T\mathbf{R} = \mathbf{R}\mathbf{R}^T = \mathbf{I} $$

여기서 $\mathbf{I}$는 단위 행렬(Identity Matrix)입니다.

(2) 역행렬과 전치 행렬의 관계

$$ \mathbf{R}^{-1} = \mathbf{R}^T $$

따라서: $$ \begin{aligned} \mathbf{R}(\theta)^{-1} &= \mathbf{R}(\theta)^T \\ {} &= \mathbf{R}(-\theta) \\ {} &= \begin{bmatrix} \cos\theta & \sin\theta \\ -\sin\theta & \cos\theta \end{bmatrix} \end{aligned} $$

(3) 행렬식(Determinant)

$$ \det(\mathbf{R}) = 1 $$

이는 회전 변환이 방향을 보존(Orientation-Preserving)하는 변환임을 의미합니다.

(4) 길이 보존(Length-Preserving)

$$ |\mathbf{R}\mathbf{p}| = |\mathbf{p}| $$

회전은 점 사이의 거리를 변화시키지 않습니다.

(5) 각도 보존(Angle-Preserving)

두 벡터 사이의 각도가 회전 후에도 유지됩니다.

3.5 특수한 회전 각도

자주 사용되는 회전 각도에 대한 회전 행렬:

90° 회전 (π/2 rad): $$ \mathbf{R}(90°) = \begin{bmatrix} 0 & -1 \\ 1 & 0 \end{bmatrix} $$

180° 회전 (π rad): $$ \mathbf{R}(180°) = \begin{bmatrix} -1 & 0 \\ 0 & -1 \end{bmatrix} $$

270° 회전 (3π/2 rad): $$ \mathbf{R}(270°) = \begin{bmatrix} 0 & 1 \\ -1 & 0 \end{bmatrix} $$

360° 회전 (2π rad, 항등원): $$ \mathbf{R}(360°) = \begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix} = \mathbf{I} $$

3.6 좌표계 간 회전 관계

좌표계 {B}가 좌표계 {A}에 대해 각도 $\theta$만큼 회전되어 있을 때:

좌표계 {B}에서 {A}로 변환: $$ {}^A\mathbf{p} = {}^A\mathbf{R}_B \cdot {}^B\mathbf{p} $$

좌표계 {A}에서 {B}로 변환: $$ {}^B\mathbf{p} = {}^B\mathbf{R}_A \cdot {}^A\mathbf{p} = ({}^A\mathbf{R}_B)^T \cdot {}^A\mathbf{p} $$

여기서 ${}^A\mathbf{R}_B$는 “좌표계 {A}에서 본 좌표계 {B}의 자세”를 나타내는 회전 행렬입니다.

3.7 회전의 기하학적 의미

회전 행렬의 각 열은 회전된 좌표계의 기저 벡터(Basis Vector)를 나타냅니다:

$$ \mathbf{R}(\theta) = \begin{bmatrix} || \ \mathbf{x}_B & \mathbf{y}_B \ || \end{bmatrix} = \begin{bmatrix} \cos\theta & -\sin\theta \\ \sin\theta & \cos\theta \end{bmatrix} $$

  • 첫 번째 열 $\mathbf{x}_B = \begin{bmatrix} \cos\theta \ \sin\theta \end{bmatrix}$: 회전된 X축 방향
  • 두 번째 열 $\mathbf{y}_B = \begin{bmatrix} -\sin\theta \ \cos\theta \end{bmatrix}$: 회전된 Y축 방향
1

그림 4. 회전된 좌표계의 기저 벡터


4. 동차 좌표계

4.1 동차 좌표계의 필요성

앞서 살펴본 회전과 병진 변환을 각각 적용하면:

$$ \mathbf{p}’ = \mathbf{R}\mathbf{p} + \mathbf{d} $$

이 형태는 선형 변환이 아니므로 행렬의 곱셈만으로 표현할 수 없습니다. 여러 변환을 연속적으로 적용하려면 매번 행렬 곱셈과 벡터 덧셈을 반복해야 하는 불편함이 있습니다.

이 문제를 해결하기 위해 동차 좌표계(Homogeneous Coordinates)를 도입합니다[1][2].

4.2 동차 좌표계의 정의

2D 점 $(x, y)$를 3차원 동차 좌표로 확장합니다:

$$ \begin{bmatrix} x \ y \end{bmatrix} \rightarrow \begin{bmatrix} x \ y \ 1 \end{bmatrix} $$

마지막 성분 “1”을 추가함으로써 병진 변환을 행렬 곱셈으로 표현할 수 있게 됩니다.

4.3 동차 좌표계에서의 병진

병진 변환은 다음과 같이 표현됩니다:

$$ \begin{bmatrix} x’ \\ y’ \\ 1 \end{bmatrix} = \begin{bmatrix} 1 & 0 & d_x \\ 0 & 1 & d_y \\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} x \\ y \\ 1 \end{bmatrix} $$

병진 변환 행렬: $$ \mathbf{T}(d_x, d_y) = \begin{bmatrix} 1 & 0 & d_x \\ 0 & 1 & d_y \\ 0 & 0 & 1 \end{bmatrix} $$

4.4 동차 좌표계에서의 회전

회전 변환은 다음과 같이 표현됩니다:

$$ \begin{bmatrix} x’ \\ y’ \\ 1 \end{bmatrix} = \begin{bmatrix} \cos\theta & -\sin\theta & 0 \\ \sin\theta & \cos\theta & 0 \\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} x \\ y \\ 1 \end{bmatrix} $$

회전 변환 행렬 (동차 좌표계): $$ \mathbf{T}_R(\theta) = \begin{bmatrix} \cos\theta & -\sin\theta & 0 \\ \sin\theta & \cos\theta & 0 \\ 0 & 0 & 1 \end{bmatrix} = \begin{bmatrix} \mathbf{R}(\theta) & \mathbf{0} \\ \mathbf{0}^T & 1 \end{bmatrix} $$


5. 2D 강체 변환

5.1 강체 변환의 정의

강체 변환(Rigid-Body Transformation) 또는 유클리드 변환(Euclidean Transformation)은 회전과 병진을 모두 포함하는 변환으로, 물체의 형상과 크기를 변화시키지 않습니다[3].

2D 강체 변환은 SE(2) (Special Euclidean Group in 2D)에 속합니다.

5.2 동차 변환 행렬

동차 변환 행렬(Homogeneous Transformation Matrix)은 다음과 같은 $3 \times 3$ 행렬로 표현됩니다:

$$ \mathbf{T} = \begin{bmatrix} \mathbf{R} & \mathbf{p} \\ \mathbf{0}^T & 1 \end{bmatrix} = \begin{bmatrix} \cos\theta & -\sin\theta & p_x \\ \sin\theta & \cos\theta & p_y \\ 0 & 0 & 1 \end{bmatrix} $$

여기서:

  • $\mathbf{R} \in SO(2)$: $2 \times 2$ 회전 행렬
  • $\mathbf{p} \in \mathbb{R}^2$: $2 \times 1$ 병진 벡터
  • $\mathbf{0}^T = \begin{bmatrix} 0 & 0 \end{bmatrix}$: $1 \times 2$ 영벡터
  • $1$: 스칼라
그림4

그림 5. 강제 변환: 회전 + 병진

5.3 변환 행렬의 물리적 의미

동차 변환 행렬 ${}^A\mathbf{T}_B$는 다음을 나타냅니다:

  1. 자세(Orientation): 좌표계 {B}가 {A}에 대해 얼마나 회전되어 있는가 ($\mathbf{R}$)
  2. 위치(Position): 좌표계 {B}의 원점이 {A}에서 어디에 위치하는가 ($\mathbf{p}$)

5.4 강체 변환의 적용

좌표계 {B}에서 표현된 점 ${}^B\mathbf{p}$를 좌표계 {A}에서 표현하려면:

$$ \begin{bmatrix} {}^A\mathbf{p} \\ 1 \end{bmatrix} = {}^A\mathbf{T}_B \begin{bmatrix} {}^B\mathbf{p} \\ 1 \end{bmatrix} $$

전개하면:

$$ \begin{aligned} {}^A\mathbf{p} &= {}^A\mathbf{T}_B \cdot {}^B\mathbf{p}_{homo} \\ &= \left[ \begin{array}{c|c} {}^A\mathbf{R}_B & {}^A\mathbf{p}_{B,org} \\ \hline \mathbf{0}^T & 1 \end{array} \right] \begin{bmatrix} {}^B\mathbf{p} \\ 1 \end{bmatrix} \\ &= {}^A\mathbf{R}_B \cdot {}^B\mathbf{p} + {}^A\mathbf{p}_{B,org} \end{aligned} $$

이는 먼저 회전을 적용한 후 병진을 더하는 것과 같습니다.

5.5 강체 변환의 분해

역으로, 동차 변환 행렬에서 회전과 병진 성분을 추출할 수 있습니다:

$$ \begin{aligned} \mathbf{T} &= \begin{bmatrix} r_{11} & r_{12} & p_x \\\\ r_{21} & r_{22} & p_y \\\\ 0 & 0 & 1 \end{bmatrix} \\\\ &= \begin{bmatrix} \cos\theta & -\sin\theta & p_x \\\\ \sin\theta & \cos\theta & p_y \\\\ 0 & 0 & 1 \end{bmatrix} \end{aligned} $$

  • 회전 각도:

    $\theta = \arctan2(r_{21}, r_{11})$

  • 병진 벡터:

    $\mathbf{p} = \begin{bmatrix} p_x \\\\ p_y \end{bmatrix}$

여기서 $\arctan2(y, x)$는 4분면을 고려한 역탄젠트 함수입니다.

5.6 SE(2) 군의 성질

SE(2) 군은 다음의 군(Group) 공리를 만족합니다:

  1. 닫힘(Closure): $\mathbf{T}_1, \mathbf{T}_2 \in SE(2) \Rightarrow \mathbf{T}_1 \mathbf{T}_2 \in SE(2)$
  2. 결합 법칙: $(\mathbf{T}_1 \mathbf{T}_2) \mathbf{T}_3 = \mathbf{T}_1 (\mathbf{T}_2 \mathbf{T}_3)$
  3. 항등원: $\mathbf{T} \cdot \mathbf{I} = \mathbf{I} \cdot \mathbf{T} = \mathbf{T}$, 여기서 $\mathbf{I} = \begin{bmatrix} \mathbf{I}_2 & \mathbf{0} \ \mathbf{0}^T & 1 \end{bmatrix}$
  4. 역원: 모든 $\mathbf{T} \in SE(2)$에 대해 $\mathbf{T}^{-1}$이 존재하고 $\mathbf{T} \mathbf{T}^{-1} = \mathbf{I}$

6. 변환의 합성과 역변환

6.1 변환의 합성(Composition)

여러 변환을 연속적으로 적용하는 것을 변환의 합성이라고 합니다.

세 개의 좌표계 {A}, {B}, {C}가 있을 때:

$$ {}^A\mathbf{T}_C = {}^A\mathbf{T}_B \cdot {}^B\mathbf{T}_C $$

이는 좌표계 {C}에서 {A}로 변환하기 위해 먼저 {C}에서 {B}로, 그 다음 {B}에서 {A}로 변환하는 것을 의미합니다.

   {A} ──→ {B} ──→ {C}
       T_AB    T_BC

   {A} ────────────→ {C}
         T_AC = T_AB · T_BC

그림 6. 변환의 연쇄 법칙

6.2 변환 행렬의 곱셈 순서

⚠️ 주의: 행렬 곱셈은 교환 법칙이 성립하지 않습니다!

$$ {}^A\mathbf{T}_B \cdot {}^B\mathbf{T}_C \neq {}^B\mathbf{T}_C \cdot {}^A\mathbf{T}_B $$

변환은 오른쪽에서 왼쪽으로 순서대로 적용됩니다.

6.3 역변환(Inverse Transformation)

동차 변환 행렬의 역행렬은 다음과 같이 계산됩니다:

$$ \mathbf{T}^{-1} = \begin{bmatrix} \mathbf{R} & \mathbf{p} \\ \mathbf{0}^T & 1 \end{bmatrix}^{-1} = \begin{bmatrix} \mathbf{R}^T & -\mathbf{R}^T\mathbf{p} \\ \mathbf{0}^T & 1 \end{bmatrix} $$

유도 과정:

$\mathbf{T} \mathbf{T}^{-1} = \mathbf{I}$이므로:

$$ \begin{bmatrix} \mathbf{R} & \mathbf{p} \\ \mathbf{0}^T & 1 \end{bmatrix} \begin{bmatrix} \mathbf{R}^{-1} & \mathbf{t} \\ \mathbf{0}^T & 1 \end{bmatrix} = \begin{bmatrix} \mathbf{I} & \mathbf{0} \\ \mathbf{0}^T & 1 \end{bmatrix} $$

이를 전개하면:

  • $\mathbf{R} \mathbf{R}^{-1} = \mathbf{I}$ ✓
  • $\mathbf{R} \mathbf{t} + \mathbf{p} = \mathbf{0}$

따라서: $$ \mathbf{t} = -\mathbf{R}^{-1}\mathbf{p} = -\mathbf{R}^T\mathbf{p} $$

6.4 역변환의 물리적 의미

${}^A\mathbf{T}_B$의 역행렬 ${}^B\mathbf{T}_A = ({}^A\mathbf{T}_B)^{-1}$은 좌표계 {A}에서 {B}로의 변환을 나타냅니다.

즉:

  • ${}^A\mathbf{T}_B$: {B}에서 표현된 점을 {A}로 변환
  • ${}^B\mathbf{T}_A$: {A}에서 표현된 점을 {B}로 변환

6.5 상대 변환(Relative Transformation)

두 물체의 상대적 위치를 구할 때:

좌표계 {B}와 {C}가 모두 좌표계 {A}에 대해 정의되어 있을 때, {B}에서 본 {C}의 위치는:

$$ {}^B\mathbf{T}_C = ({}^A\mathbf{T}_B)^{-1} \cdot {}^A\mathbf{T}_C = {}^B\mathbf{T}_A \cdot {}^A\mathbf{T}_C $$

6.6 합성 변환의 예제

예제: 다음 순서로 변환을 적용할 때:

  1. 원점 중심 30° 회전
  2. (2, 3)만큼 병진
  3. 원점 중심 45° 회전

전체 변환 행렬은:

$$ \begin{aligned} \mathbf{T}_{total} &= \mathbf{T}_R(45^\circ) \cdot \mathbf{T}_{trans}(2,3) \cdot \mathbf{T}_R(30^\circ) \\\\ &= \begin{bmatrix} \cos 45^\circ & -\sin 45^\circ & 0 \\\\ \sin 45^\circ & \cos 45^\circ & 0 \\\\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} 1 & 0 & 2 \\\\ 0 & 1 & 3 \\\\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} \cos 30^\circ & -\sin 30^\circ & 0 \\\\ \sin 30^\circ & \cos 30^\circ & 0 \\\\ 0 & 0 & 1 \end{bmatrix} \end{aligned} $$


7. 2D 실전 예제

7.1 예제 1: 회전된 좌표계에서의 점 변환

문제: 좌표계 {B}가 좌표계 {A}에 대해 45° 회전되어 있다. 좌표계 {B}에서 점 $P$의 좌표가 $(1, 0)$일 때, 좌표계 {A}에서의 좌표는?

풀이:

회전 행렬: $$ {}^A\mathbf{R}_B = \begin{bmatrix} \cos 45° & -\sin 45° \\ \sin 45° & \cos 45° \end{bmatrix} = \begin{bmatrix} \frac{\sqrt{2}}{2} & -\frac{\sqrt{2}}{2} \\ \frac{\sqrt{2}}{2} & \frac{\sqrt{2}}{2} \end{bmatrix} $$

변환: $$ {}^A\mathbf{p} = {}^A\mathbf{R}_B \cdot {}^B\mathbf{p} = \begin{bmatrix} \frac{\sqrt{2}}{2} & -\frac{\sqrt{2}}{2} \\ \frac{\sqrt{2}}{2} & \frac{\sqrt{2}}{2} \end{bmatrix} \begin{bmatrix} 1 \\ 0 \end{bmatrix} = \begin{bmatrix} \frac{\sqrt{2}}{2} \\ \frac{\sqrt{2}}{2} \end{bmatrix} \approx \begin{bmatrix} 0.707 \\ 0.707 \end{bmatrix} $$

: 좌표계 {A}에서 점 $P$는 $(0.707, 0.707)$


7.2 예제 2: 회전 후 병진 변환

문제: 점 $(2, 1)$을 원점 중심으로 90° 회전한 후, $(3, -1)$만큼 이동시킬 때 최종 위치는?

풀이:

방법 1: 순차 계산

회전: $$ \mathbf{p}_1 = \mathbf{R}(90°) \mathbf{p}_0 = \begin{bmatrix} 0 & -1 \\ 1 & 0 \end{bmatrix} \begin{bmatrix} 2 \\ 1 \end{bmatrix} = \begin{bmatrix} -1 \\ 2 \end{bmatrix} $$

병진: $$ \mathbf{p}_2 = \mathbf{p}_1 + \mathbf{d} = \begin{bmatrix} -1 \\ 2 \end{bmatrix} + \begin{bmatrix} 3 \\ -1 \end{bmatrix} = \begin{bmatrix} 2 \\ 1 \end{bmatrix} $$

방법 2: 동차 좌표계 사용

$$ \mathbf{T} = \mathbf{T}_{trans}(3, -1) \cdot \mathbf{T}_R(90°) $$

$$ = \begin{bmatrix} 1 & 0 & 3 \\ 0 & 1 & -1 \\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} 0 & -1 & 0 \\ 1 & 0 & 0 \\ 0 & 0 & 1 \end{bmatrix} = \begin{bmatrix} 0 & -1 & 3 \\ 1 & 0 & -1 \\ 0 & 0 & 1 \end{bmatrix} $$

$$ \begin{bmatrix} x’ \\ y’ \\ 1 \end{bmatrix} = \begin{bmatrix} 0 & -1 & 3 \\ 1 & 0 & -1 \\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} 2 \\ 1 \ 1 \end{bmatrix} = \begin{bmatrix} 2 \\ 1 \\ 1 \end{bmatrix} $$

: 최종 위치는 $(2, 1)$


7.3 예제 3: 로봇 팔의 전방 기구학(Forward Kinematics)

문제: 2링크 평면 로봇 팔이 있다. 첫 번째 링크 길이 $L_1 = 2$, 두 번째 링크 길이 $L_2 = 1.5$이고, 각 조인트 각도가 $\theta_1 = 30°$, $\theta_2 = 45°$일 때, 엔드 이펙터의 위치는?

그림5

그림 7. 2링크 평면 로봇 팔

풀이:

각 링크의 변환 행렬:

링크 1 (베이스에서 조인트2까지): $$ \mathbf{T}_1 = \begin{bmatrix} \cos\theta_1 & -\sin\theta_1 & L_1\cos\theta_1 \\ \sin\theta_1 & \cos\theta_1 & L_1\sin\theta_1 \\ 0 & 0 & 1 \end{bmatrix} $$

링크 2 (조인트2에서 엔드 이펙터까지): $$ \mathbf{T}_2 = \begin{bmatrix} \cos\theta_2 & -\sin\theta_2 & L_2\cos\theta_2 \\ \sin\theta_2 & \cos\theta_2 & L_2\sin\theta_2 \\ 0 & 0 & 1 \end{bmatrix} $$

전체 변환: $$ \mathbf{T}_{total} = \mathbf{T}_1 \cdot \mathbf{T}_2 $$

엔드 이펙터 위치 (병진 성분): $$ \begin{aligned} x &= L_1\cos\theta_1 + L_2\cos(\theta_1 + \theta_2) \\ &= 2\cos 30° + 1.5\cos 75° \\ &= 2 \times 0.866 + 1.5 \times 0.259 \\ &\approx 1.732 + 0.388 = 2.12 \\ \\ y &= L_1\sin\theta_1 + L_2\sin(\theta_1 + \theta_2) \\ &= 2\sin 30° + 1.5\sin 75° \\ &= 2 \times 0.5 + 1.5 \times 0.966 \\ &\approx 1.0 + 1.449 = 2.45 \end{aligned} $$

: 엔드 이펙터 위치는 약 $(2.12, 2.45)$


7.4 예제 4: 역변환을 이용한 상대 위치 계산

문제: 로봇 {R}과 작업물 {W}의 위치가 세계 좌표계 {A}에서 다음과 같이 주어졌다:

$$ \begin{aligned} {}^A\mathbf{T}_R &= \begin{bmatrix} 0 & -1 & 3 \\ 1 & 0 & 2 \\ 0 & 0 & 1 \end{bmatrix}, \quad {}^A\mathbf{T}_W = \begin{bmatrix} 1 & 0 & 5 \\ 0 & 1 & 4 \\ 0 & 0 & 1 \end{bmatrix} \end{aligned} $$

로봇 좌표계에서 본 작업물의 위치는?

풀이:

$$ {}^R\mathbf{T}_W = ({}^A\mathbf{T}_R)^{-1} \cdot {}^A\mathbf{T}_W $$

먼저 역행렬 계산: $$ \mathbf{R}_R = \begin{bmatrix} 0 & -1 \\ 1 & 0 \end{bmatrix}, \quad \mathbf{R}_R^T = \begin{bmatrix} 0 & 1 \\ -1 & 0 \end{bmatrix} $$

$$ -\mathbf{R}_R^T \mathbf{p}_R = -\begin{bmatrix} 0 & 1 \\ -1 & 0 \end{bmatrix} \begin{bmatrix} 3 \\ 2 \end{bmatrix} = -\begin{bmatrix} 2 \\ -3 \end{bmatrix} = \begin{bmatrix} -2 \\ 3 \end{bmatrix} $$

$$ ({}^A\mathbf{T}_R)^{-1} = \begin{bmatrix} 0 & 1 & -2 \\ -1 & 0 & 3 \\ 0 & 0 & 1 \end{bmatrix} $$

상대 변환: $$ {}^R\mathbf{T}_W = \begin{bmatrix} 0 & 1 & -2 \\ -1 & 0 & 3 \\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} 1 & 0 & 5 \\ 0 & 1 & 4 \\ 0 & 0 & 1 \end{bmatrix} = \begin{bmatrix} 0 & 1 & 2 \\ -1 & 0 & -2 \\ 0 & 0 & 1 \end{bmatrix} $$

: 로봇 좌표계에서 본 작업물의 위치는 $(2, -2)$이고, 90° 회전되어 있다.


7.5 예제 5: 변환 경로의 검증

문제: 다음 관계가 주어졌을 때: $$ {}^A\mathbf{T}_B = \begin{bmatrix} \cos 30° & -\sin 30° & 1 \\ \sin 30° & \cos 30° & 2 \\ 0 & 0 & 1 \end{bmatrix}, \quad {}^B\mathbf{T}_C = \begin{bmatrix} \cos 60° & -\sin 60° & 3 \\ \sin 60° & \cos 60° & 1 \\ 0 & 0 & 1 \end{bmatrix} $$

${}^A\mathbf{T}_C$를 계산하고, 역변환을 이용하여 검증하라.

풀이:

$$ {}^A\mathbf{T}_C = {}^A\mathbf{T}_B \cdot {}^B\mathbf{T}_C $$

계산 (각도 값 사용):

  • $\cos 30° = \frac{\sqrt{3}}{2} \approx 0.866$, $\sin 30° = 0.5$
  • $\cos 60° = 0.5$, $\sin 60° = \frac{\sqrt{3}}{2} \approx 0.866$

회전 부분: $$ \mathbf{R}_A^C = \mathbf{R}_A^B \cdot \mathbf{R}_B^C = \begin{bmatrix} 0.866 & -0.5 \\ 0.5 & 0.866 \end{bmatrix} \begin{bmatrix} 0.5 & -0.866 \\ 0.866 & 0.5 \end{bmatrix} $$

$$ = \begin{bmatrix} 0 & -1 \\ 1 & 0 \end{bmatrix} $$

이는 90° 회전입니다 ($30° + 60° = 90°$).

병진 부분: $$ \mathbf{p}_A^C = \mathbf{R}_A^B \mathbf{p}_B^C + \mathbf{p}_A^B $$

$$ = \begin{bmatrix} 0.866 & -0.5 \\ 0.5 & 0.866 \end{bmatrix} \begin{bmatrix} 3 \\ 1 \end{bmatrix} + \begin{bmatrix} 1 \\ 2 \end{bmatrix} $$

$$ = \begin{bmatrix} 2.598 – 0.5 \\ 1.5 + 2.598 \end{bmatrix} + \begin{bmatrix} 1 \\ 2 \end{bmatrix} = \begin{bmatrix} 3.098 \\ 6.098 \end{bmatrix} $$

검증: ${}^A\mathbf{T}_B \cdot {}^B\mathbf{T}_C \cdot ({}^A\mathbf{T}_C)^{-1} = \mathbf{I}$ 확인

: $$ {}^A\mathbf{T}_C = \begin{bmatrix} 0 & -1 & 3.098 \\ 1 & 0 & 6.098 \\ 0 & 0 & 1 \end{bmatrix} $$


2D 변환 정리 및 핵심 공식

2D 변환 요약표

변환 종류 일반 좌표계 동차 좌표계 자유도(DOF)
병진 $\mathbf{p}’ = \mathbf{p} + \mathbf{d}$ $\begin{bmatrix} \mathbf{I} & \mathbf{d} \\ \mathbf{0}^T & 1 \end{bmatrix}$ 2
회전 $\mathbf{p}’ = \mathbf{R}\mathbf{p}$ $\begin{bmatrix} \mathbf{R} & \mathbf{0} \\ \mathbf{0}^T & 1 \end{bmatrix}$ 1
강체 변환 $\mathbf{p}’ = \mathbf{R}\mathbf{p} + \mathbf{d}$ $\begin{bmatrix} \mathbf{R} & \mathbf{d} \\ \mathbf{0}^T & 1 \end{bmatrix}$ 3

주요 공식

회전 행렬: $$ \mathbf{R}(\theta) = \begin{bmatrix} \cos\theta & -\sin\theta \\ \sin\theta & \cos\theta \end{bmatrix} $$

동차 변환 행렬: $$ \mathbf{T} = \begin{bmatrix} \mathbf{R} & \mathbf{p} \\ \mathbf{0}^T & 1 \end{bmatrix} = \begin{bmatrix} \cos\theta & -\sin\theta & p_x \\ \sin\theta & \cos\theta & p_y \\ 0 & 0 & 1 \end{bmatrix} $$

역변환: $$ \mathbf{T}^{-1} = \begin{bmatrix} \mathbf{R}^T & -\mathbf{R}^T\mathbf{p} \\ \mathbf{0}^T & 1 \end{bmatrix} $$

변환 합성: $$ {}^A\mathbf{T}_C = {}^A\mathbf{T}_B \cdot {}^B\mathbf{T}_C $$

회전 각도 추출:

$$ \theta = \arctan2(r_{21}, r_{11}) $$


참고문헌

[1] Murray, Richard M., et al. A Mathematical Introduction to Robotic Manipulation. CRC Press, 1994.

[2] Craig, John J. Introduction to Robotics: Mechanics and Control. 4th ed. Pearson, 2017.

[3] Spong, Mark W., Seth Hutchinson, and Mathukumalli Vidyasagar. Robot Modeling and Control. 2nd ed. Wiley, 2020.

[4] Lynch, Kevin M., and Frank C. Park. Modern Robotics: Mechanics, Planning, and Control. Cambridge University Press, 2017.

[5] Siciliano, Bruno, et al. Robotics: Modelling, Planning and Control. Springer, 2009.

[6] Strang, Gilbert. Introduction to Linear Algebra. 5th ed. Wellesley-Cambridge Press, 2016.

[7] Dai, Jian S. “Euler-Rodrigues formula variations, quaternion conjugation and intrinsic connections.” Mechanism and Machine Theory 92 (2015): 144-152.

[8] Rodrigues, Olinde. “Des lois géométriques qui régissent les déplacements d’un système solide dans l’espace.” Journal de Mathématiques Pures et Appliquées 5 (1840): 380-440.

[9] Selig, J. M. Geometric Fundamentals of Robotics. 2nd ed. Springer, 2005.


추가 학습 자료

온라인 강의

  • MIT OpenCourseWare: “Introduction to Robotics” (Prof. John Leonard)
  • Coursera: “Modern Robotics” (Northwestern University)
  • edX: “Robot Mechanics and Control” (Seoul National University)

소프트웨어 도구

추천 도서

  • Corke, Peter. Robotics, Vision and Control. 2nd ed. Springer, 2017.
  • Tsai, Lung-Wen. Robot Analysis: The Mechanics of Serial and Parallel Manipulators. Wiley, 1999.

본 문서는 로봇공학에서 핵심적인 변환 행렬을 체계적으로 학습할 수 있도록 작성되었습니다. 2D·3D의 기초부터 쿼터니언, 리 군·리 대수, 지수 좌표법(제품 지수 공식)에 이르기까지 필수 개념과 응용을 포괄적으로 다룹니다.

Similar Posts

  • 로봇공학의 역사

    로봇공학의 역사 로봇은 인류의 오랜 꿈이자 현대 산업의 핵심 기술로, 그 역사는 문학적 상상에서 시작하여 실용적인 산업 기술로 발전해왔습니다. 본 글에서는 로봇의 개념적 기원부터 현대 협동로봇에 이르기까지의 역사적 발전 과정을 살펴봅니다. 목차 로봇의 정의와 어원 로봇의 개념적 기원 산업용 로봇의 탄생과 발전 협동로봇의 등장 한국 로봇 산업의 역사 1. 로봇의 정의와 어원 1.1 로봇의 정의…

  • 공간에서의 변환행렬

    로봇공학을 위한 공간의 변환 행렬(Transformation Matrix) 로봇공학에서 물체의 위치와 자세를 표현하고 조작하는 것은 가장 기본적이면서도 중요한 작업입니다. 본 문서는 2차원 평면과 3차원 공간에서의 변환 행렬을 체계적으로 설명하며, 회전(Rotation), 병진(Translation), 그리고 이들의 조합을 수학적으로 엄밀하게 다룹니다. Part II: 3D 변환 3D 좌표계와 회전 3D 회전 행렬 오일러 각 3D 강체 변환 3D 실전 예제 Part II:…