공간에서의 변환행렬

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

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

Part II: 3D 변환

  1. 3D 좌표계와 회전
  2. 3D 회전 행렬
  3. 오일러 각
  4. 3D 강체 변환
  5. 3D 실전 예제

Part II: 3D 변환


8. 3D 좌표계와 회전

8.1 3D 좌표계의 정의

3차원 공간에서 한 점의 위치는 세 개의 좌표 $(x, y, z)$로 표현됩니다. 로봇공학에서는 주로 오른손 좌표계(Right-Hand Coordinate System)를 사용합니다[1].

그림1
3D 오른손 좌표계

오른손 법칙(Right-Hand Rule):

  • 오른손의 엄지(X축), 검지(Y축), 중지(Z축) 방향
  • 외적 방향 결정: $\mathbf{x} \times \mathbf{y} = \mathbf{z}$

8.2 3D 벡터의 표현

3D 공간의 점 또는 벡터는 다음과 같이 표현됩니다:

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

8.3 3D 회전의 복잡성

2D 회전은 단일 각도 $\theta$로 완전히 정의되지만, 3D 회전은 3개의 독립적인 파라미터가 필요합니다. 이는 3D 회전이 SO(3) 군을 형성하며, 3차원 다양체(3-dimensional manifold)를 이루기 때문입니다[2].

3D 회전을 표현하는 여러 방법:

  1. 회전 행렬(Rotation Matrix): 9개 원소, 6개 제약 조건 → 3 DOF
  2. 오일러 각(Euler Angles): 3개의 각도
  3. 축-각(Axis-Angle): 회전축 벡터(3) + 회전 각도(1) → 4개 파라미터, 1개 제약
  4. 쿼터니언(Quaternion): 4개 파라미터, 1개 제약 조건

8.4 3D 회전축

3D 공간에서는 세 개의 주축(Principal Axes) 중심으로 회전할 수 있습니다:

  • X축 중심 회전: Roll (롤)
  • Y축 중심 회전: Pitch (피치)
  • Z축 중심 회전: Yaw (요)
  • Yaw_Axis_Corrected.svg
    항공기의 Roll, Pitch, Yaw


9. 3D 회전 행렬

9.1 기본 회전 행렬

3D 공간에서 각 주축을 중심으로 한 회전 행렬을 유도합니다.

(1) X축 중심 회전 (Roll)

X축을 중심으로 각도 $\alpha$만큼 회전:

$$ \mathbf{R}_x(\alpha) = \begin{bmatrix} 1 & 0 & 0 \\ 0 & \cos\alpha & -\sin\alpha \\ 0 & \sin\alpha & \cos\alpha \end{bmatrix} $$

유도: X축은 고정되고, YZ 평면에서 2D 회전이 발생

(2) Y축 중심 회전 (Pitch)

Y축을 중심으로 각도 $\beta$만큼 회전:

$$ \mathbf{R}_y(\beta) = \begin{bmatrix} \cos\beta & 0 & \sin\beta \\ 0 & 1 & 0 \\ -\sin\beta & 0 & \cos\beta \end{bmatrix} $$

⚠️ 주의: $\sin\beta$의 위치가 다릅니다! (오른손 좌표계에서 양의 회전 방향 유지)

(3) Z축 중심 회전 (Yaw)

Z축을 중심으로 각도 $\gamma$만큼 회전:

$$ \mathbf{R}_z(\gamma) = \begin{bmatrix} \cos\gamma & -\sin\gamma & 0 \\ \sin\gamma & \cos\gamma & 0 \\ 0 & 0 & 1 \end{bmatrix} $$

유도: Z축은 고정되고, XY 평면에서 2D 회전이 발생 (2D 회전 행렬과 동일)

9.2 3D 회전 행렬의 성질

3D 회전 행렬 $\mathbf{R} \in SO(3)$는 다음을 만족합니다:

(1) 직교 정규성(Orthonormality)

$$ \mathbf{R}^T \mathbf{R} = \mathbf{R} \mathbf{R}^T = \mathbf{I}_{3×3} $$

