AEGLOSLAB 로봇공학 전서(全書)

제2부 기구학

2.16 연속체 로봇 기구학: 일정 곡률·코세라(Cosserat) 막대 모델

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

이 장은 관절이 없이 몸 전체가 연속적으로 휘는 로봇(연속체 로봇)의 기구학을 다룬다. 몸체의 중심선(백본)을 곡선으로 보고, 곡선을 따라 자세가 어떻게 변하는지를 코세라(Cosserat) 막대의 운동학으로 적은 뒤, 구간마다 곡률이 일정하다는 가정(일정 곡률, PCC)에서 끝 자세의 닫힌 형식을 얻는다. 힘줄의 길이가 곡률에 선형이라는 점, $(\kappa,\phi)$ 매개변수화의 특이성과 곡률 벡터 매개변수화의 정칙성, 두 구간 팔의 역기구학, 끝 하중을 받는 막대(엘라스티카)에서 PCC 근사가 얼마나 틀리는지를 계산으로 확인한다. 동역학·정역학(힘과 변형)은 3.10, 소프트 로봇의 재료·제작은 25.2, 모델링·제어는 25.3, 시뮬레이션은 25.4, 연속체 로봇의 설계·구동·응용은 25.6, 수술 응용은 32.6와 이어진다.

배우는 것:

  • 코세라 막대의 운동학 — 중심선 $p(s)$와 몸체 좌표계 $R(s)$, 곡률 벡터 $u$, $p'=Re_3$, $R'=R[u]_\times$.
  • 일정 곡률 호 — $(\kappa,\phi,\ell)$로 끝 자세의 닫힌 형식, 지수곱(2.4) 표현, 곡률 벡터 형식.
  • 다구간 팔 — 구간별 자세의 곱, 구간 신장, 자코비안.
  • 힘줄 구동 — 힘줄 길이와 곡률 벡터의 선형 관계, 3·4개 힘줄의 최소제곱 변환, 길이 잡음의 전파.
  • 매개변수화와 특이점 — $(\kappa,\phi)$의 표현 특이성, 곡률 벡터의 정칙성, 역기구학 수렴.
  • 하중과 PCC의 한계 — 끝 하중을 받는 평면 막대의 엘라스티카와 PCC 근사의 오차.

선수 지식: 1.7(리 군·지수 사상), 2.4(지수곱 공식), 2.6(감쇠 최소제곱 역기구학), 2.8(자코비안), 2.9(특이점).

특히 중요한 독자: 힘줄·공압 구동 연속체 팔의 모형과 제어기를 작성하는 개발자, 카테터·내시경형 로봇의 기구학을 다루는 연구자, 소프트 로봇의 축소 차수 모델을 처음 배우는 대학원생.

출처 방침. 기준 시점은 2026-11-03이다. 직접 읽은 자료: 이 장을 위해 직접 읽은 1차 문헌은 없다. 일정 곡률 호의 닫힌 형식과 곡률 벡터 형식, 힘줄 길이 식, 엘라스티카의 상미분방정식은 이 장이 기하와 코세라 운동학의 정의에서 직접 유도하고, 같은 입력에서 수치 적분·SciPy·정확한 구적과 대조해 맞는지 확인했다. 지수곱 공식은 2.4에서 읽은 Modern Robotics 4.1절의 구조(스크루 축의 지수를 곱함)와 같다. 서지만 확인한 것(본문은 읽지 못했다): Jones·Walker(2006, 다구간 연속체 로봇의 운동학), Webster·Jones(2010, 일정 곡률 연속체 로봇의 설계와 운동학 모형 개관), Rucker·Webster(2011, 일반 힘줄 경로와 외부 하중의 정역학·동역학), Trivedi·Lotfi·Rahn(2008, 소프트 매니퓰레이터의 기하학적으로 정확한 모델), Burgner-Kahrs·Rucker·Choset(2015, 의료용 연속체 로봇 개관), Bisshopp·Drucker(1945, 외팔보의 큰 처짐). 이들이 무엇을 보였는지에 관한 서술은 제목에서 알 수 있는 범위로 한정했다. 치수·하중은 모두 이 장이 정한 예시이며 어떤 제품의 제원이 아니다. 수치는 모두 이 장의 순수 파이썬 계산이고 실험 데이터가 아니다.

2.16.2 개념 — 관절이 없는 로봇은 곡선 하나로 기술한다

결론부터 적으면 다음과 같다. 연속체 로봇의 형상은 중심선 곡선이며 자유도는 원리상 무한하지만, 구동기는 몇 개뿐이다. 그래서 곡선의 곡률 분포에 가정을 두어 매개변수를 줄인다. 가장 흔한 가정이 일정 곡률(PCC)이다. 한 구간이 원호 하나라고 보면 구간의 형상은 곡률 $\kappa$, 굽힘 방향 $\phi$, 호 길이 $\ell$ 셋으로 정해지고, 끝 자세는 닫힌 식으로 나온다. 구간을 이어 붙이면 다구간 팔이 된다. 이 가정은 구간 전체가 같은 굽힘 모멘트를 받을 때 정확하고(순수 모멘트를 받는 막대의 곡률은 $M/EI$로 일정하다), 하중이 구간 안에서 변하면 틀린다. 그림 1은 끝 하중을 받는 막대의 곡률이 고정단에서 최대이고 자유단에서 0인 모양(엘라스티카)과, 이를 일정 곡률 호 두 가지로 근사한 모양을 비교한다.

하중 P 고정단 엘라스티카(코세라) PCC(끝 각 맞춤) PCC(끝점 맞춤) 하중 전
끝에 하중 $P$를 받는 평면 막대($\alpha=PL^2/EI=2$, $L=1$). 파랑은 곡률이 고정단에서 최대이고 자유단에서 0인 엘라스티카(코세라 막대의 평면 정적 해)이다. 주황 점선은 끝 각($44.79^\circ$)을 맞춘 등곡률 호, 초록 점선은 끝점을 가장 가깝게 맞춘 등곡률 호이다. 좌표는 모두 계산값이다.

