AEGLOSLAB 로봇공학 전서(全書)

제1부 수학적 기초

1.7 리군·리대수 I: SO(3)·SE(3)·지수 사상과 로그 사상

1.7.1 이 장에서 배우는 것 / 선수 지식 / 특히 중요한 독자

이 장은 회전군 $SO(3)$와 강체 변환군 $SE(3)$를 매끈한 다양체인 리군으로 보고, 항등원의 접공간인 리대수와 둘 사이를 잇는 지수 사상·로그 사상을 다룬다. 회전 벡터와 트위스트가 접공간의 원소이고, 지수 사상이 이를 회전·변환으로 바꾼다. 이 구조가 자세 최적화(국소 섭동), 오차상태 칼만 필터, 기구학의 지수곱 공식, 구면 보간의 일반화의 공통 기반이다. 앞 장들(1.3~1.6)의 회전·변환 표현을 다양체의 관점으로 묶는 장이며, 섭동·리 야코비안·불확실성 전파는 1.8, 리만 기하는 1.9, 스크루 이론은 1.10이 다룬다. 다룰 질문은 네 가지다. 리대수와 리군은 어떻게 대응하는가, $SO(3)$·$SE(3)$의 지수·로그는 어떤 식이며 어디서 수치가 깨지는가, 합성 $\exp(a)\exp(b)$는 지수의 합과 얼마나 다른가, 지수 사상을 이용한 보간은 SLERP와 어떤 관계인가.

배우는 것:

  • 리군과 리대수 — 정의, 접공간, 리 괄호, $\mathfrak{so}(3)$·$\mathfrak{se}(3)$의 hat·vee 표기.
  • 지수·로그 사상 — $SO(3)$(로드리게스)와 $SE(3)$($V(\theta)$ 블록), 로그의 정의역과 $\pi$ 경계.
  • BCH 공식 — $\log(\exp a\exp b)=a+b+\tfrac12[a,b]+\cdots$.
  • 수치 — 작은 각의 급수, $\pi$ 근방 로그의 정밀도.
  • 보간 — 지수 사상 기반 측지선 보간과 SLERP의 일치.
  • 규약 — 트위스트 성분 순서가 문헌마다 다르다는 점(이 책 $(\omega,v)$ 대 Solà 외 $(\rho,\theta)$).
  • 풀이 예제 — 왕복 오차, 급수 처리, 로그의 정밀도, BCH 차수, 보간 일치.

선수 지식: 1.4·1.5(회전의 표현), 1.6(동차변환). 표기는 BK-05와 A.2을 따른다.

특히 중요한 독자: 연구자·엔지니어(자세 최적화·추정·기구학), 소프트웨어 개발자(리군 라이브러리의 규약), 수학적 배경을 확인하려는 독자.

출처 방침. 정리는 교과서와 원 논문에 근거하며 서지는 Crossref·arXiv 응답으로 확인했다(목록은 이 장 끝). 직접 읽은 자료: Solà, Deray, Atchuthan, 『A micro Lie theory for state estimation in robotics』(arXiv:1812.01537, 최초 2018-12-04, 최신 갱신 2021-12-08)의 표 I과 부록 D($SE(3)$: 식 (168)~(174))를 읽고 $\mathfrak{se}(3)$ 벡터의 성분 순서와 지수·로그 식을 확인했다. 교과서 본문은 읽지 않았고 정리 번호는 (확인 필요)로 둔다. 수치는 모두 이 장의 순수 파이썬 구현으로 계산했으며 행렬 곱은 1.1, 행렬→쿼터니언은 1.5, SLERP는 1.5의 구현을 불러와 사용했다.

1.7.2 개념 — 곡면 위의 군과 접평면

회전 행렬의 집합은 $\mathbb R^{9}$ 안의 3차원 곡면이다. 이 곡면 위에서는 덧셈이 곡면을 벗어나므로 회전을 "더하거나" 미분하기 어렵다. 항등원에서 곡면에 접하는 평면(접공간)은 평평하여 덧셈·미분·최적화가 통상적으로 성립한다. 지수 사상은 접공간의 점을 곡면 위의 점으로 감고, 로그 사상은 그 역이다. 이 대응이 회전을 3개의 수 $\omega\in\mathbb R^3$로 국소적으로 다루게 해 주며, 오일러각의 전역 특이점 문제(1.4)를 접공간에서의 국소 계산으로 피한다.