각 열과 행은 단위 정규 직교 벡터(Orthonormal Vectors)입니다:

$$ \mathbf{R} = \begin{bmatrix} | & | & | \\ \mathbf{r}_1 & \mathbf{r}_2 & \mathbf{r}_3 \\ | & | & | \end{bmatrix} $$

  • $|\mathbf{r}_i| = 1$ (단위 벡터)
  • $\mathbf{r}_i \cdot \mathbf{r}_j = 0, \quad i \neq j$ (직교)
  • $\mathbf{r}_1 \times \mathbf{r}_2 = \mathbf{r}_3$ (오른손 법칙)

(2) 행렬식

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

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

$\det(\mathbf{R}) = -1$인 경우는 반사(Reflection)를 포함하며, SO(3)에 속하지 않습니다.

(3) 역행렬

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

따라서 역회전은 단순히 전치 행렬을 취하면 됩니다:

$$ \mathbf{R}_x(\alpha)^{-1} = \mathbf{R}_x(\alpha)^T = \mathbf{R}_x(-\alpha) $$

(4) 길이와 각도 보존

  • 거리 보존: $|\mathbf{R}\mathbf{p}_1 – \mathbf{R}\mathbf{p}_2| = |\mathbf{p}_1 – \mathbf{p}_2|$
  • 각도 보존: 두 벡터 사이의 각도가 회전 후에도 유지
  • 외적 보존: $\mathbf{R}(\mathbf{a} \times \mathbf{b}) = (\mathbf{R}\mathbf{a}) \times (\mathbf{R}\mathbf{b})$

(5) 군 구조

SO(3) = {$\mathbf{R} \in \mathbb{R}^{3 \times 3} : \mathbf{R}^T\mathbf{R} = \mathbf{I}, \det(\mathbf{R}) = 1$}

  • 닫힘: $\mathbf{R}_1, \mathbf{R}_2 \in SO(3) \Rightarrow \mathbf{R}_1\mathbf{R}_2 \in SO(3)$
  • 결합법칙: 행렬 곱셈은 결합법칙 만족
  • 항등원: $\mathbf{I} \in SO(3)$
  • 역원: $\mathbf{R} \in SO(3) \Rightarrow \mathbf{R}^T \in SO(3)$

9.3 회전 행렬의 기하학적 의미

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

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

  • 첫 번째 열 ${}^A\mathbf{x}_B$: 좌표계 {A}에서 본 좌표계 {B}의 X축 방향
  • 두 번째 열 ${}^A\mathbf{y}_B$: 좌표계 {A}에서 본 좌표계 {B}의 Y축 방향
  • 세 번째 열 ${}^A\mathbf{z}_B$: 좌표계 {A}에서 본 좌표계 {B}의 Z축 방향

9.4 특수한 회전 행렬

자주 사용되는 회전:

90° X축 회전: $$ \mathbf{R}_x(90°) = \begin{bmatrix} 1 & 0 & 0 \\ 0 & 0 & -1 \\ 0 & 1 & 0 \end{bmatrix} $$

90° Y축 회전: $$ \mathbf{R}_y(90°) = \begin{bmatrix} 0 & 0 & 1 \\ 0 & 1 & 0 \\ -1 & 0 & 0 \end{bmatrix} $$

90° Z축 회전:

$$ \mathbf{R}_z(90°) = \begin{bmatrix} 0 & -1 & 0 \\ 1 & 0 & 0 \\ 0 & 0 & 1 \end{bmatrix} $$

180° 회전 (각 축): $$ \mathbf{R}_x(180°) = \begin{bmatrix} 1 & 0 & 0 \\ 0 & -1 & 0 \\ 0 & 0 & -1 \end{bmatrix}, \quad \mathbf{R}_y(180°) = \begin{bmatrix} -1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & -1 \end{bmatrix}, \quad \mathbf{R}_z(180°) = \begin{bmatrix} -1 & 0 & 0 \\ 0 & -1 & 0 \\ 0 & 0 & 1 \end{bmatrix} $$


10. 오일러 각

10.1 오일러 각의 정의