이 장의 계산 결과를 미리 적으면 다음과 같다. ① 닫힌 형식 끝 자세가 코세라 운동학 상미분방정식의 RK4 적분과 $5.5\times10^{-14}$, exp_screw(2.4)와 $6.7\times10^{-16}$ 안에서 같다. ② 힘줄 길이는 곡률 벡터의 선형 함수이며(최대 차이 $2.8\times10^{-17}$ m), 길이 잡음 $10$ μm에서 곡률 오차 평균이 힘줄 3개 $0.0134$ 1/m(예측 $0.0130$)·4개 $0.0110$ 1/m(예측 $0.0113$)이고 끝점 오차는 $0.089$·$0.079$ mm이다(모형 안의 잡음 전파이며 실제 정확도가 아니다). ③ $(a,\phi)$ 매개변수의 자코비안 조건수는 굽힘각 $a=\kappa\ell$이 작을 때 $1/a$로 커지고($a=10^{-3}$에서 $10^3$), 곡률 벡터 $(\beta_x,\beta_y)=\ell(u_x,u_y)$의 조건수는 $0.001\sim3$ rad에서 $1.75$ 이하이다. ④ 두 구간 팔의 역기구학(목표 200개, 직선 시작, $\lambda=10^{-4}$)은 곡률 벡터 매개변수가 200개 모두 중앙값 7회에 수렴하고, $(\kappa,\phi)$는 198개가 중앙값 12회(최대 138회)에 수렴한다. SciPy least_squares(trf)는 직선 시작에서 $(\kappa,\phi)$가 200개 모두 구간 2를 편 채 멈추고(잔차 중앙값 $12.4$ mm), 곡률 벡터는 200개 모두 수렴한다. ⑤ 끝 하중 $\alpha=PL^2/EI=2$에서 끝 각을 맞춘 PCC의 끝점 오차는 $0.137L$(작은 하중에서 $\alpha/12$), 끝점을 맞춘 PCC는 $0.020L$이지만 끝 각이 $15.7^\circ$ 틀린다.

2.16.3 원리

2.16.3.1 코세라 막대의 운동학

비신장·무전단 막대(키르히호프 막대)의 중심선을 호 길이 $s\in[0,L]$로 매개화하고, 각 점에 몸체 좌표계 $(R(s),p(s))\in SE(3)$를 붙인다. $R$의 셋째 열이 중심선의 접선이다. 코세라 막대 이론은 전단과 신장도 허용하지만, 이 장은 접선 속도가 $p'=Re_3$(단위 접선)인 경우만 다룬다. 몸체 좌표에서 본 각속도 $u(s)$(곡률 벡터)가 곡률 $u_x,u_y$와 비틀림 $u_z$를 담는다.

$$p'=Re_3,\qquad R'=R\,[u]_\times,\qquad g=(R,p),\quad g'=g\,[V_b],\quad V_b=\begin{bmatrix}u\\ e_3\end{bmatrix}.$$

곡률 벡터가 구간 안에서 일정하면 $g'=g[V_b]$의 해는 지수 사상 $g(\ell)=g(0)\,e^{[V_b]\ell}$이다(1.7). 굽힘 하나만 있고 비틀림이 없는 경우($u_z=0$)를 다룬다. 곡률 $\kappa=\sqrt{u_x^2+u_y^2}$는 굽힘 평면 안의 곡률이고, 굽힘 방향 $\phi$는 $u=\kappa(-\sin\phi,\cos\phi,0)$로 정한다. 정역학까지 가면 곡률 벡터는 재료의 구성 방정식 $m=Ku$(굽힘 모멘트 $m$, 강성 $K$)와 힘·모멘트 평형에서 정해지며 이는 3.10의 주제이다.

2.16.3.2 일정 곡률 호의 닫힌 형식

$u$가 구간 안에서 일정하고 $u_z=0$이면 접선은 $Re_3=(\sin\kappa s\cos\phi,\ \sin\kappa s\sin\phi,\ \cos\kappa s)$이고 적분하면 끝점이 나온다. 굽힘각 $a=\kappa\ell$로 두면 다음이다.

$$p=\begin{bmatrix}\cos\phi\,(1-\cos a)/\kappa\\ \sin\phi\,(1-\cos a)/\kappa\\ \sin a/\kappa\end{bmatrix},\qquad R=e^{a[n]_\times},\quad n=(-\sin\phi,\ \cos\phi,\ 0).$$

끝점은 반지름 $1/\kappa$인 원 위에 있고, 호의 현의 길이는 $2\sin(a/2)/\kappa$이다. 끝 접선은 시작 접선을 축 $n$ 둘레로 $a$ 회전한 것이다. 이 변환은 곡률 중심 $c=(\cos\phi,\sin\phi,0)/\kappa$를 지나는 축 $n$ 둘레의 순수 회전이므로 스크루 축 $S=(n;\ e_3/\kappa)$(피치 0)와 각도 $\theta=a$의 지수곱 $e^{[S]\theta}$와 같다(2.4). 이 장에서 호의 시작 좌표계는 기저 좌표계와 일치하므로 영 자세 $M=I$이다. $\kappa\to0$에서 $p\to(0,0,\ell)$(직선), $R\to I$이다. $(\kappa,\phi)$와 $(-\kappa,\phi+\pi)$는 같은 호이다(대입하면 $p$·$R$이 같다). 문헌에 따라 끝 좌표계의 $x$축 정렬 같은 관례가 다를 수 있으므로(확인 필요) 문헌의 자세 식과 비교할 때는 $u_z=0$ 기준인지 먼저 확인해야 한다.

2.16.3.3 곡률 벡터 매개변수화 — 직선에서 정칙

$u=(u_x,u_y)$와 $a=\ell\sqrt{u_x^2+u_y^2}$를 사용하면 $\kappa\cos\phi=u_y$, $\kappa\sin\phi=-u_x$이므로 다음이 성립한다.

$$p=\begin{bmatrix}u_y\,\ell^2\,h(a)\\ -u_x\,\ell^2\,h(a)\\ \ell\,s(a)\end{bmatrix},\quad h(a)=\frac{1-\cos a}{a^2}=\frac12-\frac{a^2}{24}+\cdots,\quad s(a)=\frac{\sin a}{a}=1-\frac{a^2}{6}+\cdots,\quad R=e^{[\ell u]_\times}.$$

$h$와 $s$는 $a^2=\ell^2(u_x^2+u_y^2)$의 해석 함수이므로 $p$는 $u=0$에서 정칙이고($\kappa$·$\phi$를 거치지 않는다) 자코비안 $\partial p/\partial(u_x,u_y)=\frac{\ell^2}{2}\begin{bmatrix}0&1\\-1&0\\0&0\end{bmatrix}$가 직선에서 열 둘이 직교하며 크기가 같다(조건수 1). 이에 비해 $(\kappa,\phi)$는 $(u_y,-u_x)$ 평면의 극좌표여서 원점($\kappa=0$)에서 $\phi$가 정해지지 않는다. 극좌표의 원점 특이성과 같은 구조이며, 오일러 각의 짐벌 락(1.4, 2.8)처럼 물리적인 특이점이 아니라 매개변수화의 표현 특이점이다. 수치 구현에서는 $a<0.1$에서 위 급수를 사용해 $1-\cos a$의 상쇄를 피한다.