항등원 군 (매끈한 다양체) 접공간 exp log 접공간의 점(각 θ)을 호의 길이 θ인 군의 점으로 감는 것이 지수 사상이다
리군의 지수 사상과 로그 사상의 평면 비유(단위원 위의 항등원에서의 접선). 접공간의 점을 호의 길이가 같은 군의 점으로 감는 것이 지수 사상이고 그 역이 로그 사상이다.
대상군(곡면)리대수(접공간)차원
평면 회전$SO(2)$$\mathfrak{so}(2)\cong\mathbb R$1
공간 회전$SO(3)$$\mathfrak{so}(3)\cong\mathbb R^3$3
공간 강체 변환$SE(3)$$\mathfrak{se}(3)\cong\mathbb R^6$6

1.7.3 원리

1.7.3.1 리군과 리대수

리군은 군이면서 매끈한 다양체이고 곱과 역이 매끈한 군이다. $SO(3)$와 $SE(3)$는 행렬 리군이다. 항등원 $I$에서의 접공간이 리대수이며 행렬 리군에서는 $\mathfrak g=\{X:\ \exp(tX)\in G\ \forall t\}$로 얻는다. 리대수는 리 괄호 $[X,Y]=XY-YX$를 갖는다.

  • $\mathfrak{so}(3)$. 반대칭 행렬 $\omega^\wedge=[\omega]_\times$의 집합이다. $\wedge$(hat)는 $\mathbb R^3\to\mathfrak{so}(3)$, $\vee$(vee)는 그 역이다. 괄호는 $[\omega_1^\wedge,\omega_2^\wedge]=(\omega_1\times\omega_2)^\wedge$, 곧 벡터의 외적이다.
  • $\mathfrak{se}(3)$. $4\times4$ 행렬 $\begin{bmatrix}[\omega]_\times&v\\0&0\end{bmatrix}$의 집합이며 $6$개 성분 $(\omega,v)$로 매개한다. 이 6성분 벡터를 트위스트라 한다(1.10).

성분 순서는 문헌마다 다르다. 이 책은 BK-05에 따라 트위스트를 $(\omega,v)$(각속도 먼저, Lynch & Park 관례)로 적는다. Solà 외(2018)는 $\mathfrak{se}(3)$의 벡터를 $\tau=(\rho,\theta)$, 곧 이동 성분 $\rho$ 먼저, 회전 성분 $\theta$ 나중으로 적는다(식 (169), 이 장이 읽은 문서). 같은 식에서 성분이 서로 바뀌므로 문헌의 식을 옮길 때 블록의 순서를 바꾼다. 아래 지수·로그 식은 이 책의 순서 $\xi=(\omega,v)$와 Solà 외의 순서 $\tau=(\rho,\theta)$를 구분하지 않고 이동 블록을 $\rho$, 회전 블록을 $\theta$(크기 $\theta=\lVert\theta\rVert$)로 적는다. 구현(1.7.5)은 exp_se3(rho, w)처럼 이름을 붙여 순서를 명시한다.

1.7.3.2 $SO(3)$의 지수 사상과 로그 사상

지수 사상은 회전 벡터 $\omega=\theta n$ ($\theta=\lVert\omega\rVert$)을 회전 행렬로 보낸다.

$$\exp(\omega^\wedge)=I+\frac{\sin\theta}{\theta}\,\omega^\wedge+\frac{1-\cos\theta}{\theta^2}\,(\omega^\wedge)^2$$

이는 로드리게스 공식(1.5)과 같다. 이 사상은 전사이지만 일대일이 아니다. $\omega$와 $\omega+2\pi k\,n$이 같은 회전을 준다. 로그 사상은 $\lVert\omega\rVert\le\pi$ 범위로 제한한 역이며, $\theta=\pi$에서 $\omega$와 $-\omega$가 같은 회전이어서 정의가 둘로 갈린다(절단 궤적). 로그는

$$\theta=\operatorname{atan2}\!\bigl(\tfrac12\lVert\operatorname{vee}(R-R^\top)\rVert,\ \tfrac12(\operatorname{tr}R-1)\bigr),\qquad \omega=\frac{\theta}{2\sin\theta}\operatorname{vee}(R-R^\top)$$

