기구학

편집 역사 토론
시뮬레이션 물리 게임 개발 마지막 수정: 2026-09-03 04:18:41

1. 개요[편집]

기구학
Kinematics
다루는 것위치·자세·속도·가속도 — 힘과 질량은 빼고
배위공간강체 하나당 $SE(3)$, 6자유도
기본 정리샤슬 — 임의의 강체 변위는 스크류 운동
자유도그뤼블러-쿠츠바흐 식(필요조건일 뿐)
핵심 도구야코비안 $J(q)$ — 특이점·조작성이 전부 여기서
천적폐연쇄, 랭크 결손, 분기
한 줄 요약힘을 안 보기로 하면 문제의 절반이 사라진다

무게를 재지 않고 움직임만 본다. 이 사치스러운 단순화가 로봇 팔부터 굴착기까지를 설계 가능한 물건으로 만들었다.

기구학(kinematics)은 힘·질량·관성을 일절 다루지 않고 물체의 위치·자세와 그 시간 도함수(속도·가속도)만으로 운동을 기술하는 역학의 분과다. 뉴턴 제2법칙이 등장하지 않는 역학이라고 말해도 크게 틀리지 않는다. 대신 등장하는 것은 기하학과 선형대수뿐이며, 그 덕에 문제가 대수방정식과 야코비안 수준으로 내려온다.

역학의 세 분과를 갈라 보면 위치가 분명해진다. 정역학은 가속도가 0인 계의 힘 평형을 보고, 동역학은 힘과 운동을 함께 본다. 기구학은 힘을 아예 화면에서 지운다. 힘을 지웠으므로 “이 자세가 가능한가”, “손끝을 여기에 두려면 관절을 어떻게 돌려야 하나”, “관절을 이 속도로 돌리면 손끝은 어디로 가나” 같은 질문만 남는다. 그리고 실제 기계 설계에서는 이 질문들에 먼저 답해야 힘 이야기를 시작할 자격이 생긴다. 링크 치수가 정해지기 전에는 관성행렬이 존재하지도 않으니까.

기구 합성(원하는 궤적을 내는 링크 치수를 역으로 찾기), 4절 링크의 그라스호프 분류, 캠·기어열 같은 설계 쪽 이야기는 메커니즘 설계가 다루므로 여기서는 반복하지 않는다. 이 문서는 기구학의 표현과 계산 — 강체 변위를 무엇으로 쓰고, 자유도를 어떻게 세고, 야코비안이 무엇을 알려주고, 폐연쇄를 코드에서 어떻게 유지하는가 — 에 무게를 둔다.

2. 강체의 배위 — SE(3)와 샤슬 정리[편집]

강체 하나의 배위는 회전 RSO(3)R\in SO(3) 과 위치 pR3\mathbf{p}\in\mathbb{R}^3 의 짝이고, 동차변환행렬로 묶어 쓴다.

T=[Rp0T1]SE(3)T=\begin{bmatrix} R & \mathbf{p}\\ \mathbf{0}^{\mathsf T} & 1\end{bmatrix}\in SE(3)

곱셈으로 합성되고 역행렬이 존재하므로 군이며, 차원은 3+3=63+3=6 이다. 회전을 무엇으로 표현하느냐(회전행렬·오일러각·사원수)는 그 자체로 큰 주제이고 회전행렬 문서가 담당한다. 여기서는 표현 선택의 결과 하나만 짚는다 — 최소 개수(3개)의 각으로 회전을 매개화하면 반드시 좌표 특이점이 생긴다(짐벌락). 자유도 3인 회전군이 3차원 유클리드 공간과 위상적으로 다르기 때문에 피할 수 없는 일이며, 그래서 자세를 적분하는 코드는 사원수나 행렬을 쓴다.

기구학의 진짜 출발점은 샤슬 정리(Chasles’ theorem)다. 임의의 강체 변위는 어떤 직선(스크류 축)에 대한 회전과 그 축 방향 병진의 합성으로 쓸 수 있다. 즉 나사를 돌려 박는 운동 하나가 모든 강체 변위를 표현한다.1 회전만 있으면 순수 회전, 회전이 없으면 순수 병진이 특수 경우로 들어간다.

이 정리를 미분한 형태가 실무에서 더 자주 보인다. 강체의 순간 운동은 각속도와 한 점의 선속도를 6차원으로 묶은 트위스트(twist)

ξ=[ωv]R6\boldsymbol\xi=\begin{bmatrix}\boldsymbol\omega\\ \mathbf{v}\end{bmatrix}\in\mathbb{R}^6

