본문 바로가기
로봇공학/로봇공학기초 - 2DOF Sim

[2DOF Simulation] #2. 역기구학 시각화 (Inverse Kinematics Tool)

by TBI 2026. 5. 23.

🛠 끝점에서 거꾸로

지난 글에서는 슬라이더로 관절각을 돌리면 끝점이 따라 움직이는 정기구학 도구를 만져봤습니다. 관절각 → 끝점 방향이었죠.

이번에는 반대 방향으로 갑니다.

"끝점을 마우스로 잡고 끌면, 관절이 알아서 따라오게 만들 수는 없을까?"

이게 바로 역기구학(Inverse Kinematics, IK) 입니다. 이론 시리즈 #2에서 다룬 그 식을, 이번에는 직접 손으로 끌어보면서 이해해봅니다.

 

🧭 왜 시각화가 필요한가

#2 글에서 우리는 IK를 이렇게 정의했습니다.

$$\cos\theta_2 = \frac{x^2 + y^2 - L_1^2 - L_2^2}{2 L_1 L_2}$$ $$\theta_2 = \mathrm{atan2}\!\left(\pm\sqrt{1 - \cos^2\theta_2},\ \cos\theta_2\right)$$ $$\theta_1 = \mathrm{atan2}(y, x) - \mathrm{atan2}(L_2 \sin\theta_2,\ L_1 + L_2 \cos\theta_2)$$

식이 길어 보이지만, IK가 정기구학(FK)과 다른 본질적 특징은 두 가지입니다.

  • $\theta_2$ 의 부호 ± 가 곧 두 가지 해 — Elbow up / Elbow down
  • 끝점이 작업공간 밖에 있으면 해가 존재하지 않음

이 두 특징은 식만 봐서는 잘 와닿지 않습니다. 끝점을 손으로 끌어보고, "같은 위치에서 팔이 두 가지로 접힌다"는 걸 직접 봐야 감이 옵니다.

 

🎮 직접 끌어보는 로봇팔

아래 데모에서 주황색 끝점을 마우스로 잡고 끌어보세요. (모바일은 터치) 끝점이 가는 곳마다 관절각이 실시간으로 계산되어 팔이 따라옵니다.

링크 길이 L₁
1.2
링크 길이 L₂
1.0
목표 끝점
(1.50, 1.00)
θ₁ (계산값)
θ₂ (계산값)
상태
도달 가능

 

🔍 도구 사용법

이 도구는 마우스 드래그와 두 가지 조작으로 사용합니다.

  • 주황색 끝점 드래그 — 마우스(또는 터치)로 끝점을 잡고 끌면 팔이 따라옵니다
  • Elbow up / Elbow down 버튼 — 같은 끝점에 대한 두 가지 해 사이를 전환
  • L₁, L₂ 슬라이더 — 링크 길이 조정
  • 초기화 버튼 — 기본값으로 되돌리기

그림에서 각 요소의 의미는 이렇습니다.

  • 보라색 + 초록색 진한 링크 — 현재 선택된 해 (메인 팔)
  • 옅은 색 링크 — 선택되지 않은 다른 해 (alt solution). 같은 끝점에 도달하는 또 다른 자세
  • 주황색 큰 점 — 마우스로 끌 수 있는 끝점
  • 빨간 점 + 점선 — 끝점이 작업공간 밖으로 나갔을 때 표시 (도달 불가)
  • 초록색 점선 — 1번 링크의 연장선. θ₂의 기준선

아래쪽 카드에는 목표 끝점 좌표, 계산된 θ₁/θ₂ 값, 도달 가능 여부가 실시간으로 표시됩니다.

 

🧪 이런 실험을 해보세요

마우스로 끝점을 끌어보면서 IK의 본질적인 성질을 직접 관찰해봅니다.

실험 1 — 작업공간 밖으로 끌어보기

끝점을 보라색 점선 원 바깥으로 끌어보세요. 빨간 점이 나타나면서 "경계로 클램프" 상태가 됩니다. "도달 불가능한 위치는 IK가 풀리지 않는다" 는 걸 직접 보는 거예요. 팔은 작업공간 경계까지만 따라옵니다.

실험 2 — Elbow up / Elbow down 전환

끝점을 한 자리에 두고 두 버튼을 번갈아 눌러보세요. 같은 끝점인데 팔꿈치가 위/아래로 다르게 접힙니다. "같은 위치에 두 가지 해가 존재한다" 는 IK의 핵심 성질이에요.

실험 3 — alt solution 따라가보기

옅은 색으로 보이는 다른 해(alt solution)를 잘 보세요. 끝점을 움직이면 메인 팔과 alt 팔이 마치 거울처럼 같이 움직입니다. 두 해가 항상 동시에 존재한다는 게 보여요.

실험 4 — L₁ = L₂ 로 맞추고 원점 근처 끌기

두 링크 길이를 같게 만들고 끝점을 원점 가까이 끌어보세요. 안쪽 경계가 사라지면서 원점 바로 옆까지 도달합니다. 정확히 원점에서는 특이점(singularity) 이 발생하는데, 이건 #5에서 자세히 다룰 거예요.

실험 5 — 작업공간 경계를 따라 끌기

끝점을 보라색 점선 원 바로 안쪽에서 따라 그려보세요. 팔이 거의 일자로 펴진 채 회전합니다. 이 경계 위에서는 Elbow up과 Elbow down이 거의 일치해요. "두 해가 하나로 합쳐지는 순간" 입니다.

 

📐 한눈에 정리

이 도구로 관찰할 수 있는 IK의 핵심은 정기구학과 정반대입니다.

같은 끝점 위치에 대해, 관절각은 보통 두 가지가 존재한다.
그리고 작업공간 밖에서는 해가 존재하지 않는다.

이 비대칭성이 곧 로봇 제어의 본질적 어려움 중 하나입니다. 어디로 갈지는 사람이 정하지만, 어떻게 갈지는 로봇이 풀어야 하고, 그 답이 한 가지가 아니에요.

실제 로봇에서는 다음 기준으로 두 해 중 하나를 고릅니다.

  • 현재 자세와의 거리 — 갑자기 팔꿈치가 위에서 아래로 휙 뒤집히면 위험
  • 장애물 회피 — 한쪽 자세는 책상이나 벽에 부딪힐 수 있음
  • 다음 동작과의 연속성 — 부드러운 움직임을 위해

 

📘 다음 편 예고

이번 글에서는 끝점을 끌면 관절이 따라오는 IK 도구를 만져봤습니다.

지금까지는 위치만 다뤘죠. "여기서 저기로 가라"가 전부였습니다.

다음 글에서는 한 단계 위로 올라가서, 도달할 수 있는 모든 영역을 한눈에 보는 도구를 만들어봅니다.

"끝점이 갈 수 있는 곳을 직접 칠해서 그려보면 어떨까?"

이게 바로 #3 작업공간(Workspace) 시각화 도구 입니다. 링크 길이를 바꾸면서 도달 가능 영역이 어떻게 변하는지, 도넛이 어떻게 꽉 찬 원이 되는지 직접 확인해볼 거예요.