AEGLOSLAB 로봇공학 전서(全書)

제2부 기구학

2.13 병렬 기구 I: 스튜어트 플랫폼·델타 로봇의 기구학

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

이 장은 고정 플랫폼과 움직이는 플랫폼을 여러 다리로 잇는 병렬 기구의 기구학을 다룬다. 대표로 6개의 신축 다리를 사용하는 스튜어트-고프(Stewart–Gough) 플랫폼과 세 팔에 평행사변형을 둔 델타(Delta) 로봇을 정리한다. 직렬 팔과 반대로 병렬 기구에서는 역기구학이 쉽고 순기구학이 어렵다. 이 장은 스튜어트 플랫폼의 다리 길이(역기구학), 뉴턴법 순기구학과 해의 개수, 역 자코비안과 특이점, 평면 3×RPR의 해 개수, 델타 로봇의 닫힌 형식 역·순기구학과 구속 자코비안·작업공간을 계산으로 확인한다. 케이블 구동 병렬 로봇과 병렬 기구의 특이점 분류·작업공간은 2.14, 폐연쇄 동역학은 3.11, 병렬 손목은 7.7에서 다룬다.

배우는 것:

  • 병렬 기구의 구조 — 다리·수동 관절·구동 관절, 그뤼블러 공식으로 본 스튜어트 플랫폼(6)과 델타 로봇(15, 말단에서 보이는 것은 3).
  • 스튜어트 플랫폼 — 역기구학 $l_i=\lVert t+Rb_i-a_i\rVert$, 뉴턴법 순기구학, 최대 40개의 해, 역 자코비안의 행 $(r_i\times\hat n_i;\ \hat n_i)$.
  • 특이점 — $\det J^{-1}=0$, 구조적 특이 기하와 특이 요 각, 영 트위스트.
  • 델타 로봇 — 팔마다 $a\cos\theta+b\sin\theta=c$인 닫힌 형식 역기구학(8개 후보), 세 구의 교점 순기구학, 구속 자코비안, 작업공간.
  • 측정 — 순기구학 왕복·유한 차분 검증, 해의 개수, SciPy least_squares·fsolve와의 대조.

선수 지식: 1.6(동차 변환), 1.10(트위스트), 2.1(그뤼블러 공식·자유도), 2.8(자코비안), 2.12(정역학).

특히 중요한 독자: 모션 시뮬레이터·정밀 위치결정·고속 픽앤플레이스의 병렬 로봇을 설계·제어하는 엔지니어, 순기구학 해 선택과 특이점을 다루는 소프트웨어 개발자, 병렬 기구의 해석을 배우는 연구자.

출처 방침. 기준 시점은 2026-11-03이다. 직접 읽은 자료: ① Lynch·Park, Modern Robotics(사전 인쇄본 2017-05-03판) 2.2.2절(그뤼블러 공식)의 예 2.7(델타 로봇)·예 2.8(스튜어트-고프 플랫폼)과 7장 7.1~7.5절(3×RPR의 순기구학과 최대 6개의 해, 스튜어트-고프 플랫폼의 역·순기구학과 역 자코비안, 일반 병렬 기구, 특이점 세 종류, 최대 40개의 해), ② 2.1에서 읽은 그뤼블러 공식. 서지(Stewart 1965, Gosselin·Angeles 1990, Raghavan 1993, Husty 1996, Dietmaier 1998, Rey·Clavel 1999, Merlet·Gosselin 2008)는 Crossref 응답으로 확인했다. 읽지 못한 것: 위 논문들의 본문, 델타 로봇을 처음 제안한 Clavel의 1988년 발표. 기구 치수는 모두 이 장이 정한 예시이며 어떤 제품의 제원이 아니다. 수치는 모두 이 장의 순수 파이썬 계산이다.

2.13.2 개념 — 역기구학이 쉬운 기구

결론부터 적으면 다음과 같다. 병렬 기구는 고정 플랫폼과 움직이는 플랫폼을 여러 "다리"로 잇는 폐연쇄이며(Modern Robotics 7장), 구동기를 기저에 둘 수 있어 움직이는 질량이 작고 다리가 하중을 나눠 진다. 대가로 작업 범위가 좁고 특이점이 많다. 직렬 팔은 순기구학이 쉽고 역기구학이 어렵지만(2.5) 병렬 기구는 반대이다. 플랫폼의 자세가 주어지면 다리 길이는 닫힌 식이지만, 다리 길이가 주어졌을 때 플랫폼의 자세는 여러 개이거나 없을 수 있다.

어깨 B1 팔꿈치 E1 La, θ1 = 16° Lb 플랫폼 p = (0.10, 0, −0.58) m 고정 기저
델타 로봇의 한 팔을 포함한 단면($y=0$, $R_f=0.20$, $R_m=0.05$, $L_a=0.30$, $L_b=0.60$ m, 플랫폼 $p=(0.10,0,-0.58)$ m). 위팔(길이 $L_a$)이 어깨 $B_1$에서 회전하고 평행사변형 아래팔은 길이 $L_b$의 막대 하나로 그렸으며 플랫폼은 기저와 평행하다. 점은 계산값이다.