2.16.3.4 다구간 팔과 자코비안

구간 $i$의 끝 자세를 시작 좌표계에서 본 $g_i=(R_i,p_i)$로 두면 $n$개 구간의 끝 자세는 곱이다.

$$g=g_1g_2\cdots g_n,\qquad g_i=\bigl(e^{[\ell_iu_i]_\times},\ p(u_i,\ell_i)\bigr).$$

구간 길이를 변수로 두는 신장($\ell_i$ 변화)이 있으면 호 끝에서 $\partial p/\partial\ell=Re_3$(끝 접선)이다. 자코비안은 이 장에서 중심 차분($h=10^{-6}$, 2.8에서 오차가 최소였던 $10^{-5}$ 부근)으로 계산했다. 지수 사상의 닫힌 형식 미분은 다루지 않았다. 구간이 $n$개이고 구간마다 $u_x,u_y$ 둘이면 변수가 $2n$개이다. 끝 자세가 6차원이므로 변수 수가 같아지는 것은 $n=3$이고, 이 장의 두 구간 팔($n=2$)은 위치 3차원에 변수 4개(여유 1)이다. 구간 길이를 고정할 때 $n=3$의 자세 자코비안이 국소적으로 전 계수인지는 이 장이 확인하지 않았다.

2.16.3.5 힘줄 구동 — 길이는 곡률 벡터의 선형 함수

힘줄 $i$가 백본에서 반지름 $r_d$, 각도 $\theta_i$인 점을 백본과 나란히 지난다고 하자(경로가 백본과 같은 호의 동심원이고 마찰·늘어남이 없다). 힘줄이 지나는 호의 곡률 반지름은 $1/\kappa-r_d\cos(\phi-\theta_i)$이고 같은 각 $a$를 지나므로 길이는 다음이다.

$$l_i=\ell\bigl(1-\kappa r_d\cos(\phi-\theta_i)\bigr)=\ell\bigl(1-r_d(u_y\cos\theta_i-u_x\sin\theta_i)\bigr).$$

$l_i$는 $(u_x,u_y)$의 선형 함수이므로 힘줄 길이와 곡률 벡터 사이에는 특이점이 없다. 힘줄이 $N\ge3$개이고 각도가 균등하면 $A=[\cos\theta_i\ \ \sin\theta_i]$의 $A^\top A=(N/2)I$이다. 길이 변화 $\Delta_i=\ell-l_i$에서 최소제곱 해는 다음이다.

$$\begin{bmatrix}u_y\\ -u_x\end{bmatrix}=\frac{2}{N\ell r_d}\sum_{i=1}^{N}\Delta_i\begin{bmatrix}\cos\theta_i\\ \sin\theta_i\end{bmatrix},\qquad \kappa=\lVert u\rVert,\quad\phi=\operatorname{atan2}(-u_x,u_y).$$

힘줄 3개($120^\circ$ 간격)에서는 길이 변화 3개가 곡률 벡터(2개)로만 정해지므로 $\sum_i\Delta_i=0$이라는 구속이 하나 생긴다. 길이에 독립 가우스 잡음 $\sigma$가 더해지면 최소제곱 해의 각 성분의 표준편차는 $\sigma\sqrt{2/N}/(\ell r_d)$이고, 곡률 오차는 이 중 반지름 방향 성분이므로 평균 절댓값이 $0.798\,\sigma\sqrt{2/N}/(\ell r_d)$이다. 다구간 팔에서 먼 구간의 힘줄은 가까운 구간을 모두 통과하므로 길이가 구간별 합(경로 길이의 가산성)이 되지만, 이 장은 다구간 결합을 수치 검증하지 않았다.

2.16.3.6 하중을 받는 막대와 PCC의 한계

외팔보로 고정된 길이 $L$ 막대의 자유단에 고정 방향의 하중 $P$(초기 축에 수직)가 작용하면 위치 $s$의 굽힘 모멘트는 $P(x_L-x(s))$이므로 $EI\theta'=P(x_L-x(s))$이고, 미분하면 다음이다($\alpha=PL^2/EI$, $L=1$로 정규화).

$$\theta''=-\alpha\cos\theta,\qquad \theta(0)=0,\quad\theta'(1)=0,\qquad x'=\cos\theta,\quad y'=\sin\theta.$$

$\theta'(s)=\alpha(x_L-x(s))$이므로 곡률은 고정단에서 $\alpha x_L$로 최대이고 자유단에서 0이다. 선형 보 이론의 작은 처짐에서 $\theta_L\approx\alpha/2$, $y_L\approx\alpha/3$이다. 일정 곡률 호는 곡률이 일정하므로 이 분포를 표현하지 못한다. 근사에는 기준이 둘 있다. 끝 각을 맞추면 $\kappa L=\theta_L$이고, 끝점을 맞추면 $\kappa L$을 끝점과 가장 가까운 호로 고른다. 두 기준을 동시에 만족하지 못한다. 작은 하중에서 끝 각을 맞춘 호의 끝 처짐은 $\theta_L/2=\alpha/4$이므로 오차는 $\alpha/3-\alpha/4=\alpha/12$이다. 큰 처짐 외팔보의 엘라스티카는 타원 적분으로 풀리는 것으로 알려져 있다(Bisshopp·Drucker 1945, 본문은 읽지 못했다). 이 장은 슈팅법(RK4)으로 풀고 quad의 정확한 구적과 solve_bvp로 확인했다. 힘줄 구동에서 하중 전달이 일정 모멘트가 아니거나 자중·외력이 있으면 같은 오차가 생기며, 일반 힘줄 경로와 외부 하중에서 코세라 정역학을 푸는 방법은 Rucker·Webster(2011)가 다룬 것으로 알려져 있다(본문은 읽지 못했다).

2.16.4 알고리즘

PCC 순기구학(κ, φ, ℓ):  a ← κℓ;  p ← ((1−cos a)/κ)(cosφ, sinφ, 0) + (sin a/κ) e3;  R ← exp(a [n]×)
곡률 벡터 형식(ux, uy, ℓ):  a ← ℓ‖u‖;  a < 0.1 이면 h, s를 급수로;  p ← (uy ℓ² h, −ux ℓ² h, ℓ s);  R ← exp([ℓu]×)
다구간:                  g ← g1 g2 … gn
힘줄 → 곡률 벡터(Δi):    (uy, −ux) ← (2 / (N ℓ rd)) Σ Δi (cosθi, sinθi)
역기구학(목표 p*):       반복:  e ← p* − p(x);  Δx ← Jᵀ (J Jᵀ + λ² I)⁻¹ e;  ‖Δx‖∞ ≤ 5 로 자름;  x ← x + Δx
엘라스티카(α):           c ← θ'(0) 를 이분법으로 찾는다: θ'' = −α cos θ 를 RK4로 적분해 θ'(1) = 0