로 쓰이고, 이것이 SE(3)SE(3) 의 리 대수 se(3)\mathfrak{se}(3) 의 원소다. 지수사상 exp(ξ^θ)\exp(\hat{\boldsymbol\xi}\theta) 가 트위스트를 유한 변위로 되돌려 주며, 여기서 관절 하나 = 스크류 축 하나라는 관점이 나온다. 회전관절은 피치 0인 스크류, 병진관절은 피치 무한인 스크류다. 관절 축을 전부 스크류로 적고 지수를 곱해 순기구학을 쓰는 방식을 지수곱 정식화(product of exponentials)라 부르며, 표기가 좌표계 선택에 덜 의존해 최근 로보틱스 교과서의 표준이 되었다. 군론적 배경은 리 군 문서에 있고, 스크류의 대수(플뤼커 좌표, 상반성, 스크류계의 랭크)를 본격적으로 다루는 것은 스크류 이론이다.

평면 기구에서 스크류 축은 종이면에 수직인 직선으로 퇴화하고, 그 발이 곧 고전적인 순간중심이다. “순간중심을 작도해 속도비를 읽는다”는 19세기 기법이 실은 평면으로 내려온 샤슬 정리라는 뜻이다.

3. 자유도를 세는 법, 그리고 못 세는 법[편집]

기구를 보면 가장 먼저 세는 것이 가동도다. 평면 기구에서 링크 nn 개(고정 링크 포함), 1자유도 조인트 j1j_1 개, 2자유도 조인트 j2j_2 개면 F=3(n1)2j1j2F=3(n-1)-2j_1-j_2 이고, 공간 기구에서는 F=6(n1)i(6i)jiF=6(n-1)-\sum_i(6-i)j_i 다. 이 그뤼블러-쿠츠바흐 식과 그 대표적 반례(베넷 링크 같은 과구속 기구)는 메커니즘 설계에서 이미 정리했으므로 결론만 옮긴다 — 이 식은 치수를 보지 않으므로 스크리닝이지 판정이 아니다.

계산 쪽 사람에게 중요한 것은 판정의 정본이 무엇이냐다. 답은 구속 야코비안의 랭크다. 배위 qRNq\in\mathbb{R}^{N} 에 구속 Φ(q)=0Rm\boldsymbol\Phi(q)=\mathbf{0}\in\mathbb{R}^{m} 이 걸려 있으면, 어떤 자세 q0q_0 에서의 순간 자유도는

Finst=NrankG(q0),G=ΦqF_{\text{inst}}=N-\operatorname{rank}\, G(q_0),\qquad G=\frac{\partial\boldsymbol\Phi}{\partial q}

이다. 구속식을 몇 개 썼느냐가 아니라 그것들이 독립인 개수가 답이며, 그래서 실무 진단은 특이값 분해GG 의 특이값을 찍어 보고 몇 개가 수치적으로 0인지 세는 것이다. 그뤼블러 식이 틀리는 모든 경우가 “구속이 종속이 됐다”로 설명된다.

여기서 초심자를 반드시 한 번 태우는 함정이 있다. 순간 자유도와 유한 자유도는 다르다. GG 의 영공간이 1차원이라 “1자유도 기구”로 보이는데도, 그 방향으로 유한한 거리를 실제로 움직일 수 없는 배위가 존재한다. 1차 항에서만 움직이고 2차 항에서 막히는 경우이며, 강성 이론에서는 이런 골조를 무한소 가동(infinitesimally movable, 흔들림 골조)이라 부른다. 판정하려면 구속의 2차 도함수까지 봐야 한다.2 반대 방향의 함정도 있다 — 유한 운동은 되는데 특정 자세에서 순간적으로 GG 의 랭크가 떨어지는 경우로, 그게 다음 절의 특이점이다.

4. 순기구학 — 곱셈 문제[편집]

관절 변수 q=(q1,,qn)q=(q_1,\dots,q_n) 이 주어졌을 때 말단의 자세 T(q)T(q) 를 구하는 것이 순기구학(forward kinematics)이다. 직렬 사슬이라면 링크마다 동차변환을 하나씩 곱하면 끝난다.

T0n(q)=A1(q1)A2(q2)An(qn)T_{0n}(q)=A_1(q_1)A_2(q_2)\cdots A_n(q_n)

곱셈만 하면 되므로 항상 유일하고 항상 값이 나온다. 기구학에서 마음 편한 유일한 계산이다.