오일러 각(Euler Angles)은 3D 회전을 세 번의 연속적인 회전으로 표현하는 방법입니다[3]. 직관적이고 이해하기 쉬워 로봇공학, 항공우주, 컴퓨터 그래픽스 등에서 널리 사용됩니다.

10.2 오일러 각의 종류

총 12가지의 오일러 각 표현이 가능하며, 크게 두 가지로 분류됩니다:

  1. Proper Euler Angles (고유 오일러 각): 동일한 축을 두 번 사용

    • ZXZ, XYX, YZY, ZYZ, XZX, YXY (6가지)
  2. Tait-Bryan Angles (테이트-브라이언 각): 세 개의 서로 다른 축 사용

    • XYZ, YZX, ZXY, XZY, ZYX, YXZ (6가지)

로봇공학에서 가장 많이 사용되는 표현:

  • ZYX Euler Angles (Roll-Pitch-Yaw)
  • ZYZ Euler Angles

10.3 ZYX 오일러 각 (Roll-Pitch-Yaw)

항공우주 및 로봇공학에서 가장 널리 사용되는 표현입니다[4].

회전 순서:

  1. Z축 중심 $\psi$ (Yaw, 요) 회전
  2. Y축 중심 $\theta$ (Pitch, 피치) 회전
  3. X축 중심 $\phi$ (Roll, 롤) 회전

합성 회전 행렬:

$$ \mathbf{R}_{ZYX}(\phi, \theta, \psi) = \mathbf{R}_x(\phi) \mathbf{R}_y(\theta) \mathbf{R}_z(\psi) $$

전개하면:

$$ \mathbf{R}_{ZYX} = \begin{bmatrix} c_\theta c_\psi & -c_\theta s_\psi & s_\theta \\\\ s_\phi s_\theta c_\psi + c_\phi s_\psi & -s_\phi s_\theta s_\psi + c_\phi c_\psi & -s_\phi c_\theta \\\\ -c_\phi s_\theta c_\psi + s_\phi s_\psi & c_\phi s_\theta s_\psi + s_\phi c_\psi & c_\phi c_\theta \end{bmatrix} $$

여기서:

– $c_\alpha = \cos\alpha$, $s_\alpha = \sin\alpha$ (간략 표기)

– $\phi$: Roll, $\theta$: Pitch, $\psi$: Yaw

10.4 ZYZ 오일러 각

고유 오일러 각의 대표적인 예로, 많은 로봇 제어기에서 사용됩니다.

회전 순서:

  1. Z축 중심 $\alpha$ 회전
  2. Y축 중심 $\beta$ 회전
  3. Z축 중심 $\gamma$ 회전

합성 회전 행렬: $$ \mathbf{R}_{ZYZ}(\alpha, \beta, \gamma) = \mathbf{R}_z(\alpha) \mathbf{R}_y(\beta) \mathbf{R}_z(\gamma) $$

전개하면:

$$ \mathbf{R}_{ZYZ} = \begin{bmatrix} c_\alpha c_\beta c_\gamma – s_\alpha s_\gamma & -c_\alpha c_\beta s_\gamma – s_\alpha c_\gamma & c_\alpha s_\beta \\ s_\alpha c_\beta c_\gamma + c_\alpha s_\gamma & -s_\alpha c_\beta s_\gamma + c_\alpha c_\gamma & s_\alpha s_\beta \\ -s_\beta c_\gamma & s_\beta s_\gamma & c_\beta \end{bmatrix} $$

10.5 회전 행렬에서 오일러 각 추출

주어진 회전 행렬 $\mathbf{R}$에서 오일러 각을 추출하는 것을 역 기구학(Inverse Kinematics) 문제라고 합니다.

ZYX (Roll-Pitch-Yaw) 추출

회전 행렬:

$$ \mathbf{R} = \begin{bmatrix} r_{11} & r_{12} & r_{13} \\ r_{21} & r_{22} & r_{23} \\ r_{31} & r_{32} & r_{33} \end{bmatrix} $$

추출 공식:

$$ \begin{align} heta &= \arctan2(r_{13}, \sqrt{r_{11}^2 + r_{12}^2}) \quad &\text{(Pitch)} \\\\ \psi &= \arctan2(-r_{12}, r_{11}) \quad &\text{(Yaw)} \\\\ \phi &= \arctan2(-r_{23}, r_{33}) \quad &\text{(Roll)} \end{align} $$

ZYZ 추출

$$ \begin{align} \beta &= \arctan2(\sqrt{r_{31}^2 + r_{32}^2}, r_{33}) \\\\ \alpha &= \arctan2(r_{23}, r_{13}) \\\\ \gamma &= \arctan2(r_{32}, -r_{31}) \end{align} $$

10.6 짐벌 락(Gimbal Lock)

짐벌 락(Gimbal Lock)은 오일러 각의 가장 큰 문제점으로, 특정 자세에서 한 자유도를 잃어버리는 현상입니다[5].

ZYX 오일러 각에서의 짐벌 락:

Pitch 각이 $\pm 90°$일 때 발생:

$$ heta = \pm \frac{\pi}{2} $$

이 경우 $\mathbf{R}_{ZYX}$은:

$$ \mathbf{R}_{ZYX}(\phi, 90°, \psi) = \begin{bmatrix} 0 & 0 & 1 \\\\ s_{\phi+\psi} & c_{\phi+\psi} & 0 \\\\ -c_{\phi+\psi} & s_{\phi+\psi} & 0 \end{bmatrix} $$

Roll($\phi$)과 Yaw($\psi$)가 합 $\phi + \psi$로만 나타나므로, 개별 값을 구분할 수 없습니다.

Gimbal_Lock_Plane
짐벌 락 현상

짐벌 락의 영향:

  1. 특이점(Singularity) 발생
  2. 수치 불안정성
  3. 보간(Interpolation) 시 비정상적인 경로
  4. 제어 불능 상태 가능

해결 방법:

  • 쿼터니언 사용 (다음 섹션에서 다룸)
  • 다른 오일러 각 표현 선택
  • 특이점 회피 알고리즘

10.7 오일러 각의 장단점

장점:

  • ✅ 직관적이고 이해하기 쉬움
  • ✅ 3개의 파라미터로 간결한 표현
  • ✅ 사람이 읽고 해석하기 용이
  • ✅ 메모리 효율적

단점:

  • ❌ 짐벌 락 문제
  • ❌ 12가지 표현법으로 혼란 가능
  • ❌ 보간이 어려움
  • ❌ 특이점에서 수치 불안정
  • ❌ 합성이 비직관적 (행렬 곱셈 필요)

11. 3D 강체 변환

11.1 3D 동차 좌표계

3D 점 $(x, y, z)$를 4차원 동차 좌표로 확장:

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

11.2 3D 동차 변환 행렬

동차 변환 행렬(Homogeneous Transformation Matrix) $\mathbf{T} \in SE(3)$:

$$ \mathbf{T} = \begin{bmatrix} \mathbf{R} & \mathbf{p} \\ \mathbf{0}^T & 1 \end{bmatrix} = \begin{bmatrix} r_{11} & r_{12} & r_{13} & p_x \\ r_{21} & r_{22} & r_{23} & p_y \\ r_{31} & r_{32} & r_{33} & p_z \\ 0 & 0 & 0 & 1 \end{bmatrix} $$

여기서:

  • $\mathbf{R} \in SO(3)$: $3 \times 3$ 회전 행렬 (9개 원소, 6개 제약 → 3 DOF)
  • $\mathbf{p} \in \mathbb{R}^3$: $3 \times 1$ 병진 벡터 (3 DOF)
  • $\mathbf{0}^T = \begin{bmatrix} 0 & 0 & 0 \end{bmatrix}$: $1 \times 3$ 영벡터
  • $1$: 스칼라

전체 자유도: 3 (회전) + 3 (병진) = 6 DOF

11.3 좌표 변환

좌표계 {B}에서 표현된 점을 좌표계 {A}에서 표현:

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

전개하면:

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

11.4 3D 역변환

$$ \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} $$

