리 군

편집 역사 토론
수치해석 계산물리 마지막 수정: 2026-07-30 04:06:12

1. 개요[편집]

리 군
Lie Group
정의군 구조를 가진 매끄러운 다양체
이름Sophus Lie (1842~1899)
짝꿍리 대수 $\mathfrak{g}$ = 항등원의 접공간
연결 고리지수사상 $\exp : \mathfrak{g} \to G$
시뮬레이션 단골SO(3), SE(3), SU(2), Sp(2n)
쓰이는 곳강체 자세 적분, 로봇 기구학, 자세 추정

회전은 벡터가 아니다. 더해지지 않고, 곱해진다.

리 군(Lie group)은 군(group)이면서 동시에 매끄러운 다양체(smooth manifold)이고, 곱셈 (g,h)gh(g,h) \mapsto gh와 역원 gg1g \mapsto g^{-1}이 매끄러운 사상인 대상이다. 쉽게 말해 “연속적으로 이어져 있는 대칭들의 모임”이며, 회전·병진·척도 변환처럼 파라미터를 조금씩 돌리면 연속적으로 변하는 변환들이 전부 여기 속한다. 이름은 19세기 노르웨이 수학자 소푸스 리에게서 왔다.

시뮬레이션하는 사람 입장에서 리 군이 중요한 이유는 딱 하나로 요약된다. 자세(orientation)와 강체 변환은 벡터공간에 살지 않는다. 두 회전을 더하면 회전이 아니고, 회전행렬에 오차를 더하면 회전행렬이 아니다. 오일러각으로 억지로 좌표를 붙이면 짐벌락이 나오고, 회전행렬 9개 성분을 그냥 적분하면 직교성이 서서히 무너진다. 리 군은 이 “곡면 위의 상태”를 곡면에서 벗어나지 않은 채 다루는 언어이고, 그 언어를 코드로 옮긴 것이 오늘날 로봇공학·SLAM·물리엔진의 기본 뼈대다.1

2. 군이면서 다양체라는 것[편집]

n×nn \times n 실행렬 중 RTR=IR^{\mathsf{T}}R = I, detR=1\det R = 1인 것들의 모임 SO(3)SO(3)을 보자. 이 조건은 9개 성분에 6개의 독립 제약을 걸므로, SO(3)SO(3)은 9차원 공간에 박힌 3차원 곡면이다. 곱하면 다시 조건을 만족하니 군이고, 조건식이 매끄러우니 다양체다. 즉 리 군이다.

여기서 결정적인 성질은 군의 왼쪽 곱셈이 다양체 위의 모든 점을 항등원과 똑같이 생기게 만든다는 것이다. gg 근처의 사정을 알고 싶으면 g1g^{-1}을 곱해 항등원으로 끌고 오면 된다. 그래서 리 군은 곡면인데도 한 점(항등원)에서의 국소 정보만으로 전체를 거의 다 기술할 수 있다. 이 한 점의 접공간에 이름을 붙인 것이 리 대수 g\mathfrak{g}다.

SO(3)SO(3)의 경우, R(t)TR(t)=IR(t)^{\mathsf{T}}R(t) = I를 미분하면 R˙TR+RTR˙=0\dot{R}^{\mathsf{T}}R + R^{\mathsf{T}}\dot{R} = 0, 즉 RTR˙R^{\mathsf{T}}\dot{R}은 반대칭이다. 그래서 접공간 so(3)\mathfrak{so}(3)은 3×3 반대칭 행렬 전체이고, 성분이 3개뿐이라 각속도 벡터와 1:1로 대응한다.

[ω]×=[0ω3ω2ω30ω1ω2ω10],[ω]×v=ω×v[\boldsymbol{\omega}]_\times = \begin{bmatrix} 0 & -\omega_3 & \omega_2 \\ \omega_3 & 0 & -\omega_1 \\ -\omega_2 & \omega_1 & 0 \end{bmatrix}, \qquad [\boldsymbol{\omega}]_\times \mathbf{v} = \boldsymbol{\omega} \times \mathbf{v}

리 대수에는 리 괄호 [X,Y]=XYYX[X, Y] = XY - YX가 얹혀 있고, so(3)\mathfrak{so}(3)에서 이 괄호는 정확히 벡터 외적이다. 즉 “각속도의 외적”이라는 물리 시간의 익숙한 연산이 사실은 리 괄호였던 셈. 괄호가 0이 아니라는 사실이 곧 “회전은 교환법칙이 성립하지 않는다”의 대수적 표현이다.

3. 지수사상과 로그사상[편집]

리 대수의 원소는 “무한소 생성자”다. 상수 각속도 ω\boldsymbol{\omega}로 도는 강체의 자세는 R˙=R[ω]×\dot{R} = R[\boldsymbol{\omega}]_\times를 풀어 얻어지고, 그 해가 행렬 지수다.