관절 사이의 좌표계를 어떻게 붙이느냐의 규약이 데나비트-하르텐베르크 표기법(1955)이다. 인접한 두 관절 축 사이의 관계를 공통법선을 기준으로 잡으면 6개가 아니라 4개(a,α,d,θa,\alpha,d,\theta)의 수로 충분하다는 것이 요점이고, 그래서 6축 로봇의 기구학이 24개의 수로 완전히 적힌다. 실무에서 물리는 것도 정해져 있다.

  • 표준판과 크레이그 변형판이 병용된다. 변환 순서가 달라 같은 로봇에 대해 파라미터 표가 서로 다르게 나오므로, 남의 표를 가져올 때 어느 규약인지 확인하지 않으면 조용히 틀린다.
  • 축이 평행하거나 한 점에서 만나면 공통법선이 유일하지 않다. 파라미터가 퇴화하므로 관습적으로 하나를 골라야 하고, 이때 보정용 파라미터의 감도가 사라져 기구 보정이 특이해진다. 실제 로봇의 정밀도를 지배하는 것이 이 미세한 기구학 파라미터 오차이므로 사소한 문제가 아니다.
  • 그래서 요즘 코드는 DH 대신 관절마다 원점과 축 방향을 직접 적는다. URDF가 그렇고, 지수곱 정식화가 그렇다. 파라미터가 더 많아지지만 퇴화가 없다.

역기구학(inverse kinematics)은 반대 방향이며, 여기서 사정이 급변한다. 삼각함수 범벅의 비선형계라 해가 없거나 여럿이거나 무한히 많다. 특수 구조에는 닫힌 해가 있다 — 피퍼(Pieper, 1968)가 세 관절 축이 한 점에서 만나는 등의 경우를 해석적으로 풀었고, 그래서 손목 3축이 한 점에서 교차하는 산업용 로봇이 표준 형상이 되었다. 일반 6R 기구는 닫힌 해가 없지만 해의 개수는 최대 16개로 유한하며, 라그반과 로스가 이것을 16차 다항식으로 환원해 보였다. 수치 반복(야코비안 의사역행렬·감쇠최소자승·CCD·FABRIK)의 상세는 역운동학이 담당한다.

5. 속도 기구학 — 야코비안 하나로 다 읽는다[편집]

순기구학을 시간 미분하면 관절 속도와 말단 트위스트를 잇는 선형 관계가 나온다.

[ωv]=J(q)q˙,JR6×n\begin{bmatrix}\boldsymbol\omega\\ \mathbf{v}\end{bmatrix}=J(q)\,\dot q,\qquad J\in\mathbb{R}^{6\times n}

가속도는 한 번 더 미분해 x¨=Jq¨+J˙q˙\ddot{\mathbf{x}}=J\ddot q+\dot J\dot q 이며, 계수행렬이 위치·속도 해석에서 쓴 그 JJ 와 같다. 그래서 야코비안을 한 번 만들어 두면 속도·가속도·정역학·감도가 전부 거기서 나온다. 이 행렬을 다루는 일반론은 자코비안 행렬에 있고, 기구학에서 특별히 읽어내는 것은 다음 세 가지다.

첫째, 힘과의 쌍대성. 말단에 렌치(힘+모멘트) f\mathbf{f} 가 걸릴 때 필요한 관절 토크는 τ=JTf\boldsymbol\tau=J^{\mathsf T}\mathbf{f} 다. 기구학만 알면 정역학이 공짜로 따라온다는 뜻이고, 가상일의 원리에서 곧바로 나오는 결과다. 힘을 안 보겠다던 학문이 힘 계산의 절반을 이미 갖고 있는 셈이다.

둘째, 특이점. JJ 가 랭크를 잃는 자세에서는 어떤 방향으로 말단을 아무리 밀어도 움직일 수 없고, 역방향으로는 미세한 말단 이동에 관절 속도가 발산한다. 직렬 기구에서는 작업공간 경계(팔을 다 펴는 자세)와 내부 특이점(손목 정렬)이 대표적이며, 병렬 기구에서는 액추에이터를 다 잠갔는데도 플랫폼이 움직이는 훨씬 위험한 종류가 추가된다(스튜어트 플랫폼 설계에서 이 특이점 회피가 작업공간을 결정한다).

셋째, 조작성 타원. 관절 속도를 단위 구 q˙1\lVert\dot q\rVert\le1 로 제한하면 말단이 도달할 수 있는 속도 집합은 타원체가 된다.

{Jq˙:q˙1}\{J\dot q:\lVert\dot q\rVert\le 1\}