계산 효율:

  • 일반 $4 \times 4$ 역행렬: $O(n^3) \approx 64$ 연산
  • SE(3) 역변환: 전치 + 행렬-벡터 곱 ≈ 9 + 9 = 18 연산

11.5 변환의 합성

세 좌표계 {A}, {B}, {C}:

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

⚠️ 주의: 오른쪽에서 왼쪽 순서로 적용!

11.6 SE(3) 군의 성질

SE(3) = {$\mathbf{T} = \begin{bmatrix} \mathbf{R} & \mathbf{p} \\ \mathbf{0}^T & 1 \end{bmatrix} : \mathbf{R} \in SO(3), \mathbf{p} \in \mathbb{R}^3$}

  • 닫힘: $\mathbf{T}_1, \mathbf{T}_2 \in SE(3) \Rightarrow \mathbf{T}_1 \mathbf{T}_2 \in SE(3)$
  • 결합법칙: 행렬 곱셈
  • 항등원: $\mathbf{I}_{4 \times 4}$
  • 역원: 위에서 정의한 역변환

11.7 로봇 기구학에서의 응용

전방 기구학(Forward Kinematics):

n-링크 로봇 팔의 엔드 이펙터 위치:

$$ {}^0\mathbf{T}_n = {}^0\mathbf{T}_1 \cdot {}^1\mathbf{T}_2 \cdot {}^2\mathbf{T}_3 \cdots {}^{n-1}\mathbf{T}_n $$

각 ${}^{i-1}\mathbf{T}_i$는 조인트 $i$의 변환 행렬입니다.

2-Figure2-1
3D 로봇 팔의 좌표계


12. 3D 실전 예제

12.1 예제 1: 3D 기본 회전

문제: 점 $P(1, 0, 0)$을 Z축 중심으로 90° 회전한 후의 위치는?

풀이:

$$ \mathbf{R}_z(90°) = \begin{bmatrix} 0 & -1 & 0 \\ 1 & 0 & 0 \\ 0 & 0 & 1 \end{bmatrix} $$

$$ \mathbf{p}’ = \mathbf{R}_z(90°) \mathbf{p} = \begin{bmatrix} 0 & -1 & 0 \\ 1 & 0 & 0 \\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} 1 \\ 0 \\ 0 \end{bmatrix} = \begin{bmatrix} 0 \\ 1 \\ 0 \end{bmatrix} $$

: $(0, 1, 0)$


12.2 예제 2: 복합 회전

문제: 점 $(1, 1, 1)$을 먼저 Z축 중심 45° 회전, 그 다음 X축 중심 30° 회전시킬 때 최종 위치는?

풀이:

$$ \mathbf{R} = \mathbf{R}_x(30°) \cdot \mathbf{R}_z(45°) $$

$$ \mathbf{R}_z(45°) = \begin{bmatrix} \frac{\sqrt{2}}{2} & -\frac{\sqrt{2}}{2} & 0 \\ \frac{\sqrt{2}}{2} & \frac{\sqrt{2}}{2} & 0 \\ 0 & 0 & 1 \end{bmatrix}, \quad \mathbf{R}_x(30°) = \begin{bmatrix} 1 & 0 & 0 \\ 0 & \frac{\sqrt{3}}{2} & -\frac{1}{2} \\ 0 & \frac{1}{2} & \frac{\sqrt{3}}{2} \end{bmatrix} $$

먼저 Z축 회전:

$$ \mathbf{p}_1 = \mathbf{R}_z(45°) \begin{bmatrix} 1 \\ 1 \\ 1 \end{bmatrix} = \begin{bmatrix} 0 \\ \sqrt{2} \\ 1 \end{bmatrix} $$

다음 X축 회전:

$$ \mathbf{p}’ = \mathbf{R}_x(30°) \mathbf{p}_1 = \begin{bmatrix} 1 & 0 & 0 \\ 0 & \frac{\sqrt{3}}{2} & -\frac{1}{2} \\ 0 & \frac{1}{2} & \frac{\sqrt{3}}{2} \end{bmatrix} \begin{bmatrix} 0 \\ \sqrt{2} \\ 1 \end{bmatrix} $$