이다. 이 식은 $\theta\to0$과 $\theta\to\pi$에서 $\sin\theta$로 나누므로 불안정하며 구현은 쿼터니언을 거치는 경로(1.5)를 사용한다.

1.7.3.3 $SE(3)$의 지수 사상과 로그 사상

$\tau=(\rho,\theta)$의 지수는 회전과 이동을 함께 준다(Solà 외, 식 (172)·(174)).

$$\exp(\tau^\wedge)=\begin{bmatrix}\exp(\theta^\wedge)&V(\theta)\,\rho\\0&1\end{bmatrix},\qquad V(\theta)=I+\frac{1-\cos\theta}{\theta^2}\,\theta^\wedge+\frac{\theta-\sin\theta}{\theta^3}\,(\theta^\wedge)^2$$

로그는 $\theta=\operatorname{Log}(R)$로 회전 블록을 구하고 $\rho=V(\theta)^{-1}p$로 이동 블록을 구한다. $V$는 $SO(3)$의 왼쪽 야코비안이다(1.8). 기하학적으로 $\tau$는 일정한 트위스트이며 그 지수는 나사 운동(축 둘레 회전과 축 방향 이동의 합)이다(1.10). 이동 $p$는 단순히 $\rho$가 아니다. 회전이 있으면 $p=V(\theta)\rho$로 달라진다.

1.7.3.4 BCH 공식과 합성

회전의 합성 $\exp(a^\wedge)\exp(b^\wedge)$는 $\exp((a+b)^\wedge)$와 다르다(회전은 교환되지 않는다). BCH(Baker–Campbell–Hausdorff) 공식은 차이를 괄호로 전개한다.

$$\log\bigl(\exp a\,\exp b\bigr)=a+b+\tfrac12[a,b]+\tfrac1{12}\bigl([a,[a,b]]+[b,[b,a]]\bigr)+\cdots$$

$SO(3)$에서 $[a,b]=a\times b$이므로 $a,b$의 크기가 $\varepsilon$이면 1차 근사 $a+b$의 오차는 $O(\varepsilon^2)$, 2차 근사 $a+b+\tfrac12a\times b$의 오차는 $O(\varepsilon^3)$이다(1.7.5에서 확인). 이 전개가 작은 섭동의 합성을 선형으로 다루는 근거이며 1.8의 야코비안으로 이어진다.

1.7.3.5 측지선 보간

두 회전 $R_0$, $R_1$ 사이의 측지선은 $R(t)=R_0\exp\bigl(t\log(R_0^\top R_1)\bigr)$이며 회전각이 $t$에 선형이다. 이 보간은 쿼터니언 SLERP(1.5)와 같은 회전 경로를 준다. $SE(3)$에서 같은 형태는 일정 트위스트의 나사 운동이며 위치와 회전을 따로 보간한 경로와 다르다.

1.7.3.6 수치

  • 작은 각. $\sin\theta/\theta$, $(1-\cos\theta)/\theta^2$, $(\theta-\sin\theta)/\theta^3$은 $\theta\to0$에서 분자가 상쇄되어 정밀도를 잃는다. $\theta<10^{-2}$에서 테일러 급수를 사용한다.
  • $\pi$ 근방의 로그. $\sin\theta$로 나누는 식은 정밀도를 잃으며 $\theta=\pi$에서 정의되지 않는다. 쿼터니언을 거치는 경로는 이를 피한다.
  • 정규화. 지수 결과의 직교성은 반올림 수준에서 유지된다(1.4의 재직교화).

1.7.4 알고리즘

$SO(3)$·$SE(3)$의 지수와 로그

exp_so3(ω):  θ ← ‖ω‖;  (a, b) ← (sin θ/θ, (1−cos θ)/θ²)    (θ < 10⁻²이면 급수)
             반환 I + a ω^ + b (ω^)²
log_so3(R):  q ← 쿼터니언(R) (셰퍼드);  q_w < 0이면 q ← −q
             (n, θ) ← 축-각(q);  반환 θ n
exp_se3(ρ, θ):  반환 (exp_so3(θ),  V(θ) ρ)
log_se3(R, p):  θ ← log_so3(R);  반환 (V(θ)⁻¹ p,  θ)
              V⁻¹ = I − ½θ^ + [1/θ² − (1+cos θ)/(2θ sin θ)] (θ^)²      (θ < 10⁻²이면 1/12)

