Week 1 "Robot Dynamics — Kinematics 입문"
Introduction to Robotics, Assumptions, Vector Notation, Body Frame, Recursion on 2D N Pendulum, Recursion for Position and Orientation
Week 1 "Robot Dynamics — Kinematics 입문"
Robot Dynamics: Kinematics 입문
1. Schematic Drawing and Terminology
로봇은 link(링크) 와 joint(관절) 로 구성된 체인 구조.
Joint의 종류
| Joint Type | 표현 | 자유도 | $q_i$ 의미 |
|---|---|---|---|
| Revolute Joint | 원통 모양 | 1 (회전) | joint angle [rad] |
| Prismatic Joint | 직사각형 모양 | 1 (직선) | joint displacement [m] |
모든 관절값을 모은 벡터:
\[q = \begin{pmatrix} q_1 \\ q_2 \\ \vdots \end{pmatrix}\]2. Joint Space vs. Work Space
\[\text{Joint Space} \xrightarrow{\text{DK (Direct Kinematics)}} \text{Work Space}\] \[\text{Work Space} \xrightarrow{\text{IK (Inverse Kinematics)}} \text{Joint Space}\]| 공간 | 표현 | 설명 |
|---|---|---|
| Joint Space | $q \in \mathbb{R}^n$ | 로봇 내부 관절값 |
| Work Space | $r_e, A_e$ | end-effector의 위치/자세 |
- DK: $q$를 알면 end-effector 위치를 항상 유일하게 계산 가능
- IK: 원하는 위치에서 $q$를 역으로 계산 → 해가 없거나, 하나거나, 여러 개일 수 있음
3. Overview of Chapters
전체 제어 흐름:
1
2
3
Task → [Planning: r_e, A_e → IK] → q → [Control: ID] → τ → Robot
↓
Sensors (feedback)
| 챕터 | 내용 |
|---|---|
| Kinematics | Joint Space ↔ Work Space 변환 |
| Dynamics | 힘/토크와 운동의 관계 |
| Planning | 경로 계획 |
| Control | 모터 명령 전달 |
4. Vector Notation
벡터 vs. 좌표
같은 벡터 $r_2$라도 어느 frame에서 표현하느냐에 따라 숫자가 달라짐:
\[_f r_2 = \begin{pmatrix} 2\,\text{cm} \\ 1\,\text{cm} \\ 0 \end{pmatrix} \neq\; _h r_2\]- 왼쪽 아래 첨자 = 어느 frame에서 표현했는지
- 벡터 자체는 frame-independent (물리적 실체)
- 좌표는 frame-dependent (숫자 표현)
Vector Chain Rule
\[r_e = r_6 + r_{6e}\] \[r_{24} = r_4 - r_2\]Frame 간 변환
\[_0 r_2 = {_2 A_0}^T \cdot {_2 r_2}\]rotation matrix $A$의 역행렬 = transpose (orthonormal 행렬의 성질)
5. Why Do We Need Several Frames?
각 body $i$마다 body-fixed frame을 붙이는 이유:
Body description(관성 텐서 등)을 body-fixed frame에서 표현하면 시간에 따라 변하지 않는 상수가 됨
| 정보 | 표기 | 설명 |
|---|---|---|
| Orientation | $A_{i/0}$ | Body $i$가 inertial frame 대비 얼마나 돌아있는지 |
| Body description | $_{i/i}$ | 자기 frame에서의 물리적 특성 → 상수 |
| Position | $r_{i/0}$ | Body $i$의 origin이 inertial frame에서 어디 있는지 |
joint angle $q_i$ 하나마다 새 frame이 하나씩 추가되고, 이전 frame 기준으로 표현하는 것이 kinematic chain의 핵심
6. Recursion on 2D N-Pendulum
N개 링크 진자에서 position/orientation을 재귀적으로 계산.
Position 재귀
\[_0 r_0 = 0\] \[_0 r_1 = {_0 r_0} + {_0 r_{01}} = 0\] \[_0 r_2 = {_0 r_1} + {_0 r_{12}} = 0 + c_1 \begin{pmatrix} \cos\phi_1 \\ \sin\phi_1 \end{pmatrix}\]Orientation 재귀 (2D)
\[\phi_0 = 0, \quad \phi_1 = q_1, \quad \phi_2 = q_1 + q_2\]2D에서 orientation은 joint angle의 단순 합산.
7. Recursion for Position and Orientation (3D)
주어진 정보
각 body $i$에 대해:
- $0 r\pi$ : parent origin의 inertial frame 위치
- $0 A\pi$ : parent orientation
$\pi r{\pi i}\big _{q_i=0}$ : $q_i = 0$일 때 상대 위치 $_\pi A_i\big _{q_i=0}$ : $q_i = 0$일 때 상대 orientation
Recursion 공식
\[_0 r_i = {_0 r_\pi} + {_0 A_\pi} \cdot {_\pi r_{\pi i}}\] \[_0 A_i = {_0 A_\pi} \cdot {_\pi A_i}\]Revolute Joint ($+z$ 축 회전)
- Position: $q_i$에 무관 (origin 위치 불변)
- Orientation: $q_i$만큼 추가 회전
Revolute Joint ($-y$ 축 회전)
- Position: $(0, 0, 0)$ 추가 (변화 없음)
- Orientation: $-y$ 축이지만 부호 정의에 의해 $A_y(q_i)$와 동일한 형태
Prismatic Joint ($+z$ 축)
- Position: $z$ 방향으로 $q_i$만큼 이동
- Orientation: 항상 단위행렬 (회전 없음)
8. Joint Type 비교 요약
| Revolute Joint | Prismatic Joint | |
|---|---|---|
| 운동 | 회전 | 직선 이동 |
| $q_i$ | 각도 [rad] | 변위 [m] |
| Position 변화 | 없음 (상수) | $q_i$만큼 축 방향 이동 |
| Orientation 변화 | $q_i$만큼 회전 행렬 추가 | 없음 (단위행렬) |
This post is licensed under CC BY 4.0 by PythonToGo .