이 장의 계산 결과를 미리 적으면 다음과 같다. ① 스튜어트 플랫폼의 뉴턴 순기구학이 흐트린 시작점에서 $1.6\times10^{-13}$ m 안으로 참값에 수렴하고 역 자코비안이 유한 차분과 $1.8\times10^{-10}$ m/s 안에서 같다. ② 쌍 간격 각이 같은 기저·플랫폼($\beta_b=\beta_p$)은 모든 자세에서 $\det J^{-1}\approx10^{-20}$인 구조적 특이 기하이고, 다른 기하는 플랫폼 요 각 $30.000000^\circ$에서 높이와 무관하게 특이해진다. ③ 평면 3×RPR의 순기구학 해는 60개 무작위 기구에서 2·4·6개이고 6개를 넘지 않는다(Modern Robotics의 상한 6과 같다). ④ 델타 로봇은 역기구학 후보 8개가 모두 한 구의 교점을 만들고 왕복 오차가 $3.7\times10^{-14}$ m이다.

2.13.3 원리

2.13.3.1 병렬 기구의 자유도

그뤼블러 공식(2.1)으로 보면 스튜어트-고프 플랫폼은 링크 14개(기저·플랫폼·다리 12개)와 관절 18개(범용 6·직동 6·구면 6)로 자유도가 $6(14-1-18)+6\cdot1+6\cdot2+6\cdot3=6$이다. 범용 관절을 구면 관절로 바꾸면 12가 되며 추가된 자유도는 다리 축 둘레의 비틂으로 플랫폼의 운동에 영향이 없다(Modern Robotics 예 2.8). 델타 로봇은 링크 17개·관절 21개(회전 9·구면 12)로 그뤼블러 공식이 15이지만 말단에서 보이는 자유도는 3이고 나머지 12는 평행사변형 링크 12개의 비틂이다. 평행사변형 때문에 플랫폼은 기저와 평행을 유지하여 $x$-$y$-$z$ 위치결정 장치로 동작한다(Modern Robotics 예 2.7).

2.13.3.2 스튜어트-고프 플랫폼의 기구학

기저 관절 $a_i$(기저 좌표)와 플랫폼 관절 $b_i$(플랫폼 좌표), 플랫폼 자세 $(R,t)$에서 다리 벡터와 길이는 다음이다(Modern Robotics 7.1.2절).

$$d_i=t+Rb_i-a_i,\qquad l_i=\lVert d_i\rVert,\qquad i=1,\dots,6.$$

역기구학은 이 닫힌 식이다. 순기구학은 $l_i$가 주어졌을 때 $(R,t)$를 푸는 것으로, $t$의 3개와 $R$의 9개 성분에 대한 12개 방정식(다리 6개와 $R^\top R=I$의 6개)이다. 이 장은 뉴턴법으로 푼다. 현재 자세에서 오차 $e=l_{\mathrm{target}}-l(R,t)$에 대해 $J^{-1}\delta=e$($\delta=(\omega;v_s)$, 아래 절의 역 자코비안)를 풀어 $R\leftarrow e^{[\omega]}R$, $t\leftarrow t+v_s+\omega\times t$로 갱신한다. 일반 기하의 순기구학은 최대 40개의 해를 가지며(복소수 해를 포함한 개수로 알려져 있다) Raghavan·Roth가 상한 40을 보였고 Husty가 모든 해를 구하는 알고리즘을 만든 것으로 Modern Robotics가 안내한다(7.5절). 실수 해가 40개인 기하가 있음은 Dietmaier(1998)가 보인 것으로 알려져 있다(제목에서 확인, 본문은 읽지 못했다). 뉴턴법은 시작점 가까운 해 하나를 찾으므로 해의 개수를 알려 주지 않는다(5절 ①).

2.13.3.3 역 자코비안과 정역학

다리 단위 벡터를 $\hat n_i=d_i/l_i$, 플랫폼 관절의 기저 좌표 위치를 $r_i=t+Rb_i$라 하면 공간 트위스트 $V_s=(\omega,v_s)$에서 다리 길이 변화율은 다음이다.

$$\dot l_i=\hat n_i\cdot(v_s+\omega\times r_i)=\begin{bmatrix}(r_i\times\hat n_i)^\top&\hat n_i^\top\end{bmatrix}V_s,\qquad \dot l=J^{-1}V_s.$$

$r_i=a_i+l_i\hat n_i$이므로 $r_i\times\hat n_i=a_i\times\hat n_i=-\hat n_i\times a_i$이며 Modern Robotics 7.2.1절이 정적 분석으로 얻은 역 자코비안의 행 $(-\hat n_i\times q_i;\ \hat n_i)$와 같다. 다리가 내는 힘 $\tau_i$가 플랫폼에 주는 렌치는 $F_s=(J^{-1})^\top\tau$이다(2.12의 $\tau=J^\top F$의 쌍대이며, 다리 힘이 다리 방향이므로 행이 $(-\hat n_i\times q_i;\hat n_i)$이다). $J^{-1}$이 특이하면 모든 다리를 고정해도 플랫폼이 순간적으로 움직일 수 있고, 다리 힘 $\tau$로 만들 수 없는 렌치 방향이 생겨($(J^{-1})^\top$의 값공간이 5차원 이하) 그 방향의 하중을 지탱하지 못한다. 특이점의 분류는 Modern Robotics 7.3절(구성 공간·구동기·말단 특이점)과 Gosselin·Angeles(1990)가 다루며 2.14에서 정리한다.

