로봇 기구학 해석
📌 개요
- 로봇 팔의 각 관절이 몇 도로 꺾여 있는지 알 때, 손끝(말단장치)이 공간 어디에 있는지 계산 = 순기구학(Forward Kinematics)
- 변환행렬을 관절마다 하나씩 만들어 연쇄적으로 곱하면 됨 → 그 변환행렬을 체계적으로 만드는 표준 방법 = DH 표기법
- 출제 핵심: 순기구학의 정의(입력·출력), DH 파라미터 4가지, 간단한 2링크 로봇의 좌표 계산
📖 핵심 개념
기구학이란 — 힘은 잊고 기하만 본다
- 기구학(Kinematics) = 힘·질량·관성을 고려하지 않고 기하학적 관점에서 위치·속도 등 운동만 다루는 학문
- "관절을 이만큼 돌리면 손끝이 어디로 가는가?" = 기구학의 질문
- "손끝을 그렇게 움직이려면 모터가 얼마의 토크를 내야 하는가?" = 동역학(Dynamics)의 질문 (→ 액추에이터 동역학 모델링)
로봇의 구성: 링크와 조인트
- 머니퓰레이터(Manipulator, 로봇 팔) = 뼈대에 해당하는 링크(Link) 와 관절에 해당하는 조인트(Joint) 가 번갈아 연결된 사슬(chain)
- 조인트 = 두 가지 기본형 (아래 표):
| 조인트 종류 | 운동 | 변수 | 기호 |
|---|---|---|---|
| 회전조인트(Revolute Joint) | 축을 중심으로 도는 회전 운동 | 각도 \theta | R |
| 직동조인트(Prismatic Joint) | 축을 따라 미끄러지는 직선 운동 | 변위 d | P |
- 산업용 6축 로봇 = 회전조인트 6개(RRRRRR)로 이루어진 수직다관절 로봇이 대표적
- 각 조인트에는 모터(액추에이터)가 붙어 그 조인트의 변수 하나를 담당 → 직렬 로봇에서는 보통 조인트 수 = 자유도
조인트 공간과 작업 공간
같은 로봇의 상태를 두 가지 언어로 말할 수 있다.
-
조인트 공간(Joint Space): 조인트 변수들의 묶음 q = (\theta_1, \theta_2, \dots, \theta_n) — 모터 제어기가 쓰는 언어
-
작업 공간(Task Space / Cartesian Space): 말단장치(End-effector)의 포즈 x = (x, y, z, \phi_r, \phi_p, \phi_y) — 사람과 작업이 쓰는 언어
-
순기구학 = 조인트 공간 → 작업 공간 방향의 번역 (반대 방향 = 역기구학)
-
순기구학은 조인트 값이 정해지면 로봇의 모양이 하나로 결정 → 해가 항상 유일
순기구학의 계산 원리: 변환행렬의 연쇄
- 각 링크에 좌표계를 하나씩 부착하면(\{0\}: 베이스, \{1\}\dots\{n\}: 각 링크), 이웃한 두 좌표계 사이의 관계 = 동차변환행렬 ^{i-1}T_i
- 이 행렬 = 그 사이 조인트의 변수(\theta_i 또는 d_i)의 함수
- 전체 순기구학 = 이들을 차례로 곱한 것:
결과 행렬 ^{0}T_{n}의 우측 3×1이 말단장치의 위치, 좌상단 3×3이 자세다.
DH 표기법 — 변환행렬을 만드는 표준 레시피
- 링크마다 좌표계를 아무렇게나 붙이면 사람마다 결과가 달라짐
- DH 표기법(Denavit-Hartenberg Convention) = 이웃한 링크 좌표계의 관계를 단 4개의 파라미터로 표준화한 방법 (아래 표):
| 파라미터 | 이름 | 의미 |
|---|---|---|
| \theta_i | 조인트각(Joint Angle) | z_{i-1}축을 중심으로 한 회전각 |
| d_i | 링크 오프셋(Link Offset) | z_{i-1}축 방향의 거리 |
| a_i | 링크 길이(Link Length) | x_i축 방향의 거리 (두 조인트 축 사이 공통수직선 길이) |
| \alpha_i | 링크 비틀림(Link Twist) | x_i축을 중심으로 한 두 z축 사이의 비틀림각 |
-
회전조인트면 \theta_i가 변수(나머지 3개는 로봇 구조가 정하는 상수)
-
직동조인트면 d_i가 변수
-
로봇의 DH 파라미터를 표로 정리한 것 = DH 테이블 → 표의 각 행이 변환행렬 ^{i-1}T_i 하나가 됨
-
"z축 회전(\theta) → z축 이동(d) → x축 이동(a) → x축 회전(\alpha)" 순서의 네 변환을 곱해 만듦
예제: 2링크 평면 머니퓰레이터
- 가장 자주 출제되는 모델
- 길이 l_1, l_2인 두 링크가 회전조인트 2개로 연결된 평면 로봇에서, 말단 위치는 삼각함수로 바로 구해짐:
- 첫 링크 끝의 좌표 (l_1\cos\theta_1,\ l_1\sin\theta_1)에, 두 번째 링크가 만드는 좌표를 더한 것
- 포인트: 두 번째 링크의 절대 각도가 \theta_1 + \theta_2 (\theta_2는 첫 링크 기준의 상대각)
작업공간(Workspace)
-
작업공간 = 말단장치가 도달할 수 있는 모든 점의 집합
-
2링크 로봇이라면 반지름 l_1 + l_2(완전히 뻗음)인 바깥 원과 반지름 |l_1 - l_2|(완전히 접음)인 안쪽 원 사이의 도넛 모양
-
세부적으로는:
-
도달 가능 작업공간(Reachable Workspace): 하나 이상의 자세로 도달 가능한 모든 점
-
자유자재 작업공간(Dexterous Workspace): 임의의 방향(자세)으로 도달 가능한 점 — 도달 가능 작업공간의 부분집합
속도 기구학과 자코비안 (미리보기)
- 위치뿐 아니라 속도도 두 공간 사이에서 번역 가능
- 조인트 속도 \dot{q}와 말단 속도 \dot{x}의 관계를 맺어 주는 행렬 = 자코비안(Jacobian) J(q):
- 자코비안 = 순기구학 식을 조인트 변수로 편미분해 얻음 → 로봇의 자세 q에 따라 값이 변함
- 자코비안이 역행렬을 갖지 못하는 특별한 자세(특이점)에서 생기는 문제는 로봇 역기구학 해석에서 다룸
📊 다이어그램 · 수식
조인트 공간 ↔ 작업 공간
graph LR
J["조인트 공간
q = (θ₁, θ₂, ..., θₙ)
모터가 아는 값"]
C["작업 공간
x = (x, y, z, roll, pitch, yaw)
작업이 원하는 값"]
J -- "순기구학 FK
해가 항상 유일" --> C
C -- "역기구학 IK
다중해·무해 가능" --> JDH 변환행렬 (표준 DH)
^{i-1}T_i = \text{Rot}(z, \theta_i)\ \text{Trans}(z, d_i)\ \text{Trans}(x, a_i)\ \text{Rot}(x, \alpha_i)를 전개하면:
2링크 평면 로봇 순기구학
🎯 핵심 요약 · 암기 포인트
✏️ 예상문제
1. DH(Denavit-Hartenberg) 표기법의 4가지 파라미터에 해당하지 않는 것은?
① 링크 길이 a ② 링크 비틀림 \alpha ③ 링크 오프셋 d ④ 링크 질량 m
정답 및 해설
정답: ④ DH 파라미터는 조인트각 \theta, 링크 오프셋 d, 링크 길이 a, 링크 비틀림 \alpha의 4가지다. 질량은 기구학이 아니라 동역학에서 다루는 물성값이다.
2. 순기구학(Forward Kinematics)에 대한 설명으로 옳은 것은?
① 말단장치의 목표 포즈로부터 조인트 각도를 구한다 ② 조인트 변수로부터 말단장치의 위치와 자세를 구한다 ③ 해가 여러 개 존재하는 것이 일반적이다 ④ 조인트에 필요한 토크를 계산한다
정답 및 해설
정답: ② 순기구학은 조인트 공간 → 작업 공간 방향의 계산으로, 해는 항상 유일하다. ①·③은 역기구학, ④는 동역학에 대한 설명이다.
3. 링크 길이가 l_1 = l_2 = 1 m인 2링크 평면 머니퓰레이터에서 \theta_1 = 30°, \theta_2 = 60°일 때 말단장치의 위치 (x, y)는?
① \left(\frac{\sqrt{3}}{2}, \frac{3}{2}\right) ② \left(\frac{3}{2}, \frac{\sqrt{3}}{2}\right) ③ (1, 1) ④ \left(\frac{\sqrt{3}}{2}, \frac{1}{2}\right)
정답 및 해설
정답: ① 두 번째 링크의 절대각은 \theta_1 + \theta_2 = 90°. x = \cos 30° + \cos 90° = \frac{\sqrt{3}}{2} + 0 = \frac{\sqrt{3}}{2} y = \sin 30° + \sin 90° = \frac{1}{2} + 1 = \frac{3}{2}
4. 축을 따라 미끄러지는 직선 운동을 하며, 변위 d를 변수로 갖는 조인트는?
① 회전조인트(Revolute Joint) ② 직동조인트(Prismatic Joint) ③ 구형조인트(Spherical Joint) ④ 유니버설조인트(Universal Joint)
정답 및 해설
정답: ② 직선 운동 조인트는 직동(프리즈매틱)조인트다. 회전조인트는 각도 \theta가 변수다. 구형·유니버설조인트는 다자유도 조인트로, 직렬 머니퓰레이터 해석에서는 보통 기본 조인트(R, P)의 조합으로 취급한다.
5. 자코비안(Jacobian) 행렬 J(q)에 대한 설명으로 옳은 것은?
① 조인트 토크와 말단 힘의 관계만 나타낸다 ② 로봇의 자세와 무관한 상수 행렬이다 ③ 조인트 속도를 말단장치 속도로 사상(mapping)한다 ④ 항상 정방행렬이며 역행렬이 존재한다
정답 및 해설
정답: ③ \dot{x} = J(q)\dot{q}로 조인트 속도를 말단 속도로 변환한다. J는 자세 q의 함수라서 로봇이 움직이면 값이 변하고(② 오답), 특이점에서는 역행렬이 존재하지 않는다(④ 오답). 힘 관계는 \tau = J^\top F로 자코비안의 전치가 담당하므로 ①은 "만"이 틀렸다.
🔗 관련 노트
- 변환행렬 — 순기구학 계산의 기본 도구
- 로봇 역기구학 해석 — 반대 방향 문제: 포즈 → 조인트각
- 머니퓰레이터 경로계획 — 기구학 위에서 경로를 설계
- 액추에이터 동역학 모델링 — 힘·토크까지 다루는 동역학
- _MOC 모션소프트웨어