제2부 기구학
2.19 기구 합성과 설계 최적화: 형태·치수 합성·성능 지수
2.19.1 이 장에서 배우는 것 / 선수 지식 / 특히 중요한 독자
이 장은 기구 해석의 역문제인 기구 합성을 다룬다. 해석은 기구가 주어졌을 때 운동을 구하고, 합성은 요구하는 운동·기능을 만족하는 기구를 구한다. 합성은 링크 수와 관절 연결을 정하는 형태 합성(구조 합성), 링크 치수를 정하는 치수 합성, 그리고 치수 합성의 해가 하나가 아니라 족(族)으로 나올 때 성능 지수로 하나를 고르는 설계 최적화로 나뉜다. 이 장은 단순 관절 평면 1자유도 운동 사슬의 열거(형태 합성), 4절 링크의 함수 생성(프로이덴슈타인 정밀점 합성과 구조 오차의 최소제곱·비선형 최적화), 세 자세에서의 운동 생성(외접원으로 얻는 4절 링크 족과 결함·성능에 따른 선별), 성능 지수(전달각 품질·구조 오차·조작성·전역 조건 지수)와 평면 2R 팔의 크기 결정(최소 길이와 파레토 경계)을 계산으로 확인한다. 이 장은 제2부(기구학)의 마지막 장이며, 링크 해석은 2.18, 조작성·특이점은 2.9, 도달성과 작업공간은 2.10, 보정은 2.17, 병렬 기구는 2.13·2.14, 설계 도구는 4.14와 이어진다.
배우는 것:
- 합성의 분류 — 형태·수·치수 합성, 함수·경로·운동 생성, 정밀점과 구조 오차.
- 형태 합성 — 그뤼블러 식에서 $j=(3n-4)/2$, 연결 그래프 열거, 강체 부분 사슬 제거, 동형 제거, 기구 반전.
- 함수 생성 — 프로이덴슈타인 식의 정밀점 3개 정확 해, 정밀점 배치, 방정식 오차 대 구조 오차 최소제곱.
- 운동 생성 — 세 자세에서 외접원으로 고정 피벗을 정하는 4절 링크 족, 순서·회로 결함, 성능 선별.
- 성능 지수 — 전달각 품질, 조작성, 조건수의 역수, 전역 조건 지수(GCI), 길이 비.
- 설계 최적화 — 단일 목적 최소 길이와 닫힌 식 검증, 다목적 파레토 경계, 국소 대 전역 최적화기.
선수 지식: 2.1(자유도·그뤼블러), 2.6(감쇠 최소제곱), 2.9(조작성·조건수), 2.18(4절 링크·전달각·그라쇼프).
특히 중요한 독자: 링크 기구와 로봇 팔의 치수를 정하는 기구 설계자, 합성 도구를 구현하는 개발자, 최적 설계를 처음 배우는 대학원생.
출처 방침. 기준 시점은 2026-11-05이다. 직접 읽은 자료: 이 장을 위해 직접 읽은 1차 문헌은 없다. 프로이덴슈타인 식에서 정밀점 선형 방정식, 외접원 운동 생성, 조작성·조건수·GCI의 식, 2R의 최소 길이 닫힌 식은 이 장이 정의에서 직접 유도하고 계산으로 확인했다. 이 장의 4절 링크 위치 식은 2.18의 식이다. 서지만 확인한 것(본문은 읽지 못했다): Freudenstein(1955, 4절 링크의 근사 합성), McCarthy·Soh(2011, 링크 설계의 기하), Gosselin·Angeles(1991, 로봇 기구 최적화를 위한 전역 성능 지수). 이들이 무엇을 보였는지에 관한 서술은 제목에서 알 수 있는 범위로 한정했다. 6링크 사슬이 둘(와트·스티븐슨)이라는 것과 8링크 16개·10링크 230개라는 열거 결과는 알려진 값이나 원문을 확인하지 못했다
(확인 필요). 이 장은 6링크까지 직접 열거했다. 링크 치수·요구 운동·측정 조건은 모두 이 장이 정한 예시이다. 수치는 모두 이 장의 순수 파이썬 계산이다.
2.19.2 개념 — 요구에서 기구로, 해의 족에서 하나로
결론부터 적으면 다음과 같다. 합성은 세 단계이다. 먼저 형태 합성이 링크 수와 관절 연결(운동 사슬)의 후보를 열거한다. 다음으로 치수 합성이 요구 운동(함수·경로·자세)을 정밀점 몇 개에서 정확히 만족하는 링크 치수를 구한다. 정밀점 수가 매개변수 수보다 적으면 해가 하나가 아니라 족이 되고, 많으면 근사 해(최소제곱)가 된다. 끝으로 설계 최적화가 족 안에서 전달각·구조 오차·치수 비·크기 같은 성능 지수로 하나를 고른다. 성능 지수 사이에는 대립이 있어 한 설계가 모두에서 최선이지 않다(파레토 경계). 이 장의 계산에서 구조 오차가 가장 작은 4절 링크는 전달각 품질이 $10.8^\circ$에 머물고, 전달각 품질을 $30^\circ$ 이상으로 요구하면 구조 오차가 $3.9^\circ$로 늘었다.
이 장의 계산 결과를 미리 적으면 다음과 같다. ① 링크 4개는 사슬 1개(4절 링크), 링크 6개는 사슬 2개(세 겹 링크가 서로 인접한 와트 사슬과 인접하지 않은 스티븐슨 사슬)이고 기구 반전은 각각 $2$·$3$개이며 networkx 그래프 아틀라스에서 같은 조건으로 센 값과 같다. ② 함수 $y=\log_{10}x$($x\in[1,10]$)를 4절 링크로 생성하는 3점 합성의 구조 오차 최대가 등간격 $0.361^\circ$·체비셰프 $0.435^\circ$이고, 구조 오차를 직접 최소화한 LM은 $0.052^\circ$(자료점 20개에서 $0.042^\circ$)이며 differential_evolution의 최소최대 해는 $0.039^\circ$이다. ③ 시작각 격자 탐색 360개에서 구조 오차 최소 $0.094^\circ$의 전달각 품질은 $10.8^\circ$, 품질 $\ge30^\circ$이면 구조 오차 $3.93^\circ$, $\ge45^\circ$이면 $5.12^\circ$이다. ④ 세 자세에서 커플러 점 둘을 무작위로 고른 4절 링크 4848개가 세 자세를 $1.8\times10^{-11}$ m 안에서 재현하고, 회로 결함이 없는 것이 $1886$개, 전달각 품질 $\ge30^\circ$·길이 비 $\le5$·최장 링크 $\le1.2$ m를 모두 만족하는 것이 $87$개이다. ⑤ 평면 2R의 GCI가 $\rho=l_2/l_1=1/\sqrt2$에서 최대 $0.436$이고 작업공간 넓이는 $\rho=1$에서 최대여서 두 목표의 파레토 집합이 $\rho\in[0.71,1]$이다. ⑥ 도달·조작성 제약 아래 최소 전체 길이가 닫힌 식 $L^*=\max_i\sqrt{r_i^2+4w_{\min}^2/r_i^2}$와 $2.4\times10^{-15}$ m 안에서 같고 SLSQP·차분 진화와 $2.2\times10^{-13}$ m 안에서 같다.
2.19.3 원리
2.19.3.1 합성의 분류와 정밀점
합성 문제는 두 축으로 분류된다. 무엇을 정하는가에 따라 ① 형태 합성(링크 수·관절 종류·연결), ② 수 합성(링크·관절의 수), ③ 치수 합성(링크 길이·각 같은 연속 매개변수)이다. 무엇을 만족시키는가에 따라 ① 함수 생성(입력 각과 출력 각의 함수 관계 $y=f(x)$), ② 경로 생성(커플러 점의 궤적), ③ 운동 생성(커플러 강체의 자세 열, 강체 유도)이다. 요구 운동이 만족되는 점을 정밀점이라 한다. 정밀점에서 요구와 합성 기구의 차이는 0이고 그 사이의 차이가 구조 오차이다. 정밀점의 수는 자유 매개변수의 수로 제한된다. 이 장의 함수 생성은 $L_1=1$로 정규화한 링크 길이 3개(비)와 입력·출력 시작각 2개로 매개변수가 5개이므로 일반적으로 정밀점 5개까지가 매개변수 개수의 한계이다(5점 합성은 비선형 방정식이며 이 장은 시험하지 않았다). 시작각을 고정하면 프로이덴슈타인 식이 $(K_1,K_2,K_3)$에 선형이어서 정밀점 3개에서 닫힌 해가 나온다.
2.19.3.2 형태 합성 — 운동 사슬의 열거
링크를 정점, 관절을 간선으로 하는 그래프로 사슬을 표현한다. 링크 $n$개, 1자유도 관절 $j$개로 가동도가 1인 평면 폐연쇄는 $3(n-1)-2j=1$에서 $j=(3n-4)/2$이므로 $n$은 짝수이다($n=4$: $j=4$, $n=6$: $j=7$, $n=8$: $j=10$). 후보 그래프는 다음 조건으로 거른다. ① 연결 그래프이다. ② 모든 링크에 관절이 둘 이상 있다(차수 $\ge2$). ③ 강체 부분 사슬이 없다. 정점 집합 $S$($k\ge2$개, 전체가 아닌)와 그 안의 간선 수 $e$에서 모빌리티 $3(k-1)-2e\le0$이면 그 부분이 잠겨 사슬이 퇴화한다(삼각형은 $k=3$, $e=3$으로 잠김). ④ 동형인 그래프는 하나로 센다(정점 순열 중 간선 목록이 최소인 것을 표준형으로 삼는다). 한 사슬에서 어느 링크를 고정하느냐에 따라 다른 기구가 되며, 이를 기구 반전이라 하고 고정할 링크가 자기 동형 사상으로 서로 옮겨지면 같은 기구이므로 정점의 자기 동형 궤도 수가 서로 다른 반전의 수이다. 이 장은 $n=4$, $6$을 직접 열거했다. $n=8$의 후보 간선 조합이 $\binom{28}{10}\approx1.3\times10^7$이어서 이 장의 순수 파이썬 열거로는 시도하지 않았다.
2.19.3.3 함수 생성 — 프로이덴슈타인 정밀점 합성
입력 변수 $x$와 출력 $y=f(x)$를 각으로 대응시킨다. $\theta_2=\theta_{2s}+\dfrac{x-x_0}{x_1-x_0}\Delta\theta_2$, $\theta_4=\theta_{4s}+\dfrac{f(x)-f(x_0)}{f(x_1)-f(x_0)}\Delta\theta_4$ ($\theta_{2s}$, $\theta_{4s}$는 시작각, $\Delta\theta_2$, $\Delta\theta_4$는 각 범위)이다. 2.18의 프로이덴슈타인 식 $K_1\cos\theta_4-K_2\cos\theta_2+K_3=\cos(\theta_4-\theta_2)$는 $(K_1,K_2,K_3)$에 선형이므로 정밀점 $(\theta_2^{(i)},\theta_4^{(i)})$가 3개이면 3×3 선형계를 풀어 정확한 해를 얻고, $L_1=1$로 두고 링크 길이를 다음에서 구한다.
$$L_2=\frac1{K_1},\quad L_4=\frac1{K_2},\quad L_3=\sqrt{1+L_2^2+L_4^2-2L_2L_4K_3}.$$
정밀점이 3개보다 많으면 같은 식을 최소제곱(정규방정식)으로 푼다. 이 방정식 오차 최소제곱은 선형이지만 최소화하는 양이 방정식의 잔차이지 출력 각 오차(구조 오차)가 아니다. 구조 오차 $e(x)=\theta_4^{\mathrm{기구}}(\theta_2(x))-\theta_4^{\mathrm{요구}}(x)$를 직접 최소화하면 비선형이며 감쇠 최소제곱(LM, 2.6)으로 $(L_2,L_3,L_4,\theta_{2s},\theta_{4s})$를 푼다. 정밀점의 배치(구간 양 끝과 중간의 등간격, 또는 구간 안쪽의 체비셰프 점 $x_i=\frac{x_0+x_1}{2}-\frac{x_1-x_0}{2}\cos\frac{(2i-1)\pi}{2n}$)에 따라 구조 오차가 달라진다. 조립 모드는 두 가지이며 정밀점을 재현하는 모드를 고른다.
2.19.3.4 운동 생성 — 세 자세와 외접원
커플러 강체의 세 자세 $P_k=(x_k,y_k,\phi_k)$가 주어졌다고 하자. 커플러에 붙은 점 $a$(커플러 좌표)의 세 위치 $A_k=(x_k,y_k)+R(\phi_k)a$를 지나는 원의 중심에 고정 피벗 $O_2$를 두고 같은 방식으로 점 $b$에서 $O_4$를 정하면, 크랭크 $O_2A$·로커 $O_4B$의 길이가 세 자세에서 변하지 않고 커플러 $AB$의 길이는 $\lvert a-b\rvert$로 일정하므로 이 4절 링크가 세 자세를 정확히 지난다. 점 $a$, $b$는 커플러 평면에서 자유롭게 고를 수 있으므로 해는 4개 매개변수의 연속 족이다. 족에서 하나를 고르려면 다음 결함·성능을 거른다. ① 순서 결함: 크랭크가 자세 1→2→3에서 한 방향으로 회전하지 않으면 자세를 요구한 순서로 지나지 못한다. ② 회로(분기) 결함: 세 자세가 서로 다른 조립 모드에 있으면 하나의 연속 운동으로 이어지지 않는다. ③ 경로 전체의 조립 가능성과 전달각 품질 $q=\min(\mu,\pi-\mu)$(2.18의 $\mu$는 0 또는 $\pi$에 가까울수록 힘 전달이 막히는 토글에 가깝다), 링크 길이 비, 설치 공간(최장 링크).
2.19.3.5 성능 지수
기구 성능은 하나의 수로 정해지지 않으며 용도에 따라 지수를 고른다. 이 장에서 사용한 지수는 다음이다.
- 전달각 품질 $q=\min(\mu,\pi-\mu)$의 경로 최솟값(큰 것이 좋다).
- 구조 오차 최대·RMS(작은 것이 좋다).
- 링크 길이 비 최장/최단(작은 것이 좋다)과 최장 링크의 크기.
- 조작성 $w=\sqrt{\det(JJ^\top)}$(2.9). 평면 2R의 위치 조작성은 $w=l_1l_2\lvert\sin\theta_2\rvert$로 도달 거리 $r$를 변으로 하는 삼각형(변 $l_1$, $l_2$, $r$) 넓이의 2배이다.
- 조건수의 역수 $1/\kappa=\sigma_{\min}/\sigma_{\max}$(1이 등방성).
- 전역 조건 지수(GCI) $\mathrm{GCI}=\int(1/\kappa)\,dW\big/\int dW$($W$는 작업공간, Gosselin·Angeles 1991이 로봇 기구의 최적 설계를 위해 제안한 것으로 알려져 있다. 본문은 읽지 못했다). 평면 2R에서 $dW=l_1l_2\lvert\sin\theta_2\rvert\,d\theta_1d\theta_2$이고 $1/\kappa$는 $\theta_2$와 $\rho=l_2/l_1$만의 함수여서 $\mathrm{GCI}(\rho)=\frac12\int_0^\pi\frac1{\kappa(\theta_2;\rho)}\sin\theta_2\,d\theta_2$이다.
- 작업공간 넓이 평면 2R은 $\pi[(l_1+l_2)^2-(l_1-l_2)^2]=4\pi l_1l_2$.
2.19.3.6 최적화 문제의 정식화
설계 변수 $x$(링크 길이·각), 목적 $f(x)$, 부등식 제약 $g(x)\le0$으로 적는다. 목적이 여럿이면 두 방식이 있다. 가중합·$\varepsilon$-제약은 목적을 하나로 환원하고, 파레토 최적 집합은 어느 목적도 다른 목적을 해치지 않고는 개선할 수 없는 해의 집합이다. 이 장의 첫 최적화 문제는 평면 2R 팔의 크기 결정이다. 도달해야 하는 거리 $r_i$ 집합에서 조작성 $w(r_i)\ge w_{\min}$를 만족하면서 전체 길이 $L=l_1+l_2$를 최소화한다. $w$는 변 $l_1$, $l_2$, $r$인 삼각형의 넓이의 2배이므로 $L$과 $r$가 고정되면 이등변($l_1=l_2$)에서 최대이고 $w=\frac r2\sqrt{L^2-r^2}$이다. 따라서 $w\ge w_{\min}$은 $L^2\ge r^2+4w_{\min}^2/r^2$와 같고 모든 $r_i$를 만족하는 최소 길이는 다음이다.
$$L^*=\max_i\sqrt{r_i^2+\frac{4w_{\min}^2}{r_i^2}},\qquad l_1=l_2=\frac{L^*}2.$$
이 닫힌 식은 이동 범위·관절 한계·링크 질량 같은 제약이 없는 이 장의 문제에 한정된다. 최적화기는 크게 국소(기울기 기반: LM·SLSQP)와 전역(진화 계열: 차분 진화)으로 나뉜다. 국소 방법은 초기값에 따라 지역 최소로 멈출 수 있고 전역 방법은 호출 수가 많다.
2.19.4 알고리즘
운동 사슬 열거(n): j ← (3n − 4)/2; 모든 간선 j개 조합에 대해
차수 < 2 이거나 비연결이면 제외; 진부분 집합 S에서 2e(S) ≥ 3(|S| − 1)이면 제외; 표준형이 새로우면 저장
정밀점 합성(점 목록): (K1, K2, K3) ← 정규방정식 (AᵀA)K = Aᵀb (행 [cosθ4, −cosθ2, 1], b = cos(θ4 − θ2)); L2 ← 1/K1, L4 ← 1/K2, L3 ← √(1 + L2² + L4² − 2 L2 L4 K3)
구조 오차 LM: p ← (L2, L3, L4, θ2s, θ4s); 잔차 ← 요구 θ4 − 기구 θ4(자료점); LM 반복
외접원 운동 생성: A_k ← 자세 k의 점 a 위치; O2 ← circum(A1, A2, A3); B_k, O4 도 같게; 결함·성능 필터
GCI(ρ): (1/2) ∫₀^π (σ_min/σ_max)(θ2) sinθ2 dθ2 (심프슨)
2R 최소 길이: L* ← max_i sqrt(r_i² + 4 w² / r_i²), l1 = l2 = L*/2
2.19.5 풀이 예제 — 사슬 열거, 함수 생성, 운동 생성, GCI, 크기 결정
결론부터 적으면 다음과 같다. ① 사슬 수 $1$($n=4$)·$2$($n=6$), 기구 반전 $1$·$2$·$3$. ② 함수 생성의 구조 오차가 3점 정확 해에서 $0.36^\circ$·$0.44^\circ$, LM에서 $0.052^\circ$이다. ③ 구조 오차와 전달각 품질이 대립한다. ④ 운동 생성 후보 4848개 중 87개가 성능·결함·크기 조건을 모두 만족하고 그중 전달각 품질 최대는 $44.8^\circ$이다. ⑤ GCI가 $\rho=0.707$에서 최대이다. ⑥ 최소 길이가 닫힌 식과 같다. ⑦ numpy·SciPy·networkx 대조가 $10^{-7}$ 이하(주로 $10^{-13}$ 이하)에서 같다.
구현. chains·rigid_sub·canon·freud_K·lengths·circum·place·w2r·cond2r·gci. 아래 코드는 1.1의 solve_lu를 사용하고 2.18의 four_bar·trans_angle로 4절 링크를 푼다. 함수 생성 평가, 구조 오차 LM(lm_fit), 운동 생성 필터, 2R 크기 결정(size2r)·닫힌 식(lstar), 그림은 스크립트에 있다.
| 항목 | 값 |
|---|---|
| 입력 1 | 형태 합성: $n=4$, $6$, 단순 관절(관절 쌍마다 간선 하나), 가동도 1 |
| 입력 2 | 함수 생성: $y=\log_{10}x$, $x\in[1,10]$, 입력·출력 각 범위 $60^\circ$, 시작각 $\theta_{2s}=40^\circ$·$\theta_{4s}=95^\circ$(예시), 정밀점 3개(등간격 $x=1$, $5.5$, $10$ / 체비셰프) 또는 체비셰프 점 20개, 구조 오차 평가는 $x$ 200등분 |
| 입력 3 | 시작각 격자 탐색: $\theta_{2s},\theta_{4s}\in\{0^\circ,5^\circ,\dots,180^\circ\}$ 각 37개, 3점 등간격 합성, 조립 가능하고 링크 길이 비 5 이하인 것 |
| 입력 4 | 운동 생성: 커플러 세 자세 $(0,0,0^\circ)$, $(0.30,0.25,20^\circ)$, $(0.70,0.30,45^\circ)$ m, 커플러 점 $a$, $b$는 $[-0.5,0.5]^2$ 균등 추첨 5000쌍(시드 62). 전달각 품질 $\ge30^\circ$, 길이 비 $\le5$, 최장 링크 $\le1.2$ m는 예시 기준 |
| 입력 5 | GCI: $l_1=1$, $\rho=0.25\sim4$, 심프슨 2000구간(최대 탐색은 400구간, 격자 0.005) |
| 입력 6 | 크기 결정: 도달 거리 $r_i=0.10,\ 0.25,\ 0.40,\ 0.55,\ 0.70$ m, 요구 조작성 $w_{\min}=0.01\sim0.06$ m². 비 $\rho$ 격자 0.01(0.3~3.0)·길이 스캔 0.0005 m·이분법·황금분할 |
| 입력 7 | 라이브러리 대조: 입력 1~6과 같은 조건 |
from math import sin, cos, sqrt, atan2, hypot, pi
def connected(n, es):
adj = {i: set() for i in range(n)}
for a, b in es:
adj[a].add(b)
adj[b].add(a)
seen, st = {0}, [0]
while st:
for w in adj[st.pop()]:
if w not in seen:
seen.add(w)
st.append(w)
return len(seen) == n
def rigid_sub(n, es):
"""모빌리티 3(k-1) - 2e <= 0 인 진부분 사슬이 있는가"""
for mask in range(1, 2**n - 1):
vs = [i for i in range(n) if mask >> i & 1]
k = len(vs)
if k < 2:
continue
e = sum(1 for a, b in es
if mask >> a & 1 and mask >> b & 1)
if 2 * e >= 3 * (k - 1):
return True
return False
def canon(n, es):
"""동형 판정용 표준형: 모든 정점 순열 중 최소 간선 목록"""
return min(tuple(sorted(
tuple(sorted((p[a], p[b]))) for a, b in es))
for p in permutations(range(n)))
def chains(n):
"""링크 n개·관절 j=(3n-4)/2개 단순 관절 1자유도 사슬"""
j = (3 * n - 4) // 2
seen, out = set(), []
for es in combinations(combinations(range(n), 2), j):
deg = [0] * n
for a, b in es:
deg[a] += 1
deg[b] += 1
if min(deg) < 2 or not connected(n, es):
continue
if rigid_sub(n, es):
continue
key = canon(n, es)
if key not in seen:
seen.add(key)
out.append(key)
return out
def freud_K(pts):
"""정밀점 (th2, th4) 목록 -> K1, K2, K3 (정규방정식)"""
rows = [[cos(t4), -cos(t2), 1.0] for t2, t4 in pts]
rhs = [cos(t4 - t2) for t2, t4 in pts]
A = [[sum(r[i] * r[j] for r in rows) for j in range(3)]
for i in range(3)]
b = [sum(r[i] * y for r, y in zip(rows, rhs))
for i in range(3)]
return solve_lu(A, b)[0]
def lengths(K):
"""L1 = 1로 정규화한 링크 길이 (L1, L2, L3, L4)"""
K1, K2, K3 = K
L2, L4 = 1 / K1, 1 / K2
L3 = sqrt(1 + L2**2 + L4**2 - 2 * L2 * L4 * K3)
return (1.0, L2, L3, L4)
def circum(p, q, r):
"""세 점의 외접원 중심"""
ax, ay = p
bx, by = q
cx, cy = r
d = 2 * (ax * (by - cy) + bx * (cy - ay) + cx * (ay - by))
a2, b2, c2 = ax**2 + ay**2, bx**2 + by**2, cx**2 + cy**2
ux = (a2 * (by - cy) + b2 * (cy - ay)
+ c2 * (ay - by)) / d
uy = (a2 * (cx - bx) + b2 * (ax - cx)
+ c2 * (bx - ax)) / d
return ux, uy
def place(P, a):
"""자세 (x, y, phi)에서 커플러 좌표 a의 절대 위치"""
x, y, ph = P
return (x + a[0] * cos(ph) - a[1] * sin(ph),
y + a[0] * sin(ph) + a[1] * cos(ph))
def w2r(l1, l2, r):
"""2R 조작성 l1 l2 sin(th2)(거리 r), 도달 불가면 None"""
c = (r * r - l1 * l1 - l2 * l2) / (2 * l1 * l2)
return None if abs(c) > 1 else l1 * l2 * sqrt(1 - c * c)
def cond2r(rho, th2):
"""평면 2R(l1=1, l2=rho)의 조건수의 역수"""
s, c = sin(th2), cos(th2)
J = [[-rho * s, -rho * s], [1 + rho * c, rho * c]]
a = J[0][0]**2 + J[1][0]**2
b = J[0][0] * J[0][1] + J[1][0] * J[1][1]
d = J[0][1]**2 + J[1][1]**2
t = sqrt((a - d) ** 2 + 4 * b * b)
lo, hi = (a + d - t) / 2, (a + d + t) / 2
return sqrt(max(lo, 0.0) / hi) if hi > 0 else 0.0
def gci(rho, n=2000):
"""전역 조건 지수: 조건수 역수의 작업공간 평균(심프슨)"""
h = pi / n
num = den = 0.0
for i in range(n + 1):
t = i * h
wgt = 1 if i in (0, n) else (4 if i % 2 else 2)
num += wgt * cond2r(rho, t) * sin(t)
den += wgt * sin(t)
return num / den
① 운동 사슬의 열거.
| 링크 수 $n$ | 관절 수 $j=(3n-4)/2$ | 열거한 운동 사슬 수 | 링크 차수 열 | 세 겹 링크(차수 3)끼리 인접 | 대칭(자기 동형) 수 | 기구 반전 수 |
|---|---|---|---|---|---|---|
| 4 | 4 | 1 | 2222 | — | 8 | 1 |
| 6 | 7 | 2 | 222233 | 예 | 4 | 2 |
| 6 | 7 | 2 | 222233 | 아니오 | 4 | 3 |
링크 4개의 사슬은 정점 4개의 사이클 하나이고 자기 동형이 8개(정사각형의 대칭)이며 기구 반전이 1개이다(모든 링크가 같은 위치이고 링크 길이로만 구분된다). 링크 6개의 사슬은 둘이다. 세 겹 링크 2개가 직접 연결된 것(와트 사슬)은 반전이 $2$개, 연결되지 않은 것(스티븐슨 사슬)은 $3$개이며 합하면 서로 다른 6링크 기구가 5개이다. 이 결과는 networkx 그래프 아틀라스(정점 7개 이하 모든 그래프)에서 같은 조건으로 센 사슬 수·자기 동형 수·반전 수와 같다. 열거 조건 중 강체 부분 사슬 제거가 없으면 삼각형을 포함하는 퇴화 사슬이 섞여 들어간다.
② 함수 생성: 정밀점 배치와 최소제곱.
| 합성 방법(함수 $y=\log_{10}x$, $x\in[1,10]$, 입력·출력 각 $60^\circ$, 시작각 $40^\circ$·$95^\circ$) | 정밀·자료점 수 | 링크 길이 $(L_1,L_2,L_3,L_4)$ | 구조 오차 최대 (°) | RMS (°) | 전달각 품질 최솟값 (°) |
|---|---|---|---|---|---|
| 3점 등간격 | 3 | 1.0000, 1.3631, 0.7050, 1.5637 | 0.3608 | 0.1869 | 9.8 |
| 3점 체비셰프 | 3 | 1.0000, 1.3590, 0.7001, 1.5588 | 0.4352 | 0.1721 | 9.1 |
| 20점 방정식 오차 최소제곱 | 20 | 1.0000, 1.3556, 0.6967, 1.5531 | 0.3232 | 0.1339 | 9.1 |
| 20점 구조 오차 LM (시작각도 포함) | 20 | 1.0000, 1.1668, 0.9585, 1.5367 | 0.0515 | 0.0287 | 10.7 |
3점 정확 해는 정밀점에서 구조 오차가 0이고 그 사이에서 $0.36^\circ$(등간격)·$0.44^\circ$(체비셰프)이다. 체비셰프 배치가 RMS는 작지만($0.172^\circ$ 대 $0.187^\circ$) 최대 오차는 더 컸다. 체비셰프 점이 구간 안쪽이어서 양 끝에서 외삽 오차가 크기 때문이며 이 함수에서 체비셰프 배치가 항상 낫다는 결론은 나오지 않는다. 방정식 오차 최소제곱(20점)은 최대 $0.323^\circ$이고, 구조 오차를 직접 최소화한 LM은 시작각까지 변수로 두어 $0.052^\circ$(RMS $0.029^\circ$)이다. 네 설계의 전달각 품질은 $9\sim11^\circ$로 모두 작다. 구조 오차 최소화는 전달각을 고려하지 않았다. 이 설계는 기구학적으로 정확하나 전달각이 $10^\circ$ 안팎까지 떨어지는 자세가 있어 실제 구동에는 좋지 않다.
③ 구조 오차와 전달각 품질의 대립.
| 시작각 격자 탐색(360개: 조립 가능, 링크 길이 비 5 이하, 3점 등간격 합성) | 시작각 $\theta_{2s}$ · $\theta_{4s}$ (°) | 링크 길이 $(L_1,L_2,L_3,L_4)$ | 구조 오차 최대 (°) | 전달각 품질 최솟값 (°) |
|---|---|---|---|---|
| 구조 오차 최소 | 30 · 110 | 1.000, 1.150, 1.026, 1.549 | 0.094 | 10.8 |
| 전달각 품질 최대 | 125 · 135 | 1.000, 1.199, 0.504, 1.958 | 26.489 | 67.7 |
| 품질 $\ge30^\circ$ 중 구조 오차 최소 | 20 · 80 | 1.000, 1.619, 0.801, 1.320 | 3.932 | 31.4 |
| 품질 $\ge45^\circ$ 중 구조 오차 최소 | 5 · 75 | 1.000, 1.846, 1.056, 1.096 | 5.118 | 46.7 |
시작각 격자 탐색에서 구조 오차 최소 설계는 $0.094^\circ$이고 전달각 품질은 $10.8^\circ$이다. 품질을 $30^\circ$ 이상으로 요구하면 구조 오차 최소가 $3.93^\circ$로 약 40배가 되고 $45^\circ$ 이상이면 $5.12^\circ$이다. 개념 절의 그림에서 점선으로 이은 파레토 경계(40개 설계)가 이 대립을 나타낸다. 전달각 품질 $67.7^\circ$까지 올린 설계는 구조 오차가 $26.5^\circ$이다. 어느 지점을 고를지는 요구 정확도와 구동 힘의 요구에 따른 설계 판단이다. 이 격자 탐색은 시작각 둘과 3점 합성만 변수로 하며 LM에 전달각 제약을 넣어 푼 결과가 아니다.
④ 운동 생성: 족에서의 선별.
| 세 자세에서 커플러 점 둘 $(a,b)$를 무작위로 고른 4절 링크 후보 | 개수 |
|---|---|
| 후보(조립 가능한 해를 세 자세 모두에서 찾은 것, 5000개 추첨 중) | 4848 |
| 세 자세 재현 오차 최대 (m) | 1.8e-11 |
| 순서 결함 없음(크랭크가 한 방향으로 자세 1→2→3) | 4848 |
| 회로 결함 없음(세 자세가 같은 조립 모드) | 1886 |
| 경로 전체가 조립 가능(위 두 조건 포함) | 1856 |
| 위 + 전달각 품질 최솟값 $\ge30^\circ$ | 490 |
| 위 + 링크 길이 비(최장/최단) $\le5$ | 1517 |
| 위 + 최장 링크 $\le1.2$ m | 676 |
| 세 조건 모두 | 87 |
외접원 합성이 세 자세를 $1.8\times10^{-11}$ m 안에서 재현한다(각 후보가 정확 해이다). 이 자세 배치에서 순서 결함은 없었다. 세 자세가 서로 다른 조립 모드에 있는 회로 결함이 $61\,\%$(4848개 중 2962개)이며 회로 결함이 없고 경로 전체가 조립되는 것이 1856개이다. 전달각 품질 $30^\circ$ 이상(490개)·길이 비 5 이하(1517개)·최장 링크 1.2 m 이하(676개)를 모두 만족하는 87개 중 전달각 품질이 가장 큰 후보가 아래이다.
| 세 조건을 만족하는 후보 중 전달각 품질이 가장 큰 것 | 값 |
|---|---|
| 커플러 점 $a$ · $b$ (커플러 좌표, m) | (-0.002, -0.164) · (0.475, 0.111) |
| 고정 피벗 $O_2$ · $O_4$ (m) | (0.773, -0.854) · (1.478, -0.196) |
| 링크 길이 접지·크랭크·커플러·로커 (m) | 0.964 · 1.038 · 0.550 · 1.048 |
| 전달각 품질 최솟값 · 길이 비 · 그라쇼프 | 44.8° · 1.90 · 예 |
이 후보는 그라쇼프 조건을 만족하고 길이 비 $1.90$, 전달각 품질 $44.8^\circ$이다. 그림은 세 자세에서의 커플러(굵은 선)와 고정 피벗 $O_2$·$O_4$에서 뻗은 크랭크·로커(점선)이다. 이 후보는 선별 기준(예시)의 안에서 고른 것이며 다른 기준(관성·조립 공간·구동기 위치 등)을 넣으면 다른 후보가 선택된다.
⑤ 성능 지수: 평면 2R의 GCI와 작업공간.
| 링크 길이 비 $\rho=l_2/l_1$ | 작업공간 넓이 $4\pi l_1l_2$의 상대값 $4\rho/(1+\rho)^2$ | 전역 조건 지수 GCI |
|---|---|---|
| 0.25 | 0.6400 | 0.1931 |
| 0.5 | 0.8889 | 0.3611 |
| 0.6 | 0.9375 | 0.4099 |
| 0.707 | 0.9705 | 0.4360 |
| 0.8 | 0.9877 | 0.4192 |
| 0.9 | 0.9972 | 0.3903 |
| 1 | 1.0000 | 0.3611 |
| 1.5 | 0.9600 | 0.2537 |
| 2 | 0.8889 | 0.1931 |
| 4 | 0.6400 | 0.0978 |
GCI는 $\rho=0.707$에서 최대 $0.436$이고($\rho=1$에서 $0.361$) 작업공간 넓이는 $\rho=1$에서 최대이다. 두 목표가 $\rho\in[0.71,1]$에서 대립하고(이 구간이 파레토 집합: 격자 0.01에서 30점) $\rho<0.707$이거나 $\rho>1$인 설계는 다른 설계에 지배된다. 표의 두 쌍에서 GCI가 같은 값으로 나왔다($\rho=0.25$와 $2$: $0.1931$, $\rho=0.5$와 $1$: $0.3611$). $\rho\leftrightarrow1/(2\rho)$ 대칭으로 보이며 최댓값 $\rho=1/\sqrt2$가 그 고정점이나 이 장은 대칭을 증명하지 않았다.
⑥ 도달·조작성 제약 아래 최소 길이.
| 요구 조작성 $w_{\min}$ (m²) | 최소 전체 길이 $L$ (m) 수치 | 닫힌 식 | $l_1$ (m) | $l_2$ (m) | $l_2/l_1$ |
|---|---|---|---|---|---|
| 0.01 | 0.700583 | 0.700583 | 0.35029 | 0.35029 | 1.0000 |
| 0.02 | 0.702328 | 0.702328 | 0.35116 | 0.35116 | 1.0000 |
| 0.03 | 0.705228 | 0.705228 | 0.35261 | 0.35261 | 1.0000 |
| 0.035 | 0.707107 | 0.707107 | 0.35355 | 0.35355 | 1.0000 |
| 0.04 | 0.806226 | 0.806226 | 0.40311 | 0.40311 | 1.0000 |
| 0.05 | 1.004988 | 1.004988 | 0.50249 | 0.50249 | 1.0000 |
| 0.06 | 1.204159 | 1.204159 | 0.60208 | 0.60208 | 1.0000 |
최소 길이의 해는 모든 경우 $l_1=l_2$이고(이등변), 수치 해가 닫힌 식과 $10^{-14}$ 안에서 같다. $w_{\min}\le0.035$에서는 가장 먼 점($r=0.70$ m)이, $w_{\min}\ge0.04$에서는 가장 가까운 점($r=0.10$ m)이 제약을 결정하며 $w_{\min}=0.035$에서 두 점이 동시에 결정하는 꺾임이 있다($L^*=0.7071$ m). 이 문제의 해가 닫힌 식으로 정해지는 것은 제약이 도달 거리와 조작성뿐이기 때문이며 관절 한계·링크 질량·강성 같은 제약을 넣으면 $l_1\ne l_2$가 될 수 있고 이 장은 그 경우를 계산하지 않았다.
⑦ 라이브러리 대조(실행 2026-11-05). networkx 3.7의 그래프 아틀라스와 GraphMatcher를 사슬 열거·자기 동형과, numpy의 lstsq·linalg.solve·cond를 프로이덴슈타인 최소제곱·외접원·조건수와, SciPy 1.18.1의 least_squares(lm)·differential_evolution을 구조 오차 LM과, fsolve를 세 자세 재현과, quad·minimize_scalar를 GCI와, minimize(SLSQP)·differential_evolution을 크기 결정과 같은 입력에서 비교했다. 스크립트는 robotics/fig-src/2.19-libcheck.py, 출력은 robotics/fig-src/data/2.19-libcheck-output.txt에 있다.
| 비교 | 결과 |
|---|---|
| 운동 사슬 수·대칭 수·기구 반전 수(n = 4, 6): networkx 그래프 아틀라스에서 같은 조건으로 센 값과 일치 | 일치(사슬 1·2개) |
프로이덴슈타인 $K_1,K_2,K_3$ 대 numpy lstsq(20점) | 5.6e-15 |
구조 오차 최대(°, 20개 자료점): 이 장의 LM 대 SciPy least_squares(lm) | 0.0424 대 0.0424 |
구조 오차 최대(°, 20개 자료점): 이 장의 LM 대 differential_evolution(최소최대, 5변수) | 0.0424 대 0.0391 |
| 세 점 외접원 중심 대 numpy 선형 풀이(무작위 200개, 거의 일직선인 경우 포함) | 2.9e-10 |
세 자세 재현: 합성 4절 링크의 닫힘을 SciPy fsolve로 풀어 구한 로커 끝점과 목표의 차이 (m) | 3.3e-16 |
GCI: 이 장의 심프슨 대 quad(10개 비) | 4.8e-08 |
조건수 역수: 이 장 닫힌 식 대 numpy cond(500개) | 3.0e-14 |
GCI 최대 비: 이 장의 격자 0.705 대 minimize_scalar | 0.7071 |
| 최소 전체 길이: 이 장의 수치 대 닫힌 식 $\max_i\sqrt{r_i^2+4w^2/r_i^2}$ (7개 $w_{\min}$) 최대 차이 (m) | 2.4e-15 |
같은 문제를 SLSQP(4개 시작점) · differential_evolution으로 푼 값과 닫힌 식의 최대 차이 (m) | 2.2e-13 · 2.6e-14 |
일치를 확인한 항목이 모두 $5\times10^{-8}$ 이하이고(외접원 $2.9\times10^{-10}$은 거의 일직선인 무작위 세 점의 조건 때문) 이 장의 LM이 SciPy least_squares와 같은 해에 도달했다. 최소최대를 직접 최소화하는 differential_evolution은 20개 자료점의 최대 구조 오차를 $0.0391^\circ$까지 낮춰 이 장의 LM($0.0424^\circ$, 제곱합 최소)보다 작다. 최소화하는 지표(제곱합 대 최대)가 다르기 때문이며 어느 쪽이 맞는 목적인지는 설계 요구에 달려 있다. 이 장은 합성 전용 소프트웨어와 대조하지 않았다 (확인 필요).
한계. 평면 4절 링크와 평면 2R에 한정된 예시이며 3차원 기구, 경로 생성, 4~5점 합성, 요동·왕복 링크 합성, 동적 성능(관성·구동 토크)은 다루지 않았다. 형태 합성은 $n=4$, $6$만 열거했다. 구조 오차 최소화에 전달각을 제약으로 넣은 최적화는 시험하지 않았다. 운동 생성의 선별 기준과 크기 결정의 요구 값은 예시이다. 최적화기는 국소 대 전역을 한 문제 군에서만 비교했다.
견해: 링크·팔의 치수 설계는 닫힌 식이나 선형 합성으로 후보를 먼저 구하고, 성능 지수를 계산해 지배되는 설계를 버린 뒤, 남은 파레토 후보에서 요구에 맞는 것을 고르며, 비선형 최적화는 제약(전달각·관절 한계)을 넣어 마지막에 다듬는 것을 기본으로 둔다고 본다. 근거는 이 장에서 ① 구조 오차만 최소화한 4절 링크의 전달각 품질이 $10.8^\circ$여서 구동에 부적합했고($30^\circ$ 이상을 요구하면 구조 오차가 약 40배), ② 운동 생성 후보 4848개 중 설계 기준을 모두 만족하는 것이 87개(약 $1.8\,\%$)로 선별이 필요했으며, ③ 2R의 최소 길이가 닫힌 식과 수치가 같았고 GCI와 작업공간의 파레토 집합이 $\rho\in[0.71,1]$로 좁혀졌다는 점이다. 선별 기준·요구 값은 예시이고 제약이 더 많은 실제 문제에서는 닫힌 식이 없어 전역 최적화기가 필요할 수 있으며 이 장은 그 경우를 시험하지 않았다.
2.19.6 설계 트레이드오프 — 합성 방법의 선택
기구 치수를 정하는 방법은 다음 중에서 고른다.
- ① 정밀점 정확 합성. 정밀점 수가 자유 매개변수 수와 같으면 닫힌 형식(선형)으로 정확한 해를 얻는다. 정밀점 사이의 구조 오차는 제어하지 못한다.
- ② 방정식 오차 최소제곱. 정밀점을 늘려 선형 최소제곱으로 푼다. 구조 오차를 직접 줄이지 않으므로 해가 좋은 출발점이 된다.
- ③ 구조 오차 비선형 최소화. LM 같은 국소 최적화로 구조 오차를 직접 줄인다. 초기값에 의존한다.
- ④ 해의 족 + 선별. 운동 생성처럼 정확 해가 족으로 나오면 결함·성능 지수로 거른다. 후보 수가 많아도 계산이 싸다.
- ⑤ 전역 최적화·다목적 최적화. 차분 진화 같은 전역 방법과 파레토 경계로 대립하는 지표를 함께 다룬다. 호출 수가 많다.
| 방법 | 풀이 | 구조 오차 제어 | 장점 | 한계 |
|---|---|---|---|---|
| ① 정밀점 정확 합성 | 닫힌 형식(선형) | 정밀점에서만 0 | 즉시 계산, 정확 | 점 수가 매개변수 수로 제한 |
| ② 방정식 오차 최소제곱 | 선형 최소제곱 | 간접 | 단순·견고 | 구조 오차 최소가 아님 |
| ③ 구조 오차 최소화 | 비선형 LM | 직접 | 오차 최소 | 초기값·지역 최소 |
| ④ 족 + 선별 | 열거·필터 | 족 안에서 선택 | 결함·성능 반영 | 선별 기준 의존 |
| ⑤ 전역·다목적 | 차분 진화·파레토 | 지표 정의에 따름 | 대립 지표 처리 | 호출 수 |
견해: 정확한 합성 해가 있는 문제(자세 3개 운동 생성)는 ④로 족을 만들어 거르고, 함수·경로 근사 문제는 ②로 출발해 ③으로 다듬는 것을 기본으로 둔다고 본다. 근거는 이 장에서 ②의 구조 오차 최대가 $0.32^\circ$, 이를 출발점으로 한 ③이 $0.052^\circ$였고, 운동 생성 후보의 $98\,\%$ 이상이 성능·크기 기준에서 탈락했다는 점이다. 전달각을 목적에 넣은 비선형 최적화가 더 나은지는 이 장이 시험하지 않았다.
2.19.7 응용 축 비교
| 응용 축 | 합성·최적화가 맡는 일 | 요구 | 관련 장 |
|---|---|---|---|
| 산업·제조 | 팔의 링크 길이·베이스 배치를 도달·조작성 요구에서 정함 | 도달성, 조작성 | 2.10, 2.9 |
| 물류·이동 | 해당하는 고유 요구 없음 | — | — |
| 도로 주행 | 해당하는 고유 요구 없음 | — | — |
| 서비스 | 해당하는 고유 요구 없음 | — | — |
| 의료·헬스케어 | 원격 중심 운동 링크의 치수 정함(원리 수준) | 고정점 정밀도 | 32.14 |
| 휴머노이드·범용 | 관절 링크·손가락 링크의 치수 정함(원리 수준) | 전달각, 구동기 수 | 7.12 |
| 필드 | 해당하는 고유 요구 없음 | — | — |
| 국방·안보 | 원리 수준에서 해당하는 고유 요구 없음 | — | — |
이 표는 이 책의 정리이며 장별 요구는 다르다. 응용별 설계 요구 수치는 이 장이 확인하지 않았다.
2.19.8 관련 규격·프로토콜
| 문서 | 발행 | 무엇을 정하나 | 상세 장 |
|---|---|---|---|
least_squares·differential_evolution·minimize(SLSQP) | SciPy 1.18.1 | 비선형 최소제곱·전역·제약 최적화 | 2.6 |
graph_atlas_g·GraphMatcher | networkx 3.7 | 그래프 열거·동형 | 1.23 |
lstsq·linalg.solve·cond | numpy 2.5.4 | 선형 최소제곱·조건수 | 1.1 |
| 수학 표기·기호표 | 이 책 | SE(2)·조작성 표기 | A.2 |
기구 합성·최적 설계 결과를 규정하는 규격은 확인하지 못했다 (확인 필요).
2.19.9 관련 규제·인증 요구와의 연결
기구 합성 방법 자체를 규정하는 법령·인증 요건은 확인하지 못했다. 합성한 기구의 안전(끼임·충돌 시 힘 제한, 사점 근처의 힘 증폭)은 기계 안전과 협동로봇 안전 요구(27.10)의 대상이며 전달각·사점이 위험 분석의 입력이 될 수 있다. 이 장은 규정의 조항을 확인하지 않았다 (확인 필요).
2.19.10 한계·유의점·미해결
- 범위. 평면 4절 링크와 평면 2R 예시이다. 3차원 기구·병렬 기구의 합성은 다루지 않았다.
- 합성의 종류. 함수 생성(3점·최소제곱)과 세 자세 운동 생성만 다뤘다. 경로 생성, 4점 이상 정밀점, 요동 종동 링크 합성은 다루지 않았다.
- 형태 합성. $n=4$, $6$만 열거했다. $n\ge8$의 열거와 8링크 16개·10링크 230개라는 알려진 값은 확인하지 못했다.
- 최적화. 전달각 제약을 넣은 구조 오차 최적화와 다목적 진화 알고리즘(NSGA-II 같은)은 시험하지 않았다. 최적화기 비교는 한 문제 군에 한정된다.
- 선별 기준. 전달각 품질 30°·길이 비 5·최장 링크 1.2 m, 2R의 도달 거리·$w_{\min}$은 예시이다.
- 동적 성능. 관성·구동 토크·진동은 합성 기준에 넣지 않았다(3.1 이후).
- 대칭의 증명. 2R의 GCI 대칭 $\rho\leftrightarrow1/(2\rho)$는 계산에서 관찰했고 증명하지 않았다.
2.19.11 체크포인트·연구 질문·출처
체크포인트:
- 그뤼블러 식에서 평면 1자유도 사슬의 관절 수 $j=(3n-4)/2$를 유도하고 $n=6$에서 와트·스티븐슨 사슬이 나오는 이유를 그래프로 설명하라.
- 프로이덴슈타인 식이 $(K_1,K_2,K_3)$에 선형임을 보이고 정밀점 3개에서의 해를 구하는 절차를 적어라.
- 외접원 운동 생성에서 크랭크·로커의 길이가 세 자세에서 일정함을 보이고, 순서 결함·회로 결함의 정의를 설명하라.
- 변 $l_1$, $l_2$, $r$인 삼각형의 넓이로부터 평면 2R의 $w=l_1l_2\lvert\sin\theta_2\rvert$와 이등변에서의 최대 $w=\frac r2\sqrt{L^2-r^2}$를 유도하고 $L^*$의 닫힌 식을 구하라.
- 작업공간 넓이와 GCI가 대립하는 구간이 파레토 집합임을 정의에서 설명하라.
연구 질문:
- 전달각·구조 오차·관성을 함께 최적화하는 4절 링크 합성에서 파레토 경계를 효율적으로 구하는 방법은 무엇인가?
- 로봇 팔의 링크 길이·베이스 위치·과제를 동시에 최적화(공동 설계)할 때 전역 조건 지수 대신 어떤 과제 기반 지표가 알맞은가(2.10)?
1차 출처(조회 2026-11-05).
- F. Freudenstein, "Approximate synthesis of four-bar linkages," Transactions of the ASME 77, 853–859, 1955, doi:10.1115/1.4014513 — 서지만 확인.
- J. M. McCarthy, G. S. Soh, Geometric Design of Linkages, 2nd ed., Springer, 2011, doi:10.1007/978-1-4419-7892-9 — 서지만 확인.
- C. Gosselin, J. Angeles, "A global performance index for the kinematic optimization of robotic manipulators," Journal of Mechanical Design 113(3), 220–226, 1991, doi:10.1115/1.2912772 — 서지만 확인.
- SciPy 1.18.1(
optimize.least_squares·differential_evolution·minimize·minimize_scalar·fsolve,integrate.quad), numpy 2.5.4(linalg.lstsq·solve·cond), networkx 3.7(graph_atlas_g,isomorphism.GraphMatcher).
다음 장. 3.1은 제3부 동역학의 첫 장인 강체 동역학 기초(관성 텐서·뉴턴-오일러 방정식·공간 관성)를 다룬다. 제2부에서 다룬 기구학이 운동의 기하였다면 제3부는 그 운동을 만드는 힘과 토크를 다룬다.