측지선 보간(R0, R1, t):  d ← log_so3(R0ᵀ R1);  반환 R0 exp_so3(t d)

구현은 1.7.5의 코드에 있다.

1.7.5 풀이 예제 — 왕복·급수·로그의 정밀도·BCH·보간

지수·로그 사상을 구현해 정리를 수치로 확인한다. 결론부터 적으면 다음과 같다. ① 쿼터니언을 거치는 로그는 $\theta=\pi-10^{-9}$까지 왕복 오차가 $10^{-15}$ 안인 반면 acos와 sin 나눗셈 방식은 $\pi-10^{-6}$에서 $4.9\times10^{-4}$, $\pi-10^{-9}$에서 3.0으로 무너진다. ② $(1-\cos\theta)/\theta^2$의 직접 계산은 $\theta=10^{-8}$에서 상대 오차 1(정보 전부 손실)이고 급수를 두면 0이다. ③ $SE(3)$의 왕복 오차는 $10^{-15}$ 안이다. ④ BCH 근사의 오차는 1차에서 $\varepsilon^2$, 2차에서 $\varepsilon^3$으로 줄어든다. ⑤ 지수 사상 보간은 SLERP와 $9\times10^{-16}$ 안에서 같다.

구현. hat·vee·exp_so3·log_so3·log_naive·vmat·vinv·exp_se3·log_se3. 행렬 곱은 1.1, 행렬→쿼터니언·SLERP는 1.5

항목값
입력 1축 $(1,2,2)/3$ 둘레 각 $\theta=10^{-9}$~$\pi-10^{-9}$의 회전 벡터
입력 2$\theta=10^{-1}$~$10^{-8}$의 $(1-\cos\theta)/\theta^2$(기준값은 8차까지의 급수)
입력 3$\tau=s\,(0.4,-0.7,0.5,\ 0.3,0.5,-0.8)$, $s=10^{-6}$~3
입력 4$a=\varepsilon(0.3,-0.5,0.8)$, $b=\varepsilon(-0.7,0.2,0.4)$, $\varepsilon=10^{-1}$~$10^{-3}$
입력 5무작위 자세 50쌍(시드 8), $t=0.1$~0.9
import math

def hat(w):
    """w^ = [w]x (3×3 반대칭 행렬)"""
    return [[0.0, -w[2], w[1]], [w[2], 0.0, -w[0]],
            [-w[1], w[0], 0.0]]

def vee(W):
    return [W[2][1], W[0][2], W[1][0]]

def coef(th):
    """exp·V의 계수 a=sin/θ, b=(1−cos)/θ², c=(θ−sin)/θ³"""
    if th < 1e-2:                    # 작은 각: 테일러 급수
        t2 = th * th
        return (1 - t2 / 6 + t2 * t2 / 120,
                0.5 - t2 / 24 + t2 * t2 / 720,
                1 / 6 - t2 / 120 + t2 * t2 / 5040)
    return (math.sin(th) / th, (1 - math.cos(th)) / th ** 2,
            (th - math.sin(th)) / th ** 3)

def exp_so3(w):
    """로드리게스: I + aW + bW^2"""
    a, b, _ = coef(math.sqrt(sum(x * x for x in w)))
    W = hat(w)
    W2 = matmul(W, W)
    return [[(i == j) + a * W[i][j] + b * W2[i][j]
             for j in range(3)] for i in range(3)]

def log_so3(R):
    """쿼터니언을 거쳐 θ ≈ π에서도 정확한 로그"""
    q = from_matrix(R)
    if q[0] < 0:
        q = tuple(-x for x in q)
    n, th = to_axis_angle(q)
    return [th * x for x in n]

def log_naive(R):
    """acos와 sin 나눗셈의 로그(θ ≈ 0, π에서 부정확)"""
    th = math.acos(max(-1.0, min(1.0, (R[0][0] + R[1][1]
                                       + R[2][2] - 1) / 2)))
    k = th / (2 * math.sin(th))
    A = [[R[i][j] - R[j][i] for j in range(3)]
         for i in range(3)]
    return [k * x for x in vee(A)]