$$ = \begin{bmatrix} 0 \\ \frac{\sqrt{3}}{2} \cdot \sqrt{2} – \frac{1}{2} \\ \frac{1}{2} \cdot \sqrt{2} + \frac{\sqrt{3}}{2} \end{bmatrix} \approx \begin{bmatrix} 0 \\ 0.726 \\ 1.573 \end{bmatrix} $$

: 약 $(0, 0.726, 1.573)$


12.3 예제 3: 오일러 각에서 회전 행렬

문제: ZYX 오일러 각이 Roll=30°, Pitch=45°, Yaw=60°일 때 회전 행렬은?

풀이:

$$ \mathbf{R} = \mathbf{R}_x(30°) \mathbf{R}_y(45°) \mathbf{R}_z(60°) $$

각 행렬:

$$ \mathbf{R}_z(60°) = \begin{bmatrix} 0.5 & -0.866 & 0 \\ 0.866 & 0.5 & 0 \\ 0 & 0 & 1 \end{bmatrix} $$

$$ \mathbf{R}_y(45°) = \begin{bmatrix} 0.707 & 0 & 0.707 \\ 0 & 1 & 0 \\ -0.707 & 0 & 0.707 \end{bmatrix} $$

$$ \mathbf{R}_x(30°) = \begin{bmatrix} 1 & 0 & 0 \\ 0 & 0.866 & -0.5 \\ 0 & 0.5 & 0.866 \end{bmatrix} $$

곱셈 수행 (중간 과정 생략):

$$ \mathbf{R} \approx \begin{bmatrix} 0.354 & -0.612 & 0.707 \\ 0.927 & 0.307 & -0.217 \\ -0.127 & 0.729 & 0.673 \end{bmatrix} $$

검증: $\mathbf{R}^T\mathbf{R} = \mathbf{I}$, $\det(\mathbf{R}) = 1$ ✓


12.4 예제 4: 회전 행렬에서 오일러 각 추출

문제: 다음 회전 행렬에서 ZYX 오일러 각을 추출하라:

$$ \mathbf{R} = \begin{bmatrix} 0.707 & -0.612 & 0.354 \\ 0.707 & 0.612 & -0.354 \\ 0 & 0.500 & 0.866 \end{bmatrix} $$

풀이:

ZYX 추출 공식 적용:

$$ heta = \arctan2(r_{13}, \sqrt{r_{11}^2 + r_{12}^2}) = \arctan2(0.354, \sqrt{0.707^2 + 0.612^2}) $$

$$ = \arctan2(0.354, 0.936) \approx 20.7° $$

$$ \psi = \arctan2(-r_{12}, r_{11}) = \arctan2(-(-0.612), 0.707) = \arctan2(0.612, 0.707) \approx 40.9° $$

$$ \phi = \arctan2(-r_{23}, r_{33}) = \arctan2(-(-0.354), 0.866) = \arctan2(0.354, 0.866) \approx 22.2° $$

: Roll ≈ 22.2°, Pitch ≈ 20.7°, Yaw ≈ 40.9°


12.5 예제 5: 3D 로봇 팔 기구학

문제: 3링크 공간 로봇 팔이 있다. 각 링크는 Z축 조인트(회전)를 가지며:

  • 링크 1: 길이 2 (Z방향), 회전 $\theta_1 = 30°$
  • 링크 2: 길이 1.5 (Z방향), 회전 $\theta_2 = 45°$
  • 링크 3: 길이 1 (Z방향), 회전 $\theta_3 = 60°$

엔드 이펙터의 최종 위치는?

풀이:

각 링크의 변환 행렬 (DH 파라미터 간략화):

$$ {}^{i-1}\mathbf{T}_i = \begin{bmatrix} \cos\theta_i & -\sin\theta_i & 0 & 0 \\ \sin\theta_i & \cos\theta_i & 0 & 0 \\ 0 & 0 & 1 & L_i \\ 0 & 0 & 0 & 1 \end{bmatrix} $$