2.16.5 풀이 예제 — 닫힌 형식 검증, 힘줄 변환, 매개변수화, 역기구학, 엘라스티카

결론부터 적으면 다음과 같다. ① 닫힌 형식 끝 자세가 상미분방정식 RK4 적분과 $5.5\times10^{-14}$, exp_screw와 $6.7\times10^{-16}$, 곡률 벡터 형식과 $8.9\times10^{-16}$ 안에서 같고, 두 구간의 곱이 exp_screw 곱과 $4.4\times10^{-16}$ 안에서 같다. ② 힘줄 길이는 곡률 벡터의 선형 함수이고(최대 차이 $2.8\times10^{-17}$ m) 왕복 오차가 $2.8\times10^{-14}$이며 길이 잡음의 전파가 예측식 $0.798\,\sigma\sqrt{2/N}/(\ell r_d)$의 $3.5\,\%$ 안에서 맞는다. ③ $(a,\phi)$의 조건수가 $a=10^{-3}$에서 $10^3$이고 $(\beta_x,\beta_y)$는 $1.000$이다. ④ 역기구학이 곡률 벡터에서 200/200(중앙값 7회), $(\kappa,\phi)$에서 198/200(중앙값 12회)이며 SciPy trf는 직선 시작 $(\kappa,\phi)$에서 0/200이다. ⑤ 엘라스티카 PCC 근사 오차는 끝 각 맞춤이 작은 하중에서 $\alpha/12$, $\alpha=2$에서 $0.137L$이고 끝점 맞춤이 $0.020L$(끝 각 $15.7^\circ$ 오차)이다. ⑥ SciPy·numpy와 $5.5\times10^{-14}$ 안에서 같다.

구현. pcc_tip·tip_u·pose_u·compose·chain·tendon_len·tendon_to_cfg·jac_fd·dls·ik. 아래 코드는 1.1의 matmul·solve_lu와 1.7의 exp_so3를 사용한다. 코세라 상미분방정식 적분, 엘라스티카 슈팅, 그림은 스크립트에 있다.

항목값
입력 1호 길이 $0.05\sim0.2$ m, 곡률 $1\sim30$ 1/m(굽힘각 최대 $6$ rad), 굽힘 방향 임의, 40개(시드 59). 두 구간 곱은 길이 $0.1$ m 두 구간 100개
입력 2힘줄: 반지름 $r_d=5$ mm, 호 길이 $\ell=100$ mm, 3개($0,120^\circ,240^\circ$)·4개($0,90^\circ,180^\circ,270^\circ$). 왕복 시험은 곡률 $0.5\sim30$ 1/m, 잡음 시험은 $5\sim25$ 1/m. 잡음 $\sigma=1,10,100$ μm(3개), $10$ μm(4개), 각 500개
입력 3매개변수화: 한 구간 $\ell=0.1$ m, 굽힘 방향 $\phi=0.7$ rad, 굽힘각 $a=10^{-3},\dots,3$ rad. 자코비안은 중심 차분 $h=10^{-6}$
입력 4역기구학: 구간 길이 $0.1$ m 두 구간, 변수 4개, 위치 목표 3차원. 목표는 곡률 벡터 성분이 $\pm15$ 1/m인 무작위 형상 200개의 끝점(도달 가능). 시작은 직선($u=0$ 또는 $\kappa=0,\phi=0$) 또는 작은 곡률($\kappa=0.5$ 1/m, 무작위 $\phi$). 감쇠 $\lambda=10^{-4}$, $10^{-2}$, 허용 오차 $10^{-6}$ m, 최대 300회, 변수 변화 상한 5
입력 5엘라스티카: $\alpha=0.1,0.5,1,2,5$($L=1$). RK4 4,000걸음, 슈팅 이분법 80회
입력 6라이브러리 대조: 입력 1과 같은 범위의 형상 100개(시드 591), 입력 5, 입력 2의 최소제곱 400개, 입력 3의 특이값, 입력 4의 목표 200개(시드 59)
from math import sin, cos, sqrt, atan2, hypot

def pcc_tip(kappa, phi, ell):
    """등곡률 호의 끝점(곡률 kappa, 방향 phi, 길이 ell)"""
    if abs(kappa) < 1e-12:
        return [0.0, 0.0, ell]
    a = kappa * ell
    c = (1 - cos(a)) / kappa
    return [cos(phi) * c, sin(phi) * c, sin(a) / kappa]

def tip_u(ux, uy, ell):
    """곡률 벡터 (ux, uy)의 끝점. kappa = 0에서도 정칙"""
    a = ell * hypot(ux, uy)
    if a < 0.1:        # 급수로 1 - cos a 의 상쇄를 피한다
        h = 0.5 - a**2 / 24 + a**4 / 720 - a**6 / 40320
        s = 1 - a**2 / 6 + a**4 / 120 - a**6 / 5040
    else:
        h, s = (1 - cos(a)) / a**2, sin(a) / a
    return [uy * ell**2 * h, -ux * ell**2 * h, ell * s]

def pose_u(ux, uy, ell):
    """끝 자세 (R, p), R = exp([ell u]x), u = (ux, uy, 0)"""
    R = exp_so3([ell * ux, ell * uy, 0.0])
    return R, tip_u(ux, uy, ell)

def compose(A, B):
    R = matmul(A[0], B[0])
    p = [sum(A[0][i][k] * B[1][k] for k in range(3))
         + A[1][i] for i in range(3)]
    return R, p

def chain(poses):
    I3 = [[1.0, 0, 0], [0, 1.0, 0], [0, 0, 1.0]]
    T = (I3, [0.0, 0.0, 0.0])
    for P in poses:
        T = compose(T, P)
    return T

def tendon_len(kappa, phi, ell, rd, ang):
    """힘줄 길이 l_i = ell (1 - kappa rd cos(phi - ang_i))"""
    return [ell * (1 - kappa * rd * cos(phi - a))
            for a in ang]