def vmat(w):
    """V(θ) = I + bW + cW^2 (SE(3) 지수의 이동 블록)"""
    _, b, c = coef(math.sqrt(sum(x * x for x in w)))
    W = hat(w)
    W2 = matmul(W, W)
    return [[(i == j) + b * W[i][j] + c * W2[i][j]
             for j in range(3)] for i in range(3)]

def vinv(w):
    """V^-1 = I − W/2 + (1/θ² − (1+cosθ)/(2θ sinθ)) W^2"""
    th = math.sqrt(sum(x * x for x in w))
    k = 1 / 12 if th < 1e-3 else (1 / th ** 2
        - (1 + math.cos(th)) / (2 * th * math.sin(th)))
    W = hat(w)
    W2 = matmul(W, W)
    return [[(i == j) - 0.5 * W[i][j] + k * W2[i][j]
             for j in range(3)] for i in range(3)]

def exp_se3(rho, w):
    """τ = (ρ, θ)의 지수: (R, p) = (Exp(θ), V(θ) ρ)"""
    p = [sum(v * x for v, x in zip(r, rho)) for r in vmat(w)]
    return exp_so3(w), p

def log_se3(R, p):
    w = log_so3(R)
    rho = [sum(v * x for v, x in zip(r, p)) for r in vinv(w)]
    return rho, w

① $SO(3)$ 로그의 왕복 정밀도. $\lVert\operatorname{Log}(\operatorname{Exp}(\omega))-\omega\rVert$는 다음과 같다.

각 $\theta$$\lVert\mathrm{Log}(\mathrm{Exp}(\omega))-\omega\rVert$ (쿼터니언 경유)같은 양(acos·sin 나눗셈)
1e-090.0e+00계산 불가
0.00010.0e+002.0e-20
0.50.0e+000.0e+00
20.0e+001.1e-16
3.1415916546.7e-164.9e-04
3.1415926530.0e+003.0e+00
10−9 10−7 10−5 10−3 10−1 10−17 10−16 10−15 10−14 10−13 10−12 10−11 10−10 10−9 10−8 10−7 10−6 10−5 10−4 10−3 10−2 10−1 100 101 π − θ (rad) 로그 사상의 오차 acos·sin 나눗셈 쿼터니언 경유
회전각이 π에 가까울 때 로그 사상의 오차(계산값, 축 (1,2,2)/3). acos·sin 나눗셈 방식은 π에 가까울수록 무너지고(선이 끊긴 곳은 계산 불가) 쿼터니언을 거치는 방식은 반올림 수준이다.

② 작은 각의 급수.

각 $\theta$$(1-\cos\theta)/\theta^2$ 직접 계산의 상대 오차급수를 둔 coef의 상대 오차
0.11.1e-141.1e-14
0.012.9e-132.9e-13
0.0011.6e-110.0e+00
0.00015.2e-090.0e+00
1e-068.9e-050.0e+00
1e-081.0e+000.0e+00

$\theta=10^{-8}$에서 직접 계산한 $1-\cos\theta$가 부동소수점에서 0이 되어 상대 오차가 1이 된다. 급수 구간($\theta<10^{-2}$)에서는 기준값과 같다.

③ $SE(3)$의 왕복.

$\lVert\tau\rVert$$\lVert\mathrm{Log}(\mathrm{Exp}(\tau))-\tau\rVert$ (SE(3), 이동 블록 포함)
1.37e-061.8e-22
0.01372.0e-18
1.371.2e-16
4.111.7e-15

④ BCH 근사의 차수.

$\varepsilon$1차 근사 $a+b$의 오차2차 근사 $a+b+\tfrac12 a\times b$의 오차오차 비(1차/2차)
0.14.11e-038.81e-0547
0.014.11e-058.80e-08467
0.0014.11e-078.80e-114671
10−3 10−2 10−1 10−17 10−16 10−15 10−14 10−13 10−12 10−11 10−10 10−9 10−8 10−7 10−6 10−5 10−4 10−3 10−2 10−1 회전 벡터의 크기 척도 ε BCH 근사의 오차 1차 a + b (기울기 2) 2차 +tfrac12a × b (기울기 3)
회전의 합성 log(exp a exp b)에 대한 BCH 근사의 오차(계산값, a·b의 크기 척도 ε). 1차 근사의 오차는 ε²에, 2차 근사의 오차는 ε³에 비례한다.

