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

[2DOF Simulation] #3. 작업공간 시각화 (Workspace Tool)

by TBI 2026. 5. 24.

🛠 갈 수 있는 곳, 갈 수 없는 곳

지난 두 글에서 우리는 한 점에 집중했습니다. FK는 한 자세의 끝점을, IK는 끝점 하나에 대한 관절각을 다뤘죠.

이번에는 시점을 한 단계 위로 올립니다.

"이 로봇팔이 갈 수 있는 모든 곳을 한꺼번에 보면 어떨까?"

이게 바로 작업공간(Workspace) 입니다. 이론 시리즈 #3에서 도달 가능 영역을 식으로 정리했었죠. 이번에는 그 영역을 직접 손으로 그려보면서, 왜 도넛 모양이 되는지 몸으로 느껴봅니다.

 

🧭 왜 시각화가 필요한가

#3 글에서 우리는 작업공간을 이렇게 정리했습니다.

$$|L_1 - L_2| \leq \sqrt{x^2 + y^2} \leq L_1 + L_2$$

식 자체는 단순합니다. 끝점이 원점에서 떨어진 거리가 안쪽 한계와 바깥쪽 한계 사이 에 있어야 한다는 뜻이죠.

그런데 이 식만 봐서는 와닿지 않는 것들이 있습니다.

  • 안쪽 한계 $|L_1 - L_2|$ 는 도달 불가 영역인가?
  • $L_1 = L_2$ 면 안쪽 한계가 사라지는데, 이건 실제로 무슨 의미인가?
  • 두 링크 길이 차이가 클수록 도넛이 두꺼워진다는 게 직관적인가?

이런 건 식만 봐서는 끝까지 어색합니다. 도넛을 직접 손으로 그려보고, 슬라이더로 모양을 변형시켜봐야 감이 옵니다.

 

🎮 직접 그려보는 작업공간

아래 도구는 두 가지 방법으로 작업공간을 보여줍니다. "점 뿌리기" 버튼을 누르면 무작위 관절각으로 끝점이 갈 수 있는 자리를 점으로 채워주고, 마우스로 캔버스를 드래그 하면 그린 자취 중 도달 가능한 부분만 남습니다.

링크 길이 L₁
1.2
링크 길이 L₂
1.0
바깥 한계
2.20
안쪽 한계
0.20
작업 면적
15.08
뿌린 점 수
0

 

🔍 도구 사용법

이 도구는 세 가지 방식으로 작업공간을 탐색할 수 있습니다.

  • 🎲 점 뿌리기 버튼 — 무작위로 500개의 관절각을 뽑아서, 그때 끝점이 가는 자리를 점으로 찍습니다. 누를수록 점이 쌓이며 도넛 모양이 또렷해집니다.
  • 마우스 드래그 — 캔버스 위에서 드래그하면 자취가 남습니다. 주황색은 도달 가능한 영역, 옅은 빨간색은 도달 불가능한 영역에 그린 부분입니다.
  • L₁, L₂ 슬라이더 — 링크 길이를 바꾸면 도넛 모양이 실시간으로 변합니다.
  • 지우기 / 팔 보기 버튼 — 캔버스를 깨끗이 비우거나, 기준 자세의 팔을 켜고 끕니다.

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

  • 보라색 도넛 영역 — 작업공간. 끝점이 도달할 수 있는 모든 영역
  • 보라색 점선 원 (바깥) — $L_1 + L_2$ 한계. 가장 멀리 갈 수 있는 거리
  • 보라색 점선 원 (안쪽) — $|L_1 - L_2|$ 한계. 가장 가까이 갈 수 있는 거리
  • 초록색 점 — 무작위로 뿌린 도달 가능 점들
  • 주황색 점 — 마우스로 그린 도달 가능 자취
  • 빨간색 점 — 마우스로 그렸지만 도달 불가능한 자취

아래 카드에는 안쪽/바깥쪽 한계 거리, 작업공간 면적, 도달 가능한 점 개수가 실시간으로 표시됩니다.

 

🧪 이런 실험을 해보세요

이 도구의 진짜 재미는 도넛 모양이 변하는 걸 직접 보는 데 있습니다.

실험 1 — 점 뿌리기를 5번 반복

2,500개 점이 쌓이면 도넛이 거의 균일하게 채워집니다. 점이 도넛 경계에 정확히 멈춰있고, 안쪽 빈 영역에는 단 하나도 들어가지 않는 게 보일 거예요. "이 영역 밖으로는 절대 못 나간다" 는 게 시각적으로 증명되는 순간입니다.

실험 2 — 도넛 안쪽으로 그림 그리기

마우스를 작업공간 안쪽 빈 원(도넛 구멍)으로 끌어보세요. 그 자취가 모두 빨간색으로 찍힙니다. "여기엔 닿을 수 없다" 는 시각적 피드백이에요.

실험 3 — L₁ = L₂ 로 맞추기

두 슬라이더를 같은 값(예: 1.0)으로 맞춰보세요. 안쪽 한계가 0이 되면서 도넛 구멍이 사라집니다. 이제 끝점이 원점까지 도달할 수 있어요. 동시에 작업공간 면적이 최대가 됩니다.

실험 4 — 한쪽 링크만 길게

L₁ = 2.0, L₂ = 0.5 로 맞춰보세요. 도넛 구멍이 1.5 반지름까지 커집니다. "한쪽 링크가 짧으면 가까운 곳에 못 닿는다" 는 직관이 그림으로 보여요.

실험 5 — 점 쌓아두고 슬라이더 흔들기

점을 1,000개쯤 뿌려놓고 L₁, L₂ 슬라이더를 천천히 움직여보세요. 점들이 켜졌다 꺼졌다 합니다. 같은 점이라도 링크 길이에 따라 도달 가능 여부가 달라지니까요. 이게 작업공간이 "고정된 영역이 아니라, 로봇 구조에 의해 결정되는 영역" 이라는 본질을 보여줍니다.

 

📐 한눈에 정리

이 도구로 관찰할 수 있는 작업공간의 본질은 다음과 같습니다.

작업공간은 두 원 사이의 도넛이다.
바깥쪽 한계는 $L_1 + L_2$, 안쪽 한계는 $|L_1 - L_2|$.

그리고 이 도넛의 면적은 다음과 같이 계산됩니다.

$$A = \pi \left[ (L_1 + L_2)^2 - (L_1 - L_2)^2 \right] = 4\pi L_1 L_2$$

흥미로운 결과예요. 작업공간 면적은 두 링크 길이의 곱에만 의존합니다. 그리고 두 링크 길이의 합이 일정할 때, $L_1 = L_2$ 일 때 면적이 최대가 됩니다 (산술-기하 평균 부등식).

즉 같은 재료비로 가장 넓은 작업공간을 가지려면, 두 링크를 같은 길이로 만드는 것이 정답이에요.

 

📘 다음 편 예고

지금까지는 끝점이 "어디에 있을 수 있는가" 를 다뤘습니다. 위치의 세계였죠.

다음 글부터는 속도의 세계로 들어갑니다.

"관절이 이만큼 빠르게 돌면, 끝점은 얼마나 빠르게 움직일까?"

이 둘 사이를 이어주는 행렬이 바로 자코비안(Jacobian)입니다. #4 자코비안 시각화 도구에서 관절속도가 끝점속도로 어떻게 변환되는지, 화살표로 직접 그려보겠습니다.