def tendon_to_cfg(L, ell, rd, ang):
    """힘줄 길이 -> (kappa, phi): 최소제곱 정규방정식"""
    D = [ell - l for l in L]
    cc = sum(cos(a) ** 2 for a in ang)
    cs = sum(cos(a) * sin(a) for a in ang)
    ss = sum(sin(a) ** 2 for a in ang)
    r = [sum(d * cos(a) for d, a in zip(D, ang)),
         sum(d * sin(a) for d, a in zip(D, ang))]
    a, b = solve_lu([[cc, cs], [cs, ss]], r)[0]
    return hypot(a, b) / (ell * rd), atan2(b, a)

def jac_fd(f, x, h=1e-6):
    cols = []
    for i in range(len(x)):
        xp, xm = list(x), list(x)
        xp[i] += h
        xm[i] -= h
        d = zip(f(xp), f(xm))
        cols.append([(a - b) / (2 * h) for a, b in d])
    return [[c[i] for c in cols] for i in range(3)]

def dls(J, e, lam):
    n = len(J[0])
    A = [[sum(J[i][k] * J[j][k] for k in range(n))
          for j in range(3)] for i in range(3)]
    for i in range(3):
        A[i][i] += lam**2
    y = solve_lu(A, e)[0]
    return [sum(J[i][k] * y[i] for i in range(3))
            for k in range(n)]

def ik(f, x0, goal, lam=1e-4, tol=1e-6,
       nmax=300, smax=5.0):
    x = list(x0)
    for it in range(nmax):
        e = [g - p for g, p in zip(goal, f(x))]
        if sqrt(sum(v * v for v in e)) < tol:
            return x, it, True
        dx = dls(jac_fd(f, x), e, lam)
        big = max(max(abs(v) for v in dx), 1e-300)
        s = min(1.0, smax / big)
        x = [a + s * b for a, b in zip(x, dx)]
    return x, nmax, False

① 일정 곡률 호의 닫힌 형식.

등곡률 모형(호 길이 0.05~0.2 m, 곡률 1~30 1/m, 굽힘 방향 임의)최대 오차
닫힌 형식 끝 자세 대 코세라 운동학 상미분방정식의 RK4 적분(4,000걸음, 40개)5.5e-14
닫힌 형식 대 exp_screw(2.4, 스크루 $S=(n;\ e_3/\kappa)$, $\theta=\kappa\ell$)6.7e-16
곡률 벡터 형식 pose_u 대 닫힌 형식(회전·위치)8.9e-16
tip_u 대 반각 공식 $1-\cos a=2\sin^2(a/2)$(굽힘각 $10^{-8}\sim0.2$ rad, 급수 이음매 0.1 rad 양쪽 포함)2.7e-15
두 구간의 곱 $T_1T_2$ 대 exp_screw 곱(위치·회전, 100개)4.4e-16
$\partial p/\partial\ell$(중심 차분) 대 $Re_3$(호 끝의 접선)1.4e-10

닫힌 형식은 코세라 운동학 상미분방정식($R'=R[u]_\times$, $p'=Re_3$)의 RK4 적분과 같고, 곡률 중심을 지나는 순수 회전 스크루의 지수곱과 같으며, 곡률 벡터 형식과 같다. 곡률 벡터 형식의 급수 이음매(굽힘각 $0.1$ rad)에서 반각 공식 $1-\cos a=2\sin^2(a/2)$와의 차이가 $2.7\times10^{-15}$이다. 신장 도함수는 $\partial p/\partial\ell=Re_3$와 $1.4\times10^{-10}$(중심 차분 오차 수준)로 같다.

② 힘줄 변환.

힘줄 구동($r_d=5$ mm, 호 길이 100 mm)값
왕복 $(\kappa,\phi)\to l_i\to(\kappa,\phi)$ 최대 오차(힘줄 3개 · 4개, 200개)2.8e-14 · 2.8e-14
세 힘줄의 $\sum(\ell-l_i)$ 최대(구속, 100개)2.8e-17 m
$l_i=\ell(1-r_d(u_y\cos\theta_i-u_x\sin\theta_i))$ 대 $l_i(\kappa,\phi)$ 최대 차이(100개)2.8e-17 m
힘줄 3개, 길이 잡음 $\sigma=1$ μm: 곡률 오차 평균(측정 · 예측) · 끝점 오차 평균0.0013 · 0.0013 1/m · 0.009 mm
힘줄 3개, 길이 잡음 $\sigma=10$ μm: 곡률 오차 평균(측정 · 예측) · 끝점 오차 평균0.0134 · 0.0130 1/m · 0.089 mm
힘줄 3개, 길이 잡음 $\sigma=100$ μm: 곡률 오차 평균(측정 · 예측) · 끝점 오차 평균0.1257 · 0.1303 1/m · 0.904 mm
힘줄 4개, 길이 잡음 $\sigma=10$ μm: 곡률 오차 평균(측정 · 예측) · 끝점 오차 평균0.0110 · 0.0113 1/m · 0.079 mm

힘줄 3개에서 $\sum(\ell-l_i)=0$이 $10^{-17}$ 안에서 성립한다. 같은 길이 잡음에서 힘줄 4개가 3개보다 곡률 오차가 작다($\sigma=10$ μm에서 $0.0110$ 대 $0.0134$ 1/m). 측정 평균은 예측식과 네 경우 모두 $3.5\,\%$ 이내로 맞는다(500개 표본의 변동 범위로 본다). 끝점 오차는 곡률 오차에 거의 비례한다($\sigma=1,10,100$ μm에서 $0.009,\ 0.089,\ 0.904$ mm). 이 값은 힘줄 길이 측정 잡음만 넣은 모형 안의 전파이다. 힘줄의 마찰·늘어남·경로 이탈은 모형에 없으며 실제 팔의 정확도를 뜻하지 않는다.

③ 매개변수화의 특이성.

굽힘각 $a=\kappa\ell$ (rad)$(a,\phi)$의 $\sigma_{\min}$$(a,\phi)$의 $\sigma_{\max}/\sigma_{\min}$$(\beta_x,\beta_y)$의 $\sigma_{\min}$$(\beta_x,\beta_y)$의 $\sigma_{\max}/\sigma_{\min}$
0.0015.000e-051e+035.000e-021.000
0.015.000e-041005.000e-021.000
0.14.996e-03104.996e-021.001
0.52.448e-022.034.897e-021.014
14.597e-021.064.597e-021.058
24.469e-021.583.540e-021.262
33.870e-021.712.211e-021.750
10−3 10−2 10−1 100 1 10 100 1000 굽힘각 a = κℓ (rad) 자코비안 조건수 (a,φ) (βx,βy)
한 구간 팔($\ell=0.1$ m, $\phi=0.7$ rad)의 끝점 자코비안(3×2) 조건수와 굽힘각 $a=\kappa\ell$. $(a,\phi)$ 매개변수는 직선에 가까울수록 $1/a$로 커지고, 곡률 벡터 $(\beta_x,\beta_y)=\ell(u_x,u_y)$는 $0.001\sim3$ rad에서 $1.75$ 이하이다.