$\varepsilon$를 10배 줄이면 1차 오차는 100배($\varepsilon^2$), 2차 오차는 1,000배($\varepsilon^3$) 줄어 오차 비가 약 $10$배씩 늘어난다(47, 467, 4,671). 일차 근사에서 $a\times b/2$ 항이 오차의 주항이다.

⑤ 측지선 보간과 SLERP.

지수 사상 보간 $R_0\mathrm{Exp}(t\,\mathrm{Log}(R_0^\top R_1))$과 SLERP의 최대 원소 차이(무작위 자세 50쌍, $t=0.1\sim0.9$): 8.9e-16

이 결과는 $SO(3)$의 지수 사상 보간과 쿼터니언 SLERP가 같은 경로를 준다는 것을 수치로 확인한다.

한계. 구현은 소규모 교육 코드이며 $\theta=\pi$ 부근의 절단 궤적에서 로그의 부호 선택(두 값 중 하나)을 다루지 않았다. BCH는 3차 이상 항을 시험하지 않았다. $SE(3)$의 BCH와 야코비안은 1.8이 다룬다. $\mathfrak{se}(3)$의 성분 순서는 이 장의 구현(이동 먼저)과 이 책의 표기(각속도 먼저)가 다르므로 함수 인자 이름으로 구분한다.

견해: 이 책은 자세·변환의 국소 최적화와 섭동을 리대수 위에서 하고, 저장·전역 표현은 쿼터니언 또는 회전 행렬로 두는 것을 기본으로 둔다고 본다. 근거는 위 예제에서 지수·로그가 반올림 수준으로 왕복하고(쿼터니언 경유 로그), 합성의 작은 섭동이 BCH로 정확히 차수별로 근사되며, 측지선 보간이 SLERP와 같다는 점이다. 구현에서는 $\theta\to0$의 급수와 $\pi$ 근방 로그의 처리가 정밀도를 정한다.

1.7.6 설계 트레이드오프 — 국소 좌표의 선택

자료에서 확인되는 선택지는 세 가지다.

  • ① 리대수(회전 벡터·트위스트) 좌표. 최소 표현(3 또는 6)이며 섭동·미분·최적화에 알맞다. 지수·로그 계산과 $\pi$ 근방·급수 처리가 필요하다.
  • ② 쿼터니언(+이동). 저장·합성이 가볍고 특이점이 없다. 4개 성분의 노름 제약과 부호 모호성이 있다(1.5).
  • ③ 회전 행렬·동차 행렬. 변환이 직접적이다. 중복 매개변수와 재직교화가 필요하다(1.4).
방식장점한계알맞은 경우
① 리대수최소 표현, 섭동지수·로그 비용, 경계최적화·추정의 갱신 단계
② 쿼터니언가벼움, 보간부호·노름저장·보간·통신
③ 행렬직접 변환중복기구학 연쇄

견해: 한 알고리즘 안에서 저장은 쿼터니언이나 행렬로, 갱신(증분)은 리대수로 하는 혼합이 자연스럽다고 본다. 근거는 위 비교표에서 각 표현의 장점이 서로 다른 단계에 있다는 점이다. 이 판단은 이 장이 측정한 것이 아니다.

1.7.7 응용 축 비교

응용 축리군이 맡는 일요구관련 장
산업·제조지수곱 기구학, 정밀 보정의 섭동정확도2.4, 2.17
물류·이동자세 그래프 최적화의 증분규모, 수렴1.8
도로 주행오차상태 필터의 자세 오차일관성9.4
서비스센서 자세 추정경량9.4
의료·헬스케어정합·추적의 변환 추정정밀도1.6
휴머노이드·범용부유 기저의 동역학 적분수치 안정1.9
필드비행·수중체 자세 추정특이점 없음9.4
국방·안보관성 항법의 자세 갱신결정성9.4

이 표는 이 책의 정리이며 장별 요구는 다르다.

1.7.8 관련 규격·프로토콜

문서발행무엇을 정하나상세 장
『A micro Lie theory for state estimation in robotics』arXiv:1812.01537(Solà 외, 2018)리군·리대수·지수 사상의 정의와 $SO(3)$·$SE(3)$의 공식, $\mathfrak{se}(3)$ 벡터의 성분 순서 $(\rho,\theta)$1.8
REP-103ROS(작성 2010-10-07)회전 표현의 우선순위, 공분산 순서1.3
수학 표기·기호표이 책트위스트 $(\omega,v)$, hat·veeA.2

