제2부 기구학
2.15 이동 로봇 기구학: 비홀로노믹 구속·차동·애커먼·전방향·궤도
2.15.1 이 장에서 배우는 것 / 선수 지식 / 특히 중요한 독자
이 장은 바퀴로 움직이는 이동 로봇의 기구학을 다룬다. 바퀴가 미끄러지지 않고 구르면 속도에 구속이 걸리고, 이 구속이 적분되지 않으면(비홀로노믹) 로봇은 어느 자세에나 갈 수 있지만 순간 속도 방향이 제한된다. 이 장은 단일륜·차동 구동·자동차형(애커먼) 모형, 리 괄호로 본 제어 가능성, 애커먼 조향의 기하, 전방향 바퀴(옴니·메카넘)의 $H(0)$와 속도 한계, 오도메트리의 적분과 오차, 궤도형(스키드 조향)의 유효 윤거를 정리하고 계산으로 확인한다. 이동 로봇의 제어·경로 추종은 12.24, 오도메트리의 확률 모형은 9.2·9.15, 이동 매니퓰레이터는 7.3 이후의 팔 장과 이어진다.
배우는 것:
- 바퀴 구속과 비홀로노믹성 — 구름 무미끄럼 구속 $A(q)\dot q=0$, 적분 가능성.
- 차량 모형 — 단일륜·차동 구동·자동차형, 정준 모형 $\dot q=g_1v+g_2\omega$.
- 제어 가능성 — 리 괄호 $[g_1,g_2]$, 병렬 주차의 $\varepsilon^2$ 운동.
- 애커먼 조향 — 안쪽·바깥쪽 앞바퀴 각, 최소 회전 반경.
- 전방향 바퀴 — $u=H(0)V_b$, 옴니 3륜·메카넘 4륜, 방향별 최대 속도, 스키드 방향.
- 오도메트리 — 오일러·중점·원호 적분, 윤거·반지름의 계통 오차, 무작위 오차, 궤도형의 유효 윤거.
선수 지식: 1.6(SE(2)·동차 변환), 1.10(트위스트), 2.1(구속·자유도).
특히 중요한 독자: 이동 로봇의 구동 방식을 고르고 오도메트리를 구현하는 엔지니어, 차량형 로봇의 모형·제어를 작성하는 소프트웨어 개발자, 비홀로노믹 계의 제어 가능성을 배우는 연구자.
출처 방침. 기준 시점은 2026-11-03이다. 직접 읽은 자료: Lynch·Park, Modern Robotics(사전 인쇄본 2017-05-03판) 13장의 13.1절(바퀴 이동 로봇의 종류), 13.2절(옴니·메카넘의 $h_i(\phi)$, $H(0)$, 식 (13.1)~(13.10)), 13.3절(단일륜·차동 구동·자동차형 모형 (13.12)~(13.18), 정준 모형, 리 괄호와 제어 가능성, 13.3.4절의 되먹임 제어 문제), 13.4절(오도메트리, 식 (13.32)~(13.34)). 서지(Dubins 1957, Reeds·Shepp 1990, Murray·Sastry 1993, Campion 외 1996, Borenstein·Feng 1996, Mandow 외 2007)는 Crossref 응답으로 확인했다. 읽지 못한 것: 위 논문들의 본문, 궤도형의 실험적 윤거 계수 값. 치수는 모두 이 장이 정한 예시이며 어떤 제품의 제원이 아니다. 수치는 모두 이 장의 순수 파이썬 계산이다.
2.15.2 개념 — 어디든 갈 수 있지만 옆으로는 갈 수 없는 계
결론부터 적으면 다음과 같다. 바퀴가 미끄러지지 않으면 바퀴 평면에 수직인 방향의 속도가 0이다. 이 구속은 속도에만 걸려 있고 위치에는 걸려 있지 않아서(적분되지 않는 구속) 로봇은 평면의 어느 위치·방향에도 도달할 수 있다. 다만 순간 속도는 직진과 회전의 조합으로 제한된다. 옆으로 가려면 앞뒤로 교대로 움직여야 하고(병렬 주차) 옆 방향 변위는 시간의 제곱에 비례해 느리다. 반대로 옴니휠·메카넘 휠은 바퀴 둘레의 롤러가 옆 방향 미끄럼을 허용하므로 세 방향 속도를 독립으로 낼 수 있다(전방향). 궤도형은 구르기와 미끄러짐이 섞여 이상적인 구름 구속이 성립하지 않으므로 모형 계수를 실험으로 정해야 한다.
이 장의 계산 결과를 미리 적으면 다음과 같다. ① 정준 모형의 리 괄호 $[g_1,g_2]=(0,\sin\phi,-\cos\phi)$가 닫힌 루프 순 변위의 $\varepsilon^2$ 계수와 오차 $\varepsilon$에 비례해 맞고 $\lvert\det[g_1,g_2,[g_1,g_2]]\rvert=1$(모든 $\phi$)이다. ② 애커먼 조향($\ell=2.5$ m, 윤거 $1.5$ m)은 가상 바퀴 $35^\circ$에서 안쪽 $41.55^\circ$·바깥쪽 $30.06^\circ$이고 네 바퀴의 구동 방향이 회전 중심 선과 $10^{-16}$ 안에서 직교한다. ③ 옴니 3륜·메카넘 4륜의 $H(0)$가 Modern Robotics의 식과 $7\times10^{-15}$ 안에서 같고 계수가 3이며, 바퀴 한계 $1$ rad/s에서 방향별 최대 병진 속도는 옴니 $0.0500\sim0.0577$ m/s, 메카넘 $0.0354\sim0.0500$ m/s이다. ④ 오도메트리 위치 오차는 오일러가 $\Delta t$에 비례, 중점·원호가 $\Delta t^2$에 비례한다. ⑤ 윤거 $+1$ %는 5바퀴(40 m)에서 방위 $17.8^\circ$, 바퀴 반지름비 $+0.5$ %는 $42.7^\circ$의 계통 오차를 만들고 무작위 $0.5$ % 오차는 거리의 제곱근에 비례해 $0.022$ m·$0.61^\circ$이다.
2.15.3 원리
2.15.3.1 바퀴 구속과 비홀로노믹성
바퀴 하나의 구름 무미끄럼 조건은 바퀴 평면에 수직인 접촉점 속도가 0이라는 파피안(Pfaffian) 구속 $A(q)\dot q=0$이다(Modern Robotics 2.4절). 구속이 적분되어 $h(q)=0$ 꼴로 줄면 홀로노믹이고, 그렇지 않으면 비홀로노믹이다. 자동차의 앞바퀴가 옆으로 미끄러지지 않는 구속은 $\dot x\sin\phi-\dot y\cos\phi=0$이며 이 구속은 적분되지 않는다. Modern Robotics는 허용되는 속도를 $\dot q=\sum_ig_i(q)u_i$($n-k$개 방향의 조합, 계수가 곧 제어 입력)로 적는다. 이 형식은 드리프트가 없고($u=0$이면 속도 0), 방향장 $g_i$가 형상 $q$에 의존하며, 제어에 선형이다. 바퀴의 종류는 고정 바퀴(구름 방향만 허용), 캐스터(조향 가능), 롤러가 달린 전방향 바퀴(구름 방향에 더해 미끄럼 방향 $\gamma$를 허용)로 나뉜다.
2.15.3.2 단일륜·차동 구동·자동차형 모형
Modern Robotics 13.3.1절의 세 모형은 다음이다. 형상은 $q=(\phi,x,y)$($\phi$는 진행 방향)이다.
- 단일륜. $\dot q=(0,\ r\cos\phi,\ r\sin\phi)^\top u_1+(1,0,0)^\top u_2$ ($u_1$: 바퀴 구동 각속도, $u_2$: 진행 방향 회전 속도).
- 차동 구동. 윤거 $2d$, 반지름 $r$, 좌우 바퀴 각속도 $u_L,u_R$. $\dot\phi=\dfrac{r}{2d}(u_R-u_L)$, $v=\dfrac r2(u_L+u_R)$, $(\dot x,\dot y)=v(\cos\phi,\sin\phi)$.
- 자동차형. 축거 $\ell$, 가상 앞바퀴 조향각 $\psi$. $\dot\phi=v\tan\psi/\ell$, $(\dot x,\dot y)=v(\cos\phi,\sin\phi)$. 조향각을 직접 제어하면 $\omega=v\tan\psi/\ell$, $\psi=\tan^{-1}(\ell\omega/v)$이다.
세 모형은 제어 변환 $(v,\omega)$로 같은 정준 모형 $\dot q=g_1(q)v+g_2(q)\omega$, $g_1=(0,\cos\phi,\sin\phi)$, $g_2=(1,0,0)$가 된다. 이 모형에서 구속은 $\dot x\sin\phi-\dot y\cos\phi=0$이다.
2.15.3.3 제어 가능성과 리 괄호
$g_i$를 $\varepsilon$ 동안 따르는 흐름 $F^{g_i}_\varepsilon$를 $g_i$, $g_j$ 순서로 번갈아 적용하면 순서에 따라 결과가 다르다. 테일러 전개에서 두 순서의 차이는 다음이다(Modern Robotics 식 13.27).
$$F^{g_j}_\varepsilon\bigl(F^{g_i}_\varepsilon(q)\bigr)-F^{g_i}_\varepsilon\bigl(F^{g_j}_\varepsilon(q)\bigr)=\varepsilon^2\,[g_i,g_j](q)+O(\varepsilon^3),\qquad [g_i,g_j]=\frac{\partial g_j}{\partial q}g_i-\frac{\partial g_i}{\partial q}g_j.$$
리 괄호는 원래 방향장에 없는 방향을 만들고(자동차의 옆 방향), 그 방향의 운동은 $\varepsilon^2$로 직진·회전($\varepsilon$)보다 느리다. 정준 모형에서 $[g_1,g_2]=(0,\sin\phi,-\cos\phi)$이고 $\{g_1,g_2,[g_1,g_2]\}$가 모든 $\phi$에서 $\mathbb R^3$를 생성한다(행렬식 $1$). 리 괄호로 생성되는 방향이 형상 공간 전체이고 제어 집합이 양의 생성이면 제어 가능하다는 것이 Modern Robotics 13.3.2절의 판정이다. 제어 가능하지만 Modern Robotics 13.3.4절은 정리 13.1에 근거해 상태에 연속인 시불변 되먹임 법칙으로는 비홀로노믹 이동 로봇의 한 형상을 안정화할 수 없고 시변·불연속 되먹임은 존재한다고 적는다. 운동 계획(Dubins 곡선, Reeds–Shepp 곡선, 사인 입력)은 12.24 이후와 Dubins(1957)·Reeds·Shepp(1990)·Murray·Sastry(1993)가 다룬 것으로 알려져 있다(세 논문의 본문은 읽지 못했다).
2.15.3.4 애커먼 조향
앞바퀴 둘을 같은 각으로 조향하면 네 바퀴가 같은 점을 중심으로 굴러가지 못해 미끄러진다. 애커먼 조향은 안쪽과 바깥쪽 앞바퀴를 다른 각으로 조향해 네 바퀴의 구동 방향이 모두 회전 중심(CoR)으로 향하는 선과 직교하게 한다(Modern Robotics 그림 13.10). 회전 중심은 뒷차축의 연장선 위에 있다. 가상 바퀴 조향각 $\psi$, 축거 $\ell$, 윤거 $w$에서 회전 반경은 $R=\ell/\tan\psi$이고 다음이다.
$$\delta_{\mathrm{in}}=\tan^{-1}\frac{\ell}{R-w/2},\qquad\delta_{\mathrm{out}}=\tan^{-1}\frac{\ell}{R+w/2},\qquad r_{\min}=\frac{\ell}{\tan\psi_{\max}}.$$
2.15.3.5 전방향 바퀴 모형
롤러가 달린 바퀴의 중심 속도는 구동 방향 $\hat x_w$와 미끄럼 방향($\gamma$)의 합 $(v_x,v_y)=v_{\mathrm{drive}}(1,0)+v_{\mathrm{slide}}(-\sin\gamma,\cos\gamma)$이고 구동 각속도는 $u=(v_x+v_y\tan\gamma)/r$이다(옴니휠은 $\gamma=0$, 메카넘은 보통 $\gamma=\pm45^\circ$). 바퀴 $i$의 중심 $(x_i,y_i)$와 구동 방향 $\beta_i$(몸체 좌표)에서 몸체 트위스트 $V_b=(\omega_{bz},v_{bx},v_{by})$에 대한 행은 다음이다($\phi=0$).
$$h_i(0)=\frac1{r_i\cos\gamma_i}\begin{bmatrix}x_i\sin(\beta_i+\gamma_i)-y_i\cos(\beta_i+\gamma_i)&\cos(\beta_i+\gamma_i)&\sin(\beta_i+\gamma_i)\end{bmatrix},\qquad u=H(0)V_b.$$
$H(0)$의 계수가 3이어야 전방향이다. 구동 방향과 미끄럼 방향이 모두 같게 배치하면 계수가 2가 되어 옆 방향 병진이 불가능하다(Modern Robotics 13.2.1절). 바퀴 수 $m>3$이면 $H(0)V_b$로 표현되지 않는 바퀴 속도 $u$(스키드 방향)는 바퀴가 구동 방향으로 미끄러진다. 바퀴 속도 한계 $\lvert u_i\rvert\le u_{i,\max}$는 몸체 트위스트 공간에서 평행한 두 평면의 상자를 만든다. 이 장은 Modern Robotics의 옴니 3륜(식 13.9)과 메카넘 4륜(식 13.10)의 행을 위 식에 대입한 $H(0)$로 계산한다. 반대 방향 $V_b=F\,\Delta\theta$, $F=H^\dagger(0)$는 오도메트리에 사용된다(식 13.32·13.33).
2.15.3.6 궤도형과 스키드 조향
궤도형과 바퀴형 스키드 조향 로봇은 회전할 때 접지면이 미끄러지므로 이상적인 구름 구속이 성립하지 않는다. 차동 구동 모형에서 유효 윤거를 $\chi\cdot2d$($\chi\ge1$)로 두어 $\omega=\dfrac{r}{2\chi d}(u_R-u_L)$로 근사하는 방식이 알려져 있고 계수 $\chi$는 실험으로 정한다(Mandow 외 2007이 바퀴형 스키드 조향 로봇의 실험적 기구학을 다룬 것으로 알려져 있다. 본문은 읽지 못했다). 이 장은 $\chi$의 실험 값을 확인하지 않았고 모형 계수가 틀렸을 때의 오차만 계산했다(5절 ⑤).
2.15.3.7 오도메트리
오도메트리는 바퀴 회전의 증분 $\Delta\theta_i$(엔코더)에서 몸체 트위스트를 구해 적분한다(Modern Robotics 13.4절). 구간 안에서 바퀴 속도가 일정하다고 두면 $V_b=F\Delta\theta$(차동 구동·자동차는 $V_b=r\bigl[-\tfrac1{2d}\Delta\theta_L+\tfrac1{2d}\Delta\theta_R,\ \tfrac12(\Delta\theta_L+\Delta\theta_R),\ 0\bigr]$, 식 13.34)이고 $T=e^{[V_b]}$로 구간 변위를 정확히 구한다. 평면에서 일정한 $(v,\omega)$로 $\Delta t$ 동안의 정확한 변위는 반지름 $v/\omega$의 원호이다. 오일러 방식은 구간 시작의 방향으로 직진하고, 중점 방식은 구간 중간의 방향을 사용한다. 오차는 두 종류이다. 계통 오차(윤거·바퀴 반지름의 측정·마모 오차)는 이동 거리에 비례해 커지고 보정할 수 있으며, 무작위 오차(미끄러짐 등)는 거리의 제곱근에 비례한다. Borenstein·Feng(1996)이 계통 오차를 측정·보정하는 방법을 제안한 것으로 알려져 있다(본문은 읽지 못했다). Modern Robotics는 오도메트리가 단기에는 좋지만 오차가 누적되므로 다른 센서와 필터로 융합하라고 적는다(9.15).
2.15.4 알고리즘
차동 구동 오도메트리(ΔθL, ΔθR, Δt, 현재 (x, y, φ)):
v ← r (ΔθL + ΔθR) / (2 Δt), ω ← r (ΔθR − ΔθL) / (2 d Δt)
ω ≈ 0 이면 (x, y) ← (x, y) + v Δt (cos φ, sin φ)
아니면 R ← v / ω; (x, y) ← (x, y) + R (sin(φ + ω Δt) − sin φ, −cos(φ + ω Δt) + cos φ)
φ ← φ + ω Δt
전방향 바퀴 속도: u ← H(0) V_b, V_b ← F Δθ, F = H(0)⁺
애커먼(ψ): R ← ℓ / tan ψ, δ_안 ← atan(ℓ / (R − w/2)), δ_밖 ← atan(ℓ / (R + w/2))
리 괄호: [g_i, g_j] ← (∂g_j/∂q) g_i − (∂g_i/∂q) g_j
2.15.5 풀이 예제 — 정준 모형의 리 괄호, 애커먼 조향, 전방향 속도 한계, 오도메트리
결론부터 적으면 다음과 같다. ① 정준 모형 $q_0=(0.7,0.3,-0.2)$에서 중심 차분 리 괄호가 닫힌 식 $(0,0.6442,-0.7648)$와 같고 루프 순 변위$/\varepsilon^2$는 오차가 $\varepsilon$에 비례해($3.7\times10^{-2}\to1.1\times10^{-3}$, $\varepsilon=0.1\to0.003$) 리 괄호로 수렴하며 $\lvert\det\rvert=1.000000$(임의 형상 200개)이다. ② 애커먼 조향의 직교 오차가 $8.5\times10^{-17}$ 이하이고 가상 바퀴 $5^\circ\to35^\circ$에서 안·바깥 앞바퀴의 차이가 $0.26^\circ\to11.50^\circ$로 커진다. ③ 옴니·메카넘 $H(0)$가 식 (13.9)·(13.10)과 $7.1\times10^{-15}$ 안에서 같고 $FH=I$가 $1.1\times10^{-16}$ 안에서 성립하며 메카넘의 스키드 방향 $(1,1,-1,-1)$은 몸체 운동을 만들지 않는다($H^\top u=0$). ④ 오도메트리 위치 오차는 $\Delta t=0.5\to0.005$ s에서 오일러가 $5.3\times10^{-2}\to5.8\times10^{-4}$ m(1차), 중점이 $2.2\times10^{-2}\to2.2\times10^{-6}$ m, 원호가 $1.9\times10^{-2}\to1.9\times10^{-6}$ m(2차)이다. ⑤ 윤거 $+1$ %·바퀴 반지름비 $+0.5$ %의 계통 오차와 무작위 $0.5$ % 오차, 궤도형 $\chi=1.3$의 회전각 $276.9^\circ$를 계산했다. ⑥ SciPy와 $8.6\times10^{-14}$ 안에서 같다.
구현. arc_step·diff_twist·omni_row·ackermann·lie_bracket. 정준 모형의 정확한 흐름, 오일러·중점 적분, RK4 기준해, 계통 오차 시뮬레이션, 그림은 스크립트에 있다. 1.1의 matmul·solve_lu·svd를 사용한다.
| 항목 | 값 |
|---|---|
| 입력 1 | 정준 모형 $q=(\phi,x,y)$, 형상 $(0.7,0.3,-0.2)$, 루프 $\varepsilon=0.1,0.03,0.01,0.003$. 행렬식 검사는 $\phi,x,y$ 임의 200개(시드 58) |
| 입력 2 | 애커먼: 축거 $\ell=2.5$ m, 윤거 $w=1.5$ m, 가상 바퀴 $\psi=5^\circ,\dots,35^\circ$ |
| 입력 3 | 전방향: $r=0.05$ m. 옴니 3륜 $d=0.15$ m(구동 방향 $0,-120^\circ,+120^\circ$, 위치 $d(-\sin\beta,\cos\beta)$, $\gamma=0$), 메카넘 4륜 $\ell=0.2$ m·$w=0.15$ m(위치 $(\pm\ell,\pm w)$, $\beta=0$, $\gamma=\mp45^\circ$/$\pm45^\circ$, 식 13.10 배치). 바퀴 한계 $\lvert u_i\rvert\le1$ rad/s, 방향 $0^\circ\sim360^\circ$ 5° 간격의 순수 병진 |
| 입력 4 | 오도메트리 적분: 차동 구동 $r=0.05$ m, $d=0.15$ m, 바퀴 각속도 $u_L=8+3\sin0.9t$, $u_R=6+4\cos(0.6t+0.3)$ rad/s의 $10$ s. 엔코더 증분은 $\Delta\theta=\int u\,dt$의 닫힌 식. 기준해는 같은 상미분방정식의 RK4(200,000걸음) |
| 입력 5 | 계통 오차: 한 변 $2$ m 정사각형을 직진 + 제자리 $90^\circ$ 회전으로 반시계 5바퀴(40 m), 한 구간 200걸음. 오도메트리는 공칭 $r=0.05$ m, $d=0.15$ m. 실제: 윤거 $+1$ %, 오른쪽 바퀴 반지름 $+0.5$ %, 무작위 $0.5$ %(바퀴 증분마다 가우스 곱셈 잡음, 100회 평균) |
| 입력 6 | 라이브러리 대조: 입력 4의 기준해, 원호 적분 200개(시드 581), 의사역행렬 |
from math import sqrt, sin, cos, tan, atan, atan2, pi
def arc_step(q, v, w, dt):
"""정확한 적분: 일정한 (v, w)로 dt 동안(원호)"""
x, y, ph = q
if abs(w) < 1e-12:
return (x + v * dt * cos(ph),
y + v * dt * sin(ph), ph)
r = v / w
return (x + r * (sin(ph + w * dt) - sin(ph)),
y - r * (cos(ph + w * dt) - cos(ph)), ph + w * dt)
def diff_twist(uL, uR, r, d):
"""차동 구동: 바퀴 각속도 -> (v, w)"""
return r * (uL + uR) / 2, r * (uR - uL) / (2 * d)
def omni_row(b, x, y, g, r):
"""H(0)의 한 행: 중심 (x, y), 구동 방향 b, 미끄럼 g"""
c = cos(b + g)
s = sin(b + g)
return [(x * s - y * c) / (r * cos(g)), c / (r * cos(g)),
s / (r * cos(g))]
def ackermann(psi, ell, wd):
"""가상 바퀴 조향각 psi -> (안쪽, 바깥쪽 앞바퀴 각, R)"""
R = ell / tan(psi)
return (atan(ell / (R - wd / 2)),
atan(ell / (R + wd / 2)), R)
def lie_bracket(g1, g2, q, h=1e-6):
"""[g1, g2] = (dg2/dq) g1 - (dg1/dq) g2 (중심 차분)"""
n = len(q)
a, b = g1(q), g2(q)
out = [0.0] * n
for k in range(n):
qa, qb = list(q), list(q)
qa[k] += h
qb[k] -= h
d2 = [(x - y) / (2 * h)
for x, y in zip(g2(qa), g2(qb))]
d1 = [(x - y) / (2 * h)
for x, y in zip(g1(qa), g1(qb))]
for i in range(n):
out[i] += d2[i] * a[k] - d1[i] * b[k]
return out
① 정준 모형의 리 괄호.
| 정준 모형 $q=(\phi,x,y)$, $q_0=(0.7,0.3,-0.2)$ | 값 |
|---|---|
| 리 괄호 $[g_1,g_2]$(중심 차분) · 닫힌 식 $(0,\sin\phi,-\cos\phi)$ | (0.0000, 0.6442, -0.7648) · (0.0000, 0.6442, -0.7648) |
| 루프 순 변위 / $\varepsilon^2$, $\varepsilon=0.1$ · 리 괄호와의 최대 차이 | (0.0000, 0.6814, -0.7314) · 3.7e-02 |
| 루프 순 변위 / $\varepsilon^2$, $\varepsilon=0.03$ · 리 괄호와의 최대 차이 | (0.0000, 0.6556, -0.7551) · 1.1e-02 |
| 루프 순 변위 / $\varepsilon^2$, $\varepsilon=0.01$ · 리 괄호와의 최대 차이 | (0.0000, 0.6480, -0.7616) · 3.8e-03 |
| 루프 순 변위 / $\varepsilon^2$, $\varepsilon=0.003$ · 리 괄호와의 최대 차이 | (0.0000, 0.6454, -0.7639) · 1.1e-03 |
| $\lvert\det[g_1,\,g_2,\,[g_1,g_2]]\rvert$ 최솟값·최댓값(임의 형상 200개) | 1.000000 · 1.000000 |
닫힌 루프의 순 변위가 $\varepsilon^2$에 비례해 리 괄호 방향 $(0,\sin\phi,-\cos\phi)$로 수렴한다(차이는 $\varepsilon$에 비례). 이 방향은 직진 $g_1$과 회전 $g_2$의 어느 조합으로도 직접 만들 수 없는 옆 방향이며, 병렬 주차가 이 효과를 사용한다. $\{g_1,g_2,[g_1,g_2]\}$의 행렬식이 모든 형상에서 $1$이므로 이 모형은 모든 형상에서 제어 가능하다.
② 애커먼 조향.
| 애커먼 조향($\ell=2.5$ m, 윤거 $1.5$ m) | $R$ (m) | 안쪽 앞바퀴 ($^\circ$) | 바깥쪽 앞바퀴 ($^\circ$) | 차이 ($^\circ$) | 바퀴 방향과 회전 중심 선의 직교 오차 |
|---|---|---|---|---|---|
| 가상 바퀴 5° | 28.58 | 5.13 | 4.87 | 0.26 | 1.6e-17 |
| 가상 바퀴 10° | 14.18 | 10.55 | 9.51 | 1.04 | 3.3e-17 |
| 가상 바퀴 15° | 9.33 | 16.24 | 13.93 | 2.32 | 5.0e-17 |
| 가상 바퀴 20° | 6.87 | 22.22 | 18.17 | 4.06 | 0.0e+00 |
| 가상 바퀴 25° | 5.36 | 28.46 | 22.25 | 6.22 | 8.5e-17 |
| 가상 바퀴 30° | 4.33 | 34.93 | 26.20 | 8.72 | 0.0e+00 |
| 가상 바퀴 35° | 3.57 | 41.55 | 30.06 | 11.50 | 0.0e+00 |
| 최소 회전 반경 $r_{\min}=\ell/\tan\psi_{\max}$($\psi_{\max}=35^\circ$) | 3.570 m |
가상 바퀴 조향각이 커질수록 안쪽·바깥쪽 앞바퀴 각의 차이가 커진다(이 기하에서 $5^\circ$에서 $0.26^\circ$, $35^\circ$에서 $11.50^\circ$). 같은 각으로 조향하면(평행 조향) 이 차이만큼 앞바퀴가 회전 중심 선에 직교하지 않아 미끄러진다. 네 바퀴의 구동 방향과 회전 중심까지의 선이 $10^{-16}$ 안에서 직교하므로 애커먼 식이 구름 무미끄럼 조건을 만족한다. 최소 회전 반경은 $\psi_{\max}=35^\circ$에서 $3.570$ m이다.
③ 전방향 바퀴.
| 전방향 모형($r=0.05$ m, 옴니 3륜 $d=0.15$ m, 메카넘 4륜 $\ell=0.2$, $w=0.15$ m) | 값 |
|---|---|
omni_row로 만든 $H(0)$와 Modern Robotics 식 (13.9)·(13.10)의 최대 차이: 옴니 · 메카넘 | 5.3e-15 · 7.1e-15 |
| $\mathrm{rank}\,H(0)$: 옴니 3륜 · 메카넘 4륜 | 3 · 3 |
| $FH-I$의 최대 성분(F = 의사역행렬): 옴니 · 메카넘 | 1.1e-16 · 0.0e+00 |
| 메카넘 스키드 방향 $u=(1,1,-1,-1)$의 $H^\top u$ | (0.0e+00, 0.0e+00, 0.0e+00) |
| 방향별 최대 병진 속도(바퀴 한계 1 rad/s) 최솟값·최댓값: 옴니 3륜 | 0.0500 · 0.0577 m/s |
| 같은 지표: 메카넘 4륜 | 0.0354 · 0.0500 m/s |
옴니 3륜의 최대 병진 속도는 방향에 따라 $0.0500\sim0.0577$ m/s로 비 $2/\sqrt3=1.155$의 육각형 한계이고, 메카넘 4륜은 $0.0354\sim0.0500$ m/s로 비 $\sqrt2$의 마름모(축 방향 $0.0500$, 대각선 방향 $0.0354$) 한계이다(Modern Robotics가 메카넘이 앞과 옆으로 같은 속도를 낸다고 적은 것과 같다). 메카넘의 스키드 방향 $u=(1,1,-1,-1)$는 $H^\top u=0$이므로 $H(0)V_b$의 열공간과 직교해 어떤 몸체 운동도 만들지 못하며 이 성분이 지령에 섞이면 바퀴가 미끄러진다.
④ 오도메트리의 적분 방식과 계통 오차.
| 오도메트리 적분(차동 구동, 10 s, 기준은 RK4 200,000걸음) | 오일러 위치 오차 (m) | 중점 | 원호 |
|---|---|---|---|
| $\Delta t=0.5$ s | 5.31e-02 | 2.17e-02 | 1.91e-02 |
| $\Delta t=0.2$ s | 2.23e-02 | 3.47e-03 | 3.05e-03 |
| $\Delta t=0.1$ s | 1.14e-02 | 8.66e-04 | 7.63e-04 |
| $\Delta t=0.05$ s | 5.76e-03 | 2.16e-04 | 1.91e-04 |
| $\Delta t=0.02$ s | 2.32e-03 | 3.46e-05 | 3.05e-05 |
| $\Delta t=0.01$ s | 1.16e-03 | 8.66e-06 | 7.63e-06 |
| $\Delta t=0.005$ s | 5.83e-04 | 2.16e-06 | 1.91e-06 |
오일러 방식의 오차는 $\Delta t$에 비례(1차)하고 중점·원호는 $\Delta t^2$에 비례(2차)해 $\Delta t=0.01$ s에서 오일러 $1.2\times10^{-3}$ m, 중점·원호 $8.7\times10^{-6}$ m·$7.6\times10^{-6}$ m이다. 방위는 엔코더 증분의 합이어서 세 방식이 모두 $10^{-13}$ rad 안에서 같다. 원호 방식은 구간 안의 평균 트위스트가 일정하다는 가정에서 정확하고 중점 방식과 비슷한 정확도를 가졌다.
| 오도메트리 계통 오차(차동, 사각형 2 m, 직진 + 제자리 90°, 5바퀴 40 m) | 1바퀴 | 3바퀴 | 5바퀴 |
|---|---|---|---|
| 윤거 +1 %: 위치 오차 (m) · 방위 오차 ($^\circ$) | 0.089 · 3.56 | 0.266 · 10.69 | 0.442 · 17.82 |
| 반지름비 +0.5 %: 위치 오차 (m) · 방위 오차 ($^\circ$) | 0.207 · 8.54 | 0.617 · 25.62 | 1.014 · 42.70 |
| 무작위 0.5 %(100회 평균): 위치 오차 (m) · 방위 오차 ($^\circ$) | 0.010 · 0.30 | 0.017 · 0.46 | 0.022 · 0.61 |
| 궤도형: 모형 $\chi=1$로 360° 제자리 회전을 지령했을 때 실제 $\chi=1.3$의 회전각 | 276.9° |
계통 오차는 거리에 비례한다(윤거 $+1$ %: 1·3·5바퀴 위치 $0.089,\ 0.266,\ 0.442$ m, 비 $1:3.0:5.0$). 윤거 $+1$ %는 90° 제자리 회전이 $0.9^\circ$ 모자라 한 바퀴(회전 네 번)에 $3.6^\circ$, 5바퀴에서 $17.8^\circ$의 방위 오차를 만든다. 오른쪽 바퀴 반지름비 $+0.5$ %는 직진 구간마다 방위가 틀어져 5바퀴에서 $42.7^\circ$, 위치 $1.014$ m이다. 무작위 $0.5$ % 오차는 1·3·5바퀴 위치 $0.010,\ 0.017,\ 0.022$ m로 비가 $1:1.7:2.2$($\sqrt3=1.73$, $\sqrt5=2.24$)여서 거리의 제곱근에 비례한다. 궤도형에서 모형의 $\chi=1$로 $360^\circ$ 제자리 회전을 지령했는데 실제 유효 윤거 계수가 $\chi=1.3$이면 실제 회전각은 $360^\circ/1.3=276.9^\circ$이다(계산식이며 $\chi=1.3$은 예시값이다).
⑤ 라이브러리 대조(실행 2026-11-03). SciPy 1.18.1의 solve_ivp(DOP853)를 오도메트리 기준해와, linalg.expm을 원호 적분의 SE(2) 지수와, numpy의 pinv·Modern Robotics의 식 (13.32)·(13.33)을 이 장의 의사역행렬과 같은 입력에서 비교했다. 스크립트는 robotics/fig-src/2.15-libcheck.py, 출력은 robotics/fig-src/data/2.15-libcheck-output.txt에 있다.
| 비교 | 최대 차이 |
|---|---|
오도메트리 기준해: 이 장의 RK4(200,000걸음) 대 SciPy solve_ivp(DOP853, rtol 1e-13), 10 s 종점 | 8.6e-14 |
원호 적분 arc_step 대 SE(2) 지수 expm(위치·방위, 200개) | 1.1e-14 |
의사역행렬 $F$ 대 numpy pinv: 옴니 · 메카넘 | 4.2e-17 · 1.4e-17 |
| 의사역행렬 $F$ 대 Modern Robotics 식 (13.32)·(13.33): 옴니 · 메카넘 | 4.2e-17 · 3.5e-18 |
이 장의 RK4 기준해가 SciPy와 $8.6\times10^{-14}$ 안에서 같고 원호 적분이 SE(2) 지수와 $1.1\times10^{-14}$ 안에서 같다. 의사역행렬이 numpy와 $10^{-17}$ 수준, Modern Robotics의 식과 $4\times10^{-17}$ 이하로 같다.
한계. 차동·자동차형·옴니·메카넘 모형의 순수 운동학이며 바퀴 미끄러짐·타이어 변형·질량·동역학은 다루지 않았다. 계통 오차는 윤거·바퀴 반지름의 두 원인만 시험했고 보정(UMBmark 등)은 구현하지 않았다. 궤도형은 유효 윤거 계수를 가정한 모형의 민감도만 계산했고 실험값을 확인하지 않았다. 리 괄호는 정준 모형만 시험했다. 운동 계획(Dubins·Reeds–Shepp)과 되먹임 안정화는 다루지 않았다.
견해: 이동 로봇의 오도메트리는 엔코더 증분을 정확한 원호(또는 SE(2) 지수)로 적분하는 것을 기본으로 두고, 윤거와 바퀴 반지름은 설치 후 직선·제자리 회전 시험으로 보정하는 것을 기본으로 둔다고 본다. 근거는 이 장의 계산에서 같은 시간 간격($\Delta t=0.05$ s)에서 원호·중점 방식의 오차가 오일러의 $1/30$이었고($1.9\times10^{-4}$ 대 $5.8\times10^{-3}$ m), 계통 오차($+1$ % 윤거, $+0.5$ % 반지름비)가 5바퀴에서 $18^\circ\sim43^\circ$의 방위 오차를 만든 반면 무작위 오차는 $0.61^\circ$였다는 점이다. 계통 오차가 오도메트리 오차의 대부분을 차지하므로 보정이 적분 방식의 선택보다 이득이 크다고 본다. 궤도형이나 미끄러짐이 큰 지면에서는 유효 윤거 계수 $\chi$ 자체가 불확실해 이 판단이 달라질 수 있다.
2.15.6 설계 트레이드오프 — 구동 방식의 선택
공개 자료에서 확인되는 구동 방식은 다음과 같다.
- ① 차동 구동. 구조가 단순하고 제자리 회전이 가능하다. 옆 방향 이동은 불가능하다.
- ② 자동차형(애커먼). 고속 직진에 알맞고 조향 구조가 복잡하다. 제자리 회전이 불가능하고 최소 회전 반경이 있다.
- ③ 전방향(옴니·메카넘). 평면의 세 자유도를 독립으로 낸다. 바퀴 수가 많고 롤러 때문에 거친 바닥에서 불리하다고 알려져 있다(이 장은 시험하지 않았다).
- ④ 궤도형·스키드 조향. 거친 지면에 알맞고 접지면 미끄러짐이 커서 모형 계수 보정이 필요하다.
| 방식 | 자유도(순간 속도) | 제어 입력 | 장점 | 한계 |
|---|---|---|---|---|
| ① 차동 구동 | 직진·회전(2) | $u_L,u_R$ | 단순, 제자리 회전 | 옆 이동 불가 |
| ② 자동차형 | 직진·조향(2) | $v,\psi$ | 고속·안정 | 최소 회전 반경 |
| ③ 전방향 | 병진 2 + 회전 1(3) | 바퀴 3~4개 | 어느 방향이든 | 바퀴 수, 거친 바닥 |
| ④ 궤도형 | 직진·회전(2, 미끄러짐) | $u_L,u_R$ | 거친 지면 | 계수 보정, 오도메트리 오차 |
견해: 좁은 실내에서 정밀 위치결정이 필요한 로봇은 전방향을, 일반 실내 운반 로봇은 차동 구동을, 실외 고속 주행은 자동차형을 기본으로 둔다고 본다. 근거는 이 장의 모형에서 전방향만 세 방향 속도를 독립으로 내고(계수 3), 차동·자동차형은 비홀로노믹(옆 방향이 $\varepsilon^2$로 느림)이며 최소 회전 반경이 $\ell/\tan\psi_{\max}$로 정해진다는 점이다. 바닥 조건(요철·미끄러움)과 하중이 구동 방식의 선택을 바꿀 수 있고 이 장은 그 비교를 측정하지 않았다.
2.15.7 응용 축 비교
| 응용 축 | 이동 기구학이 맡는 일 | 요구 | 관련 장 |
|---|---|---|---|
| 산업·제조 | 공장 AGV·AMR의 차동·전방향 구동, 정밀 정차 | 위치 정밀도, 오도메트리 보정 | 12.24, 29.5 |
| 물류·이동 | 창고 이동 로봇(차동·메카넘)의 경로 추종 | 속도·정차 정밀도 | 12.24, 27.8 |
| 도로 주행 | 자동차형(애커먼) 모형의 경로 계획·추종 | 최소 회전 반경, 조향 한계 | 12.24 |
| 서비스 | 실내 이동 로봇의 차동·전방향 구동 | 좁은 공간 기동 | 12.24 |
| 의료·헬스케어 | 병원 이동 로봇 | 안전한 저속 기동 | 12.24 |
| 휴머노이드·범용 | 이동 매니퓰레이터의 베이스 모형 | 팔과 합성한 자유도 | 7.3, 2.10 |
| 필드 | 궤도형·스키드 조향의 거친 지면 이동 | 슬립 모형, 보정 | 9.15 |
| 국방·안보 | 원리 수준에서 해당하는 고유 요구 없음 | — | — |
이 표는 이 책의 정리이며 장별 요구는 다르다.
2.15.8 관련 규격·프로토콜
| 문서 | 발행 | 무엇을 정하나 | 상세 장 |
|---|---|---|---|
| Modern Robotics 13장 | Lynch·Park, 2017 | 옴니·메카넘 $H(0)$, 비홀로노믹 모형, 리 괄호, 오도메트리 | 12.24 |
solve_ivp·linalg.expm | SciPy 1.18.1 | 상미분방정식 적분, 행렬 지수 | 1.18 |
| 이동 로봇 상호운용 표준 | 업계 표준(VDA 5050 등) | 이동 로봇의 위치·경로 메시지(기구학 자체가 아닌 인터페이스) | 27.8 |
| 수학 표기·기호표 | 이 책 | SE(2)·트위스트 표기 | A.2 |
2.15.9 관련 규제·인증 요구와의 연결
이동 로봇의 기구학 방식 자체를 규정하는 법령·인증 요건은 확인하지 못했다. 이동 로봇의 속도·정지 거리·사람 접근은 산업 차량·이동 로봇 안전 표준의 대상이며 최대 속도와 회전 반경(이 장의 $r_{\min}$, 속도 한계)이 입력이다(27.10). 이 장은 규정의 조항을 확인하지 않았다 (확인 필요).
2.15.10 한계·유의점·미해결
- 이상 구름 가정. 바퀴 미끄러짐·타이어 변형·언덕·하중 이동을 무시했다.
- 궤도형. 유효 윤거 계수는 실험값이 없고 이 장은 계산 예시만 보였다.
- 보정. 윤거·반지름 보정(UMBmark 등)과 확률 모형은 다루지 않았다(9.2·9.15).
- 제어 가능성의 범위. 정준 모형의 리 괄호만 확인했다. 제한된 제어 집합(전진 전용 자동차 등)의 국소 제어 가능성은 다루지 않았다.
- 전방향 바퀴의 현실. 롤러의 진동·미끄러짐·바닥 조건에 따른 오차는 모형에 없다.
- 이동 매니퓰레이터. 베이스와 팔의 합성은 다루지 않았다.
2.15.11 체크포인트·연구 질문·출처
체크포인트:
- 자동차형의 구속 $\dot x\sin\phi-\dot y\cos\phi=0$이 적분되지 않음을 리 괄호 $[g_1,g_2]$가 $\mathrm{span}\{g_1,g_2\}$ 밖에 있다는 사실로 설명하라.
- 닫힌 루프 $g_1,g_2,-g_1,-g_2$의 순 변위가 $\varepsilon^2[g_1,g_2]$임을 정준 모형의 정확한 흐름으로 유도하라.
- 애커먼 조향에서 안쪽·바깥쪽 앞바퀴 각이 $\tan^{-1}\ell/(R\mp w/2)$인 이유를 회전 중심과의 직교 조건으로 보이라.
- 메카넘 4륜의 $H(0)$가 계수 3이고 $H^\top u=0$인 스키드 방향이 한 개임을 보이라.
- 오일러·중점·원호 적분의 오차가 각각 1차·2차·2차인 이유를 말하라.
연구 질문:
- 궤도형·스키드 조향 로봇의 유효 윤거 계수를 지면과 속도에 따라 온라인으로 추정하는 방법은 무엇인가?
- 전진 전용·조향 속도 제한이 있는 자동차형의 시간 최적 경로와 되먹임 안정화는 어떻게 결합하는가?
1차 출처(조회 2026-11-03).
- K. M. Lynch, F. C. Park, Modern Robotics, Cambridge University Press, 2017(ISBN 9781107156302). 사전 인쇄본 2017-05-03판의 13.1~13.4절을 읽었다.
- L. E. Dubins, "On curves of minimal length with a constraint on average curvature, and with prescribed initial and terminal positions and tangents," American Journal of Mathematics 79(3), 497–516, 1957, doi:10.2307/2372560 — 서지만 확인(쪽수는 Crossref에 497로만 등록되어 있다).
- J. A. Reeds, L. A. Shepp, "Optimal paths for a car that goes both forwards and backwards," Pacific Journal of Mathematics 145(2), 367–393, 1990, doi:10.2140/pjm.1990.145.367 — 서지만 확인.
- R. M. Murray, S. S. Sastry, "Nonholonomic motion planning: steering using sinusoids," IEEE Transactions on Automatic Control 38(5), 700–716, 1993, doi:10.1109/9.277235 — 서지만 확인.
- G. Campion, G. Bastin, B. D'Andréa-Novel, "Structural properties and classification of kinematic and dynamic models of wheeled mobile robots," IEEE Transactions on Robotics and Automation 12(1), 47–62, 1996, doi:10.1109/70.481750 — 서지만 확인.
- J. Borenstein, L. Feng, "Measurement and correction of systematic odometry errors in mobile robots," IEEE Transactions on Robotics and Automation 12(6), 869–880, 1996, doi:10.1109/70.544770 — 서지만 확인.
- A. Mandow, J. L. Martínez, J. Morales 외, "Experimental kinematics for wheeled skid-steer mobile robots," Proc. IEEE/RSJ IROS, 1222–1227, 2007, doi:10.1109/iros.2007.4399139 — 서지만 확인.
- SciPy 1.18.1(
solve_ivp,linalg.expm), numpy 2.5.4(linalg.pinv).
다음 장. 2.16는 연속체 로봇 기구학(일정 곡률·코세라 막대 모델)을 다룬다. 이 장의 원호 적분이 일정 곡률 연속체의 기하와 같은 구조이다.