11.4 특수 유클리드군 SE(3)의 구조와 성질

11.4 특수 유클리드군 SE(3)의 구조와 성질

1. 특수 유클리드군의 정의

특수 유클리드군(special Euclidean group) SE(3)은 3차원 유클리드 공간의 강체 변환들로 구성된 군이며, 회전과 병진이 결합된 모든 유한 거리 보존 변환을 표현한다. 강체의 위치와 자세를 동시에 다루는 이 군은 로봇공학에서 매니퓰레이터의 운동학, 모바일 로봇의 지도 작성, 시각적 SLAM, 강체 동역학 등 6자유도 운동을 다루는 거의 모든 영역에서 중심적인 역할을 한다. SE(3)은 다음과 같이 형식적으로 정의된다.

SE(3) = \{(\mathbf{R}, \mathbf{t}) : \mathbf{R} \in SO(3), \mathbf{t} \in \mathbb{R}^3\}

여기서 \mathbf{R}은 회전 행렬이고 \mathbf{t}는 병진 벡터이다.

2. 강체 변환

2.1 강체의 정의

강체(rigid body)는 그 안의 임의의 두 점 사이의 거리가 시간에 따라 변하지 않는 물체이다. 강체의 운동은 모든 점이 동일한 변환을 겪으며, 이러한 변환을 강체 변환이라 한다.

2.2 거리 보존

강체 변환은 두 점 사이의 거리를 보존한다. 즉, 임의의 두 점 \mathbf{p}_1\mathbf{p}_2에 대해 변환 T가 다음을 만족한다.

\lVert T(\mathbf{p}_1) - T(\mathbf{p}_2)\rVert = \lVert\mathbf{p}_1 - \mathbf{p}_2\rVert

2.3 강체 변환의 형태

3차원 공간에서 거리를 보존하는 변환은 다음의 두 가지로 분류된다.

  • 등거리 변환: 회전, 병진, 거울 반사, 이들의 결합
  • 강체 변환(특수 유클리드 변환): 거울 반사를 제외한 등거리 변환

특수 유클리드군은 후자, 즉 방향을 보존하는 등거리 변환의 군이다.

3. SE(3)의 동차 변환 표현

3.1 동차 변환 행렬

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

\mathbf{T} = \begin{bmatrix}\mathbf{R} & \mathbf{t} \\ \mathbf{0}^T & 1\end{bmatrix} \in \mathbb{R}^{4 \times 4}

여기서 \mathbf{R} \in SO(3)이고 \mathbf{t} \in \mathbb{R}^3이다. 동차 변환 행렬은 회전과 병진을 단일한 행렬 표현으로 결합한다.

3.2 동차 좌표

3차원 공간의 점 \mathbf{p} = [p_x, p_y, p_z]^T는 동차 좌표 \tilde{\mathbf{p}} = [p_x, p_y, p_z, 1]^T로 표현된다. 강체 변환의 적용은 다음과 같이 행렬 곱으로 이루어진다.

\tilde{\mathbf{p}}' = \mathbf{T}\tilde{\mathbf{p}} = \begin{bmatrix}\mathbf{R}\mathbf{p} + \mathbf{t} \\ 1\end{bmatrix}

이로부터 변환된 점의 좌표는 \mathbf{p}' = \mathbf{R}\mathbf{p} + \mathbf{t}이다.

3.3 회전과 병진의 결합 의미

동차 변환 행렬의 형태에서 회전이 먼저 적용되고 그 다음 병진이 추가된다. 즉, 점 \mathbf{p}가 회전된 후 \mathbf{t}만큼 이동한다. 이러한 순서가 강체 변환의 표준 표현이다.

4. 군 구조

4.1 군 연산

SE(3)의 군 연산은 동차 변환 행렬의 곱셈이다. 두 변환 \mathbf{T}_1 = (\mathbf{R}_1, \mathbf{t}_1)\mathbf{T}_2 = (\mathbf{R}_2, \mathbf{t}_2)의 곱은 다음과 같다.

\mathbf{T}_1\mathbf{T}_2 = \begin{bmatrix}\mathbf{R}_1\mathbf{R}_2 & \mathbf{R}_1\mathbf{t}_2 + \mathbf{t}_1 \\ \mathbf{0}^T & 1\end{bmatrix}

