| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
- 컴퓨터비전
- IoT
- 로봇공학
- 깃허브
- makefile
- Ik
- c++
- c프로그래밍
- 모니터링시스템
- fsm
- 산업자동화
- 자료구조
- Histogram
- 스마트팩토리
- pointer
- C
- 디지털트윈
- cprogramming
- git
- github
- intensity
- robotics
- 역기구학
- datastructure
- mqtt
- 로보틱스
- Today
- Total
yebeen.kim
[Robotics] Jacobian Matrix 본문

Jacobian Matrix(자코비안 행렬)은 로봇의 “관절 움직임과 끝단 움직임의 관계”를 나타내는 행렬이다.
쉽게 말하면:
“각 관절이 얼마나 움직이면 로봇 손끝이 얼마나 움직이는가?”
를 계산하는 도구다.
로봇공학에서는 단순히 위치만 중요하지 않다.
실제로는:
- 얼마나 빠르게 움직이는지
- 어느 방향으로 움직이는지
- 힘이 어떻게 전달되는지
- 충돌 직전에 어떻게 반응하는지
등도 매우 중요하다.
Jacobian은 이런 “움직임의 변화량”을 계산할 때 사용된다.
IK(Inverse Kinematics)가 "목표 위치로 가기 위한 관절 각도 계산" 이라면,
Jacobian은 "관절이 조금 움직였을 때 끝단이 어떻게 변하는지 계산" 에 가깝다.
예를 들어 로봇 팔 끝을 오른쪽으로 아주 조금 이동시키고 싶다고 생각해보자.
이때 로봇은:
- 어떤 관절을
- 얼마나
- 어떤 속도로
움직여야 하는지 계산해야 한다.
Jacobian은 이 관계를 행렬 형태로 표현한다.
간단한 개념으로 표현하면:

여기서:

를 의미한다.
즉:
관절 속도 → 끝단 속도
로 변환하는 역할이다.
비유하면 자동차의 “핸들 조향 시스템”과 비슷하다.
핸들을 조금 돌렸을 때:
- 바퀴가 얼마나 회전하는지
- 차량이 어느 방향으로 움직이는지
결정되는 것처럼,
Jacobian도:
- 관절 변화
- 끝단 움직임
사이의 관계를 계산한다.
로봇공학에서 Jacobian은 굉장히 중요하다. 왜냐하면 실제 로봇은 단순 위치 제어만 하지 않기 때문이다.
예를 들어 산업용 로봇에서는:
- 실시간 속도 제어
- 힘 제어
- 순응 제어(Compliance)
- 충돌 회피
- 경로 추종
- 임피던스 제어
등이 필요하다.
이런 제어 대부분이 Jacobian 기반으로 동작한다.
예를 들어 힘 제어에서는:
끝단에 가해진 힘
→ 각 관절 토크로 변환
해야 한다.
이때 Jacobian의 Transpose가 사용된다.
즉 Jacobian은 단순 수학 행렬이 아니라:
"관절 공간(Joint Space)"
↔
"작업 공간(Task Space)"
을 연결하는 핵심 다리 역할을 한다.
특히 로보틱스에서 Jacobian을 반드시 알아야 하는 이유는 “속도 제어” 때문이다.
IK는 보통 목표 위치만 계산한다.
하지만 실제 로봇은:
- 얼마나 빠르게 이동할지
- 얼마나 부드럽게 움직일지
- 실시간으로 어떻게 수정할지
계속 계산해야 한다.
이 과정에서 Jacobian이 사용된다.
예를 들어 사람 손이 갑자기 움직이는 물체를 피하는 상황을 생각해보자.
로봇도 마찬가지다.
센서가 장애물을 감지하면:
- 현재 Jacobian 계산
- 관절 속도 수정
- 끝단 방향 변경
같은 작업을 매우 빠르게 수행한다.
특히 Jacobian에서 가장 중요한 개념 중 하나가 Singulariy(특이점)이다.
특이점은:
로봇이 특정 방향으로 움직이기 어려워지는 상태
를 의미한다.
쉽게 말하면 “관절 구조가 일직선처럼 펴져서 자유도가 사라지는 상태” 라고 볼 수 있다.
예를 들어 사람 팔을 완전히 쭉 펴보자.
이 상태에서는:
- 특정 방향으로 힘을 주기 어렵고
- 움직임 제어가 부자연스럽다.
로봇도 동일하다.
대표적인 예시는 산업용 로봇 팔이 완전히 펴진 상태다.
이 상태에서는 아주 작은 끝단 움직임을 만들기 위해 관절이 엄청 빠르게 회전해야 할 수도 있다.
수학적으로는 Jacobian의 determinant가 0에 가까워지는 상태를 의미한다.

이 상태가 위험한 이유는:
- 관절 속도가 비정상적으로 커짐
- 제어 불안정
- 진동 발생
- 경로 추종 실패
- 충돌 위험 증가
등의 문제가 발생하기 때문이다.
실제 로봇 제어기에서는 Singulariy를 매우 중요하게 다룬다.
예를 들어:
- 특이점 근처 접근 제한
- 경로 자동 수정
- Jacobian damping 적용
- Motion Planning 우회
같은 기법을 사용한다.
최근 로봇 시스템에서는 Jacobian이 단독으로 사용되기보다:
- IK Solver
- Motion Planning
- Force Control
- MPC(Model Predictive Control)
- Reinforcement Learning
등과 함께 사용되는 경우가 많다.
결국 Jacobian Matrix는 단순한 수학 행렬이 아니라,
“로봇의 움직임과 힘을 실시간으로 연결해주는 핵심 제어 구조”
라고 볼 수 있다.
'2026 > 뉴로메카 인턴' 카테고리의 다른 글
| [Robotics] Inverse Kinematics 역기구학이란? (0) | 2026.05.08 |
|---|---|
| [Digital Twin] 공정 시뮬레이션과 FSM 구조 (0) | 2026.05.07 |
| [MQTT] MQTT Broker 설치 및 테스트 방법 (0) | 2026.05.06 |
| [MQTT] MQTT란 무엇인가? (0) | 2026.05.06 |