2.13.3.4 평면 3×RPR

평면 3×RPR(신축 다리 3개, 자유도 3)에서 다리 길이는 $s_i^2=(p_x+b_{ix}\cos\phi-b_{iy}\sin\phi-a_{ix})^2+(p_y+b_{ix}\sin\phi+b_{iy}\cos\phi-a_{iy})^2$이다. 순기구학은 $t=\tan(\phi/2)$의 6차 다항식으로 줄어 최대 6개의 해를 갖는다(Modern Robotics 7.1.1절). 해가 실수인지의 확인이 별도로 필요하다.

2.13.3.5 델타 로봇의 기구학

델타 로봇은 기저 반지름 $R_f$의 어깨 세 개(방위 $\phi_k=0^\circ,120^\circ,240^\circ$), 위팔 길이 $L_a$, 평행사변형 아래팔 길이 $L_b$, 플랫폼 반지름 $R_m$으로 정한다. 평행사변형이 플랫폼의 방향을 고정하므로 아래팔은 길이 $L_b$의 단일 막대로 볼 수 있고, 팔 $k$의 팔꿈치는 $E_k=B_k+L_a(\cos\theta_k\hat u_k-\sin\theta_k\hat z)$($\hat u_k$는 바깥 방사 방향, $\theta_k>0$이면 위팔이 아래로 향함), 플랫폼 관절은 $p+R_m\hat u_k$이다. 구속 $\lVert p+R_m\hat u_k-E_k\rVert=L_b$는 중심이 $c_k=(R_f-R_m+L_a\cos\theta_k)\hat u_k-L_a\sin\theta_k\hat z$이고 반지름이 $L_b$인 구이다.

  • 순기구학. $\lVert p-c_k\rVert=L_b$ 세 개를 만족하는 $p$는 세 구의 교점이며 두 개(세 중심이 이루는 평면의 양쪽)이다. 아래쪽 교점이 실제 자세이다. 중심 $c_0,c_1,c_2$의 좌표계에서 $x=d/2$, $y=(i^2+j^2-2ix)/(2j)$, $z=\pm\sqrt{L_b^2-x^2-y^2}$이다($d=\lVert c_1-c_0\rVert$, $i,j$는 $c_2-c_0$의 성분).
  • 역기구학. 팔 $k$의 국소 좌표 $(x,y,z)$(방사·접선·수직)와 $D=R_f-R_m$에서 $(x-D-L_a\cos\theta)^2+y^2+(z+L_a\sin\theta)^2=L_b^2$을 정리하면 $A\cos\theta+B\sin\theta=C$ 꼴($A=-2L_a(x-D)$, $B=2L_az$, $C=L_b^2-L_a^2-((x-D)^2+y^2+z^2)$)이고 해는 $\theta=\mathrm{atan2}(B,A)\pm\arccos(C/\sqrt{A^2+B^2})$의 두 개이다. 세 팔의 조합 8개가 후보이다.
  • 구속 자코비안. $f_k=\lVert p-c_k\rVert^2-L_b^2=0$을 미분하면 $(p-c_k)^\top\dot p=(p-c_k)^\top\tfrac{\partial c_k}{\partial\theta_k}\dot\theta_k$, 곧 $J_x\dot p=J_\theta\dot\theta$($J_x$의 행 $(p-c_k)^\top$, $J_\theta=\mathrm{diag}((p-c_k)\cdot\partial c_k/\partial\theta_k)$)이다. $J_x$가 특이하면 구동기를 고정해도 플랫폼이 움직이고 $J_\theta$의 한 성분이 0이면 그 팔이 어떤 속도에도 플랫폼을 움직이지 못한다(위팔과 아래팔이 일직선인 자세).

2.13.4 알고리즘

스튜어트 순기구학(L, a, b, 시작 R, t):
    반복: l ← 다리 길이(R, t),  e ← L − l,  e 가 충분히 작으면 종료
          J⁻¹ ← 행 i = ((r_i × n_i), n_i)
          (ω, v) ← J⁻¹ \\ e            (연립방정식)
          R ← exp([ω]) R,  t ← t + v + ω × t
델타 역기구학(p):   팔마다  A cosθ + B sinθ = C  →  θ = atan2(B, A) ± arccos(C / √(A²+B²))
델타 순기구학(θ):   c_k 계산 → 세 구의 교점 → 아래쪽 해
델타 속도:          ṗ ← J_x⁻¹ J_θ θ̇

스튜어트 순기구학은 다리 길이로 반복 한 번당 $6\times6$ 연립방정식 한 번이고, 델타 순기구학은 닫힌 형식이다.

2.13.5 풀이 예제 — 스튜어트 플랫폼, 평면 3×RPR, 델타 로봇