결합된 변환의 회전은 \mathbf{R}_1\mathbf{R}_2이고, 병진은 \mathbf{R}_1\mathbf{t}_2 + \mathbf{t}_1이다. 이는 두 강체 변환의 연속적 적용을 표현한다.

4.2 항등원

항등원은 회전이 항등이고 병진이 영 벡터인 변환이다.

\mathbf{T}_e = \begin{bmatrix}\mathbf{I} & \mathbf{0} \\ \mathbf{0}^T & 1\end{bmatrix} = \mathbf{I}_4

4.3 역원

\mathbf{T} = (\mathbf{R}, \mathbf{t})의 역원은 다음과 같이 계산된다.

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

이는 직접 검증할 수 있다.

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

역원 계산이 단순하다는 점이 동차 변환 표현의 큰 장점이다.

4.4 비가환성

SE(3)은 비가환 군이다. 두 변환의 곱 순서가 결과에 영향을 준다.

\mathbf{T}_1\mathbf{T}_2 \neq \mathbf{T}_2\mathbf{T}_1

이는 회전과 병진이 비가환적으로 결합되기 때문이다.

5. 반곱(Semi-Direct Product) 구조

5.1 반곱의 정의

SE(3)은 회전군 SO(3)과 병진 군 \mathbb{R}^3의 반곱으로 표현된다.

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

반곱은 단순한 직접곱과 다르며, 한 군이 다른 군에 작용한다. 여기서는 SO(3)\mathbb{R}^3에 회전으로 작용한다.

5.2 작용

\mathbf{R} \in SO(3)\mathbf{t} \in \mathbb{R}^3에 작용하는 방식은 회전이다.

\mathbf{R} \cdot \mathbf{t} = \mathbf{R}\mathbf{t}

이 작용이 반곱의 구조를 결정한다.

5.3 직접곱과의 차이

직접곱 SO(3) \times \mathbb{R}^3에서는 회전과 병진이 독립적으로 결합되며, 군 연산이 다음과 같다.

(\mathbf{R}_1, \mathbf{t}_1)(\mathbf{R}_2, \mathbf{t}_2) = (\mathbf{R}_1\mathbf{R}_2, \mathbf{t}_1 + \mathbf{t}_2)

반면 반곱에서는 다음과 같다.

(\mathbf{R}_1, \mathbf{t}_1)(\mathbf{R}_2, \mathbf{t}_2) = (\mathbf{R}_1\mathbf{R}_2, \mathbf{R}_1\mathbf{t}_2 + \mathbf{t}_1)

이러한 차이는 \mathbf{R}_1\mathbf{t}_2에 작용하는 항에서 나타난다.

6. 다양체 구조

6.1 차원

SE(3)의 차원은 6이다. 이는 SO(3)의 차원 3과 \mathbb{R}^3의 차원 3의 합이다. 6자유도는 강체의 위치(3) + 자세(3)에 해당한다.

6.2 매끄러운 다양체

SE(3)은 매끄러운 다양체이며, 위상적으로는 SO(3)\mathbb{R}^3의 곱이다.

SE(3) \cong SO(3) \times \mathbb{R}^3 \quad \text{(위상적으로)}

다만 군으로서는 곱 군이 아니라 반곱이라는 점에 유의해야 한다.

6.3 항등원에서의 접선 공간

SE(3)의 항등원에서의 접선 공간은 6차원 벡터 공간이며, 회전 부분(반대칭 행렬)과 병진 부분(벡터)으로 구성된다.

T_{\mathbf{I}}SE(3) = \mathfrak{se}(3) = \left\{\begin{bmatrix}[\boldsymbol{\omega}]_\times & \mathbf{v} \\ \mathbf{0}^T & 0\end{bmatrix} : \boldsymbol{\omega}, \mathbf{v} \in \mathbb{R}^3\right\}

이것이 SE(3)의 리 대수이다.

7. 위상적 구조

7.1 연결성

SE(3)은 연결되어 있다. 두 강체 변환 사이의 매끄러운 곡선이 항상 존재한다.

7.2 콤팩트성

