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

[2DOF Simulation] #4. 자코비안 시각화 (Jacobian Tool)

by TBI 2026. 5. 30.

🛠 위치에서 속도로

지금까지는 위치만 다뤘습니다. 끝점이 어디에 있고, 어디로 갈 수 있는가의 세계였죠.

이번 글에서는 한 단계 위로 올라갑니다.

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

이 둘 사이를 이어주는 행렬이 바로 자코비안(Jacobian) 입니다. 이론 시리즈 #4에서 식으로 다뤘던 그 행렬을, 이번에는 화살표로 직접 그려보면서 이해해봅니다.

 

🧭 왜 시각화가 필요한가

#4 글에서 우리는 자코비안을 이렇게 정의했습니다.

$$\begin{bmatrix} \dot{x} \\ \dot{y} \end{bmatrix} = \mathbf{J}(\theta_1, \theta_2) \begin{bmatrix} \dot{\theta}_1 \\ \dot{\theta}_2 \end{bmatrix}$$ $$\mathbf{J} = \begin{bmatrix} -L_1 \sin\theta_1 - L_2 \sin(\theta_1+\theta_2) & -L_2 \sin(\theta_1+\theta_2) \\ L_1 \cos\theta_1 + L_2 \cos(\theta_1+\theta_2) & L_2 \cos(\theta_1+\theta_2) \end{bmatrix}$$

식은 정직하지만, 자코비안의 진짜 의미는 식을 들여다본다고 보이지 않습니다.

  • 같은 관절속도라도 로봇 자세에 따라 끝점속도가 달라진다는 게 무슨 뜻일까?
  • 어떤 자세에서 끝점이 특정 방향으로 잘 움직이고, 어떤 방향으로는 잘 못 움직이는가?
  • $\det(\mathbf{J}) = 0$ 이 되면 실제로 무슨 일이 벌어지는가?

이런 건 화살표를 직접 그려보고, 자세를 바꿔보면서 "끝점이 어느 방향으로 잘 가는지" 느껴봐야 감이 옵니다.

 

🎮 직접 만져보는 자코비안

아래 도구는 두 가지를 동시에 보여줍니다. 관절속도 슬라이더로 $\dot{\theta}_1, \dot{\theta}_2$ 를 주면 끝점에 주황색 속도 화살표가 나타나고, 동시에 파란색 속도 타원이 그려집니다. 타원은 "이 자세에서 끝점이 어느 방향으로 잘 갈 수 있는지" 를 한눈에 보여줘요.

관절각 θ₁
30°
관절각 θ₂
60°
관절속도 θ̇₁
1.0
관절속도 θ̇₂
0.5
끝점속도 ẋ
끝점속도 ẏ
끝점속도 크기
det(J)

 

🔍 도구 사용법

이 도구는 네 개의 슬라이더와 세 개의 버튼으로 조작합니다.

  • θ₁, θ₂ 슬라이더 — 로봇팔의 자세 (어느 자세에서 자코비안을 볼지)
  • θ̇₁, θ̇₂ 슬라이더 — 관절속도 (각 관절이 얼마나 빠르게 도는지)
  • 속도 타원 보기/숨기기 — 파란 타원의 표시 토글
  • ⚠️ 특이점 자세 — 한 번 누르면 팔이 일자로 펴진 특이점 근처 자세로 점프
  • 초기화 — 기본값으로 되돌리기

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

  • 주황색 화살표 — 끝점의 속도 벡터 $(\dot{x}, \dot{y})$. 관절속도와 자코비안에 의해 계산됨
  • 파란색 타원속도 타원체(velocity ellipsoid). 관절속도 크기를 1로 정규화했을 때 끝점이 갈 수 있는 모든 속도의 집합
  • 파란색 점선 축 — 타원의 주축. 끝점이 가장 잘 움직이는 방향(긴 축)잘 못 움직이는 방향(짧은 축)
  • 빨간 경고 — 자코비안 행렬식이 0에 가까워지면 표시됨 (특이점)