결론부터 적으면 다음과 같다. ① 대칭 6-6 스튜어트 플랫폼(기저 반지름 $0.5$ m·플랫폼 $0.3$ m)의 뉴턴 순기구학은 흐트린 시작점 200개에서 참값으로 $1.6\times10^{-13}$ m 안에 수렴하고 역 자코비안이 유한 차분과 $1.8\times10^{-10}$ m/s 안에서 같다. ② 같은 기하에서 시작점 300개로 찾은 서로 다른 순기구학 해는 $4$개이고, 무작위 일반 기하 20개에서는 시작점 400개로 $1\sim8$개(중앙값 $5$)이다. ③ $\beta_b=\beta_p$인 기하는 $\det J^{-1}\le1.3\times10^{-19}$로 모든 자세에서 특이하고, $(\beta_b,\beta_p)=(10^\circ,30^\circ)$ 기하는 요 각 $30^\circ$에서 높이 $0.6,0.8,1.0$ m 모두 특이하며 영 트위스트는 $z$축 둘레의 나사 운동이다. ④ 평면 3×RPR 60개의 순기구학 해는 2개 34번, 4개 25번, 6개 1번이다. ⑤ 델타 로봇의 역기구학 후보 8개가 모두 구의 교점을 만들고 왕복 오차 $3.7\times10^{-14}$ m, 구속 자코비안과 유한 차분이 $1.2\times10^{-10}$ m/s 안에서 같으며 도달 가능 부피가 $0.210$ m³이다. ⑥ SciPy와 $2.4\times10^{-13}$ 안에서 같다.

구현. legs·jinv·stewart_fk·delta_ik·delta_fk. 평면 3×RPR, 자코비안 행렬식, 다중 시작 해 개수, 작업공간 격자, 그림은 스크립트에 있다. 1.1의 matmul·solve_lu·svd, 1.7의 exp_so3를 사용한다.

항목값
입력 1스튜어트 6-6: 기저 관절 6개는 반지름 $0.5$ m·방위 $120^\circ k\pm\beta_b$, 플랫폼 관절 6개는 반지름 $0.3$ m·방위 $120^\circ k\pm\beta_p+60^\circ$($k=0,1,2$, 모두 $z=0$). 기본 $(\beta_b,\beta_p)=(10^\circ,30^\circ)$. 검증 자세: 위치 $x,y\in U[-0.1,0.1]$, $z\in U[0.7,0.9]$ m, 회전은 작은 임의 회전과 요 $\pm0.3$ rad(200개, 시드 56). 순기구학은 참값에서 $0.05$ rad·$0.03$ m 흐트린 시작점
입력 2해의 개수: 대칭 기하는 home 다리 길이(높이 $0.8$ m, 요 0)와 임의 시작 300개. 일반 기하 20개는 기저·플랫폼 관절을 반경 $0.6$ m·$0.35$ m 상자에서 임의로 뽑고(높이 $\pm0.05$ m), 임의 자세의 다리 길이에서 임의 시작 400개
입력 3구조적 특이: $(\beta_b,\beta_p)\in\{(10,10),(20,20),(30,30),(10,30),(30,10),(20,30)\}^\circ$ 각각 임의 자세 20개. 요 각 $0\sim180^\circ$(1° 간격), 높이 $0.8$ m의 $\det J^{-1}$
입력 4평면 3×RPR: 기저 관절 $a_i\in U[-1,1]^2$, 플랫폼 관절 $b_i\in U[-0.5,0.5]^2$, 임의 자세 $(p,\phi)$의 다리 길이에서 임의 시작 300개, 기구 60개
입력 5델타: $R_f=0.20$, $R_m=0.05$, $L_a=0.30$, $L_b=0.60$ m, 관절각 한계 $[-0.6,1.6]$ rad. 점 $x,y\in U[-0.25,0.25]$, $z\in U[-0.55,-0.25]$ m 500개(역기구학), 작업공간 점은 $x,y\in[-0.45,0.45]$, $z\in[-0.85,0]$ m 상자(점 20,000개)
입력 6라이브러리 대조: 스튜어트 형상 100개(시드 561), 델타 관절각 200개
from math import sqrt, sin, cos, atan2, acos

def dot(a, b):
    return sum(x * y for x, y in zip(a, b))

def cross(a, b):
    return [a[1] * b[2] - a[2] * b[1],
            a[2] * b[0] - a[0] * b[2],
            a[0] * b[1] - a[1] * b[0]]

def legs(R, t, a, b):
    """스튜어트 IK: d_i = t + R b_i - a_i, l_i = |d_i|"""
    out = []
    for ai, bi in zip(a, b):
        r = [t[k] + dot(R[k], bi) for k in range(3)]
        d = [r[k] - ai[k] for k in range(3)]
        out.append((r, sqrt(dot(d, d))))
    return out

def jinv(R, t, a, b):
    """역 자코비안: ldot_i = ((r_i x n_i), n_i) . (w, v_s)"""
    rows = []
    for ai, (r, l) in zip(a, legs(R, t, a, b)):
        n = [(r[k] - ai[k]) / l for k in range(3)]
        rows.append(cross(r, n) + n)
    return rows

def stewart_fk(L, a, b, R, t, it=60):
    """뉴턴: (R, t)에서 시작해 leg 길이 L을 맞춘다"""
    for _ in range(it):
        ls = [x[1] for x in legs(R, t, a, b)]
        e = [x - y for x, y in zip(L, ls)]
        if max(abs(x) for x in e) < 1e-13:
            return R, t, True
        J = jinv(R, t, a, b)
        try:
            d = solve_lu(J, e)[0]
        except ZeroDivisionError:
            return R, t, False
        w, v = d[:3], d[3:]
        R = matmul(exp_so3(w), R)
        t = [t[k] + v[k] + cross(w, t)[k] for k in range(3)]
    return R, t, False