SE(3)은 콤팩트하지 않다. 이는 병진 부분 \mathbb{R}^3이 무한대로 확장되기 때문이다. 비콤팩트성은 무한 거리의 이동이 가능함을 표현한다.

7.3 단순 연결성

SE(3)은 단순 연결되지 않는다. 이는 SO(3)이 단순 연결되지 않기 때문이다. SE(3)의 보편 덮개는 SU(2) \ltimes \mathbb{R}^3이며, 이는 단위 쿼터니언과 병진 벡터의 결합이다.

8. 강체의 자세 표현

8.1 위치와 자세

SE(3)의 원소는 강체의 6자유도 자세를 완전히 표현한다. 위치 \mathbf{t} \in \mathbb{R}^3와 자세 \mathbf{R} \in SO(3)이 결합된다.

8.2 좌표계 표현

강체의 자세는 일반적으로 강체에 부착된 본체 좌표계의 기준 좌표계에 대한 동차 변환으로 표현된다.

\mathbf{T}_{\text{body/world}} = \begin{bmatrix}\mathbf{R}_{\text{body/world}} & \mathbf{p}_{\text{body/world}} \\ \mathbf{0}^T & 1\end{bmatrix}

여기서 \mathbf{p}_{\text{body/world}}는 본체 좌표계의 원점이 세계 좌표계에서 차지하는 위치이고, \mathbf{R}_{\text{body/world}}는 본체 좌표계의 자세이다.

8.3 좌표계 변환

여러 좌표계 사이의 변환은 동차 변환 행렬의 곱으로 표현된다.

\mathbf{T}_{C/A} = \mathbf{T}_{C/B}\mathbf{T}_{B/A}

이는 좌표계 A에서 B로의 변환 후 B에서 C로의 변환이 A에서 C로의 변환과 같음을 의미한다.

9. 매니퓰레이터에서의 활용

9.1 좌표계 부착

매니퓰레이터의 각 링크에는 좌표계가 부착되며, 인접한 두 좌표계 사이의 변환이 SE(3)의 원소이다. 이러한 변환은 관절 각도에 의존한다.

9.2 순기구학

매니퓰레이터의 순기구학은 일련의 동차 변환의 곱으로 표현된다.

\mathbf{T}_{\text{end/base}} = \mathbf{T}_{1/0}\mathbf{T}_{2/1}\cdots\mathbf{T}_{n/n-1}

\mathbf{T}_{i/i-1}SE(3)의 원소이며, 관절의 운동에 따라 변한다.

9.3 곱지수 공식

순기구학의 또 다른 표현 방법은 곱지수(POE) 공식이다.

\mathbf{T}(\boldsymbol{\theta}) = e^{[\boldsymbol{\xi}_1]\theta_1}e^{[\boldsymbol{\xi}_2]\theta_2}\cdots e^{[\boldsymbol{\xi}_n]\theta_n}\mathbf{M}

여기서 [\boldsymbol{\xi}_i]\mathfrak{se}(3)의 원소이며, 각 관절의 스크류 축에 해당한다. 이 공식은 SE(3)의 지수 사상을 활용한다.

10. 자세 추정과 SLAM

10.1 시각적 SLAM

시각적 SLAM에서는 카메라의 자세가 SE(3)의 원소이며, 시간에 따라 변화한다. 자세 추정의 목표는 SE(3) 위의 궤적을 추정하는 것이다.

10.2 그래프 SLAM

그래프 SLAM에서는 노드가 SE(3)의 원소이고, 엣지가 두 노드 사이의 상대 자세이다. 최적화 문제는 SE(3) 위에서 정의된다.

10.3 라이다 SLAM

라이다 SLAM에서도 로봇의 자세는 SE(3)의 원소이며, 점 군 정합을 통해 추정된다.

11. 운동 계획

11.1 작업 공간

매니퓰레이터의 작업 공간은 SE(3)의 부분 집합이며, 말단 장치의 도달 가능한 자세들을 포함한다.

11.2 경로 계획

운동 계획은 시작 자세에서 목표 자세까지 SE(3) 위의 경로를 찾는 문제이다. 다양체 위의 경로 계획 알고리즘이 사용된다.

11.3 측지선