조작성 타원체(manipulability ellipsoid)의 주축 방향은 JJ 의 좌특이벡터, 반지름은 특이값 σi\sigma_i 다. 즉 특이값이 큰 방향은 잘 움직이고 작은 방향은 잘 못 움직인다. 요시카와의 조작도 w=det(JJT)=iσiw=\sqrt{\det(JJ^{\mathsf T})}=\prod_i\sigma_i 는 이 타원체의 부피이며, 특이점에서 정확히 0이 된다. 등방성(어느 방향으로나 고르게 움직이는가)을 보려면 부피보다 조건수 σmax/σmin\sigma_{\max}/\sigma_{\min} 가 낫다.

같은 구조가 힘 쪽에도 있는데 방향이 뒤집힌다. 관절 토크를 단위 구로 제한하면 낼 수 있는 말단 힘의 타원체는 반지름이 1/σi1/\sigma_i 다. 속도가 잘 나오는 방향이 힘은 못 내는 방향이라는 뜻이고, 이건 기구학적 트레이드오프이지 모터를 키워서 해결할 문제가 아니다. 사람이 무거운 것을 들 때 팔을 쭉 펴는 자세를 본능적으로 쓰는 이유가 여기 있다.

실무에서 반드시 걸리는 함정 하나. JJ 의 위쪽 3행은 각속도(무차원/초), 아래 3행은 선속도(길이/초)라 단위가 섞여 있다. 그래서 det(JJT)\det(JJ^{\mathsf T}) 나 조건수를 그냥 계산하면 값이 길이 단위 선택에 따라 바뀐다. 특성 길이로 회전 블록을 규격화하거나 위치·자세 야코비안을 따로 평가하는 것이 정석이고, 이 규격화를 빼먹은 “조작도 지표”는 서로 비교할 수 없는 숫자다.3

6. 폐연쇄 — 기구학이 뉴턴 반복이 되는 순간[편집]

직렬 사슬은 순기구학이 곱셈으로 끝나므로 편하다. 루프가 닫히면 이야기가 완전히 달라진다. 4절 링크나 자동차의 더블 위시본처럼 링크가 고리를 이루면, 관절 변수를 아무렇게나 줘도 되는 것이 아니라 루프 폐쇄 조건을 만족해야 한다.

Φ(q)=0\boldsymbol\Phi(q)=\mathbf{0}

즉 폐연쇄 기구에서는 “자세를 계산한다”가 이미 비선형 연립방정식을 푸는 일이다. 구동 관절 값을 고정하고 나머지를 뉴턴-랩슨법으로 푸는 것이 표준이며, 각 반복이 GΔq=ΦG\,\Delta q=-\boldsymbol\Phi 를 푼다. GG 가 정방이 아니면 의사역행렬이나 감쇠최소자승을 쓴다. 여기서 두 가지가 따라온다.

  • 조립 자체가 초기 추정에 의존한다. 같은 구동각에 대해 폐연쇄 기구는 보통 여러 개의 자세(분기, branch/circuit)를 갖고, 뉴턴은 초기값에 가까운 쪽으로 수렴한다. 시뮬레이션이 궤적 중간에 갑자기 “반대로 접힌 자세”로 넘어가는 사고가 이 분기 전환이며, 궤적을 따라 이전 스텝 해를 초기값으로 넘겨주는(연속법) 것으로 대개 막는다.
  • 속도·가속도는 다시 선형이다. 한 번 미분하면 Gq˙=Φ/tG\dot q=-\partial\boldsymbol\Phi/\partial t, 두 번 미분하면 Gq¨=G˙q˙G\ddot q=-\dot G\dot q-\cdots 로 같은 GG 를 계수행렬로 하는 선형계다. 그래서 위치 해석만 비싸고 나머지는 싸다.

동역학 코드에서는 이 구속식이 라그랑주 승수법으로 운동방정식에 붙어 지수 3의 미분대수방정식이 되고, 승수를 뽑기 위해 가속도 수준까지 미분하는 대가로 위치·속도 구속이 시간에 따라 표류한다. 게임에서 관절이 슬금슬금 늘어나는 그 현상이다. 대책의 지형만 정리하면 이렇다.

  • 좌표 사영. 매 스텝 뒤 Φ(q)=0\boldsymbol\Phi(q)=0 을 가우스-뉴턴으로 다시 만족시킨다. 정직하지만 적분기의 구조 보존을 깬다.
  • 바움가르테 안정화. 가속도 구속을 Φ¨+2αΦ˙+β2Φ=0\ddot{\boldsymbol\Phi}+2\alpha\dot{\boldsymbol\Phi}+\beta^2\boldsymbol\Phi=0 으로 바꿔 위반량을 감쇠 진동으로 끌어내린다. 상수 두 개가 튜닝 대상이라는 것이 정직하지 않은 부분이다.
  • 지수 축소 정식화. 속도 구속을 미지수로 명시적으로 유지해 지수를 2 또는 1로 내린다(GGL 계열).