def delta_ik(p, g):
    """g = (Rf, Rm, La, Lb), 팔마다 두 해"""
    Rf, Rm, La, Lb = g
    out = []
    for k in range(3):
        ph = 2 * math.pi * k / 3
        u, tg = (cos(ph), sin(ph)), (-sin(ph), cos(ph))
        x = p[0] * u[0] + p[1] * u[1]
        y = p[0] * tg[0] + p[1] * tg[1]
        z = p[2]
        D = Rf - Rm
        A, B = -2 * La * (x - D), 2 * La * z
        C = Lb ** 2 - La ** 2 - ((x - D) ** 2 + y * y + z * z)
        r = sqrt(A * A + B * B)
        if abs(C) > r:
            return None
        h = acos(C / r)
        out.append([atan2(B, A) + h, atan2(B, A) - h])
    return out

def delta_fk(th, g, sgn=-1.0):
    """세 구의 교점(sgn = -1: 아래쪽), 중심 c_i"""
    Rf, Rm, La, Lb = g
    c = []
    for k in range(3):
        ph = 2 * math.pi * k / 3
        s = Rf - Rm + La * cos(th[k])
        c.append([s * cos(ph), s * sin(ph), -La * sin(th[k])])
    e1 = [c[1][i] - c[0][i] for i in range(3)]
    d = sqrt(dot(e1, e1))
    e1 = [x / d for x in e1]
    v = [c[2][i] - c[0][i] for i in range(3)]
    i_ = dot(e1, v)
    e2 = [v[k] - i_ * e1[k] for k in range(3)]
    j_ = sqrt(dot(e2, e2))
    e2 = [x / j_ for x in e2]
    e3 = cross(e1, e2)
    x = d / 2
    y = (i_ * i_ + j_ * j_ - 2 * i_ * x) / (2 * j_)
    zz = Lb ** 2 - x * x - y * y
    if zz < 0:
        return None
    z = sgn * sqrt(zz)
    return [c[0][i] + x * e1[i] + y * e2[i] + z * e3[i]
            for i in range(3)]

① 스튜어트 플랫폼.

스튜어트 6-6(기저 반지름 0.5 m, 플랫폼 0.3 m 대칭 배치)값
역기구학 → 뉴턴 순기구학 왕복(시작점을 흐트림) 최대 위치 오차1.6e-13 m
역 자코비안 $\dot l=J^{-1}V_s$ 대 유한 차분 최대 차이1.8e-10 m/s
대칭 기하의 home 다리 길이에서 서로 다른 순기구학 해(시작 300개)4개
쌍 간격 각 $(\beta_b,\beta_p)$별 $\max\lvert\det J^{-1}\rvert$(임의 자세 20개)(10°,10°) 2.1e-20, (20°,20°) 1.3e-19, (30°,30°) 9.3e-20, (10°,30°) 7.4e-03, (30°,10°) 7.1e-03, (20°,30°) 8.2e-04
특이 요 각(이분법), 높이 0.6·0.8·1.0 m30.000000°, 30.000000°, 30.000000°
특이 자세의 역 자코비안 특이값(내림차순)2.02, 1.23, 1.23, 0.103, 0.103, 2.5e-17
영 트위스트 $(\omega;v_s)$(-0.0000, -0.0000, 0.9848; -0.0000, -0.0000, -0.1735)
영 트위스트 방향 이동 $s=10^{-3},10^{-2}$에서 다리 길이 최대 변화 대 임의 방향4.3e-08, 4.2e-06 대 8.4e-04, 8.4e-03
무작위 일반 기하 20개의 서로 다른 순기구학 해(시작 400개) 최솟값·중앙값·최댓값1 · 5 · 8
평면 3×RPR 무작위 60개의 해 개수(시작 300개) 최솟값·최댓값, 개수별2 · 6, 2개 34, 4개 25, 6개 1

뉴턴법은 참값 근처의 시작점에서 200개 모두 수렴했다. 서로 다른 해의 개수는 시작점이 해의 끌림 영역에 얼마나 들어가는지에 달려 있어 일반 기하에서 찾은 $1\sim8$개는 실제 해 개수의 하한이다(상한은 40이다). 해 개수 분포는 아래와 같다.

0 2 4 6 1개 1 2개 4 4개 4 5개 3 6개 5 8개 3 서로 다른 순기구학 해의 개수(시작 400개에서 찾은 값)
무작위 일반 스튜어트-고프 기하 20개에서 시작점 400개로 찾은 서로 다른 순기구학 해의 개수 분포(가로: 해 개수, 세로: 기하의 수). 찾은 개수는 실제 해 개수(최대 40)의 하한이다.

② 특이점. 기하 $(\beta_b,\beta_p)$가 같으면(쌍 간격 각이 기저와 플랫폼에서 같음) 검사한 세 값($10^\circ$·$20^\circ$·$30^\circ$)에서 $\det J^{-1}$이 임의 자세 20개 모두 $1.3\times10^{-19}$ 이하이므로 자세와 무관한 구조적 특이 기하이다. 원인은 확인하지 않았다 (확인 필요). 기하가 다르면(예 $(10^\circ,30^\circ)$의 $7.4\times10^{-3}$) 특이점은 자세에 따라 나타난다. 이 기하에서 플랫폼 요 각에 따른 $\det J^{-1}$은 $30^\circ$에서 부호가 바뀐다.