SE(3) 위의 측지선은 두 자세 사이의 자연스러운 경로이며, 슈아세의 정리에 의해 단일 스크류 운동으로 표현된다.

12. 강체 동역학

12.1 운동 방정식

강체의 운동은 일반적으로 SE(3) 위의 미분 방정식으로 기술된다. 위치와 자세의 시간 미분이 트위스트와 연결된다.

12.2 트위스트와 렌치

강체의 6자유도 속도는 \mathfrak{se}(3)의 원소인 트위스트로 표현된다. 6자유도 힘과 토크는 코트랑겐트 공간의 원소인 렌치(wrench)로 표현된다.

12.3 뉴턴-오일러 방정식

강체의 운동 방정식은 SE(3)의 구조를 활용하여 효율적으로 작성될 수 있다. Featherstone의 articulated body algorithm 등이 이 구조를 활용한다.

13. 컴퓨터 비전과 그래픽스

13.1 카메라 자세

카메라의 자세는 SE(3)의 원소이며, 카메라 보정과 시점 변환에 사용된다.

13.2 객체 자세

3차원 객체의 위치와 자세는 SE(3)의 원소이다. 객체 인식과 자세 추정에서 핵심적인 표현이다.

13.3 변환 행렬

3차원 그래픽스에서 변환 행렬은 SE(3)의 원소이며, GPU에서 효율적으로 처리된다.

14. SE(3)의 매개변수화

14.1 동차 변환 행렬

가장 직접적인 매개변수화는 동차 변환 행렬이며, 16개의 매개변수를 사용한다. 다만 12개의 제약이 있어 자유도는 6이다.

14.2 회전 부분 + 병진 부분

회전을 별도로 표현(예: 쿼터니언)하고 병진을 벡터로 표현하는 방법이다. 쿼터니언 + 위치 = 7개의 매개변수이다.

14.3 트위스트

\mathfrak{se}(3)의 원소(6차원 벡터)와 지수 사상의 결합이다. 6개의 매개변수만으로 표현되지만, 큰 운동에서 비선형성을 가진다.

14.4 이중 쿼터니언

이중 쿼터니언은 회전과 병진을 단일 대수적 객체로 표현한다. 8개의 매개변수와 2개의 제약을 가진다.

15. 표현의 비교

표현매개변수 수장점단점
동차 변환 행렬16 (12 자유)직접적중복
쿼터니언 + 벡터7효율적단위 노름 제약
트위스트6최소큰 운동에서 비선형
이중 쿼터니언8통합적학습 비용

16. 응용 라이브러리

16.1 Eigen Geometry 모듈

Eigen의 Geometry 모듈은 Eigen::Affine3d 또는 Eigen::Isometry3d를 통해 SE(3) 변환을 다룬다.

16.2 Sophus

Sophus 라이브러리는 Sophus::SE3 클래스를 통해 SE(3)를 직접 다루며, 지수 사상, 로그 사상, 야코비안 등을 제공한다.

16.3 ROS의 tf2

ROS의 tf2 라이브러리는 좌표계 변환을 관리하며, 내부적으로 SE(3) 구조를 사용한다.

16.4 Ceres와 GTSAM

비선형 최적화 라이브러리들은 SE(3) 위의 최적화를 지원한다.

17. SE(3)의 학습 가치

SE(3)을 깊이 이해하는 것은 다음과 같은 이점을 제공한다.

  • 강체 운동의 통합적 표현이 가능해진다.
  • 매니퓰레이터, 모바일 로봇, 비행체 등 다양한 시스템을 같은 틀에서 다룰 수 있다.
  • 자세 추정과 운동 계획 알고리즘의 깊이 있는 이해가 가능하다.
  • 학술 문헌의 표준 표기를 이해할 수 있다.

18. 참고 문헌

  • Hall, B. C. (2015). Lie Groups, Lie Algebras, and Representations: An Elementary Introduction (2nd ed.). 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.
  • Selig, J. M. (2005). Geometric Fundamentals of Robotics (2nd ed.). Springer.
  • Sola, J., Deray, J., & Atchuthan, D. (2018). “A Micro Lie Theory for State Estimation in Robotics.” arXiv:1812.01537.

version: 1.0