$(a,\phi)$ 매개변수에서 $\partial p/\partial\phi$의 크기가 $\ell a/2$이므로 $a=10^{-3}$에서 $\sigma_{\min}=5.0\times10^{-5}$ m/rad($=\ell a/2$)이고 조건수가 $1/a$로 커진다($10^{3}$). 곡률 벡터 $\beta=\ell u$에서는 $\sigma_{\min}$이 직선에서 $\ell/2=0.05$ m/rad이고 조건수가 $1.000$이다. 두 매개변수화의 조건수는 $a\approx1$에서 비슷해지고($1.06$ 대 $1.058$) 큰 굽힘각에서는 둘 다 $2$ 안팎이다($a=3$에서 $1.71$ 대 $1.75$). 자코비안의 단위가 섞이면(1/m와 rad) 조건수가 단위에 따라 달라지므로 굽힘각 $a=\kappa\ell$로 무차원화해서 비교했다.

④ 두 구간 팔의 역기구학.

매개변수 · 시작감쇠 $\lambda$수렴(200개 중)반복 중앙값90분위최대
$(u_x,u_y)$ · 직선0.000120071011
$(\kappa,\phi)$ · 직선0.00011981228138
$(\kappa,\phi)$ · 작은 곡률(무작위 $\phi$)0.00011941529121
$(u_x,u_y)$ · 직선0.0189209274288
$(\kappa,\phi)$ · 직선0.0197216275292
$(\kappa,\phi)$ · 작은 곡률(무작위 $\phi$)0.0196209281294

곡률 벡터 매개변수는 직선에서 시작해 200개 모두 최대 11회에 수렴하고(90분위 10회), $(\kappa,\phi)$는 198개(직선 시작)·194개(작은 곡률 시작)가 수렴하며 최대 138회·121회가 걸린다. 직선에서 $(\kappa,\phi)$의 $\phi$ 열이 0이라는 점이(③) 이 느린 수렴과 일치하는 설명이다. 곡률이 조금 생긴 뒤에야 방향 열이 살아난다. 다만 원인을 분리해 시험하지는 않았다. $\lambda=10^{-2}$는 이 팔의 자코비안 특이값(구간 하나에서 $\ell^2/2=5\times10^{-3}$)보다 커서 세 방법 모두 반 이상이 300회 안에 수렴하지 못한다. 감쇠는 자코비안의 크기(단위)에 맞춰 정해야 한다. 수렴 판정과 상한은 입력 4의 값이며 다른 설정에서는 숫자가 달라진다.

⑤ 끝 하중을 받는 막대의 엘라스티카와 PCC 근사.

끝 하중 $\alpha=PL^2/EI$끝 각 $\theta_L$ ($^\circ$)끝점 $(x,y)/L$끝 각 맞춤 PCC 오차$/L$끝점 맞춤 PCC 오차$/L$끝점 맞춤의 끝 각 오차 ($^\circ$)
0.12.86(0.9993, 0.0333)0.00830.00010.95
0.514.01(0.9841, 0.1621)0.04090.00184.69
126.43(0.9436, 0.3017)0.07810.00658.95
244.79(0.8394, 0.4935)0.13690.019815.70
569.64(0.6124, 0.7138)0.23820.057427.13
0.1 0.5 1 2 5 10−5 10−4 10−3 10−2 10−1 100 끝 하중 α = PL2/EI PCC 끝점 오차 / L 끝 각 맞춤 끝점 맞춤
끝 하중 $\alpha=PL^2/EI$에 따른 PCC 근사의 끝점 오차$/L$. 끝 각 맞춤은 작은 하중에서 $\alpha/12$에 가깝게 늘고, 끝점 맞춤은 훨씬 작지만 끝 각이 틀린다.

고정단 곡률 $\theta'(0)=\alpha x_L$이 $1.4\times10^{-14}$ 안에서 성립한다(모멘트 평형 조건). 끝 각을 맞춘 PCC의 끝점 오차는 작은 하중에서 $\alpha/12$에 가깝다(측정 $0.0083$ 대 $\alpha/12=0.0083$($\alpha=0.1$), $0.0409$ 대 $0.0417$($\alpha=0.5$)). 하중이 커지면 $\alpha=5$에서 $0.238L$이 된다. 끝점을 맞춘 PCC는 끝점 오차가 훨씬 작지만($\alpha=2$에서 $0.020L$, 끝 각 맞춤의 $1/7$) 끝 각이 $15.7^\circ$, $\alpha=5$에서 $27.1^\circ$ 틀려, 이 팔 끝에 달린 도구의 방향 오차가 된다. 예를 들어 호 길이 $L=100$ mm이면 $\alpha=2$의 끝점 오차는 $2.0$ mm이다. 선형 보 이론은 $y_L=\alpha/3$이므로 $\alpha=1$에서 $0.333L$이고 정확한 값은 $0.302L$이다(선형 이론이 $10.5\,\%$ 크다). 곡률이 고정단에서 $\alpha x_L=1.68$($\alpha=2$)이고 평균 곡률 $\theta_L=0.78$의 $2.15$배이다.

⑥ 라이브러리 대조(실행 2026-11-03). SciPy 1.18.1의 solve_ivp(DOP853)·linalg.expm을 닫힌 형식과, quad·brentq·solve_bvp를 엘라스티카 슈팅 해와, numpy 2.5.4의 lstsq·svd를 힘줄 변환과 자코비안 특이값과, SciPy least_squares(trf)를 역기구학과 같은 입력에서 비교했다. 스크립트는 robotics/fig-src/2.16-libcheck.py, 출력은 robotics/fig-src/data/2.16-libcheck-output.txt에 있다. 이 장은 연속체 로봇 전용 라이브러리를 대조하지 않았다 (확인 필요).