0 30 60 90 120 150 180 −1.0 −0.5 0.0 0.5 1.0 플랫폼 요 각 (°) detJ−1(상대값) detJ−1 / 최대
스튜어트 6-6($(\beta_b,\beta_p)=(10^\circ,30^\circ)$, 높이 0.8 m)의 플랫폼 요 각에 따른 $\det J^{-1}$(최댓값으로 나눈 상대값). $30^\circ$에서 0이 되며 높이 0.6~1.0 m에서 같은 각이다.

요 각 $30.000000^\circ$(이분법)가 높이 $0.6$, $0.8$, $1.0$ m에서 같다. 특이 자세에서 $J^{-1}$의 특이값은 $2.02,\ 1.23,\ 1.23,\ 0.103,\ 0.103,\ 2.5\times10^{-17}$이고 영 방향은 $(\omega;v_s)=(0,0,0.985;\ 0,0,-0.174)$, 곧 $z$축 둘레 회전과 $z$ 방향 이동이 묶인 나사 운동(피치 $-0.176$ m/rad)이다. 이 방향으로 이동량 $s$만큼 움직이면 다리 길이 변화가 $s=10^{-3}$에서 $4.3\times10^{-8}$, $10^{-2}$에서 $4.2\times10^{-6}$로 $s^2$에 비례(2차)하고 임의 방향은 $8.4\times10^{-4}$, $8.4\times10^{-3}$로 $s$에 비례(1차)한다. 특이점에서는 모든 다리를 고정해도 플랫폼이 1차에서 움직인다.

③ 평면 3×RPR. 무작위 기구 60개의 해 개수는 2개 34번, 4개 25번, 6개 1번이다(위 표). 모두 짝수이고 6개를 넘지 않는다. 짝수인 것은 6차 다항식의 실근 개수와 맞고 상한은 Modern Robotics의 6과 일치한다.

④ 델타 로봇.

델타 로봇($R_f=0.20$, $R_m=0.05$, $L_a=0.30$, $L_b=0.60$ m)값
역기구학 후보 8개 가운데 구 교점 둘 중 하나가 같은 점인 개수(점 437개, 최소·평균·최대)8 · 8.00 · 8
그 가운데 아래쪽 교점이 같은 점인 개수5 · 5.19 · 8
역기구학 → 순기구학 왕복 최대 오차3.7e-14 m
구속 자코비안 $\dot p=J_x^{-1}J_\theta\dot\theta$ 대 유한 차분 최대 차이1.2e-10 m/s
관절각 $[-0.6,1.6]$ rad 한계에서 도달 가능 비율(상자 $0.9\times0.9\times0.85$ m, 점 20,000개) · 부피30.4 % · 0.210 m³
-0.4 -0.2 0.0 0.2 0.4 -0.8 -0.6 -0.4 -0.2 x (m) z (m) 도달 가능 특이점 근처
델타 로봇 작업공간의 $y=0$ 단면. 위팔 각도 한계 $[-0.6,1.6]$ rad 안에서 도달 가능한 영역(파랑). 주황은 위팔과 아래팔이 일직선에 가까운 특이점 근처이며 이 단면에는 없다. 한 칸은 0.02 m이다.

역기구학 후보 8개가 모두 구의 교점 하나를 같은 점으로 갖는다(최대 오차 $3.7\times10^{-14}$ m). 이 가운데 그 점이 아래쪽 교점인 후보는 $5\sim8$개(평균 $5.19$)이고 나머지는 위쪽 교점으로, 플랫폼이 세 구 중심 평면의 반대쪽에 놓인 다른 자세이다. 구속 자코비안이 유한 차분과 $1.2\times10^{-10}$ m/s 안에서 같다. 이 치수와 한계에서 $0.9\times0.9\times0.85$ m 상자의 $30.4$ %($0.210$ m³)가 도달 가능하고, 단면(그림 4)은 아래쪽(깊은 $z$)으로 갈수록 좁아지며 위쪽 경계는 위팔 각도 한계와 팔 뻗음에서 정해진다. 단면의 주황 칸(위팔과 아래팔이 일직선에 가까운 자세, $\min_k\lvert J_{\theta,k}\rvert/(L_aL_b)<0.2$)은 없으므로 이 작업공간에서는 팔이 거의 뻗은 특이점에서 멀다.

⑤ 라이브러리 대조(실행 2026-11-03). SciPy 1.18.1의 least_squares로 스튜어트 순기구학을, fsolve로 델타 순기구학을 풀어 이 장의 값과 비교했다. 스크립트는 robotics/fig-src/2.13-libcheck.py, 출력은 robotics/fig-src/data/2.13-libcheck-output.txt에 있다.

비교최대 차이
스튜어트: 이 장의 뉴턴 해와 SciPy least_squares 해의 위치·회전 행렬 최대 차이(형상 100개)1.2e-13 m · 2.4e-13
스튜어트: 참값이 아닌 다른 조립 형상으로 수렴한 표본 수(이 장 · SciPy)1 · 1
스튜어트: 참값으로 수렴한 표본의 최대 위치 오차(이 장 · SciPy)1.2e-13 · 1.3e-15 m
델타: 세 구의 교점(닫힌 형식) 대 SciPy fsolve(점 200개)2.2e-16 m

