SE(3)
- 다른 이름: special Euclidean group, SE3, rigid-body transformation group
- 카테고리: Foundations & spatial maths › Frames & transforms
- 태그: lie-groups, rigid-body-motion, spatial-math, kinematics, pose-estimation
3D 공간의 강체 운동의 군으로, 모든 회전과 모든 병진을 결합한 것이며, 보통 4×4 동차 변환 행렬로 쓴다. 자세와 자세의 변화를 기술한다.
정의
SE(3), 즉 3차원 특수 유클리드 군(special Euclidean group)은 모든 강체 변환을 담는다. 행렬식이 +1인 3×3 정규직교 행렬의 군인 SO(3)에서 온 회전 R과 병진 벡터 p를 함께 묶은 것이다. R을 왼쪽 위에, p를 오른쪽 열에, [0 0 0 1]을 맨 아래 행에 두는 4×4 동차 행렬로 쓰면, 두 운동의 합성은 행렬 곱셈이 되고, 역원은 회전 Rᵀ와 병진 −Rᵀp를 가진다. SE(3)의 원소는 자세, 즉 한 좌표계에 대한 다른 좌표계의 위치와 방향을 기술할 수도 있고, 점을 한 좌표계에서 다른 좌표계로 옮기는 운동을 기술할 수도 있다. 자유도는 여섯 개로, 회전 셋과 병진 셋이다. "특수"는 반사가 제외된다는 뜻이다.
SE(3)는 리 군(Lie group), 즉 군이기도 한 매끄러운 곡면 공간이며, 벡터 공간이 아니다. 두 자세를 더하거나 행렬을 성분별로 평균해도 유효한 자세가 나오지 않는다. 항등원에서의 접공간인 리 대수 se(3)는 각속도와 선속도를 결합한 6차원 트위스트(twist)들로 이루어진다. 지수 사상은 트위스트를 변환으로 바꾸고, 로그 사상은 그 반대로 사상한다. 이 사상들은 기구학의 지수곱(product of exponentials) 공식, 갱신을 작은 트위스트로 적용하는 SLAM 및 포즈 그래프 솔버의 다양체 위 최적화, 그리고 자세에 대한 올바른 보간과 불확실성의 바탕이 된다. 평면 대응물인 SE(2)는 x, y, 방향의 세 자유도를 가지며, 이동 로봇과 평면에 구속된 물체, 예를 들어 그리퍼의 평행 조 사이에 집힌 물체에 쓰인다.
SE(3)의 자세는 동차 행렬로, 회전(회전 행렬, 단위 쿼터니언 또는 축-각) 더하기 병진 벡터로, 이중 쿼터니언으로, 또는 트위스트 좌표로 저장할 수 있다. 학습에서 자세를 출력하는 네트워크는 회전 부분을 신중하게 다루어야 하는데, 쿼터니언은 각 회전을 두 번 덮고 일부 파라미터화는 불연속이기 때문이다. SE(3) 등변(SE(3)-equivariant) 네트워크는 군의 대칭성을 구조에 내장하므로, 입력 장면이 회전하거나 평행 이동할 때 출력이 일관되게 변환된다.
중요한 이유
로봇의 모든 좌표계, 센서 외부 파라미터, 엔드 이펙터 목표, 물체 자세는 SE(3)의 원소다. 이를 열두 개의 독립된 수가 아니라 군으로 다루면 회전 행렬의 표류, 잘못된 합성 순서, 무효한 평균 같은 흔한 버그를 피할 수 있으며, 최적화와 불확실성 추정이 올바르게 된다.
주요 응용
- 순기구학과 엔드 이펙터 자세 목표
- SLAM, 시각 오도메트리, 포즈 그래프 최적화
- 파지를 위한 물체 자세 추정
- 자세 사이의 궤적 보간
- 센서 외부 파라미터 보정
- 매니퓰레이션을 위한 등변 학습
실제 사례
집기 작업에서 순기구학은 베이스 좌표계에서의 그리퍼 자세를, 핸드-아이 보정은 그리퍼 좌표계에서의 카메라 자세를, 자세 추정기는 카메라 좌표계에서의 물체 자세를 준다. 베이스 좌표계에서의 물체 자세는 이 세 변환을 그 순서대로 곱한 것이며, 좌표계에 대한 일관된 명명 규칙이 순서가 뒤섞이는 것을 막는다. 여러 자세 추정치를 융합할 때 팀은 행렬 성분을 평균하는 대신 SO(3) 위에서 회전을 평균하는데, 예를 들어 쿼터니언 평균이나 접공간에서의 반복 평균을 사용한다. Sophus, manif, ROS의 tf2 같은 라이브러리가 이런 연산을 처리한다.
흔한 오해
- 자세는 성분별로 평균하거나 보간할 수 있다 — 그 결과는 일반적으로 유효한 회전이 아니며, 평균과 보간은 군 구조를 존중해야 한다
- SE(3)는 SO(3)와 병진 벡터를 나란히 놓은 것일 뿐이다 — 원소는 같지만, 운동을 합성할 때 회전이 병진에 작용하므로 합성 규칙이 다르다
- 오일러 각에 위치를 더한 것은 안전한 일반 표현이다 — SE(3)를 덮기는 하지만 특이점이 있으며, 쿼터니언이나 회전 행렬은 이를 피한다
알아야 할 사람
- 좌표계를 다루는 로보틱스 소프트웨어 엔지니어
- SLAM 및 상태 추정 엔지니어
- 기구학 및 매니퓰레이션 엔지니어
- 자세를 예측하는 머신러닝 연구자
관련 기술
- SO(3)
- 리 대수 se(3)(Lie Algebra se(3))
- 동차 변환 행렬(Homogeneous Transformation Matrix)
- 쿼터니언(Quaternions)
- Sophus
- tf2
관련 용어
관련 프로젝트
- AprilTag: The standard visual fiducial marker system for robot localization and pose estimation
- MoveIt 2: Motion planning framework for ROS 2 robot arms, with kinematics and collision checking
- manif: Header-only C++ Lie theory library for robotics state estimation
- PyRoki: Modular Python toolkit for kinematic optimization across CPU, GPU, and TPU via JAX
- PyPose: PyTorch library for differentiable robotics with deep learning and Lie group optimization
- DART: C++ physics engine for articulated rigid body dynamics and robotics simulation