비교결과
닫힌 형식 끝 자세 대 SciPy solve_ivp(DOP853, rtol 1e-13)로 적분한 코세라 운동학 상미분방정식(회전·위치, 100개)5.5e-14
닫힌 형식 끝 자세 대 linalg.expm($[\,\hat u\ e_3;\,0\ 0\,]\ell$, 100개)2.5e-14
엘라스티카 슈팅 해(끝 각·끝점, 5개 하중) 대 quad·brentq 정확한 구적3.1e-15
엘라스티카 슈팅 해 대 solve_bvp(tol 1e-11)1.1e-14
힘줄 최소제곱 tendon_to_cfg 대 numpy lstsq(잡음 포함 400개)2.1e-14
자코비안 특이값 대 numpy svd(14개, 상대 차이)4.2e-16
두 구간 팔 역기구학, SciPy least_squares(trf), $(u_x,u_y)$ · 직선 시작 200개: 수렴 개수 · 함수 평가 중앙값200 · 48
같은 조건, $(\kappa,\phi)$ · 직선 시작: 수렴 개수 · 비수렴 200개 중 $\kappa_2=0$에 머문 수0 · 200
그 비수렴 종점의 잔차 중앙값 · $\lVert J^\top e\rVert$ 최대 · 직선 시작점의 $\lVert J^\top e\rVert$ 중앙값12.4 mm · 3.6e-05 · 1.2e-03
같은 조건, $(\kappa,\phi)$ · 작은 곡률 시작($\kappa=0.5$ 1/m, 무작위 $\phi$): 수렴 개수 · 함수 평가 중앙값200 · 54

닫힌 형식이 SciPy의 상미분방정식 적분·행렬 지수와 $5.5\times10^{-14}$ 안에서, 엘라스티카 슈팅 해가 정확한 구적·solve_bvp와 $10^{-14}$ 안에서 같다. 힘줄 최소제곱이 numpy와 $2.1\times10^{-14}$ 안에서 같고 특이값이 $4.2\times10^{-16}$(상대) 안에서 같다. 역기구학은 SciPy에서 같은 경향이 나타난다. 직선 시작의 $(\kappa,\phi)$는 200개 모두 비수렴이고 종점이 모두 $\kappa_2=0$(구간 2가 직선)이며 기울기 노름이 시작점 중앙값의 $1/30$ 미만($3.6\times10^{-5}$ 대 $1.2\times10^{-3}$)이라 정류점에 가까운 곳에서 멈춘 것으로 본다. 곡률 벡터는 200개 모두 수렴하고 작은 곡률 시작의 $(\kappa,\phi)$도 200개 수렴한다. 이 결과는 SciPy의 trf와 이 장의 목표 분포·종료 조건에서의 결과이며 모든 솔버에 일반화하지 않는다.

한계. 비신장·무전단·비틀림 없는 구간별 일정 곡률의 순수 운동학이며 하중·중력·마찰·힘줄 늘어남은 모형에 없다. 엘라스티카는 평면의 끝 하중 하나만 시험했다. 다구간 힘줄 결합과 3차원 하중, 동심관·공압·자기 구동, 실험 데이터와의 비교는 다루지 않았다. 자코비안은 중심 차분이며 닫힌 형식 미분은 구현하지 않았다. 정확도 수치(mm)는 모두 모형 안의 계산이다.

견해: 힘줄 구동 연속체 팔의 기구학 모델링은 곡률 벡터 $(u_x,u_y)$를 구간 상태로 두고 PCC로 시작하며, 하중이 구간 안에서 크게 변하는 과제(끝 하중, 자중이 큰 긴 팔)에서는 코세라 정역학(3.10)이나 곡률 분포 모델로 올리는 것을 기본으로 둔다고 본다. 근거는 이 장의 계산에서 ① 힘줄 길이가 곡률 벡터의 정확히 선형 함수라서 구동 공간과 구간 상태 사이에 특이점이 없고, ② $(\kappa,\phi)$ 매개변수는 직선 근처에서 조건수가 $1/a$로 커져 SciPy trf가 200개 모두 멈췄으나 곡률 벡터는 모두 수렴했으며, ③ 끝 하중 $\alpha\ge1$에서 끝 각 맞춤 PCC의 끝점 오차가 $0.078L$ 이상이고 끝점 맞춤 PCC는 끝 각이 $8.9^\circ$ 이상 틀렸다는 점이다. 구간 전체가 거의 같은 굽힘 모멘트를 받는 팔(순수 모멘트에 가까운 힘줄 구동, 하중 작음)에서는 PCC의 오차가 작을 수 있고 이 장은 그 경우를 실험으로 확인하지 않았다.

2.16.6 설계 트레이드오프 — 모델의 선택

연속체 팔의 기구학 모델은 정확도와 계산량 사이에서 다음 중에서 고른다.

  • ① 구간별 일정 곡률(PCC). 닫힌 형식, 매개변수 구간당 2~3개, 계산이 가장 빠르다. 하중이 구간 안에서 변하면 틀린다(이 장의 엘라스티카 실험).
  • ② PCC + 신장·비틀림. 구간 길이와 $u_z$를 변수에 넣어 구동기 자유도를 맞춘다. 변수가 늘고 식별해야 할 모델 계수가 는다.
  • ③ 코세라 정역학. 평형 방정식(경계값 문제)을 풀어 하중 하의 형상을 구한다. 정확하나 반복 계산이라 느리고 구성 방정식의 계수를 알아야 한다(3.10).
  • ④ 곡률 분포(다항식·모드) 모델. 곡률을 낮은 차수 함수로 두어 PCC보다 넓은 형상을 표현한다. 모드 수에 따라 변수와 식별량이 늘어난다(25.3).
  • ⑤ 유한요소(FEM). 가장 일반적이고 느리다(25.4).
모델변수닫힌 형식하중 하 형상계산한계
① PCC구간당 2(+길이)있음없음(구성 방정식 필요)매우 빠름굽힘 모멘트가 일정해야 정확
② PCC + 신장·비틀림구간당 3~4있음(지수 사상)없음빠름계수 식별 필요
③ 코세라 정역학곡률 분포(연속)없음있음보통~느림구성 계수·경계값 문제
④ 곡률 분포 모델모드 계수부분부분빠름~보통모드 수 선택
⑤ FEM절점없음있음느림모델 작성·계산 비용

견해: 제어와 역기구학에는 ① 또는 ②를 기본으로 두고, 모델 오차가 문제 될 때 ④·③으로 올리는 것을 기본으로 둔다고 본다. 근거는 이 장에서 ①이 닫힌 형식이고 역기구학이 곡률 벡터 매개변수에서 수 회의 반복(중앙값 7회)으로 끝나는 반면, 하중이 있으면 ①의 오차가 $\alpha/12$로 하중에 비례해 커졌다는 점이다. 로봇 크기·재료·하중 수준에 따라 ①의 오차 허용치가 달라지며 이 장은 허용 오차를 정하지 않았다.

2.16.7 응용 축 비교

