역운동학

편집 역사 토론
게임 개발 시뮬레이션 마지막 수정: 2026-07-09 10:32:41

역운동학
Inverse Kinematics
약칭IK
분야로보틱스 × 캐릭터 애니메이션 × 수치해석
입력 → 출력말단(end-effector) 목표 위치 → 관절각
대표 기법자코비안, CCD, FABRIK
반대 개념순운동학(Forward Kinematics)

1. 개요[편집]

역운동학(Inverse Kinematics, IK)은 말단 장치(end-effector)의 목표 위치·자세로부터 이를 달성하는 관절각(joint angle)들을 거꾸로 계산하는 문제다. 로봇 팔의 손끝을 특정 좌표에 갖다 대려면 어깨·팔꿈치·손목을 각각 몇 도씩 돌려야 하는가 — 이걸 푸는 것이 IK다. 관절각이 주어졌을 때 손끝 위치를 구하는 순운동학(Forward Kinematics, FK)의 정반대 방향이라 “역”이 붙었다.

FK는 삼각함수 몇 번 곱하면 끝나는 쉬운 문제지만, IK는 악명 높게 어렵다. 같은 손끝 위치를 만드는 관절각 조합이 여러 개(다중해)이거나, 아예 도달 불가능해서 해가 없거나, 특정 자세에서는 무한히 많거나 하기 때문이다. 이 “정방향은 쉽고 역방향은 지옥”이라는 비대칭이 IK의 본질이다.

2. 순운동학 vs 역운동학[편집]

관절이 nn개인 사슬(chain)의 순운동학은 각 관절의 회전을 동차변환행렬(homogeneous transform)로 표현해 곱하면 된다.

x=f(θ),θ=(θ1,θ2,,θn)\mathbf{x} = f(\boldsymbol{\theta}), \qquad \boldsymbol{\theta} = (\theta_1, \theta_2, \ldots, \theta_n)

여기서 x\mathbf{x}는 말단 위치·자세, ff는 알려진 순운동학 함수다. IK는 이 관계를 뒤집어 θ=f1(x)\boldsymbol{\theta} = f^{-1}(\mathbf{x})를 구하는 것인데, ff가 삼각함수 범벅의 비선형 함수라 역함수가 닫힌 형태로 존재하지 않는 경우가 대부분이다. 그래서 IK는 크게 해석적(analytic) 접근과 수치적(numeric) 접근으로 갈린다.

3. 해석적 해법[편집]

관절 구조가 단순하고 특수하면(예: 6축 산업용 로봇 중 손목 3축이 한 점에서 만나는 구조), 삼각함수를 손으로 풀어 닫힌 공식을 얻을 수 있다. 이것이 해석적 IK다. 장점은 압도적이다 — 계산이 순식간이고, 가능한 모든 해를 정확히 열거할 수 있다. 산업용 로봇 제어기가 실시간으로 IK를 푸는 비결이 대개 이것이다.

단점은 일반화가 안 된다는 것. 관절 하나만 추가되거나 구조가 바뀌면 공식을 처음부터 다시 유도해야 한다. 그래서 임의의 골격 구조를 다뤄야 하는 게임·애니메이션 쪽에서는 수치적 방법이 대세다.

4. 수치적 해법[편집]

수치적 IK는 초기 자세에서 시작해 목표에 조금씩 다가가도록 관절각을 반복 갱신한다. 핵심 도구는 자코비안 행렬(Jacobian) J=f/θJ = \partial f / \partial \boldsymbol{\theta}로, 관절각 미소 변화가 말단 위치를 어떻게 움직이는지를 선형화한다.

Δx=JΔθΔθ=J+Δx\Delta \mathbf{x} = J \, \Delta \boldsymbol{\theta} \quad\Rightarrow\quad \Delta \boldsymbol{\theta} = J^{+} \, \Delta \mathbf{x}
  • 자코비안 전치(transpose)J+J^{+} 대신 JTJ^{T}를 쓴다. 역행렬 계산이 없어 싸지만 수렴이 느리다. 물리적으로는 목표 방향으로 가상의 힘을 걸어 관절을 끌어당기는 것과 같다.
  • 의사역행렬(pseudo-inverse) — 무어–펜로즈 의사역행렬로 최소 노름 해를 구한다. 정확하지만 특이점 근처에서 폭발한다.
  • 감쇠 최소자승(DLS, Damped Least Squares)JT(JJT+λ2I)1J^{T}(JJ^{T} + \lambda^2 I)^{-1}로 특이점을 감쇠시켜 안정화한다. 레벤버그–마쿼트의 IK판. 실무 국룰.
  • CCD(Cyclic Coordinate Descent) — 자코비안 없이 관절을 하나씩 돌려 말단이 목표를 향하게 하는 방식을 사슬 끝에서 뿌리까지 반복. 구현이 쉽고 게임에서 인기.
  • FABRIK — 사슬을 앞으로/뒤로 접었다 펴며 위치를 맞추는 기하학적 방법. 회전행렬 없이 점 위치만 다뤄 빠르고 자연스럽다.1

5. 특이점과 다중해[편집]

수치적 IK의 최대 난관은 **특이점(singularity)**이다. 팔을 완전히 쭉 편 자세처럼, 자코비안의 계수(rank)가 떨어지는 지점에서는 JJTJJ^{T}가 특이해져 의사역행렬이 발산한다. 말단을 아주 조금 움직이려는데 관절이 미친 듯이 회전하는(속도 폭발) 현상이 이때 나온다.2 DLS의 감쇠항 λ\lambda가 바로 이 폭발을 막으려고 존재한다.

또 하나는 다중해다. 사람 팔로 컵을 잡는 자세가 여러 가지이듯, 대부분의 IK는 해가 여럿이다. 게임 애니메이션에서는 관절 제한(joint limit)과 자연스러움을 우선하는 해를, 로봇에서는 장애물 회피·에너지 최소를 우선하는 해를 고르도록 추가 제약을 건다.

6. 응용[편집]

게임·영화에서 IK는 이미 없어선 안 될 기술이다. 발이 경사면에 정확히 닿도록 다리를 굽히는 풋 IK(foot planting), 캐릭터가 손으로 문고리를 정확히 잡는 룩앳/핸드 IK, 시선을 목표에 맞추는 룩앳 IK 등이 강체 동역학 기반 물리 엔진과 결합해 천 시뮬레이션처럼 실시간으로 돈다. 로보틱스에서는 매니퓰레이터 경로 계획, 휴머노이드 보행 제어의 핵심 모듈이며, 최근에는 모션 캡처 데이터 정합이나 학습 기반 제어의 사전 지식으로도 쓰인다.

7. 관련 문서[편집]

8. Footnotes[편집]

  1. FABRIK = Forward And Backward Reaching Inverse Kinematics. 이름이 길어서 그렇지 원리는 “끈을 양쪽에서 잡아당겨 맞춘다”는 초등학생도 이해할 수준이다. 그런데도 결과는 놀랍도록 자연스럽다.

  2. 로봇 팔을 특이점 근처에서 데카르트 속도 제어하다 보면 관절이 갑자기 채찍처럼 휘두르는 걸 볼 수 있다. 실험실에서 이걸 처음 목격하면 심장이 철렁한다. 그래서 다들 DLS를 쓴다.