$$ {}^0\mathbf{T}_1 = \begin{bmatrix} 0.866 & -0.5 & 0 & 0 \\ 0.5 & 0.866 & 0 & 0 \\ 0 & 0 & 1 & 2 \\ 0 & 0 & 0 & 1 \end{bmatrix} $$

$$ {}^1\mathbf{T}_2 = \begin{bmatrix} 0.707 & -0.707 & 0 & 0 \\ 0.707 & 0.707 & 0 & 0 \\ 0 & 0 & 1 & 1.5 \\ 0 & 0 & 0 & 1 \end{bmatrix} $$

$$ {}^2\mathbf{T}_3 = \begin{bmatrix} 0.5 & -0.866 & 0 & 0 \\ 0.866 & 0.5 & 0 & 0 \\ 0 & 0 & 1 & 1 \\ 0 & 0 & 0 & 1 \end{bmatrix} $$

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

최종 위치 (병진 성분):

$$ \mathbf{p} = \begin{bmatrix} 0 \\ 0 \\ 4.5 \end{bmatrix} $$

(모든 회전이 Z축이므로 XY 평면 위치는 원점, Z 방향으로만 누적)

: 엔드 이펙터 위치는 $(0, 0, 4.5)$


3D 변환 정리 및 핵심 공식

3D 회전 행렬

X축 회전: $$ \mathbf{R}_x(\alpha) = \begin{bmatrix} 1 & 0 & 0 \\ 0 & \cos\alpha & -\sin\alpha \\ 0 & \sin\alpha & \cos\alpha \end{bmatrix} $$

Y축 회전: $$ \mathbf{R}_y(\beta) = \begin{bmatrix} \cos\beta & 0 & \sin\beta \\ 0 & 1 & 0 \\ -\sin\beta & 0 & \cos\beta \end{bmatrix} $$

Z축 회전: $$ \mathbf{R}_z(\gamma) = \begin{bmatrix} \cos\gamma & -\sin\gamma & 0 \\ \sin\gamma & \cos\gamma & 0 \\ 0 & 0 & 1 \end{bmatrix} $$

ZYX 오일러 각

회전 행렬: $$ \mathbf{R}_{ZYX}(\phi, \theta, \psi) = \mathbf{R}_x(\phi) \mathbf{R}_y(\theta) \mathbf{R}_z(\psi) $$

역변환:

$$ \begin{align} \theta &= \arctan2(r_{13}, \sqrt{r_{11}^2 + r_{12}^2}) \\ \psi &= \arctan2(-r_{12}, r_{11}) \\ \phi &= \arctan2(-r_{23}, r_{33}) \end{align} $$

3D 동차 변환

SE(3) 행렬:

$$ \mathbf{T} = \begin{bmatrix} \mathbf{R}_{3\times3} & \mathbf{p}_{3\times1} \\ \mathbf{0}_{1\times3}^T & 1 \end{bmatrix} $$

역변환:

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

자유도 요약

공간 회전 DOF 병진 DOF 전체 DOF
2D 1 (각도) 2 (x, y) 3
3D 3 (roll, pitch, yaw) 3 (x, y, z) 6

참고문헌

[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] Paul, Richard P. Robot Manipulators: Mathematics, Programming, and Control. MIT Press, 1981.

[7] Goldstein, Herbert, Charles Poole, and John Safko. Classical Mechanics. 3rd ed. Addison-Wesley, 2002.

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

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

[10] 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.

[11] Ball, Robert Stawell. A Treatise on the Theory of Screws. Cambridge University Press, 1900.

[12] 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 기초부터 쿼터니언, 리 군/리 대수, 제품 지수 공식까지 체계적으로 다루며, 현대 로봇공학의 수학적 기반을 제공합니다.

작성일: 2024년 12월
최종 수정일: 2024년 12월 14일
키워드: 로봇공학, 변환 행렬, 회전 행렬, 쿼터니언, 스크류 이론, 리 군, 리 대수, 트위스트, 렌치, 제품 지수 공식, 동차 좌표계, 강체 변환, SE(2), SE(3), SO(3), 기구학, 자코비안

Similar Posts

  • 로봇공학의 역사

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

  • 평면 변환 행렬

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