응용 축연속체 기구학이 맡는 일요구관련 장
산업·제조좁은 공간(엔진·터빈 내부 등) 검사용 연속체 팔의 끝점 지령(원리 수준)도달 거리, 곡률 한계25.6
물류·이동해당하는 고유 요구 없음——
도로 주행해당하는 고유 요구 없음——
서비스소프트 그리퍼·팔의 구간 모델(원리 수준)안전한 접촉25.2, 25.3
의료·헬스케어카테터·내시경형 로봇의 끝점 위치·방향 지령과 힘줄 변환정밀도, 곡률 한계32.6, 25.6
휴머노이드·범용연속체 매니퓰레이터의 모델(원리 수준)과소구동 모형25.3
필드좁은 틈·잔해 탐색용 연속체 팔(원리 수준)도달성, 자중25.6
국방·안보원리 수준에서 해당하는 고유 요구 없음——

이 표는 이 책의 정리이며 장별 요구는 다르다. 응용 사례의 성능 수치는 이 장이 확인하지 않았다.

2.16.8 관련 규격·프로토콜

문서발행무엇을 정하나상세 장
코세라·키르히호프 막대 운동학이 장의 식$p'=Re_3$, $R'=R[u]_\times$3.10
solve_ivp·quad·solve_bvp·least_squaresSciPy 1.18.1상미분방정식·구적·경계값·최소제곱1.18
lstsq·svdnumpy 2.5.4선형 최소제곱·특이값 분해1.1
수학 표기·기호표이 책SE(3)·지수 사상 표기A.2

연속체 로봇의 기구학 모델 자체를 규정하는 규격은 확인하지 못했다 (확인 필요).

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

연속체 로봇의 기구학 모델을 규정하는 법령·인증 요건은 확인하지 못했다. 의료 응용(카테터·내시경형 조작 로봇)은 의료기기 인허가의 대상이며 위치 정확도·재현성·곡률 한계가 시험 항목의 입력이 될 수 있다(39.20, 41.29). 이 장은 규정의 조항과 시험 방법을 확인하지 않았다 (확인 필요).

2.16.10 한계·유의점·미해결

  • PCC 가정. 구간의 곡률이 일정하다는 가정이며 하중이 구간 안에서 변하면 틀린다. 이 장의 하중 실험은 평면 끝 하중 하나이다.
  • 신장·전단·비틀림. 비신장·무전단·$u_z=0$만 다뤘다.
  • 힘줄 모형. 백본과 나란한 동심 경로, 마찰·늘어남 없음, 다구간 결합은 수치 검증하지 않았다.
  • 자코비안. 중심 차분이며 닫힌 형식 미분은 구현하지 않았다.
  • 역기구학 결과의 범위. 200개 목표·한 팔 기하·한 종료 조건에서의 결과이다. 다른 솔버·시작점·제약(곡률 한계)에서는 달라진다.
  • 구동 방식. 동심관(concentric tube)·공압·자기 구동은 다루지 않았다.
  • 실험 데이터. 모든 수치가 모의이며 실제 연속체 로봇의 정밀도·반복성을 주장하지 않는다. 보정(오차 모델·식별)은 2.17에서 다룬다.

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

체크포인트:

  1. $g'=g[V_b]$, $V_b=(u;e_3)$가 일정한 $u$에서 $g(\ell)=e^{[V_b]\ell}$임을 보이고, $u=\kappa(-\sin\phi,\cos\phi,0)$일 때 끝점이 닫힌 형식임을 유도하라.
  2. PCC 호가 곡률 중심을 지나는 스크루 축 $S=(n;\ e_3/\kappa)$(피치 0)의 지수곱과 같음을 보이라.
  3. $(\kappa,\phi)$의 자코비안 $\partial p/\partial\phi$의 크기가 $\ell a/2$이고 $(u_x,u_y)$에서는 열이 직교함을 작은 $a$ 전개로 보이라.
  4. 힘줄 $N\ge3$개가 균등 배치일 때 $A^\top A=(N/2)I$를 보이고 곡률 오차의 평균 크기 $0.798\,\sigma\sqrt{2/N}/(\ell r_d)$를 유도하라.
  5. 끝 하중 외팔보에서 $\theta'(0)=\alpha x_L$과 작은 하중의 $\theta_L\approx\alpha/2$, $y_L\approx\alpha/3$, 끝 각 맞춤 PCC의 오차 $\alpha/12$를 유도하라.

연구 질문:

  • 곡률 분포가 하중에 따라 변하는 긴 팔에서 구간 수와 모델 차수를 정확도·계산량으로 어떻게 정하는가?
  • 구간 간 힘줄 결합과 마찰이 있는 다구간 팔의 힘줄 길이 모델을 데이터로 식별할 때 식별 가능한 매개변수는 무엇인가(2.17)?

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

  • B. A. Jones, I. D. Walker, "Kinematics for multisection continuum robots," IEEE Transactions on Robotics 22(1), 43–55, 2006, doi:10.1109/tro.2005.861458 — 서지만 확인.
  • R. J. Webster III, B. A. Jones, "Design and kinematic modeling of constant curvature continuum robots: a review," The International Journal of Robotics Research 29(13), 1661–1683, 2010, doi:10.1177/0278364910368147 — 서지만 확인.
  • D. C. Rucker, R. J. Webster III, "Statics and dynamics of continuum robots with general tendon routing and external loading," IEEE Transactions on Robotics 27(6), 1033–1044, 2011, doi:10.1109/tro.2011.2160469 — 서지만 확인.
  • D. Trivedi, A. Lotfi, C. D. Rahn, "Geometrically exact models for soft robotic manipulators," IEEE Transactions on Robotics 24(4), 773–780, 2008, doi:10.1109/tro.2008.924923 — 서지만 확인.
  • J. Burgner-Kahrs, D. C. Rucker, H. Choset, "Continuum robots for medical applications: a survey," IEEE Transactions on Robotics 31(6), 1261–1280, 2015, doi:10.1109/tro.2015.2489500 — 서지만 확인.
  • R. E. D. Bisshopp, D. C. Drucker, "Large deflection of cantilever beams," Quarterly of Applied Mathematics 3(3), 272–275, 1945, doi:10.1090/qam/13360 — 서지만 확인.
  • SciPy 1.18.1(integrate.solve_ivp·quad·solve_bvp, linalg.expm, optimize.brentq·least_squares), numpy 2.5.4(linalg.lstsq·svd).

다음 장. 2.17은 기구학 보정(오차 모델·파라미터 식별·레이저 트래커·CMM 측정·절대 정밀도)을 다룬다. 이 장의 힘줄 반지름·구간 길이 같은 모델 계수도 식별과 보정의 대상이다.