세 갈래의 상세는 미분대수방정식다물체 동역학이 다룬다. 기구학 쪽에서 기억할 것은 하나다 — 구속 위반량 Φ\lVert\boldsymbol\Phi\rVert 를 시간에 대해 찍어 보는 것이 폐연쇄 시뮬레이션의 첫 번째 검증 항목이며, 이 그래프가 단조 증가하면 안정화가 없는 것이고 톱니로 튀면 사영이 매 스텝 되돌리고 있는 것이다.

7. 여담[편집]

  • “기구학”이라는 이름은 앙페르가 1834년 과학 분류 시론에서 그리스어 κίνημα(운동)를 따와 cinématique 라고 부른 것에서 왔다. 전자기 쪽 사람에게만 유명한 그 앙페르다.
  • 조인트를 면접촉의 낮은 짝(회전·미끄럼·나사·구·원통·평면)과 점·선접촉의 높은 짝(캠·기어)으로 나누는 분류는 룔로(Reuleaux)의 『이론 기구학』(1875)에서 정착했다. 낮은 짝이 여섯 종류뿐이라는 사실이 로봇 관절 설계의 카탈로그가 그렇게 짧은 이유다.
  • 기구학은 힘을 안 본다는 점에서 게임 엔진과 궁합이 좋다. 캐릭터의 관절 제한, 발 접지 보정, 카메라 리깅은 전부 힘 없이 기하만 맞추는 문제이므로 물리 솔버를 거치지 않는다. 다만 기구학으로 만든 움직임에는 관성이 없어서, 급정지하는 캐릭터가 어색해지는 순간부터 동역학을 섞어야 한다.
  • 실무에서 가장 자주 하는 실수는 자유도만 맞춰 놓고 특이점을 안 본 것이다. 자유도 6인 팔이 자유도 6인 작업을 할 수 있다는 보장은 어디에도 없다 — 도달할 수 있는 자세와 쓸 만한 속도로 지날 수 있는 자세는 다른 집합이다.4

8. 관련 문서[편집]

9. Footnotes[편집]

  1. 정리 이름은 샤슬(1830)에게 붙었지만 모치(Mozzi)가 1763년에 사실상 같은 결과를 얻었다는 지적이 오래전부터 있다. 회전만 다루는 판(임의의 회전은 어떤 축에 대한 단일 회전이다)은 오일러의 회전 정리로 훨씬 유명하다. 기구학에서 이름이 붙은 정리는 대개 이런 족보 다툼이 하나씩 딸려 있다.

  2. 이 구분의 교과서 예제가 “흔들림 골조”다. 절점 몇 개를 특별한 위치에 놓은 트러스가 자유도 계산상 강체인데 손으로 밀면 미세하게 물렁하고, 조금 밀면 다시 딱딱해진다. 1차에서 열린 방향이 2차에서 막힌 것. 텐세그리티 구조가 장력을 걸어 이 2차 강성을 실제 강성으로 쓰는 물건이며, 반대로 정밀 스테이지 설계에서는 이걸 모르고 배치하면 조립 후에 “왜 여기가 흔들리지”를 겪는다.

  3. 이 문제는 논문 심사에서도 자주 지적된다. 조작도 값을 mm 단위로 계산하면 m 단위로 계산한 값과 자릿수가 다른데, 두 논문의 숫자를 표 하나에 나란히 적어 놓은 리뷰 논문이 실제로 있다. 단위가 섞인 야코비안의 행렬식은 물리량이 아니라 그냥 숫자다.

  4. 그래서 로봇 셀 레이아웃 검토는 “닿냐”가 아니라 “그 궤적 전체에서 조작도가 얼마 이상으로 유지되냐”로 한다. 닿기만 하면 된다고 배치했다가 실제 가공 이송속도에서 관절 속도 한계에 걸려 라인이 멈추는 사고가 반복적으로 일어난다. 시뮬레이터에서는 잘 돌아갔는데 — 시뮬레이터가 관절 속도 한계를 안 봤을 뿐이다.