제2부 기구학
2.9 특이점과 조작성: 조작성 타원체·조건수·특이점 회피
2.9.1 이 장에서 배우는 것 / 선수 지식 / 특히 중요한 독자
이 장은 자코비안(2.8)이 계수를 잃는 형상, 곧 운동학 특이점과 그 근처에서 엔드이펙터의 속도 능력이 얼마나 줄어드는지를 재는 조작성(manipulability)을 다룬다. 특이점에서는 엔드이펙터가 어떤 방향으로 움직일 수 없고 그 근처에서는 유사역행렬의 관절 속도가 $1/\sigma_{\min}$으로 커진다. 이 장은 특이점의 정의와 좌표계 불변성, UR형 6R의 행렬식 닫힌 식과 세 종류의 특이점, 속도 타원체·힘 타원체와 스칼라 지표(요시카와 $w$·최소 특이값·조건수)의 의미와 한계, 감쇠 최소제곱으로 특이점 근처의 속도를 제한하는 방법을 정리하고 UR5·Franka Research 3·2R 팔에서 계산으로 확인한다. 작업공간의 도달성 지도는 2.10, 여유자유도의 영공간 회피는 2.11, 정역학과 힘 타원체는 2.12, 병렬 기구의 특이점은 2.14에서 다룬다.
배우는 것:
- 특이점의 정의 — $J$가 최대 계수를 잃는 형상. 기저·공구 좌표계의 선택에 무관하다.
- UR형 6R의 특이점 — $\det J=-a_2a_3\sin q_3\sin q_5\,(a_2\cos q_2+a_3\cos q_{23}+d_5\sin q_{234})$와 팔꿈치·손목·어깨 특이점.
- 속도 타원체와 힘 타원체 — $JJ^\top$의 고유 구조, 특이점 근처에서 한쪽은 납작해지고 한쪽은 길어지는 쌍대성.
- 스칼라 지표 — $w=\sqrt{\det JJ^\top}$, $\sigma_{\min}$, 조건수 $\kappa$. 좌표계·TCP·길이 단위에 대한 순위의 불변성과 불변이 아님.
- 감쇠 — 유사역행렬·상수 감쇠·가변 감쇠의 속도 이득과 잔차.
- 측정 — 임의 형상 수천 개의 통계, Robotics Toolbox for Python 1.5.0의
manipulability와의 대조.
선수 지식: 1.1(SVD), 2.5(UR형 역기구학과 손목 중심), 2.6(감쇠 최소제곱), 2.8(자코비안의 종류와 좌표계 변환).
특히 중요한 독자: 로봇 팔의 경로·자세를 특이점 근처에서 검사하는 엔지니어, 직교 속도 제어와 IK의 특이점 처리를 구현하는 소프트웨어 개발자, 팔의 구조·자세를 조작성으로 최적화하는 연구자.
출처 방침. 기준 시점은 2026-11-03이다. 직접 읽은 자료: ① Lynch·Park, Modern Robotics(사전 인쇄본 2017-05-03판) 5.3절(특이점의 정의, 좌표계 불변성, 사례 I~V)과 5.4절(조작성 타원체, 힘 타원체, 측도 $\mu_1\sim\mu_3$), ② Robotics Toolbox for Python 1.5.0의
manipulability문서 문자열(yoshikawa·invcondition·minsingular·asada,axes). 서지(Yoshikawa 1985, Klein·Blaho 1987, Nakamura·Hanafusa 1986, Wampler 1986, Maciejewski·Klein 1988, Salisbury·Craig 1982, Gosselin·Angeles 1990)는 Crossref 응답으로 확인했다. 읽지 못한 것: 위 논문들의 본문. 감쇠 규칙의 변형은 이 장이 정한 것이며 원 논문의 식과 같은지 확인하지 않았다(확인 필요). 수치는 모두 이 장의 순수 파이썬 계산이다.
2.9.2 개념 — 움직일 수 없는 방향과 그 근처
결론부터 적으면 다음과 같다. 특이점은 엔드이펙터가 순간적으로 어떤 방향으로도 움직이지 못하는 형상이고, 그 근처에서는 같은 엔드이펙터 속도를 내는 데 관절 속도가 크게 필요하다. 특이점은 있고 없고의 문제이지만 조작성은 "얼마나 가까운가"를 재는 연속량이다. 속도 타원체는 단위 크기의 관절 속도가 만드는 엔드이펙터 속도의 집합이고, 특이점에 다가가면 한 방향으로 납작해진다. 그 방향의 힘은 작은 관절 토크로 지탱할 수 있으므로 힘 타원체는 그 방향으로 길어진다(2.12).
이 장의 계산 결과를 미리 적으면 다음과 같다. ① UR형 6R의 행렬식은 $\sin q_3$, $\sin q_5$, 손목 중심의 팔 평면 반경에 해당하는 인자의 곱이며 $d_1$·$d_4$·$d_6$과 $q_1$·$q_6$에 의존하지 않는다. ② 요시카와 $w$의 형상 순위는 좌표계·TCP·길이 단위를 바꿔도 변하지 않지만(뒤바뀐 쌍 0.0 %), 최소 특이값과 조건수의 순위는 단위를 m에서 mm로 바꾸면 쌍의 $21\sim25$ %가 뒤바뀐다. ③ 최소 특이값은 특이 형상까지의 관절각 거리에 비례한다. ④ 상수 감쇠는 특이점에서 멀어도 잔차를 남기고, 가변 감쇠는 특이점 근처에서만 감쇠를 키우지만 두 방식 모두 특이점에서 잃어버린 방향의 지령을 따르지 못한다.
2.9.3 원리
2.9.3.1 특이점의 정의와 좌표계 불변성
정의. 자코비안 $J(q)$가 최대 계수를 잃는 형상 $q$를 운동학 특이점이라 한다(Modern Robotics 5.3절). 물체 자코비안의 열이 엔드이펙터가 만들 수 있는 트위스트를 생성하므로 계수가 줄면 한 방향 이상의 순간 속도를 만들 수 없다. 같은 방향에서는 임의의 렌치를 지탱할 수 있다(2.12).
불변성. 공간·물체 자코비안은 가역 행렬 $\mathrm{Ad}_T$로 이어지므로 계수가 같다. 기저를 옮겨 $T'=PT$로 바꾸면 $J_b'=J_b$이고, 공구 좌표계를 $T'=TQ$로 바꾸면 $J_s'=J_s$이므로 특이점은 기저·공구 좌표계의 선택과 무관하다(Modern Robotics 5.3절). 위치 자코비안은 $J_p=L(p)J_s$이고 $\det L=1$이므로(2.8) 정방일 때 세 자코비안의 $\lvert\det\rvert$가 같다.
종류. 개방 사슬 6자유도의 대표적인 특이 구조로 Modern Robotics는 다섯 가지를 든다. 사례 I은 두 회전축이 일치하는 경우, 사례 II는 세 회전축이 평행하고 한 평면 위에 있는 경우, 사례 III은 네 회전축이 한 점에서 만나는 경우(어깨 위에 손목 중심이 놓인 팔꿈치형 팔), 사례 IV는 네 회전축이 한 평면 위에 있는 경우, 사례 V는 여섯 회전축이 한 직선과 만나는 경우이다. 각 사례에서 해당 열들의 일차 종속을 직접 보일 수 있다.
2.9.3.2 UR형 6R의 행렬식과 세 종류의 특이점
UR형 6R(표준 DH, 축 2·3·4가 평행, 축 5·6이 교차; 2.3·2.5)의 위치 자코비안 행렬식은 다음 곱으로 인수분해된다.
$$\det J=-a_2a_3\,\sin q_3\,\sin q_5\;F,\qquad F=a_2\cos q_2+a_3\cos(q_2+q_3)+d_5\sin(q_2+q_3+q_4).$$
이 식은 이 장에서 UR5와 무작위 UR형 기하 5개의 임의 형상 300개씩에서 수치로 확인한 결과이며 기호 유도는 하지 않았다. 식의 구조는 다음 세 조건으로 읽는다.
- 팔꿈치: $\sin q_3=0$. 팔 평면에서 축 2·3·4가 한 직선 위에 놓인다(사례 II). 팔을 완전히 펴거나 접은 자세이다.
- 손목: $\sin q_5=0$. 손목의 첫째 축(4)과 셋째 축(6)의 방향이 일치한다(사례 I와 같은 종류).
- 어깨: $F=0$. 이 장의 수치 확인에서 관절 5의 좌표계 원점 $c=p-d_6R\hat z$(2.5의 손목 중심)의 반경 $\sqrt{c_x^2+c_y^2}$이 $d_4$일 때와 일치한다. $d_4$는 축 1과 팔 평면 사이의 옆 간격이므로 어깨 특이점에서는 손목 중심이 팔 평면의 어깨 바로 위가 아니라 반경 $d_4$ 원기둥 위에 있다. 2.5의 해석적 IK가 $r<\lvert d_4\rvert$이면 $\theta_1$이 없다고 한 경계와 같은 원기둥이며 $q_1$의 두 해가 합쳐지는 곳이다.
$d_1$(기저 높이)·$d_6$(공구 쪽 오프셋)과 $q_1$(기저 회전)·$q_6$(공구 회전)이 행렬식에 나타나지 않는 것은 기저·공구 좌표계의 선택이 특이점을 바꾸지 않는다는 불변성과 맞는다. $d_4$도 식에 없지만 어깨 조건의 기하(반경 $d_4$)에는 들어간다. 요시카와 $w=\sqrt{\det JJ^\top}=\lvert\det J\rvert$(정방)이므로 UR형의 조작성은 $w=\lvert a_2a_3\sin q_3\sin q_5\,F\rvert$이다.
2.9.3.3 속도 타원체와 힘 타원체
단위 크기의 관절 속도 $\lVert\dot q\rVert=1$이 만드는 엔드이펙터 속도의 집합은 $J$가 가역일 때 $V^\top(JJ^\top)^{-1}V=1$인 타원체이다. $A=JJ^\top$의 고유벡터가 주축 방향이고 반축 길이는 $\sqrt{\lambda_i}=\sigma_i$이다. 부피는 $\prod\sigma_i=\sqrt{\det A}$에 비례한다. 단위 관절 토크 $\lVert\tau\rVert=1$($\tau=J^\top F$)이 지탱할 수 있는 힘은 $F^\top JJ^\top F=1$인 타원체이며 반축 길이는 $1/\sigma_i$로 같은 주축 방향을 갖는다. 두 부피의 곱은 형상에 무관한 상수이다. 특이점에 다가가면 속도 타원체의 부피는 0으로, 힘 타원체의 부피는 무한대로 간다(Modern Robotics 5.4절).
각속도와 선속도는 단위가 달라서 Modern Robotics는 $J_\omega$(윗 3행)와 $J_v$(아랫 3행)로 두 타원체를 따로 만든다. 선속도 타원체에는 기저 원점에 놓인 점이 아닌 엔드이펙터 원점의 속도가 필요하므로 공간 자코비안이 아니라 물체 자코비안을 사용하라고 적는다(2.8의 $J_p$·$J_b$와 같은 특이값을 준다).
2.9.3.4 스칼라 지표
타원체의 모양을 하나의 수로 줄인 지표는 다음과 같다.
| 지표 | 정의 | 방향 | 출처 |
|---|---|---|---|
| 요시카와 $w$ | $\sqrt{\det JJ^\top}=\prod\sigma_i$(속도 타원체 부피) | 클수록 좋음 | Yoshikawa 1985, Modern Robotics $\mu_3$ |
| 최소 특이값 | $\sigma_{\min}$(특이점까지의 "거리") | 클수록 좋음 | Klein·Blaho 1987(Robotics Toolbox minsingular) |
| 조건수 | $\kappa=\sigma_{\max}/\sigma_{\min}$ | 1에 가까울수록 등방적 | Modern Robotics $\mu_1$(Robotics Toolbox invcondition은 $1/\kappa$) |
| 조건수 제곱 | $\kappa^2=\lambda_{\max}/\lambda_{\min}$ | 1에 가까울수록 등방적 | Modern Robotics $\mu_2$ |
불변성. 길이 단위를 $L$로 바꿔 선속도 행을 $1/L$배하면($D=\mathrm{diag}(1,1,1,1/L,1/L,1/L)$) $\sqrt{\det(DJJ^\top D)}=L^{-3}w$이므로 모든 형상의 $w$가 같은 배율로 바뀌어 순위가 보존된다. 좌표계를 옮기거나(기저 이동·방향 변경) TCP를 옮기는 변환은 $\det=1$이므로 $w$ 자체가 보존된다(2.8). $\sigma_{\min}$과 $\kappa$는 이 변환들로 값이 바뀌고 순위도 뒤바뀐다(2.9.5 ④). 6차원 자코비안의 $\sigma_{\min}$·$\kappa$는 각속도(rad/s)와 선속도(m/s)를 한 벡터에 섞은 값이어서 길이 단위(특성 길이)가 정해져야 의미를 갖는다. Robotics Toolbox의 manipulability 문서 문자열도 all 옵션이 서로 다른 단위를 더한다고 적고 병진·회전을 따로 보라고 권한다.
한계. $w$는 $\sigma_i$의 곱이어서 하나의 $\sigma$가 작아져도 다른 $\sigma$가 크면 값이 크게 줄지 않을 수 있고, 등방성(방향별 균형)은 알려 주지 않는다. $w$를 최대로 하는 UR5 자세의 조건수가 약 10이었다(2.9.5 ②). 여유자유도($n>6$)에서는 $JJ^\top$가 $6\times6$이므로 같은 정의를 그대로 사용한다(2.11).
2.9.3.5 특이점 근처의 속도와 감쇠
특이값 $\sigma$ 방향의 지령이 $V$이면 유사역행렬 $J^\dagger=J^\top(JJ^\top)^{-1}$의 관절 속도 성분은 $\lVert V\rVert/\sigma$이다. 최소 특이값이 특이 형상까지의 관절각 거리 $\varepsilon$에 비례($\sigma_{\min}\approx c\,\varepsilon$)하므로 속도가 $1/\varepsilon$로 커진다(2.9.5 ②에서 비례 상수를 측정). 감쇠 최소제곱(2.6)은 이득을 $g(\sigma)=\sigma/(\sigma^2+\lambda^2)$로 바꿔 최댓값을 $1/(2\lambda)$로 제한하고, 그 방향의 잔차 비율은 $\lambda^2/(\sigma^2+\lambda^2)$이다. 이 대가가 특이점에서 먼 방향에도 적용된다는 것이 상수 감쇠의 약점이다.
가변 감쇠는 특이점 근처에서만 감쇠를 켠다. 이 장은 최소 특이값을 기준으로
$$\lambda^2=\begin{cases}\lambda_0^2\bigl(1-(\sigma_{\min}/\sigma_0)^2\bigr)&\sigma_{\min}<\sigma_0\\0&\sigma_{\min}\ge\sigma_0\end{cases}$$
를 사용한다. Nakamura·Hanafusa(1986)가 조작성 지표에 따라 감쇠를 키우는 특이점 강인 역을 제안했고 Wampler(1986)가 감쇠 최소제곱을 정리했으며, Maciejewski·Klein(1988)이 특이값에 따른 수치 필터링을 다룬 것으로 알려져 있다(세 논문의 본문은 읽지 못했다). 이 장의 가변 감쇠 식은 이 연구들의 방식을 $\sigma_{\min}$ 기준으로 바꾼 변형이며 원 논문의 식과 같은지 확인하지 않았다 (확인 필요). 특이점에서 지령 방향의 성분이 정확히 잃어버린 방향에 있으면 어떤 방법도 그 방향을 따르지 못한다. 한 방향이 완전히 손실되고 나머지 방향을 정확히 따르면 단위 크기의 무작위 트위스트에 대한 평균 잔차는 $\sqrt{1/6}\approx0.41$이다.
감쇠 매개변수의 단위. $\lambda$·$\sigma_0$은 $J$의 단위(길이 척도)에서만 의미를 갖는다. 같은 UR5를 길이 단위 m로 보면 무작위 형상의 $62$ %에서 $\sigma_{\min}<0.1$이므로 $\lambda=0.05$는 상당수 형상에서 감쇠를 켜게 된다(2.9.5 ⑤).
2.9.3.6 특이점 회피와 통과의 선택지
공개 문헌에서 확인되는 방식은 네 가지로 나뉜다.
- ① 구성·경로 선택. 도달성 지도(2.10)와 작업공간 검사로 특이점을 포함하는 경로를 피한다.
- ② 속도 수준 제한. 감쇠·필터링으로 특이점 근처의 관절 속도를 제한한다(위).
- ③ 여유자유도. 영공간 운동으로 $w$를 키운다. Yoshikawa(1985)가 이를 여유자유도 제어로 제안한 것으로 알려져 있다(서지만 확인, 2.11).
- ④ 구조 설계. 특이점이 작업 영역 밖에 놓이도록 길이·오프셋을 정한다(2.19). 폐연쇄(병렬 기구 포함)의 특이점은 따로 분류된다(Gosselin·Angeles 1990이 폐연쇄 특이점을 분석한 연구로 알려져 있다. 서지만 확인, 2.14).
2.9.4 알고리즘
조작성 지표(J):
s ← 특이값(J) (내림차순) ← Jacobi SVD(1.1)
w ← Π s_i, σ_min ← s_n, κ ← s_1 / s_n
감쇠 최소제곱(J, V, λ):
J^T = U diag(s) W^T
qd ← Σ_i s_i / (s_i² + λ²) · (W[:, i] · V) · U[:, i]
가변 감쇠(J, V; λ0, σ0):
σ_min ← 최소 특이값(J)
σ_min < σ0 이면 λ ← λ0 · sqrt(1 − (σ_min / σ0)²), 아니면 λ ← 0
qd ← 감쇠 최소제곱(J, V, λ)
시간은 SVD가 지배한다($6\times n$ 행렬의 야코비 SVD).
2.9.5 풀이 예제 — UR형 행렬식, 특이 형상 근처, 2R 타원, 순위 뒤바뀜, 감쇠
결론부터 적으면 다음과 같다. ① UR5와 무작위 UR형 기하 5개에서 위치 자코비안의 행렬식이 닫힌 식과 $\max\lvert\det J\rvert$의 $2\times10^{-15}$ 안에서 같다. ② UR5에서 최소 특이값은 손목·팔꿈치·어깨 특이 형상까지의 관절각 거리에 비례하며($\varepsilon=10^{-4}$에서 $\sigma_{\min}/\varepsilon=0.562,\ 0.163,\ 0.0471$), 어깨 조건 $F=0$인 형상 866개에서 손목 중심의 반경이 $d_4$와 $5\times10^{-16}$ 안에서 같다. ③ 2R 팔의 $w=l_1l_2\lvert\sin q_2\rvert$가 $6\times10^{-17}$ 안에서 맞고 속도·힘 타원의 면적 곱이 $\pi^2$과 $10^{-6}$ 안에서 같다. ④ 순위 뒤바뀜: $w$는 0.0 %, $\sigma_{\min}$은 단위 m↔mm에서 20.7 %·조건수는 24.9 %이다. ⑤ UR5 무작위 형상 4,000개에서 유사역행렬의 평균 속도 이득은 중앙값 6.3, 99 %에서 1,094, 최댓값 $2.7\times10^{4}$이고, 감쇠는 이득을 $1/(2\lambda)$ 이하로 제한한다. ⑥ Robotics Toolbox의 manipulability는 9가지 조합 모두 $3.1\times10^{-15}$ 안에서 같다.
구현. sing_vals·indices·det_ur·gain·lam_var·damped. 행렬식 가우스 소거, 2R 타원, 실험과 그림은 스크립트에 있다. 1.1의 svd, 2.3의 screws, 2.5의 ur_rows, 2.8의 jac_point·jac_space·to_p를 사용한다.
| 항목 | 값 |
|---|---|
| 입력 1 | UR5(UR 문서의 표준 DH 표, 2.3)와 무작위 UR형 기하 5개($d_1\in[0.05,0.3]$, $a_2,a_3\in[-0.6,-0.2]$, $d_4,d_5,d_6\in[0.05,0.2]$ m, 시드 52). 형상은 $q\in U[-\pi,\pi]^6$ 300개씩 |
| 입력 2 | 어깨 조건: UR5에서 $F=0$을 만족하도록 $q_4$를 풀어 만든 형상 866개(무작위 $q_1,q_2,q_3,q_5,q_6$), 임의 형상 20,000개에서 손목 중심 반경의 최솟값 |
| 입력 3 | 특이 형상 근처: UR5 기준 형상 $q=(0.4,-1.2,1.5,-0.6,1.1,0.3)$에서 손목은 $q_5=\varepsilon$, 팔꿈치는 $q_3=\varepsilon$, 어깨는 $(q_2,q_3)=(-1.2,-0.961)$에서 $F=0$인 $q_4^*=1.4142$를 두고 $q_4=q_4^*+\varepsilon$. $\varepsilon=10^{-4},\dots,1$ |
| 입력 4 | 2R 팔: $l_1=0.4$ m, $l_2=0.3$ m, $q_1=20^\circ$. 타원은 단위 원을 $J_v$ 또는 $J_v^{-\top}$로 사상한 점 3,600개 |
| 입력 5 | 순위 비교: UR5, $q\in U[-\pi,\pi]^6$ 200개(모든 쌍 19,900개), 길이 단위 m 대 mm, $J_p$ 대 $J_s$, TCP를 공구 $z$축으로 0.15 m 이동 |
| 입력 6 | 감쇠 통계: UR5 임의 형상 4,000개, 매개변수 $(\lambda_0,\sigma_0)=(0.05,0.1)$과 $(0.01,0.02)$, 길이 단위 m. 평균은 단위 크기의 무작위 트위스트($\mathbb S^5$ 위 균등)에 대한 제곱평균이다 |
| 입력 7 | 라이브러리 대조: UR5, $q\in U[-\pi,\pi]^6$ 200개(시드 521) |
from math import sqrt, sin, cos, prod
def sing_vals(J):
"""J: 열 목록. 특이값(내림차순)"""
return svd(J)[1]
def indices(s):
"""w = prod s (요시카와), s_min, kappa = s_1 / s_n"""
return prod(s), s[-1], s[0] / s[-1]
def det_ur(q, a2, a3, d5):
"""UR형 6R: det J = -a2 a3 s3 s5 F,
F = a2 c2 + a3 c23 + d5 s234"""
f = (a2 * cos(q[1]) + a3 * cos(q[1] + q[2])
+ d5 * sin(q[1] + q[2] + q[3]))
return -a2 * a3 * sin(q[2]) * sin(q[4]) * f
def gain(s, lam):
"""감쇠 최소제곱에서 특이값 s 방향의 속도 이득"""
return s / (s * s + lam * lam)
def lam_var(smin, s0, l0):
"""가변 감쇠: lam^2 = l0^2 (1 - (smin/s0)^2), smin < s0"""
if smin >= s0:
return 0.0
return l0 * sqrt(1 - (smin / s0) ** 2)
def damped(J, V, lam):
"""qd = sum_i g_i (w_i . V) u_i, J^T = U diag(s) W^T"""
U, s, W = svd(J)
qd = [0.0] * len(J)
for i in range(len(s)):
wv = sum(W[k][i] * V[k] for k in range(6))
c = gain(s[i], lam) * wv
for j in range(len(J)):
qd[j] += c * U[j][i]
return qd
① UR형 행렬식. 위치 자코비안의 행렬식을 가우스 소거로 구해 닫힌 식과 비교했다.
| UR형 기하 $(d_1,a_2,a_3,d_4,d_5,d_6)$ (m) | $\max\lvert\det J\rvert$ | $\max\lvert\det J-\det_{\mathrm{UR}}\rvert/\max\lvert\det J\rvert$ |
|---|---|---|
| UR5 (0.089, -0.425, -0.392, 0.109, 0.095, 0.082) | 0.1099 | 1.6e-15 |
| 1 (0.295, -0.222, -0.490, 0.123, 0.191, 0.111) | 0.0701 | 1.8e-15 |
| 2 (0.280, -0.264, -0.598, 0.112, 0.077, 0.102) | 0.1027 | 1.1e-15 |
| 3 (0.208, -0.214, -0.355, 0.052, 0.060, 0.076) | 0.0349 | 1.4e-15 |
| 4 (0.108, -0.310, -0.511, 0.112, 0.179, 0.185) | 0.1124 | 8.6e-16 |
| 5 (0.274, -0.579, -0.430, 0.151, 0.182, 0.132) | 0.2267 | 1.1e-15 |
여섯 기하 모두 상대 차이가 $1.8\times10^{-15}$ 이하이다. 식에 $d_1$·$d_4$·$d_6$이 없다는 점도 기하를 바꿔도 맞는다는 데서 확인된다. 상수 인자 $-a_2a_3$를 포함해 계수가 정확하다.
② 특이 형상 근처와 어깨 조건. 세 특이 형상에 한 관절만 가까이 다가가며 $\sigma_{\min}(J_p)$를 구했다.
세 선이 모두 기울기 1인 기준선과 평행하다. 비례 상수는 아래 표와 같다. UR5의 최대 조작성도 함께 정리했다. $w=\lvert a_2a_3\sin q_3\sin q_5\,F\rvert$의 최댓값을 $(q_2,q_3,q_4)$에서 무작위 시작 40개의 패턴 탐색으로 구하고 $q_5=\pi/2$에서 SVD로 확인했다.
| UR5의 특이 형상 접근과 최대 조작성 | 값 |
|---|---|
| 손목: $\sigma_{\min}/\varepsilon$ ($\varepsilon=10^{-4}$, $10^{-2}$) | 0.5621, 0.5612 |
| 팔꿈치: $\sigma_{\min}/\varepsilon$ ($\varepsilon=10^{-4}$, $10^{-2}$) | 0.1631, 0.1630 |
| 어깨: $\sigma_{\min}/\varepsilon$ ($\varepsilon=10^{-4}$, $10^{-2}$) | 0.0471, 0.0473 |
| $w_{\max}$, 형상 $(q_2,q_3,q_4)$ | 0.11988, (-2.5398, -1.2622, -0.9104) |
| 그 형상의 $\prod\sigma_i$, $\sigma_{\max}$, $\sigma_{\min}$, $\kappa$ | 0.11988, 1.9073, 0.1912, 9.977 |
| 어깨 조건 $F=0$: 표본 수, $\max\lvert r-d_4\rvert$, $\max\lvert\det J\rvert$, 임의 형상의 $r_{\min}$ | 866, 5.0e-16, 7.6e-17, 0.10915 |
damped 대 닫힌 식(이득·잔차)의 최대 차이 | 1.0e-12 |
$\sigma_{\min}/\varepsilon$는 $\varepsilon=10^{-4}$과 $10^{-2}$에서 세 자리까지 같으므로 선형이다. 상수는 손목 $0.56$, 팔꿈치 $0.16$, 어깨 $0.047$로 다르며 이 기준 형상에서의 값이다(다른 형상에서는 달라진다). 최대 $w$ 자세($q_2=-2.5398$, $q_3=-1.2622$, $q_4=-0.9104$ rad, $q_5=\pi/2$)에서 SVD의 $\prod\sigma_i$가 닫힌 식의 값 $0.11988$과 같다. 이 자세의 조건수는 $9.98$로 등방적이지 않다. $w$ 최대와 $\kappa$ 최소는 다른 기준이다. 어깨 조건 $F=0$에서 손목 중심의 반경이 $d_4=0.10915$ m이고(최대 오차 $5.0\times10^{-16}$) $\lvert\det J\rvert\le7.6\times10^{-17}$이다. 임의 형상 20,000개에서 반경의 최솟값이 $0.10915$ m로 $d_4$와 같아, 어깨 특이점은 손목 중심이 갈 수 있는 반경의 하한 위에 있다.
③ 2R 팔의 속도·힘 타원. $q_1=20^\circ$에서 팔꿈치 각을 바꾼 두 자세의 속도 타원(파랑)과 힘 타원(주황)이다.
| 2R 팔($l_1=0.4$ m, $l_2=0.3$ m, $q_1=20^\circ$) | $\sigma_1$ | $\sigma_2$ | $w=\sigma_1\sigma_2$ | $l_1l_2\lvert\sin q_2\rvert$ | $\kappa$ |
|---|---|---|---|---|---|
| $q_2=90^\circ$ | 0.5389 | 0.2227 | 0.12000 | 0.12000 | 2.42 |
| $q_2=60^\circ$ | 0.6597 | 0.1575 | 0.10392 | 0.10392 | 4.19 |
| $q_2=30^\circ$ | 0.7357 | 0.0816 | 0.06000 | 0.06000 | 9.02 |
| $q_2=10^\circ$ | 0.7587 | 0.0275 | 0.02084 | 0.02084 | 27.62 |
$w=\sigma_1\sigma_2$가 닫힌 식 $l_1l_2\lvert\sin q_2\rvert$와 일치하고(임의 형상 200개에서 최대 차이 $5.6\times10^{-17}$) 팔을 펴는 쪽($q_2\to0$)으로 갈수록 $\sigma_2\to0$이어서 조건수가 커진다. 자세 B에서 속도 타원은 팔이 뻗은 방향(반경 방향)으로 납작하고 힘 타원은 그 방향으로 길다(팔을 펴면 그 방향의 힘은 작은 관절 토크로 지탱된다). 속도 타원의 면적 $\pi\sigma_1\sigma_2$와 힘 타원의 면적 $\pi/(\sigma_1\sigma_2)$의 곱이 $\pi^2$임을 다각형 면적(3,600점)으로 확인했다(임의 형상 50개에서 상대 차이 $1.0\times10^{-6}$).
④ 좌표계·TCP·길이 단위에 따른 순위.
| 순위 비교(UR5, 무작위 형상 200개의 모든 쌍 19,900개) | $w$ | $\sigma_{\min}$ | $\kappa$ |
|---|---|---|---|
| $J_p$의 길이 단위 m 대 mm에서 순서가 뒤바뀐 쌍의 비율 | 0.0 % | 20.7 % | 24.9 % |
| $J_p$ 대 $J_s$에서 순서가 뒤바뀐 쌍의 비율 | 0.0 % | 2.1 % | 2.3 % |
| TCP를 공구 $z$축으로 0.15 m 옮기기 전후에서 순서가 뒤바뀐 쌍의 비율 | 0.0 % | 0.5 % | 0.8 % |
$w$의 순위는 세 변환 모두에서 뒤바뀐 쌍이 없다. 최소 특이값과 조건수는 길이 단위 m↔mm에서 쌍의 $21\sim25$ %, $J_s$로 계산하면 $2$ %, TCP를 $0.15$ m 옮기면 $0.5\sim0.8$ %의 쌍이 뒤바뀐다. 같은 형상에서 $\kappa(J_s)/\kappa(J_p)$는 $0.79\sim1.44$이다. TCP를 옮긴 위치 자코비안이 $J_p$의 $L$ 꼴 변환(2.8)과 $2.2\times10^{-16}$ 안에서 같고 $w$의 상대 변화는 $6.3\times10^{-13}$이다. 형상을 서로 비교하는 용도에는 $w$가 단위·좌표계에 의존하지 않는 지표이다. 조건수나 최소 특이값을 사용할 때는 특성 길이·TCP·기준 좌표계를 함께 적어야 한다.
⑤ 감쇠 최소제곱의 이득과 잔차. 특이값 하나에 대한 이득 곡선이다. 상수 감쇠 $\lambda=0.05$는 $\sigma=\lambda$에서 최대 $10$이고, 가변 감쇠($\lambda_0=0.05$, $\sigma_0=0.1$)는 $\sigma\ge\sigma_0$에서 유사역행렬과 같다.
UR5 임의 형상 4,000개의 통계이다. 속도 이득과 잔차는 단위 크기의 무작위 트위스트에 대한 제곱평균 값이며, $\sigma_{\min}<0.1,\ 0.05,\ 0.02,\ 0.01$인 형상의 비율은 $62.3,\ 38.8,\ 20.1,\ 12.0$ %이다.
| 무작위 형상 4000개의 통계(UR5, $J_p$, 길이 단위 m) | 중앙값 | 95 % | 99 % | 최댓값 |
|---|---|---|---|---|
| $\sigma_{\min}$ | 0.07203 | 0.216 | 0.2446 | 0.2706 |
| 유사역행렬: 평균 속도 이득 | 6.293 | 119.9 | 1094 | 2.71e+04 |
| 상수 감쇠 $\lambda=0.05$: 평균 속도 이득 | 3.804 | 5.106 | 5.593 | 6.832 |
| 상수 감쇠 $\lambda=0.05$: 평균 잔차 | 0.139 | 0.4157 | 0.4629 | 0.5887 |
| 가변 감쇠 $(\lambda_0,\sigma_0)=(0.05,0.1)$: 평균 속도 이득 | 4.149 | 5.658 | 6.177 | 7.39 |
| 가변 감쇠 $(0.05,0.1)$: 평균 잔차 | 0.08001 | 0.4153 | 0.4629 | 0.5887 |
| 상수 감쇠 $\lambda=0.01$: 평균 속도 이득 | 5.898 | 20.09 | 21.15 | 27.58 |
| 상수 감쇠 $\lambda=0.01$: 평균 잔차 | 0.007981 | 0.3668 | 0.4079 | 0.4851 |
| 가변 감쇠 $(0.01,0.02)$: 평균 속도 이득 | 5.986 | 23.16 | 24.13 | 29.92 |
| 가변 감쇠 $(0.01,0.02)$: 평균 잔차 | 7.85e-17 | 0.3656 | 0.4079 | 0.4851 |
유사역행렬의 평균 속도 이득은 중앙값 $6.3$에서 99 %에 $1.1\times10^{3}$, 최댓값 $2.7\times10^{4}$까지 퍼진다. 상수 감쇠 $\lambda=0.05$는 이득을 $6.8$ 이하로 제한하지만 중앙값 형상에서도 평균 잔차가 $14$ %이다. 가변 감쇠 $(0.05,0.1)$은 중앙값 잔차가 $8$ %로 줄고 꼬리(95 %·99 %·최댓값)는 상수 감쇠와 같다. 매개변수를 $(0.01,0.02)$로 낮추면 가변 감쇠의 중앙값 잔차가 $10^{-16}$(대부분 형상에서 $\sigma_{\min}\ge0.02$이므로 감쇠가 꺼진다), 이득의 최댓값이 $29.9$이다. 95 % 이상에서는 평균 잔차가 $0.37\sim0.59$로 방법과 매개변수에 거의 무관한데, 이는 특이값이 작은 한두 방향의 지령을 따르지 못하기 때문이다(한 방향이면 $\sqrt{1/6}=0.41$). 감쇠 매개변수는 길이 단위와 로봇 크기에 따라 정해야 하며 UR5를 m 단위로 볼 때 $\lambda=0.05$는 무작위 형상 절반 이상에서 이미 큰 감쇠이다. damped 함수의 이득·잔차가 닫힌 식과 $1.0\times10^{-12}$ 안에서 같다(손목 $q_5=10^{-2},10^{-3},10^{-4}$의 최소 특이 방향 지령).
⑥ 라이브러리 대조(실행 2026-11-03). 같은 UR5 형상 200개에서 Robotics Toolbox for Python 1.5.0의 manipulability(q, method, axes)를 이 장의 값과 비교했다. Robotics Toolbox에는 UR5의 표준 DH 표를 입력했고 axes='trans'는 jacob0의 윗 3행(선속도), 'rot'는 아랫 3행이다. 스크립트는 robotics/fig-src/2.9-libcheck.py, 출력은 robotics/fig-src/data/2.9-libcheck-output.txt에 있다.
| 비교(UR5, 관절 변수 200개) | 최대 차이 |
|---|---|
RTB manipulability(method='yoshikawa', axes='all') 대 이 장의 값 | 3.1e-16 |
RTB manipulability(method='yoshikawa', axes='trans') 대 이 장의 값 | 3.3e-16 |
RTB manipulability(method='yoshikawa', axes='rot') 대 이 장의 값 | 3.1e-15 |
RTB manipulability(method='invcondition', axes='all') 대 이 장의 값 | 2.6e-16 |
RTB manipulability(method='invcondition', axes='trans') 대 이 장의 값 | 1.2e-15 |
RTB manipulability(method='invcondition', axes='rot') 대 이 장의 값 | 5.6e-16 |
RTB manipulability(method='minsingular', axes='all') 대 이 장의 값 | 4.5e-16 |
RTB manipulability(method='minsingular', axes='trans') 대 이 장의 값 | 5.1e-16 |
RTB manipulability(method='minsingular', axes='rot') 대 이 장의 값 | 1.1e-15 |
numpy linalg.svd의 특이값 대 1.1 야코비 SVD | 2.2e-15 |
세 방법(yoshikawa·invcondition·minsingular)과 세 옵션(all·trans·rot)의 9가지 조합이 모두 $3.1\times10^{-15}$ 안에서 같고, numpy의 SVD와 1.1의 야코비 SVD도 $2.2\times10^{-15}$ 안에서 같다. asada 방법은 질량 정보가 필요해 비교하지 않았다.
한계. 수치는 합성 형상(관절 구간 $[-\pi,\pi]$ 균등)의 결과이며 실제 관절 한계와 작업 영역 분포를 반영하지 않는다. 행렬식 닫힌 식은 수치로 확인했고 기호 유도는 하지 않았다. 감쇠 실험은 한 시점의 자코비안에 대한 정적 이득·잔차이며 닫힌 루프 추종, 이산 시간 효과, 관절 속도 한계는 다루지 않았다. 가변 감쇠의 매개변수는 조정하지 않았다. 한 로봇(UR5)과 UR형 기하만 확인했고 구면 손목 팔·여유자유도·병렬 기구의 특이점은 다루지 않았다.
견해: 형상을 서로 비교·최적화하는 목적에는 요시카와 $w$를, 특이점 접근 경고에는 $\sigma_{\min}$(특성 길이를 명시한 6차원 또는 병진·회전 분리)을 사용하고, 제어 단계의 특이점 처리는 상수 감쇠가 아니라 가변 감쇠(또는 특이값 필터링)를 기본으로 둔다고 본다. 근거는 이 장의 계산에서 $w$의 순위는 세 변환에서 뒤바뀐 쌍이 없었고($\sigma_{\min}$·$\kappa$는 $0.5\sim25$ %), 상수 감쇠 $\lambda=0.05$는 중앙값 형상에서도 잔차 $14$ %를 남긴 반면 가변 감쇠 $(0.01,0.02)$는 중앙값 형상에서 잔차가 없었다는 점이다. 감쇠 매개변수를 응용의 속도 한계와 지령 정밀도에 맞춰 정해야 하는 응용에서는 이 판단이 달라질 수 있다.
2.9.6 설계 트레이드오프 — 특이점 근처에서 무엇을 할 것인가
공개 문헌에서 확인되는 선택은 다음과 같다.
- ① 대응 없음(유사역행렬). 가장 단순하며 특이점에서 먼 곳에서는 지령을 정확히 따른다. 특이점 근처에서 관절 속도가 $1/\sigma_{\min}$로 커진다.
- ② 상수 감쇠. 이득이 $1/(2\lambda)$ 이하로 제한된다. 모든 형상에서 편향이 남고 $\lambda$가 단위에 종속된다.
- ③ 가변 감쇠. 특이점 근처에서만 편향을 둔다. 두 매개변수 $(\lambda_0,\sigma_0)$를 정해야 한다.
- ④ 특이값 절단·필터링. 작은 특이값 방향을 버리거나 줄인다. 원리는 간단하나 절단 경계에서 불연속이 생길 수 있다(Maciejewski·Klein 1988이 다룬 것으로 알려져 있다. 이 장은 구현하지 않았다).
- ⑤ 경로·구성 회피. 특이점을 포함하지 않는 경로를 계획한다(2.10). 구현이 별도로 필요하다.
| 방식 | 입력 | 장점 | 한계 | 알맞은 경우 |
|---|---|---|---|---|
| ① 유사역행렬 | $J$, $V$ | 단순, 먼 곳에서 정확 | 특이점에서 발산 | 특이점이 작업 영역 밖인 작업 |
| ② 상수 감쇠 | $J$, $V$, $\lambda$ | 속도 상한, 단순 | 전 영역 편향, 단위 종속 | 일반 IK(2.6) |
| ③ 가변 감쇠 | $J$, $V$, $\lambda_0$, $\sigma_0$ | 먼 곳에서 정확, 근처에서 제한 | 매개변수 2개 | 연속 직교 속도 제어 |
| ④ 특이값 필터링 | $J$, $V$, 임계값 | 방향별 처리 | 불연속, 구현 복잡 | 특이점을 지나야 하는 추종 |
| ⑤ 경로·구성 회피 | 경로, 작업공간 지도 | 근본적 회피 | 계획 비용, 작업 제약 | 오프라인 프로그래밍 |
견해: 속도 수준의 특이점 처리는 ③을 기본으로 하고, 특이점을 포함하지 않는 경로는 ⑤로 먼저 걸러내는 것을 기본으로 둔다고 본다. 근거는 이 장에서 형상의 $20$ %가 $\sigma_{\min}<0.02$, $12$ %가 $\sigma_{\min}<0.01$(UR5, m 단위, $[-\pi,\pi]^6$ 균등)이었고 감쇠 없이는 평균 속도 이득이 99 %에서 $1.1\times10^{3}$, 최댓값 $2.7\times10^{4}$까지 퍼졌다는 점이다. 관절 속도 한계로 속도를 직접 제한하는 구동기·제어기 구성에서는 이 판단이 달라질 수 있다.
2.9.7 응용 축 비교
| 응용 축 | 특이점·조작성이 맡는 일 | 요구 | 관련 장 |
|---|---|---|---|
| 산업·제조 | 경로의 특이점 검사, 손목 특이점 근처 직교 이송의 속도 제한 | 일정한 TCP 속도, 특이점 경고 | 2.10, 28.2 |
| 물류·이동 | 이동 매니퓰레이터의 팔·베이스 조작성 | 실시간, 연속성 | 2.15 |
| 도로 주행 | 해당하는 고유 요구 없음 | — | — |
| 서비스 | 가정용 7축 팔의 조작성 최대화, 여유자유도 | 영공간 활용, 안전 | 2.11, 7.3 |
| 의료·헬스케어 | 도구 끝 속도와 RCM 근처의 특이점 | 정밀도, 특이점 회피 | 32.14 |
| 휴머노이드·범용 | 전신 제어의 팔 조작성 지표 | 실시간 QP | 12.7, 7.18 |
| 필드 | 해당하는 고유 요구 없음(이동·휴머노이드 행과 같음) | — | — |
| 국방·안보 | 원리 수준에서 해당하는 고유 요구 없음 | — | — |
이 표는 이 책의 정리이며 장별 요구는 다르다.
2.9.8 관련 규격·프로토콜
| 문서 | 발행 | 무엇을 정하나 | 상세 장 |
|---|---|---|---|
manipulability·vellipse·fellipse | Robotics Toolbox for Python 1.5.0 | yoshikawa·invcondition·minsingular·asada 지표, axes(all·trans·rot), 속도·힘 타원 | 2.7 |
| Modern Robotics 5.3·5.4절 | Lynch·Park, 2017 | 특이점 사례 I~V, 조작성 타원체, 측도 $\mu_1\sim\mu_3$ | 2.4 |
| 수학 표기·기호표 | 이 책 | 특이값·조건수 표기 | A.2 |
2.9.9 관련 규제·인증 요구와의 연결
특이점의 정의·처리 방식을 규정하는 법령·인증 요건은 확인하지 못했다. 산업 로봇 안전 표준의 속도 제한·감시 기능(27.10)은 TCP의 속도 한도를 정하며, 특이점 근처에서 관절 속도가 커지는 것은 그 한도·구동기 한계와 충돌한다. 이 장은 규정의 조항을 확인하지 않았다 (확인 필요).
2.9.10 한계·유의점·미해결
- 단위. 6차원 자코비안의 $\sigma_{\min}$·$\kappa$와 감쇠 매개변수는 길이 단위에 종속된다. 특성 길이를 명시하거나 병진·회전을 나누어 본다.
- 지표의 의미. $w$는 순위에는 안정하지만 등방성을 알려 주지 않는다. $w$ 최대와 $\kappa$ 최소는 다른 자세이다.
- 행렬식 식. UR형 행렬식은 수치로 확인했고 기호 유도는 하지 않았다. 구면 손목 팔의 식은 다룬 바 없다.
- 정적 분석. 감쇠 통계는 한 시점의 자코비안이며 닫힌 루프의 안정성·연속성·관절 속도 한계는 별도 분석이 필요하다.
- 특이점 통과. 특이점을 통과해야 하는 경로의 해 연속성(분기 전환)은 다루지 않았다.
- 병렬 기구. 병렬 기구의 특이점은 이 장의 개방 사슬 정의로 다 설명되지 않는다(2.14).
2.9.11 체크포인트·연구 질문·출처
체크포인트:
- 특이점이 기저·공구 좌표계의 선택과 무관한 이유를 $J_b'=J_b$($T'=PT$)와 $J_s'=J_s$($T'=TQ$)로 설명하라.
- 속도 타원체와 힘 타원체의 반축 길이가 각각 $\sigma_i$와 $1/\sigma_i$인 이유를 $\tau=J^\top F$에서 보이라.
- 길이 단위를 바꿔도 $w$의 순위가 변하지 않는 이유를 $D=\mathrm{diag}(1,1,1,1/L,1/L,1/L)$로 보이라.
- 감쇠 최소제곱의 이득 $\sigma/(\sigma^2+\lambda^2)$의 최댓값과 그때의 잔차 비율을 구하라.
- 가변 감쇠가 특이점에서 멀 때 유사역행렬과 같아지는 이유를 $\lambda=0$으로 설명하라.
연구 질문:
- 병진·회전을 섞는 6차원 지표의 특성 길이를 형상 의존적으로 정하는 방법은 무엇인가?
- 특이점을 통과하는 직교 경로에서 분기 전환과 속도 제한을 함께 보장하는 제어는 무엇인가?
1차 출처(조회 2026-11-03).
- K. M. Lynch, F. C. Park, Modern Robotics, Cambridge University Press, 2017(ISBN 9781107156302). 사전 인쇄본 2017-05-03판의 5.3·5.4절을 읽었다.
- T. Yoshikawa, "Manipulability of robotic mechanisms," The International Journal of Robotics Research 4(2), 3–9, 1985, doi:10.1177/027836498500400201 — 서지만 확인. 같은 저자의 "Manipulability and redundancy control of robotic mechanisms," Proc. IEEE ICRA, 1004–1009, 1985, doi:10.1109/robot.1985.1087283 — 서지만 확인.
- C. A. Klein, B. E. Blaho, "Dexterity measures for the design and control of kinematically redundant manipulators," IJRR 6(2), 72–83, 1987, doi:10.1177/027836498700600206 — 서지만 확인.
- Y. Nakamura, H. Hanafusa, "Inverse kinematic solutions with singularity robustness for robot manipulator control," Journal of Dynamic Systems, Measurement, and Control 108(3), 163–171, 1986, doi:10.1115/1.3143764 — 서지만 확인.
- C. W. Wampler, "Manipulator inverse kinematic solutions based on vector formulations and damped least-squares methods," IEEE Transactions on Systems, Man, and Cybernetics 16(1), 93–101, 1986, doi:10.1109/tsmc.1986.289285 — 서지만 확인.
- A. A. Maciejewski, C. A. Klein, "Numerical filtering for the operation of robotic manipulators through kinematically singular configurations," Journal of Robotic Systems 5(6), 527–552, 1988, doi:10.1002/rob.4620050603 — 서지만 확인.
- J. K. Salisbury, J. J. Craig, "Articulated hands: force control and kinematic issues," IJRR 1(1), 4–17, 1982, doi:10.1177/027836498200100102 — 서지만 확인(조건수를 손의 설계 지표로 사용한 연구로 알려져 있다).
- 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 — 서지만 확인.
- Robotics Toolbox for Python 1.5.0
manipulability문서 문자열.
다음 장. 2.10은 작업공간 분석과 도달성 지도(도달성·역 도달성·기저 배치 최적화)를 다룬다. 이 장의 조작성은 도달성 지도의 품질 척도로 사용된다.