아래 카드에는 끝점속도 성분, 속도 크기, 자코비안 행렬식이 실시간으로 표시됩니다.

 

🧪 이런 실험을 해보세요

자코비안의 본질은 슬라이더로 직접 만져봐야 와닿습니다.

실험 1 — 자세는 그대로, 관절속도만 바꾸기

θ₁, θ₂ 는 고정하고 θ̇₁, θ̇₂ 슬라이더만 움직여보세요. 끝점 화살표가 따라 움직입니다. 그런데 화살표의 끝은 항상 파란 타원 안 에 들어 있어요. 타원이 곧 *"이 자세에서 도달 가능한 모든 끝점속도의 집합"* 이라는 뜻입니다.

실험 2 — 관절속도는 그대로, 자세만 바꾸기

θ̇₁, θ̇₂ 를 어떤 값으로 두고, θ₁, θ₂ 슬라이더만 움직여보세요. 같은 관절속도인데 끝점속도가 계속 변합니다. 이게 자코비안이 자세에 의존한다는 본질이에요.

실험 3 — 타원이 길쭉해지는 자세 / 동그래지는 자세

θ₂ 를 천천히 움직여보세요. 타원의 모양이 바뀝니다. θ₂ ≈ ±90° 근처에서는 타원이 가장 동그란 편이고, θ₂ → 0° 또는 ±180° 로 갈수록 한쪽 축이 길게 늘어나면서 다른 쪽이 납작해집니다. 납작해진 방향이 바로 *"이 자세에서 끝점이 잘 못 움직이는 방향"* 이에요.

실험 4 — ⚠️ 특이점 자세 버튼 누르기

버튼을 누르면 θ₂ = 0° 인 자세로 점프합니다. 팔이 일자로 펴진 자세죠. 이때:

  • 타원이 거의 직선으로 납작해집니다 — 한 방향으로만 움직일 수 있음
  • det(J) 가 빨갛게 표시됩니다 — 행렬식이 0에 가까움
  • "특이점 근처" 경고가 뜹니다

이 자세에서는 끝점을 팔 방향(반지름 방향) 으로 움직이려고 해도 절대 안 됩니다. 두 관절을 어떻게 돌려도 그 방향으론 못 가요.

실험 5 — 끝점 속도를 0으로 만들 수 있는가?

θ̇₁, θ̇₂ 를 둘 다 0이 아닌 값으로 두고, 끝점 속도 크기를 0에 가깝게 만들어보세요. 일반적인 자세에서는 어렵지만, 특이점 근처에서는 두 관절이 돌아도 끝점이 거의 안 움직이는 조합이 존재합니다. 이게 *"자유도 손실"* 의 또 다른 모습이에요.

 

📐 한눈에 정리

이 도구로 관찰할 수 있는 자코비안의 핵심은 다음과 같습니다.

자코비안은 "관절 → 끝점" 속도 변환기다.
그리고 이 변환은 로봇 자세에 따라 매번 다르다.

속도 타원은 자코비안의 모든 정보를 한 그림에 담고 있어요.

  • 타원의 크기 — 끝점이 얼마나 빠르게 움직일 수 있는가
  • 타원의 모양 — 어느 방향으로 잘 움직이는가
  • 타원의 면적 ∝ |det(J)| — 자코비안 행렬식이 곧 *"끝점이 누빌 수 있는 속도 영역의 크기"*

그리고 타원이 직선으로 납작해지는 순간이 곧 특이점 입니다. 행렬식이 0이 되고, 한 방향의 자유도가 사라지는 자세죠.

 

📘 다음 편 예고

이번 글에서 우리는 특이점이 살짝 등장했습니다. 타원이 납작해지고, det(J)가 빨갛게 표시되는 그 자세요.

"특이점에서는 정확히 무슨 일이 벌어지는가?"

다음 글에서는 특이점만을 정면으로 다룹니다. 어떤 자세가 특이점이고, 거기서 어떤 방향이 막히는지, IK는 왜 그 자세 근처에서 폭주하는지 — #5 특이점 시각화 도구 에서 직접 확인해보겠습니다.