리군 라이브러리(manif·Sophus 등)의 성분 순서와 규약은 1.8이 다룬다. 이 장은 라이브러리 소스를 읽지 않았다 (확인 필요).

1.7.9 관련 규제·인증 요구와의 연결

직접 적용되는 규제는 없다. 자세 추정 소프트웨어의 수치 처리(급수 구간, $\pi$ 근방, 정규화)는 안전 관련 소프트웨어의 검증 항목이 될 수 있으며 26.20이 다룬다.

1.7.10 한계·유의점·미해결

  • 성분 순서. 문헌·라이브러리에 따라 트위스트 $(\omega,v)$ 또는 $(\rho,\theta)$이다. 이 장은 하나의 문서(Solà 외)를 읽어 확인했고 다른 문헌은 확인하지 않았다 (확인 필요).
  • 절단 궤적. $\theta=\pi$에서 로그가 둘로 갈리는 처리와 SE(3)의 $V^{-1}$ 근방의 수치는 심층 시험하지 않았다.
  • 고차 BCH. 3차 이상 항과 $SE(3)$의 BCH는 다루지 않았다(1.8).
  • 정리의 출처. 교과서 정리 번호는 확인하지 않았다 (확인 필요).

1.7.11 체크포인트·연구 질문

체크포인트:

  1. 리군·리대수·리 괄호의 정의와 $\mathfrak{so}(3)$의 hat·vee, 괄호가 외적인 이유를 설명할 수 있는가.
  2. $SO(3)$의 지수 사상(로드리게스)과 로그 사상의 식, 로그의 정의역과 $\theta=\pi$ 경계를 쓸 수 있는가.
  3. $SE(3)$의 지수·로그와 $V(\theta)$의 의미, $p\ne\rho$인 이유를 설명할 수 있는가.
  4. BCH 공식의 앞 세 항과 1차·2차 근사의 오차 차수를 말할 수 있는가.
  5. 측지선 보간 $R_0\exp(t\log(R_0^\top R_1))$과 SLERP의 관계를 설명할 수 있는가.
  6. 작은 각의 급수와 $\pi$ 근방 로그의 수치 처리가 필요한 이유를 설명할 수 있는가.
  7. 트위스트 성분 순서가 문헌마다 다를 때 식을 옮기는 방법을 설명할 수 있는가.

연구 질문(47.12에 수록한다):

  • manif·Sophus 등 리군 라이브러리의 $\mathfrak{se}(3)$ 성분 순서와 야코비안 정의는 어떻게 다른가(1.8).
  • $\theta=\pi$ 근방에서 로그의 두 값 가운데 하나를 고르는 규칙이 자세 추정의 일관성에 미치는 영향은 무엇인가.
  • 지수 사상 보간의 $SE(3)$ 나사 운동 경로와 이동·회전 독립 보간 경로의 차이가 로봇 궤적에서 얼마나 되는가.

1차 출처

  • J. Solà, J. Deray, D. Atchuthan, 「A micro Lie theory for state estimation in robotics」, arXiv:1812.01537, 2018(표 I·부록 D 읽음).
  • B. C. Hall, 『Lie Groups, Lie Algebras, and Representations: An Elementary Introduction』, 2판, Springer, 2015 (확인 필요: 장 번호).
  • T. D. Barfoot, 『State Estimation for Robotics』, Cambridge University Press, 2017 (확인 필요: 장 번호).
  • R. M. Murray, Z. Li, S. S. Sastry, 『A Mathematical Introduction to Robotic Manipulation』, CRC Press, 1994 (확인 필요: 장 번호).
  • K. M. Lynch, F. C. Park, 『Modern Robotics』, Cambridge University Press, 2017 (확인 필요: 장 번호).
  • 서지 확인 경로: arXiv API(export.arxiv.org/api/query, 조회 2026-11-03).

다음 장. 1.8은 리군·리대수 II로, 섭동·리 야코비안·불확실성 전파를 다룬다. 이 장의 지수·로그를 이용해 작은 섭동에 대한 자세 합성의 야코비안, 자세의 공분산 전파, manif·Sophus 구현의 규약을 정리한다.