모던 로보틱스: 역학 · 계획 · 제어
자유도 · 회전 행렬 · 동차 변환 · 2관절 팔 순기구학 · 자코비안 · 역기구학 · PD 제어를 손계산하는 수업
먼저 알아야 할 것
다루는 내용
Lynch · Park 『모던 로보틱스』 2~6장과 11장의 핵심을 직접 해설하는 로봇 기구학 첫 수업입니다. 그뤼블러 공식으로 자유도를 세고, 회전 행렬과 동차 변환을 손으로 계산합니다. 평면 2관절 팔로 순기구학 · 자코비안 · 특이 자세 · 역기구학을 풀고, PD 제어로 학습된 정책의 출력이 실제 움직임이 되는 연결을 보입니다.
해설
로봇 기구학 첫 수업: 자유도 · 회전 · 변환 · 순기구학 · 자코비안 (모던 로보틱스 기반)
로봇 팔이 "관절을 얼마나 돌리면 손끝이 어디에 가는가"를 계산하는 법을 이 페이지 안에서 직접 배웁니다. Lynch · Park 『모던 로보틱스』 2~6장과 11장의 핵심을 따라 자유도 세기, 회전 행렬과 동차 변환, 2관절 팔의 순기구학 · 자코비안 · 역기구학, PD 제어까지 손계산으로 익힙니다.
| 항목 | 내용 |
|---|---|
| 출처 | Modern Robotics: Mechanics, Planning, and Control · Kevin M. Lynch(노스웨스턴대) · Frank C. Park(서울대) · 2017 · Cambridge University Press · 교재 홈페이지 |
| 트랙 · 수준 | 피지컬 AI · 기초 |
| 이 수업이 다루는 범위 | 2장(배위 공간 · 자유도), 3장(강체 운동), 4장(순기구학), 5장(속도 기구학 · 자코비안), 6장(역기구학), 11장(로봇 제어)의 핵심 개념. 책의 중심 도구인 곱 지수(PoE) 공식은 소개만 하고, 손계산은 평면 2관절 팔로 합니다. 설명 · 숫자 예는 이 사이트가 직접 만든 것입니다 |
| 먼저 알면 좋은 것 | 벡터 · 행렬 곱, 삼각함수(, ), 편미분 |
들어가기 전에
- 머신러닝을 위한 수학 — 행렬 곱, 전치, 행렬식, 편미분을 씁니다. 3×3 행렬을 벡터에 곱하는 계산을 할 수 있으면 충분합니다.
한눈에 보기
- 로봇의 자유도(degrees of freedom)를 그뤼블러 공식으로 직접 셉니다.
- 회전 행렬과 4×4 동차 변환 행렬로 "좌표계를 돌리고 옮기는" 계산을 손으로 합니다.
- 평면 2관절 팔에서 관절 각도 → 손끝 위치(순기구학), 관절 속도 → 손끝 속도(자코비안), 손끝 목표 → 관절 각도(역기구학)를 모두 계산합니다.
- 자코비안의 행렬식이 0이 되는 특이 자세가 왜 위험한지 압니다.
- PD 제어가 관절을 목표 각도로 데려가는 원리를 숫자로 확인하고, 학습된 로봇 정책의 출력이 실제 움직임이 되기까지의 연결을 이해합니다.
1. 자유도: 자세를 정하는 숫자의 개수
직관(해설용 비유): 책상 위 휴대폰의 자세는 가로 위치, 세로 위치, 돌린 각도 세 숫자로 정해집니다. 공중에 던진 휴대폰은 위치 3개와 방향 3개, 모두 6개가 필요합니다. 이 숫자의 개수가 자유도입니다. 책은 로봇이 취할 수 있는 모든 자세의 집합을 배위 공간(configuration space)이라 부르고, 그 차원이 자유도라고 정의합니다(2장).
단계: ① 강체 하나의 자유도 을 정합니다(평면 3, 공간 6). ② 링크(땅 포함) 수 과 관절 수 를 셉니다. ③ 관절은 움직임을 제한합니다. 관절 가 허용하는 자유도를 라 하면, 제한하는 수는 입니다. ④ 전체 자유도 = 모든 링크의 자유도 − 관절이 막는 자유도.
| 기호 | 뜻 |
|---|---|
| 강체 하나의 자유도(평면 3, 공간 6) | |
| 링크 수(움직이지 않는 땅도 하나로 셈) | |
| 관절 수 | |
| 관절 가 허용하는 자유도(회전 관절 · 직선 관절은 1) |
책은 이 식을 그뤼블러 공식(Grübler's formula)으로 소개하고, 관절이 서로 독립적인 제약을 줄 때 성립한다고 단서를 답니다.
숫자로 해 보기(해설용):
- 평면 2관절 팔: 땅 + 링크 2개로 , 회전 관절 , . . 두 관절 각도면 자세가 정해집니다.
- 평면 4절 링크(네 막대가 고리로 연결): , . . 손잡이 하나만 돌리면 나머지가 따라 움직입니다.
- 산업용 6축 팔(공간, 회전 관절 6개가 일렬): , , . . 손끝을 공간에서 원하는 위치와 방향으로 놓을 수 있는 최소 개수입니다.
왜 중요한가: 로봇 사양서의 "6자유도 팔", "7자유도 팔"이 바로 이 숫자입니다. 손끝 자세는 6개 숫자로 정해지므로, 6자유도 팔은 정해진 자세에 보통 유한 개의 관절 해가 있고, 7자유도 팔은 같은 손끝 자세를 무수히 많은 팔꿈치 모양으로 만들 수 있습니다(여유 자유도).
2. 회전 행렬과 동차 변환
직관: 지도를 90° 돌려 보면 북쪽이던 방향이 서쪽이 됩니다. 이 "돌리기"를 행렬 하나로, "돌리고 옮기기"를 4×4 행렬 하나로 씁니다(책 3장).
회전 행렬: 축을 중심으로 만큼 돌리는 행렬은
회전 행렬 전체의 집합을 이라 부릅니다. 조건 는 "길이와 각도를 바꾸지 않는다", 은 "거울상으로 뒤집지 않는다"는 뜻입니다.
동차 변환 행렬: 회전 과 이동 를 한 행렬에 담습니다.
| 기호 | 뜻 |
|---|---|
| 3×3 회전 행렬(물체 좌표계의 방향) | |
| 3차원 이동 벡터(물체 좌표계 원점의 위치) | |
| 4×4 동차 변환 행렬. 전체 집합을 이라 부름 | |
| , | 같은 점을 물체 좌표계 와 고정 좌표계 에서 적은 좌표 |
숫자로 해 보기(해설용): 이면 , 이라
축 방향이 축 방향으로 돌았습니다. 여기에 이동 을 더한 로 물체 좌표 을 바꾸면 입니다. "물체가 에 있고 90° 돌아 있을 때, 물체 기준 앞쪽 1만큼 떨어진 점은 고정 좌표로 "이라는 뜻입니다.
왜 4×4 행렬을 쓰나: 회전과 이동을 따로 다루면 여러 번 이어 붙일 때 식이 길어집니다. 4×4 꼴로 쓰면 변환을 이어 붙이는 것이 그냥 행렬 곱 가 됩니다. 로봇 팔은 관절마다 변환이 하나씩 붙은 사슬이라 이 성질이 결정적입니다.
3. 순기구학: 관절 각도에서 손끝 위치로
직관: 어깨를 만큼, 팔꿈치를 만큼 굽혔을 때 손이 어디 있는지는 위팔 끝 위치에 아래팔 방향을 더하면 됩니다.
평면 2관절 팔, 링크 길이 , , 어깨는 원점에 있습니다.
| 기호 | 뜻 |
|---|---|
| 어깨 관절 각도(축 기준) | |
| 팔꿈치 관절 각도(위팔 방향 기준의 상대 각도) | |
| 아래팔이 축과 이루는 절대 각도 | |
| 손끝 위치 |
숫자로 해 보기(해설용): , , , 라 하면 입니다.
책의 방식 — 곱 지수(PoE) 공식: 책 4장은 위 식처럼 기하로 푸는 대신, 각 관절을 '나사 운동'으로 보고 행렬 지수를 곱하는 일반 공식을 씁니다.
여기서 은 모든 관절이 0일 때 손끝의 자세, 는 고정 좌표계에서 적은 관절 의 나사 축입니다. 관절 수가 늘어도 같은 꼴로 계산되고, 위치와 방향을 한꺼번에 얻는다는 것이 장점입니다. 위 2관절 예에서 PoE로 계산해도 손끝 위치는 같습니다. 책은 전통적인 데나빗-하텐버그(D-H) 매개변수 방식은 부록 C로 돌립니다.
4. 자코비안: 관절 속도에서 손끝 속도로
직관: 어깨를 조금 빨리 돌리면 손끝이 어느 방향으로 얼마나 빨리 움직일까요? 그 "환율표"가 자코비안(Jacobian)입니다.
순기구학 식을 시간으로 미분하면(연쇄 법칙) 손끝 속도와 관절 속도가 행렬로 이어집니다.
| 기호 | 뜻 |
|---|---|
| 관절 의 각속도 | |
| 손끝의 속도 | |
| , | |
| , | |
| 자코비안: 각 칸은 "손끝 좌표 하나를 관절 각도 하나로 편미분한 값" |
숫자로 해 보기(해설용): , , 이면 , , , 이라
어깨만 rad/s로 돌리면 손끝 속도는 입니다. 이 자세에서 손끝은 에 있고, 어깨를 돌리면 원점을 중심으로 왼쪽 위로 움직이니 맞습니다.
특이 자세: 이 팔의 입니다. (팔을 쭉 폄)이나 (완전히 접음)이면 이 되어, 어떤 관절 속도를 줘도 손끝이 특정 방향(팔을 따라 바깥쪽)으로는 움직이지 못합니다. 이것을 특이 자세(singularity)라 합니다. 책 5장은 자코비안이 힘의 관계도 정한다는 것(관절 토크 )까지 다룹니다.
왜 중요한가: 학습된 로봇 정책이 "손끝을 이 방향으로 조금 움직여라"를 내면, 제어기는 자코비안을 거꾸로 써서 관절 속도로 바꿉니다. 특이 자세 근처에서는 이 역변환이 아주 큰 관절 속도를 요구해 위험해집니다.
5. 역기구학: 손끝 목표에서 관절 각도로
직관: 컵을 집으려면 "손을 저기 놓아라"를 "어깨 몇 도, 팔꿈치 몇 도"로 바꿔야 합니다. 순기구학의 반대 방향입니다(책 6장).
2관절 팔은 코사인 법칙으로 답을 바로 구할 수 있습니다.
| 기호 | 뜻 |
|---|---|
| 점 의 각도를 사분면까지 구분해 주는 역탄젠트 | |
| 가 같아도 팔꿈치를 위로 · 아래로 굽힌 두 해가 있음 |
숫자로 해 보기(해설용): , 목표 .
- → 또는
- :
- :
검산: 이면 , . 이면 , . 둘 다 맞습니다. 목표가 팔이 닿는 범위 밖이면() 이 되어 해가 없습니다.
왜 해가 여러 개인가 · 일반적으로는: 6자유도 팔은 같은 손끝 자세에 보통 여러 해가 있고, 이렇게 깔끔한 식이 없는 경우도 많습니다. 책 6장은 해석적 풀이와 함께, 자코비안을 써서 조금씩 다가가는 수치적 방법(뉴턴-랩슨 반복)을 다룹니다.
6. 제어 기초: PD 제어
직관: 문을 손으로 목표 위치까지 밀 때, 멀리 있으면 세게 밀고(비례), 너무 빨리 움직이면 브레이크를 겁니다(미분). 이 두 힘의 합이 PD 제어입니다. 책 11장은 관절 하나의 운동 제어부터 시작해 PID 제어와 계산 토크 제어 등으로 넓혀 갑니다.
| 기호 | 뜻 |
|---|---|
| 관절에 주는 토크(모터 명령) | |
| 목표 각도 | |
| , | 현재 각도, 현재 각속도 |
| 비례 이득: 오차가 클수록 세게 | |
| 미분 이득: 빨리 움직일수록 반대로 제동(목표 속도가 0일 때의 꼴) |
숫자로 해 보기(해설용): , , 목표 rad, 현재 rad, rad/s이면
목표 쪽으로 미는 힘(2)에서 이미 빠르게 다가가는 속도만큼 제동(1)을 뺐습니다. 가 없으면 목표를 지나쳐 진동하기 쉽고, 너무 크면 느리게 다가갑니다. 중력처럼 늘 작용하는 힘이 있으면 PD만으로는 목표 앞에서 멈추는 오차가 남을 수 있어, 오차를 누적하는 적분 항(I)을 더한 PID를 씁니다.
flowchart LR
A[학습된 정책: 목표 손끝 자세 또는 관절 각도] --> B[역기구학 · 자코비안으로 관절 목표 계산]
B --> C[PD · PID 제어기: 오차 → 토크]
C --> D[모터 · 로봇 팔]
D --> E[센서: 관절 각도 · 속도]
E --> C
E --> F[순기구학으로 손끝 자세 확인]왜 학습 기반 로봇에도 필요한가: VLA나 확산 정책 같은 학습된 정책은 보통 초당 수~수십 번 "목표 관절 각도"나 "목표 손끝 자세"를 냅니다. 그 목표를 실제 모터 토크로 바꿔 부드럽게 따라가게 하는 것은 이 수업의 기구학과 제어기입니다. 정책이 무엇을 출력하는지(관절 공간 vs 손끝 공간) 읽어 내려면 이 연결을 알아야 합니다.
연습 문제
문제 1. 평면에서 회전 관절 3개로 일렬로 이어진 팔(땅 + 링크 3개)의 자유도는?
풀이: , , , . .
문제 2. 로 점 을 돌리면?
풀이: .
문제 3. 인 팔에서 , 일 때 손끝 위치는?
풀이: . , . 손끝은 .
문제 4. 같은 팔에서 목표 의 역기구학 해와, 그 자세의 는?
풀이: → , . 팔을 쭉 편 자세이고 이라 특이 자세입니다.
문제 5. 6절 예에서 , 이면 토크는? 그 뜻은?
풀이: . 목표에 도착했지만 아직 움직이고 있으므로 반대 방향으로 제동을 겁니다.
스스로 점검
- 동차 변환 행렬을 쓰면 무엇이 편해지나요?
- 답: 회전과 이동을 한 행렬에 담아, 여러 변환을 이어 붙이는 것이 행렬 곱 한 줄로 끝납니다.
- 자코비안의 행렬식이 0인 자세에서 무엇이 문제인가요?
- 답: 손끝이 어떤 방향으로는 움직일 수 없고, 그 근처에서 손끝 속도를 관절 속도로 바꾸려 하면 아주 큰 관절 속도가 필요해집니다.
- 같은 손끝 위치에 역기구학 해가 둘인 이유는?
- 답: 팔꿈치를 위로 굽히거나 아래로 굽혀 같은 점에 닿을 수 있기 때문입니다. 가 같아도 의 부호가 다른 두 해가 생깁니다.
용어 정리
| 용어 | 쉬운 뜻 |
|---|---|
| 배위 공간(configuration space) | 로봇이 취할 수 있는 모든 자세의 집합 |
| 자유도(degrees of freedom) | 자세를 정하는 데 필요한 독립된 숫자의 개수 |
| 그뤼블러 공식 | 링크 · 관절 수로 자유도를 세는 식 |
| 회전 행렬 · | 방향을 나타내는 3×3 행렬과 그 집합 |
| 동차 변환 · | 회전과 이동을 함께 담은 4×4 행렬과 그 집합 |
| 순기구학(forward kinematics) | 관절 값 → 손끝 자세 계산 |
| 곱 지수(PoE) 공식 | 관절마다 나사 운동의 행렬 지수를 곱해 순기구학을 구하는 책의 방법 |
| 자코비안(Jacobian) | 관절 속도를 손끝 속도로 바꿔 주는 행렬 |
| 특이 자세(singularity) | 자코비안의 행렬식이 0이 되어 손끝이 어떤 방향으로 못 움직이는 자세 |
| 역기구학(inverse kinematics) | 원하는 손끝 자세 → 관절 값 찾기 |
| PD · PID 제어 | 오차(P) · 속도(D) · 누적 오차(I)로 모터 명령을 정하는 되먹임 제어 |
더 깊이 보려면
책은 본문 13개 장과 부록 4개로 되어 있습니다(교재 홈페이지 기준). 이 수업은 2~6장과 11장의 입구만 다뤘습니다.
| 묶음 | 장 |
|---|---|
| 기초 | 1 미리 보기, 2 배위 공간, 3 강체 운동 |
| 기구학 | 4 순기구학, 5 속도 기구학과 정역학, 6 역기구학, 7 닫힌 사슬의 기구학 |
| 동역학 · 운동 | 8 열린 사슬의 동역학, 9 궤적 생성, 10 경로 계획 |
| 제어 · 응용 | 11 로봇 제어, 12 파지와 조작, 13 바퀴 달린 이동 로봇 |
| 부록 | A 공식 요약, B 회전의 다른 표현, C 데나빗-하텐버그 매개변수, D 최적화와 라그랑주 승수 |
홈페이지에는 장별 강의 영상, 코세라 강좌(6개 과정), 풀이가 있는 연습 문제, 파이썬 · MATLAB · Mathematica 교재 소프트웨어가 있습니다. 다음 단계로는 3장의 행렬 지수와 4장의 PoE 공식을 책과 영상으로 보고, 교재 소프트웨어의 순기구학 함수로 이 수업의 2관절 예제를 다시 계산해 보기를 권합니다.
다음에 볼 것
- 센서와 상태 추정: 칼만 필터 손계산과 SLAM 개요 — PD 제어가 쓰는 '현재 각도 · 위치'가 잡음 섞인 센서에서 어떻게 추정되는지 칼만 필터로 계산합니다. 이어서 로봇 제어 기초: 피드백 · PID · MPC로 6절의 PD 제어를 넓힙니다.
- Hugging Face LeRobot: 로봇 학습 오픈소스 — 이 수업의 기구학 · 제어 위에서 "사람 시연을 보고 정책을 배우는" 모방 학습을 직접 해 봅니다.
- 도메인 무작위화: 시뮬레이션에서 실제로 옮기기 — 시뮬레이터에서 학습한 정책을 실제 로봇으로 옮기는 첫 논문입니다.
라이선스
인쇄본은 케임브리지 대학 출판부의 저작물이고, 무료 프리프린트 PDF는 개인 용도로만 제공되며 재배포가 금지되어 있습니다. 같은 곳에서 원본 그림은 출처를 밝히면 재사용할 수 있다고 허락합니다. 교재 소프트웨어(GitHub NxRLab/ModernRobotics)는 MIT 라이선스입니다. 이 페이지는 책 본문을 번역하거나 옮기지 않고, 책이 다루는 개념을 이 사이트가 직접 쓴 말과 직접 만든 2관절 팔 예제로 해설합니다.
출처
- 원문: hades.mech.northwestern.edu/index.php/Mod… (2017 · Kevin M. Lynch · Frank C. Park)
- 소프트웨어: github.com/NxRLab/ModernRobotics (MIT License)
AI 원리부터 이해하기 · 피지컬 AI 모듈
피지컬 AI 모듈 학습
이 글은 피지컬 AI 모듈의 학습 자료입니다. 전체 26개 자료 중 1번째입니다.
출처·원문
원문 보기요약만