두 풀이가 $2.4\times10^{-13}$ 안에서 같은 해를 구했다. 흐트린 시작점에서 참값이 아닌 다른 조립 형상으로 수렴한 표본이 이 장의 뉴턴법과 SciPy 모두에서 1개(100개 중) 있었다. 순기구학의 해가 여럿이므로 시작점을 이전 자세로 두어 연속성을 지키는 것이 제어에서 중요하다. 델타의 닫힌 형식과 fsolve는 $2.2\times10^{-16}$ m 안에서 같다.

한계. 한 스튜어트 기하(대칭 6-6)와 임의 일반 기하 20개, 한 델타 치수만 측정했다. 해의 개수는 시작점 300~400개에서 찾은 하한이며 40개를 찾는 알고리즘(Husty)은 구현하지 않았다. 구조적 특이 기하의 원인과 일반 조건은 확인하지 않았다. 델타는 평행사변형을 단일 막대로 모델링했고 관절 한계는 위팔 각도만 두었다(구면 관절·평행사변형 간섭·충돌 제외). 평면 3×RPR은 해의 개수만 확인했다. 동역학과 강성은 다루지 않았다.

견해: 병렬 기구의 순기구학은 이전 자세를 시작점으로 하는 뉴턴법으로 구현하고, 시작 시점과 오류 복구(자세 추정이 끊겼을 때)에는 다중 시작이나 센서 정보로 해를 고르는 별도 절차를 두는 것을 기본으로 둔다고 본다. 근거는 이 장의 계산에서 뉴턴법이 참값 근처 시작점에서 $10^{-13}$ m로 수렴했지만 같은 다리 길이에서 해가 여럿이었고(일반 기하 중앙값 $5$개 이상, 상한 40), 흐트린 시작점이 다른 조립 형상으로 수렴한 표본이 $1\%$ 있었다는 점이다. 델타 로봇처럼 닫힌 형식이 있는 기구는 닫힌 형식(세 구의 교점)을 사용하는 편이 낫다고 본다. 근거는 닫힌 형식이 SciPy의 반복 풀이와 $10^{-16}$ m 안에서 같고 시작점이 필요 없다는 점이다. 구조적 특이 기하의 검사는 설계 단계에서 모든 후보에 대해 $\det J^{-1}$을 임의 자세에서 계산하는 것을 기본으로 둔다고 본다. 근거는 이 장에서 $\beta_b=\beta_p$ 기하가 모든 자세에서 $10^{-19}$ 이하였다는 점이다.

2.13.6 설계 트레이드오프 — 병렬 기구의 구성과 순기구학 풀이

공개 자료에서 확인되는 구성은 다음과 같다.

  • ① 6-6 스튜어트-고프. 6자유도 전부, 높은 강성과 하중 능력. 작업 범위가 좁고 순기구학이 어렵다.
  • ② 델타(3자유도, 평행사변형). 고속·경량, 닫힌 형식. 병진 3자유도만 가진다.
  • ③ 평면 3×RPR. 평면 3자유도, 순기구학이 6차 다항식.

순기구학의 풀이 방식은 다음이다.

  • 뉴턴·최소제곱. 시작점 근처의 해 하나. 구현이 단순하다.
  • 다항식·호모토피 열거. 모든 해(최대 40). Husty(1996)의 알고리즘 등이 알려져 있고 계산이 크다(이 장은 구현하지 않았다).
  • 닫힌 형식. 델타처럼 구조가 허용하면 가장 빠르다.
  • 추가 센서. 수동 관절 센서로 순기구학을 단순화한다(여유 센서).
구성자유도순기구학장점한계
6-6 스튜어트-고프6뉴턴(최대 40개 해)강성·하중, 6자유도좁은 작업 범위, 특이점
델타3(병진)세 구의 교점고속·경량3자유도, 작업공간 모양
평면 3×RPR36차 다항식단순, 평면평면 과업

견해: 병진 3자유도로 충분한 고속 작업(피킹)은 델타를, 6자유도 하중·정밀 작업은 스튜어트-고프를 선택하되 기하를 확정하기 전에 구조적 특이 검사($\det J^{-1}$)를 임의 자세 수십 개에서 수행하는 것을 기본으로 둔다고 본다. 근거는 이 장에서 쌍 간격 각이 같은 기하가 모든 자세에서 특이했다는 점이다. 후보 기하를 CAD로 확정한 뒤에는 조립 형상의 연속성·충돌·관절 한계를 별도로 검토해야 하며 이 장의 모형은 이를 포함하지 않는다.

2.13.7 응용 축 비교

응용 축병렬 기구가 맡는 일요구관련 장
산업·제조델타 로봇의 고속 포장·픽앤플레이스, 스튜어트의 정밀 위치결정고속·반복 정밀도2.14, 28.2
물류·이동분류·피킹 델타높은 사이클 속도2.15
도로 주행모션 시뮬레이터의 스튜어트 플랫폼6자유도 운동 재현2.14
서비스해당하는 고유 요구 없음——
의료·헬스케어정밀 위치결정·재활 기구정밀도, 안전32.14
휴머노이드·범용병렬 손목·발목 기구경량, 강성7.7, 7.17
필드해당하는 고유 요구 없음——
국방·안보원리 수준에서 해당하는 고유 요구 없음——

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

2.13.8 관련 규격·프로토콜

