로봇공학을 위한 평면의 변환 행렬(Transformation Matrix)
로봇공학에서 물체의 위치와 자세를 표현하고 조작하는 것은 가장 기본적이면서도 중요한 작업입니다. 본 문서는 2차원 평면과 3차원 공간에서의 변환 행렬을 체계적으로 설명하며, 회전(Rotation), 병진(Translation), 그리고 이들의 조합을 수학적으로 엄밀하게 다룹니다.
목차
Part I: 2D 변환
Part I: 2D 변환
1. 좌표계와 기본 개념
1.1 좌표계의 정의
로봇공학에서 물체의 위치를 표현하기 위해서는 기준 좌표계(Reference Frame)가 필요합니다. 2D 평면에서 한 점의 위치는 두 개의 좌표 $(x, y)$로 표현됩니다.

그림 1. 2D 직교 좌표계
1.2 좌표계의 종류
로봇공학에서 일반적으로 사용되는 좌표계는 다음과 같습니다:
- 세계 좌표계(World Frame, {W}): 절대 기준이 되는 고정 좌표계
- 로봇 좌표계(Robot Frame, {R}): 로봇의 베이스에 고정된 좌표계
- 도구 좌표계(Tool Frame, {T}): 로봇 엔드 이펙터에 부착된 좌표계
- 작업 좌표계(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 병진의 성질
- 교환 법칙(Commutative): $\mathbf{p} + \mathbf{d}_1 + \mathbf{d}_2 = \mathbf{p} + \mathbf{d}_2 + \mathbf{d}_1$
- 결합 법칙(Associative): $(\mathbf{p} + \mathbf{d}_1) + \mathbf{d}_2 = \mathbf{p} + (\mathbf{d}_1 + \mathbf{d}_2)$
- 항등원(Identity): $\mathbf{p} + \mathbf{0} = \mathbf{p}$
- 역원(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. 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축 방향

그림 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$: 스칼라

그림 5. 강제 변환: 회전 + 병진
5.3 변환 행렬의 물리적 의미
동차 변환 행렬 ${}^A\mathbf{T}_B$는 다음을 나타냅니다:
- 자세(Orientation): 좌표계 {B}가 {A}에 대해 얼마나 회전되어 있는가 ($\mathbf{R}$)
- 위치(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) 공리를 만족합니다:
- 닫힘(Closure): $\mathbf{T}_1, \mathbf{T}_2 \in SE(2) \Rightarrow \mathbf{T}_1 \mathbf{T}_2 \in SE(2)$
- 결합 법칙: $(\mathbf{T}_1 \mathbf{T}_2) \mathbf{T}_3 = \mathbf{T}_1 (\mathbf{T}_2 \mathbf{T}_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}$
- 역원: 모든 $\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 합성 변환의 예제
예제: 다음 순서로 변환을 적용할 때:
- 원점 중심 30° 회전
- (2, 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°$일 때, 엔드 이펙터의 위치는?

그림 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)
소프트웨어 도구
- MATLAB Robotics Toolbox (Peter Corke)
- Python Robotics (Atsushi Sakai) – https://github.com/AtsushiSakai/PythonRobotics
- ROS (Robot Operating System) – TF (Transform) 라이브러리
추천 도서
- 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의 기초부터 쿼터니언, 리 군·리 대수, 지수 좌표법(제품 지수 공식)에 이르기까지 필수 개념과 응용을 포괄적으로 다룹니다.
