9.11 이차원 병진과 회전의 결합
1. 강체 변환의 일반 형식
이차원 평면에서 강체 변환은 회전과 병진의 결합으로 표현된다.
\mathbf{p}' = \mathbf{R}(\theta)\mathbf{p} + \mathbf{t}
여기서 \mathbf{R}(\theta) \in SO(2)는 회전 행렬이고, \mathbf{t} = (t_x, t_y)^T \in \mathbb{R}^2는 병진 벡터이다.
이 변환은 평면에서의 강체 운동을 완전히 기술하며, 3개의 매개변수 (\theta, t_x, t_y)로 매개변수화된다.
2. 동차 변환(Homogeneous Transformation)
회전과 병진을 단일 행렬 연산으로 표현하기 위해 동차 좌표를 도입한다. 2차원 점 (x, y)를 3차원 동차 좌표 (x, y, 1)^T로 확장하면:
\begin{bmatrix}x' \\ y' \\ 1\end{bmatrix} = \begin{bmatrix}\cos\theta & -\sin\theta & t_x \\ \sin\theta & \cos\theta & t_y \\ 0 & 0 & 1\end{bmatrix}\begin{bmatrix}x \\ y \\ 1\end{bmatrix}
3 \times 3 동차 변환 행렬:
\mathbf{T} = \begin{bmatrix}\mathbf{R}(\theta) & \mathbf{t} \\ \mathbf{0}^T & 1\end{bmatrix}
3. SE(2) 군
평면 강체 변환의 집합은 특수 유클리드 군 SE(2)를 형성한다.
SE(2) = \{\mathbf{T} \in \mathbb{R}^{3 \times 3} : \mathbf{T} = \begin{bmatrix}\mathbf{R} & \mathbf{t} \\ \mathbf{0}^T & 1\end{bmatrix}, \mathbf{R} \in SO(2), \mathbf{t} \in \mathbb{R}^2\}
SE(2)는 3차원 다양체(manifold)이며, 매개변수 (\theta, t_x, t_y)로 매개변수화된다. SE(2) = SO(2) \ltimes \mathbb{R}^2는 반직접 곱(semidirect product)이다.
4. 변환의 합성
두 강체 변환의 합성이 다른 강체 변환이다.
\mathbf{T}_1\mathbf{T}_2 = \begin{bmatrix}\mathbf{R}_1 & \mathbf{t}_1 \\ \mathbf{0}^T & 1\end{bmatrix}\begin{bmatrix}\mathbf{R}_2 & \mathbf{t}_2 \\ \mathbf{0}^T & 1\end{bmatrix} = \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{t}_2 + \mathbf{t}_1이다. 두 번째 변환의 병진이 첫 번째 변환의 회전에 의해 변환된 후 가산된다.
4.1 비가환성
SO(2) 자체는 가환이지만, SE(2)는 가환이 아니다. 회전과 병진의 순서가 바뀌면 결과가 달라진다.
\mathbf{T}_1\mathbf{T}_2 \neq \mathbf{T}_2\mathbf{T}_1 \quad (\text{일반적으로})
5. 역변환
\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{t} \\ \mathbf{0}^T & 1\end{bmatrix}\begin{bmatrix}\mathbf{R}^T & -\mathbf{R}^T\mathbf{t} \\ \mathbf{0}^T & 1\end{bmatrix} = \begin{bmatrix}\mathbf{R}\mathbf{R}^T & -\mathbf{R}\mathbf{R}^T\mathbf{t} + \mathbf{t} \\ \mathbf{0}^T & 1\end{bmatrix} = \mathbf{I}
역변환은 회전 역(전치)과 회전된 병진의 부호 변화로 구성된다.
6. 회전-병진 순서의 해석
6.1 몸체 프레임에서의 운동(Body Frame)
변환 \mathbf{T}_{\text{new}} = \mathbf{T}\mathbf{T}_{\text{local}}에서 \mathbf{T}_{\text{local}}은 현재 좌표계(몸체 프레임)를 기준으로 한 국소적 운동이다.
6.2 세계 프레임에서의 운동(World Frame)
\mathbf{T}_{\text{new}} = \mathbf{T}_{\text{world}}\mathbf{T}에서 \mathbf{T}_{\text{world}}는 고정된 세계 좌표계를 기준으로 한 운동이다.
이 두 관점의 차이는 SE(2)의 비가환성에서 유래한다.
7. 이동 로봇의 자세 갱신
이동 로봇의 자세를 (x, y, \theta)로 표현할 때, 몸체 프레임에서의 운동 (\Delta x_b, \Delta y_b, \Delta\theta)은 다음과 같이 세계 프레임 자세를 갱신한다.
\begin{bmatrix}x_{\text{new}} \\ y_{\text{new}} \\ \theta_{\text{new}}\end{bmatrix} = \begin{bmatrix}x + \Delta x_b\cos\theta - \Delta y_b\sin\theta \\ y + \Delta x_b\sin\theta + \Delta y_b\cos\theta \\ \theta + \Delta\theta\end{bmatrix}
이는 SE(2) 변환의 합성의 구체적 예시이다.
8. 리 대수 \mathfrak{se}(2)
SE(2)의 리 대수는 다음 형태의 3 \times 3 행렬의 집합이다.
\mathfrak{se}(2) = \left\{\begin{bmatrix}0 & -\omega & v_x \\ \omega & 0 & v_y \\ 0 & 0 & 0\end{bmatrix} : \omega, v_x, v_y \in \mathbb{R}\right\}
(\omega, v_x, v_y)가 각속도와 병진 속도를 나타내며, SE(2)의 접공간(tangent space)을 매개변수화한다.
8.1 지수 사상
\mathfrak{se}(2)에서 SE(2)로의 지수 사상이 해석적으로 존재한다. \xi = (\omega, v_x, v_y)^T에 대해:
\exp(\xi^\wedge) = \begin{bmatrix}\cos\omega & -\sin\omega & \frac{\sin\omega}{\omega}v_x + \frac{\cos\omega - 1}{\omega}v_y \\ \sin\omega & \cos\omega & \frac{1 - \cos\omega}{\omega}v_x + \frac{\sin\omega}{\omega}v_y \\ 0 & 0 & 1\end{bmatrix}
(\omega = 0인 경우는 극한으로 처리)
9. 로봇 공학에서의 SE(2)
이동 로봇 위치 추정: 2D 환경의 로봇 자세가 SE(2)의 원소이다.
포즈 그래프 SLAM: 2D SLAM에서 노드가 SE(2) 포즈이고, 에지가 상대 SE(2) 측정이다.
평면 매니퓰레이터 기구학: 평면 로봇의 말단 장치 자세가 SE(2)로 표현된다.
10. 참고 문헌
- Lynch, K. M., & Park, F. C. (2017). Modern Robotics: Mechanics, Planning, and Control. Cambridge University Press.
- Siciliano, B., Sciavicco, L., Villani, L., & Oriolo, G. (2009). Robotics: Modelling, Planning and Control. Springer.
- Murray, R. M., Li, Z., & Sastry, S. S. (1994). A Mathematical Introduction to Robotic Manipulation. CRC Press.
version: 1.0