문서발행무엇을 정하나상세 장
Modern Robotics 2.2.2절 예 2.7·2.8, 7장Lynch·Park, 2017델타·스튜어트-고프의 자유도, 닫힌 연쇄 기구학, 자코비안, 특이점 분류2.1, 2.14
least_squares·fsolveSciPy 1.18.1순기구학의 비선형 최소제곱·방정식 풀이2.6
수학 표기·기호표이 책다리 벡터·트위스트 표기A.2

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

병렬 기구 자체의 기구학 방식을 규정하는 법령·인증 요건은 확인하지 못했다. 모션 시뮬레이터(비행·주행)의 인증과 병렬 로봇의 안전 요건(작업공간 제한, 정지 시 거동)은 용도별 규격이 있으나 이 장은 조항을 확인하지 않았다 (확인 필요). 산업 로봇 안전 표준과의 연결은 27.10에서 다룬다.

2.13.10 한계·유의점·미해결

  • 해의 개수. 뉴턴법은 해 하나를 준다. 모든 해를 구하려면 다항식·호모토피 방법이 필요하다.
  • 구조적 특이 기하. 이 장은 $\beta_b=\beta_p$의 경우를 수치로 확인했다. 일반 조건은 확인하지 않았다.
  • 모델의 단순화. 델타의 평행사변형을 단일 막대로, 스튜어트의 구면 관절을 이상 관절로 두었다.
  • 관절·충돌 한계. 구면 관절의 각도 한계, 다리 간섭, 다리 신축 한계는 포함하지 않았다.
  • 동역학·강성. 다루지 않았다(3.11, 2.12).
  • 델타의 변형. 회전 자유도를 더한 4·6자유도 델타와 직렬 손목은 다루지 않았다.

2.13.11 체크포인트·연구 질문·출처

체크포인트:

  1. 스튜어트-고프 플랫폼과 델타 로봇의 자유도를 그뤼블러 공식으로 구하고 델타의 15와 말단 자유도 3의 차이를 설명하라.
  2. 역 자코비안의 행 $(r_i\times\hat n_i;\hat n_i)$를 $\dot l_i=\hat n_i\cdot\dot r_i$에서 유도하라.
  3. 델타 로봇의 역기구학에서 $A\cos\theta+B\sin\theta=C$의 해의 개수가 0·1·2인 조건을 말하라.
  4. 구속 자코비안 $J_x\dot p=J_\theta\dot\theta$에서 $J_x$ 특이와 $J_\theta$ 특이의 기하적 의미를 각각 말하라.
  5. 평면 3×RPR의 순기구학이 실수 해 6개를 갖는 것과 6차 다항식의 관계를 설명하라.

연구 질문:

  • 구조적 특이 기하(모든 자세에서 $\det J^{-1}=0$)의 대수적 조건은 6-6 기하 전체에서 어떻게 나타나는가?
  • 일반 스튜어트-고프 기하에서 실수 해 40개를 갖는 기하를 효율적으로 찾고 제어에서 해를 고르는 규칙은 무엇인가?

1차 출처(조회 2026-11-03).

  • K. M. Lynch, F. C. Park, Modern Robotics, Cambridge University Press, 2017(ISBN 9781107156302). 사전 인쇄본 2017-05-03판의 2.2.2절(예 2.7·2.8)과 7장 7.1~7.5절을 읽었다.
  • D. Stewart, "A platform with six degrees of freedom," Proceedings of the Institution of Mechanical Engineers 180(1), 371–386, 1965, doi:10.1243/pime_proc_1965_180_029_02 — 서지만 확인.
  • M. Raghavan, "The Stewart platform of general geometry has 40 configurations," Journal of Mechanical Design 115(2), 277–282, 1993, doi:10.1115/1.2919188 — 서지만 확인.
  • M. L. Husty, "An algorithm for solving the direct kinematics of general Stewart–Gough platforms," Mechanism and Machine Theory 31(4), 365–379, 1996, doi:10.1016/0094-114x(95)00091-c — 서지만 확인.
  • P. Dietmaier, "The Stewart–Gough platform of general geometry can have 40 real postures," Advances in Robot Kinematics: Analysis and Control, 7–16, 1998, doi:10.1007/978-94-015-9064-8_1 — 서지만 확인.
  • C. Gosselin, J. Angeles, "Singularity analysis of closed-loop kinematic chains," IEEE Transactions on Robotics and Automation 6(3), 281–290, 1990, doi:10.1109/70.56660 — 서지만 확인.
  • L. Rey, R. Clavel, "The Delta parallel robot," in Parallel Kinematic Machines(Advanced Manufacturing), 401–417, 1999, doi:10.1007/978-1-4471-0885-6_29 — 서지만 확인(Crossref에 등록된 제목은 "The Delta Parallel Robot").
  • J.-P. Merlet, C. Gosselin, "Parallel mechanisms and robots," Springer Handbook of Robotics, 269–285, 2008, doi:10.1007/978-3-540-30301-5_13 — 서지만 확인.
  • SciPy 1.18.1(least_squares, fsolve).

다음 장. 2.14은 병렬 기구 II(케이블 구동 병렬 로봇, 병렬 기구의 특이점과 작업공간)를 다룬다. 이 장의 역 자코비안 $J^{-1}$이 특이점 분류의 출발점이다.