exp(θ[ω^]×)=I+sinθ[ω^]×+(1cosθ)[ω^]×2\exp\big(\theta [\hat{\boldsymbol{\omega}}]_\times\big) = I + \sin\theta\, [\hat{\boldsymbol{\omega}}]_\times + (1-\cos\theta)\, [\hat{\boldsymbol{\omega}}]_\times^2

이것이 로드리게스 공식이다. 무한급수인 행렬 지수가 [ω^]×3=[ω^]×[\hat{\boldsymbol{\omega}}]_\times^3 = -[\hat{\boldsymbol{\omega}}]_\times라는 관계 덕분에 항 세 개로 닫힌다. 반대 방향인 로그사상은 회전행렬에서 회전 벡터(axis-angle) θω^\theta\hat{\boldsymbol{\omega}}를 뽑아내며, θ=arccos((trR1)/2)\theta = \arccos\big((\mathrm{tr}\,R - 1)/2\big)로 각을 먼저 구한다.

지수사상의 성질 몇 가지는 그대로 실무 상식이 된다.

  • SO(3)SO(3)처럼 콤팩트하고 연결된 군에서 exp\exp는 전사(surjective)다. 모든 회전은 어떤 축 하나를 중심으로 한 번 돌린 것으로 표현된다(오일러 회전 정리).
  • 단사는 아니다. θ\thetaθ+2π\theta + 2\pi가 같은 회전을 주고, θ=π\theta = \pi에서는 축의 부호가 결정되지 않는다. 그래서 로그사상은 θ<π\|\theta\| < \pi 영역으로 제한해서 쓴다.
  • expXexpYexp(X+Y)\exp X \exp Y \ne \exp(X+Y)다. 보정항이 베이커-캠벨-하우스도르프(BCH) 공식으로 주어진다.
log(expXexpY)=X+Y+12[X,Y]+112([X,[X,Y]][Y,[X,Y]])+\log(\exp X \exp Y) = X + Y + \tfrac{1}{2}[X,Y] + \tfrac{1}{12}\big([X,[X,Y]] - [Y,[X,Y]]\big) + \cdots

작은 회전끼리는 그냥 더해도 되지만(O(X2)\mathcal{O}(\|X\|^2) 오차), 큰 회전에서는 저 괄호항들이 실제로 물어뜯는다.

4. 시뮬레이션 단골 손님들[편집]

차원원소무대
SO(3)SO(3)33×3 회전행렬강체 자세, 결정 방위
SE(3)SE(3)6회전 + 병진로봇 링크, 카메라 포즈
SU(2)SU(2)32×2 유니터리, det=1\det = 1스핀 1/2, 단위 사원수
Sp(2n,R)Sp(2n,\mathbb{R})n(2n+1)n(2n{+}1)심플렉틱 행렬해밀토니안 역학의 흐름

SE(3)SE(3)의 리 대수 se(3)\mathfrak{se}(3) 원소는 각속도와 선속도를 묶은 6차원 트위스트이고, 그 지수는 나사 운동(screw motion)이다. 로봇 기구학의 지수곱(product of exponentials) 공식 T(q)=e[S1]q1e[Sn]qnMT(\boldsymbol{q}) = e^{[\mathcal{S}_1]q_1}\cdots e^{[\mathcal{S}_n]q_n} M은 D-H 파라미터 없이 관절축만으로 순기구학을 쓰는 방식이며, 이때 기하 자코비안 행렬의 각 열이 곧 현재 자세에서 본 관절의 나사축이다. 역운동학 수치해법이 이 자코비안을 쓴다.

SU(2)SU(2)SO(3)SO(3)이중 덮개다. ±U\pm U가 같은 회전으로 사상되고, 단위 사원수 qqq-q가 같은 자세를 나타내는 그 현상이 정확히 이것이다. 사원수 보간(SLERP)이 “구면 위 측지선”인 이유도 SU(2)S3SU(2) \cong S^3이기 때문. 사원수가 짐벌락에서 자유로운 근본 원인은 트릭이 아니라 군의 위상에 있다.

또 하나 짚을 것은 뇌터 정리와의 관계다. 연속 대칭군이 곧 리 군이고, 그 리 대수의 각 생성자가 보존량 하나씩을 낳는다. 회전 대칭 → 각운동량, 병진 대칭 → 선운동량. 대칭군을 알면 무엇이 보존되는지가 자동으로 나온다는 것이 물리 쪽에서 리 군을 쓰는 첫 번째 이유이며, 게이지 이론은 이 발상을 국소 대칭으로 확장한 것이다.

5. 다양체 위에서 적분하기 — 리 군 적분기[편집]

자세를 수치적분할 때 순진한 방법은 Rk+1=Rk+ΔtRk[ω]×R_{k+1} = R_k + \Delta t\, R_k [\boldsymbol{\omega}]_\times다. 이건 접평면 방향으로 직선 이동하는 것이라 곡면에서 벗어난다. 몇 천 스텝만 지나도 RTRR^{\mathsf{T}}RII에서 눈에 띄게 멀어지고, 그때마다 그람-슈미트로 억지 재직교화를 하게 된다. 강체 동역학 코드에서 “회전행렬을 주기적으로 정규화한다”는 관행이 바로 이 증상의 대증요법이다.

리 군 적분기는 대신 이렇게 쓴다.

Rk+1=Rkexp(Δt[ωk]×)R_{k+1} = R_k \exp\big(\Delta t\, [\boldsymbol{\omega}_k]_\times\big)

지수사상의 결과는 정의상 항상 SO(3)SO(3) 원소이므로, 스텝 크기가 아무리 커도 제약 위반이 원리적으로 0이다. 오차는 제약이 아니라 시간 정확도 쪽에만 남는다. 이 발상을 고차 룽게-쿠타로 밀어올린 것이 문테-카스(Munthe-Kaas) 방법과 크라우치-그로스만 방법이고, 통칭 기하 수치적분(geometric numerical integration)이라 부른다. 변분 적분기심플렉틱 적분기를 리 군 위에서 구성하면 에너지·운동량·제약을 동시에 지키는 강체 적분기가 나오며, 자유 강체의 RATTLE/Lie-Verlet 계열이 그 결과물이다.

6. 최적화와 상태추정 — on-manifold[편집]

파라미터가 회전이면 최소제곱이나 칼만 필터를 그대로 쓸 수 없다. “평균 회전행렬”을 성분별 평균으로 구하면 회전행렬이 아니게 되고, 오일러각 3개를 상태로 잡으면 특이점 근처에서 공분산이 폭발한다. 해법은 국소 좌표를 매번 새로 붙이는 것이다.

Rδ  =  Rexp([δ]×),R2R1  =  log(R1TR2)R \oplus \boldsymbol{\delta} \;=\; R\,\exp\big([\boldsymbol{\delta}]_\times\big), \qquad R_2 \ominus R_1 \;=\; \log\big(R_1^{\mathsf{T}}R_2\big)^{\vee}

상태는 군 위에 두고, 증분·오차·공분산만 리 대수(= 진짜 3차원 벡터공간)에서 다룬다. 이것이 오차상태 칼만 필터(ESKF)와 SLAM 백엔드(Ceres, GTSAM, g2o)의 표준 설계이며, 야코비안에는 exp\exp의 미분에서 나오는 우 야코비안

Jr(ϕ)=I1cosϕϕ2[ϕ]×+ϕsinϕϕ3[ϕ]×2J_r(\boldsymbol{\phi}) = I - \frac{1-\cos\|\boldsymbol{\phi}\|}{\|\boldsymbol{\phi}\|^2}[\boldsymbol{\phi}]_\times + \frac{\|\boldsymbol{\phi}\| - \sin\|\boldsymbol{\phi}\|}{\|\boldsymbol{\phi}\|^3}[\boldsymbol{\phi}]_\times^2

가 곱해져 들어간다.2 IMU 예비적분(preintegration)이 재선형화 없이 자세 증분을 누적할 수 있는 것도 이 보정항 덕분이다. 최근의 불변 EKF(invariant EKF)는 한 발 더 나가서, 오차를 군 원소로 정의하면 특정 계에서 오차 동역학이 상태와 무관해진다는 성질을 이용해 수렴 영역을 넓힌다.3

7. 관련 문서[편집]

8. Footnotes[편집]

  1. “리 군을 몰라도 사원수 코드는 짤 수 있다”는 말은 맞다. 다만 그 코드가 왜 정규화를 매 프레임 해야 하는지, 왜 qqq-q를 같이 취급해야 하는지, 왜 자세 오차의 공분산을 4차원이 아니라 3차원으로 잡아야 하는지를 물어보면 결국 리 군 이야기로 돌아온다. 안 배우면 그 지식을 버그 리포트로 배우게 된다.

  2. ϕ0\|\boldsymbol{\phi}\| \to 0에서 두 계수 모두 0/00/0이라, 실제 구현은 테일러 전개로 갈아타는 분기를 반드시 넣는다. 이 분기를 빼먹어 “정지 상태에서만 NaN이 뜨는” 버그를 만드는 것은 SLAM 입문자의 통과의례에 가깝다.

  3. 회전을 “그냥 3개 숫자”로 취급하고 싶은 유혹은 영원한데, 3차원 회전군은 위상적으로 R3\mathbb{R}^3이 아니라 RP3\mathbb{RP}^3이라 전역 좌표 3개짜리 특이점 없는 파라미터화가 원리적으로 존재하지 않는다. 짐벌락은 구현 실수가 아니라 위상수학의 청구서다.