로봇 정기구학(Forward Kinematics)

로봇 정기구학(Forward Kinematics)

1. 로봇의 움직임을 기술하는 언어, 기구학

로봇 공학의 근간을 이루는 기구학(Kinematics)은 로봇의 움직임을 수학적으로 기술하고 분석하는 학문이다. 이는 운동을 유발하는 힘이나 토크와 같은 동역학적 요소를 배제하고, 순수하게 기하학적인 관점에서 로봇의 위치, 속도, 가속도 간의 관계를 다룬다.1 로봇을 정밀하게 제어하기 위한 첫걸음은 로봇의 현재 상태를 정확히 아는 것이며, 기구학은 바로 이 문제를 해결하기 위한 체계적인 방법론을 제공한다.

1.1 정기구학(Forward Kinematematics)의 핵심 질문: “각 관절이 이 각도일 때, 로봇 손은 어디에 있는가?”

정기구학, 또는 순기구학은 로봇 기구학의 가장 기본적인 문제에 답한다. 그 정의는 로봇을 구성하는 각 관절(joint)의 변수 값(회전 각도 또는 직선 변위)과 각 부분을 연결하는 링크(link)의 기하학적 정보(길이, 비틀림 등)가 주어졌을 때, 로봇 팔 끝에 달린 말단장치(End-effector)의 최종적인 위치(position)와 자세(orientation)를 계산하는 과정이다.3

로봇 시스템은 일반적으로 각 관절에 장착된 모터의 회전량을 엔코더와 같은 센서로 직접 측정하여 제어한다.1 즉, 관절 변수 값은 우리가 ‘알고 있는’ 정보이다. 정기구학은 이 알려진 내부 상태 정보로부터 우리가 궁극적으로 알고자 하는 외부 세계와의 상호작용 지점, 즉 말단장치의 상태를 추론하는 순방향(forward)의 논리적 흐름을 따른다.

이러한 관점에서 정기구학은 단순한 계산 절차를 넘어, 로봇의 내부 좌표계인 ’관절 공간(Joint Space)’에서 외부 세계의 좌표계인 ’작업 공간(Task Space)’으로의 상태를 변환하는 근본적인 ’매핑 함수(Mapping Function)’로 이해할 수 있다.2 하나의 관절 값 조합은 반드시 단 하나의 말단장치 상태를 결정하므로, 이 함수의 결과, 즉 정기구학의 해는 항상 유일하게 존재한다.6 이는 원하는 말단장치 상태를 만족하는 관절 값을 찾는 역기구학(Inverse Kinematics) 문제가 여러 해를 갖거나 해가 없을 수 있는 것과 극명한 대조를 이룬다.1

1.2 로봇의 기본 구조: 링크, 관절, 그리고 말단장치

정기구학을 이해하기 위해서는 로봇 매니퓰레이터의 기본 구성 요소를 알아야 한다.

  • 링크(Link): 관절과 관절을 연결하는 뼈대와 같은 부분으로, 형태가 변하지 않는 강체(rigid body)로 가정된다.5 정기구학의 모든 수학적 모델은 이 ‘강체’ 가정 위에 세워진다. 실제 로봇은 고속 운동 시 미세한 진동이나 탄성 변형을 겪을 수 있지만, 기구학적 모델에서는 이러한 현상을 무시한다. 이는 정기구학이 다루는 대상이 이상적인 기하학적 모델임을 의미하며, 이러한 모델의 한계를 인지하는 것이 중요하다.

  • 관절(Joint): 두 링크를 연결하며 상대적인 움직임을 허용하는 부분이다. 가장 일반적인 관절은 하나의 축을 중심으로 회전하는 **회전 관절(revolute joint)**과 하나의 축을 따라 직선 운동을 하는 **직동 관절(prismatic joint)**이다.5

  • 자유도(Degrees of Freedom, DOF): 시스템의 상태를 독립적으로 결정할 수 있는 변수의 개수를 의미한다.4 로봇 매니퓰레이터의 자유도는 통상적으로 구동되는 관절의 개수와 같다. 예를 들어, 6개의 독립적인 관절을 가진 로봇은 6-DOF 로봇이라 불린다.

  • 말단장치(End-Effector): 로봇 팔의 가장 끝에 부착되어 용접, 도색, 물체 집기 등 실제 작업을 수행하는 도구다.1 로봇 제어의 궁극적인 목표는 이 말단장치를 원하는 위치와 자세로 정확하게 이동시키는 것이다.9

2. 수학적 기초: 강체 변환과 동차 변환 행렬

정기구학은 로봇의 각 링크가 3차원 공간상에서 어떻게 연결되고 움직이는지를 수학적으로 표현하는 과정이다. 이를 위해 강체의 위치와 자세를 기술하고, 이들 간의 변환 관계를 나타내는 강력한 도구인 동차 변환 행렬(Homogeneous Transformation Matrix)이 사용된다.

2.1 차원 공간에서의 위치와 자세 표현

3차원 공간에 놓인 강체의 상태는 위치와 자세, 두 가지 요소로 완벽하게 기술된다.

  • 위치(Position): 기준이 되는 전역 좌표계(Global Frame)의 원점으로부터 강체에 고정된 지역 좌표계(Local Frame)의 원점까지의 변위를 나타내는 3차원 벡터 p \in \mathbb{R}^3로 표현된다.2

  • 자세(Orientation): 강체에 고정된 지역 좌표계의 각 축이 기준 좌표계의 축에 대해 얼마나 회전해 있는지를 나타낸다. 이는 3x3 크기의 회전 행렬(Rotation Matrix) R \in SO(3)로 표현된다.10 여기서 SO(3)는 특수 직교 그룹(Special Orthogonal Group)을 의미하며, 행렬의 각 열(또는 행) 벡터는 서로 직교하고 크기가 1이며, 행렬식(determinant) 값이 +1인 행렬들의 집합이다.

2.2 회전과 이동을 통합하는 4x4 동차 변환 행렬

좌표계 {A}에 대한 좌표계 {B}의 상대적 위치와 자세가 주어졌을 때, {B}에서 표현된 점의 좌표 p_B{A}에서의 좌표 p_A로 변환하는 연산은 회전과 이동의 조합으로 이루어진다: p_A = R_B^A p_B + d_B^A.11 이 식은 행렬 곱셈과 벡터 덧셈이 혼합되어 있어, 여러 링크가 직렬로 연결된 로봇의 연속적인 변환을 계산할 때 매우 번거롭다.

이 문제를 해결하기 위해 동차 좌표(Homogeneous Coordinates) 개념이 도입된다. 3차원 위치 벡터 [x, y, z]^T에 스케일링 인자 1을 추가하여 4차원 벡터 [x, y, z, 1]^T로 확장하는 것이다.11 이 확장을 통해, 앞서 분리되어 있던 회전 변환과 이동 변환을 단 하나의 4x4 행렬 곱셈으로 통합할 수 있게 되며, 이 행렬을 동차 변환 행렬 T라고 부른다.10

동차 변환 행렬 T는 다음과 같은 블록 구조를 가진다 10:

T = \begin{bmatrix} R & p \\ \mathbf{0}_{1 \times 3} & 1 \end{bmatrix}
여기서 R은 3x3 회전 행렬, p는 3x1 이동 벡터, \mathbf{0}_{1 \times 3}1 \times 3 영벡터, 그리고 마지막 원소는 스칼라 1이다.

이러한 행렬 표현은 3차원 공간에서 6개의 자유도(위치 3, 자세 3)를 갖는 강체의 상태를 표현하기 위해 16개의 원소를 사용하므로 명백한 중복성(redundancy)을 가진다.14 하지만 이러한 중복성은 계산상의 엄청난 편의성을 제공하는 공학적 절충의 결과이다. 비선형적인 회전 연산과 선형적인 이동 연산을 ’행렬 곱셈’이라는 단일하고 잘 정립된 선형 대수 연산으로 통합함으로써, 복잡한 계산을 단순화하고 오일러 각도 등 최소 표현법에서 발생하는 짐벌락(Gimbal Lock)과 같은 특이점 문제를 피할 수 있다.

2.3 연속적인 변환의 표현: 변환 행렬의 곱셈

동차 변환 행렬의 가장 큰 장점은 연속적인 좌표 변환을 행렬의 연쇄 곱(chain multiplication)으로 매우 간결하게 표현할 수 있다는 점이다.13 예를 들어, 베이스 좌표계 {0}에 대해 링크 1의 좌표계 {1}T_1^0로, {1}에 대해 {2}T_2^1로 표현될 때, 베이스에 대한 링크 2의 최종 변환 T_2^0는 단순히 두 행렬을 곱하여 얻을 수 있다.

T_2^0 = T_1^0 T_2^1
이때 행렬 곱셈은 교환 법칙이 성립하지 않으므로(AB \neq BA), 변환의 순서가 매우 중요하다는 점을 반드시 유의해야 한다.13

이러한 변환 행렬 T_B^A는 두 가지 상호보완적인 관점으로 해석될 수 있다. 첫째는 기준 좌표계 {A}에 대한 좌표계 {B}의 상대적인 위치와 자세를 완벽하게 기술하는 ’상태 기술자(State Descriptor)’로서의 역할이다. 둘째는 좌표계 {B}에서 정의된 벡터를 좌표계 {A}의 표현으로 바꾸는 수학적 ’연산자(Operator)’로서의 역할이다 (P_A = T_B^A P_B). 이 이중성을 이해하면 변환 행렬의 개념을 더 깊이 파악하고 복잡한 기구학 문제를 해결할 때 혼동을 줄일 수 있다.

3. 표준 방법론: 데나빗-하텐버그(DH) 표기법

로봇 매니퓰레이터는 여러 개의 링크와 관절이 복잡하게 연결된 구조를 가진다. 각 링크마다 임의의 방식으로 좌표계를 설정한다면, 링크 간의 상대적 관계를 기술하는 변환 행렬이 매우 복잡해지고 일반성을 잃게 된다. 데나빗-하텐버그(Denavit-Hartenberg, DH) 표기법은 각 링크에 좌표계를 설정하는 일관된 규칙을 제공하여, 인접한 두 링크 간의 기하학적 관계를 단 4개의 파라미터로 표준화하는 강력하고 체계적인 방법론이다.5

3.1 링크 좌표계 설정 규칙

DH 표기법의 핵심은 아래의 규칙에 따라 각 링크에 좌표계를 엄격하게 할당하는 것이다. 이 규칙들은 두 좌표계 사이에 특정 기하학적 제약을 강제함으로써, 일반적인 6-DOF 변환을 4개의 파라미터만으로 표현할 수 있도록 만든다.

  1. z-축 설정: z_{i-1} 축은 관절 i의 운동 축(회전 관절의 경우 회전축, 직동 관절의 경우 이동축)과 일치시킨다.

  2. x-축 설정: x_i 축은 z_{i-1} 축과 z_i 축의 공통 수선(common normal) 방향으로 설정한다. 만약 두 z-축이 평행하면 x_i는 이전 링크의 x_{i-1}에서 수직으로 뻗어 나가는 방향으로 정한다. 만약 두 z-축이 교차하면 x_i는 외적 z_{i-1} \times z_i 방향으로 설정한다.

  3. y-축 설정: y_i 축은 오른손 법칙(y_i = z_i \times x_i)을 만족하도록 설정하여 완전한 직교 좌표계를 형성한다.15

이러한 규칙은 단순히 편리함을 위한 약속이 아니다. x_i 축이 z_{i-1} 축에 수직이고 교차하도록 강제하는 이 규칙들은, 두 좌표계 간의 변환을 4개의 파라미터로 유일하게 표현할 수 있다는 수학적 필연성에 근거한다.5 즉, DH 규칙을 따르는 행위 자체가 변환 행렬의 특정 원소들을 0 또는 1로 고정시켜 파라미터 수를 줄이는 효과를 낳는다.

3.2 개의 DH 파라미터 상세 정의

위 규칙에 따라 설정된 인접한 두 좌표계 {i-1}{i} 사이의 공간적 관계는 다음 4개의 파라미터로 완벽하게 정의된다.15

  • 링크 길이 (Link Length, a_i 또는 r_i): z_{i-1} 축과 z_i 축 사이의 거리. 공통 수선인 x_i 축을 따라 측정된다.

  • 링크 비틀림 (Link Twist, \alpha_i): z_{i-1} 축과 z_i 축 사이의 각도. 공통 수선인 x_i 축을 중심으로 측정된다.

  • 링크 오프셋 (Link Offset, d_i): x_{i-1} 축과 x_i 축 사이의 거리. z_{i-1} 축을 따라 측정된다. 이 값은 관절 i가 직동 관절일 경우 변수가 된다.

  • 관절 각도 (Joint Angle, \theta_i): x_{i-1} 축과 x_i 축 사이의 각도. z_{i-1} 축을 중심으로 측정된다. 이 값은 관절 i가 회전 관절일 경우 변수가 된다.

이 파라미터들을 로봇의 각 링크에 대해 계산하여 표로 정리한 것을 DH 파라미터 테이블이라고 하며, 이는 정기구학 문제 풀이의 핵심적인 출발점이 된다.

3.3 표 1: DH 파라미터 정의 요약

파라미터명칭기하학적 정의기준 축변수 유형
a_i (r_i)링크 길이z_{i-1} 축과 z_i 축 사이의 최단 거리x_i 축 방향의 이동상수
\alpha_i링크 비틀림z_{i-1} 축에서 z_i 축까지의 각도x_i 축 중심의 회전상수
d_i링크 오프셋x_{i-1} 축에서 x_i 축까지의 거리z_{i-1} 축 방향의 이동직동 관절의 변수
\theta_i관절 각도x_{i-1} 축에서 x_i 축까지의 각도z_{i-1} 축 중심의 회전회전 관절의 변수

4. 정기구학 문제의 해석

DH 표기법으로 로봇의 기하학적 구조를 파라미터화했다면, 이제 이를 동차 변환 행렬과 결합하여 정기구학 문제를 해결할 수 있다. 그 과정은 각 링크에 대한 변환 행렬을 개별적으로 구한 뒤, 이를 순차적으로 곱해 나가는 방식으로 이루어진다.

4.1 DH 파라미터를 이용한 링크 변환 행렬 A_i 유도

좌표계 {i-1}에서 {i}로의 변환은 4개의 DH 파라미터에 해당하는 4개의 기본 변환(2개의 회전, 2개의 이동)을 순차적으로 적용한 결과로 해석할 수 있다.19 그 순서는 다음과 같다.

  1. z_{i-1} 축을 중심으로 \theta_i 만큼 회전 (Rot(z, \theta_i))

  2. z_{i-1} 축을 따라 d_i 만큼 이동 (Trans(z, d_i))

  3. 새로운 x_i 축을 따라 a_i 만큼 이동 (Trans(x, a_i))

  4. 새로운 x_i 축을 중심으로 \alpha_i 만큼 회전 (Rot(x, \alpha_i))

이 네 가지 변환을 행렬로 표현하여 순서대로 곱하면, 좌표계 {i-1}에 대한 {i}의 상대적 위치와 자세를 나타내는 링크 변환 행렬 A_i가 유도된다.5

A_i = Rot(z, \theta_i) Trans(z, d_i) Trans(x, a_i) Rot(x, \alpha_i)
이 행렬 곱셈의 결과는 다음과 같은 일반적인 형태를 가진다.

A_i = \begin{bmatrix} \cos\theta_i & -\sin\theta_i\cos\alpha_i & \sin\theta_i\sin\alpha_i & a_i\cos\theta_i \\ \sin\theta_i & \cos\theta_i\cos\alpha_i & -\cos\theta_i\sin\alpha_i & a_i\sin\theta_i \\ 0 & \sin\alpha_i & \cos\alpha_i & d_i \\ 0 & 0 & 0 & 1 \end{bmatrix}

4.2 전체 변환 행렬 T_n^0 계산 및 결과 해석

로봇의 베이스 좌표계 {0}에 대한 n번째 링크(말단장치) 좌표계 {n}의 최종적인 위치와 자세는, 베이스부터 말단장치까지 각 링크의 변환 행렬 A_i를 순서대로 모두 곱하여 얻는다.15

T_n^0 = A_1 A_2 \cdots A_n
이러한 직렬 체인(Serial Chain)의 기구학적 계산은 본질적으로 재귀적(Recursive) 구조를 가진다. 즉, T_n^0 = T_{n-1}^0 A_n의 형태로 표현할 수 있다. 이는 n번째 링크의 상태가 (n-1)번째 링크의 상태에 A_n 변환을 추가로 적용한 결과임을 의미하며, 로봇의 물리적 구조와 수학적 모델이 완벽하게 일치함을 보여준다. 이러한 재귀적 관점은 정기구학 계산 알고리즘을 구현할 때 매우 효율적인 접근법을 제공한다.

최종적으로 계산된 4x4 동차 변환 행렬 T_n^0는 다음과 같이 해석된다.

T_n^0 = \begin{bmatrix} R_n^0 & p_n^0 \\ \mathbf{0}_{1 \times 3} & 1 \end{bmatrix}

  • 좌상단의 3x3 부분 행렬 R_n^0는 베이스 좌표계에 대한 말단장치의 자세를 나타내는 회전 행렬이다.

  • 우상단의 3x1 열벡터 p_n^0는 베이스 좌표계에 대한 말단장치의 위치를 나타내는 위치 벡터이다.15

5. 상세 해석 예제: 2자유도 평면 로봇팔

앞서 학습한 이론적 개념들을 간단하지만 대표적인 2자유도(2-DOF) 평면 로봇팔 예제에 적용하여 정기구학 문제 해결의 전 과정을 구체적으로 살펴보자.

5.1 문제 정의 및 좌표계 설정

길이가 각각 a_1a_2인 두 개의 링크가 두 개의 회전 관절(관절각 \theta_1, \theta_2)로 연결된 평면 로봇을 가정한다.8 DH 규칙에 따라 다음과 같이 좌표계를 설정한다.

  • 좌표계 {0} (베이스): 첫 번째 관절의 회전축에 원점을 두고, z_0 축이 회전축과 일치하도록 설정한다. x_0 축은 로봇이 완전히 펴졌을 때의 방향으로 임의 설정한다.

  • 좌표계 {1}: 두 번째 관절의 회전축에 원점을 둔다. z_1 축은 회전축과 일치시킨다. x_1 축은 z_0z_1의 공통 수선 방향인데, 두 축이 평행하므로 링크 1을 따라 x_0와 평행하게 설정한다.

  • 좌표계 {2} (말단장치): 말단장치 끝에 원점을 둔다. z_2 축은 z_1과 평행하게 설정한다. x_2 축은 링크 2를 따라 x_1과 평행하게 설정한다.

5.2 DH 파라미터 테이블 도출

설정된 좌표계를 바탕으로 각 링크의 DH 파라미터를 계산하면 다음과 같은 테이블을 얻을 수 있다.

5.3 표 2: 2-DOF 평면 로봇팔의 DH 파라미터 테이블

Link ia_i\alpha_id_i\theta_i
1a_100\theta_1*
2a_200\theta_2*

*(*는 해당 파라미터가 관절 변수임을 의미한다.)

5.4 링크 변환 행렬 A_1, A_2 계산

위 DH 파라미터 테이블의 값을 IV장의 일반 A_i 행렬 공식에 대입하여 A_1A_2를 계산한다.8

c_i = \cos(\theta_i), s_i = \sin(\theta_i)로 표기하면,

A_1 = \begin{bmatrix} c_1 & -s_1 & 0 & a_1 c_1 \\ s_1 & c_1 & 0 & a_1 s_1 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}

A_2 = \begin{bmatrix} c_2 & -s_2 & 0 & a_2 c_2 \\ s_2 & c_2 & 0 & a_2 s_2 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}

5.5 최종 변환 행렬 T_2^0 유도 및 결과 해석

최종 변환 행렬 T_2^0A_1A_2의 곱으로 계산된다.

T_2^0 = A_1 A_2

행렬 곱셈을 수행하고 삼각함수 덧셈 정리를 이용하여 결과를 간소화하면 다음과 같다.8

T_2^0 = \begin{bmatrix} \cos(\theta_1+\theta_2) & -\sin(\theta_1+\theta_2) & 0 & a_1\cos\theta_1 + a_2\cos(\theta_1+\theta_2) \\ \sin(\theta_1+\theta_2) & \cos(\theta_1+\theta_2) & 0 & a_1\sin\theta_1 + a_2\sin(\theta_1+\theta_2) \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}
이 최종 변환 행렬에서 말단장치의 위치와 자세 정보를 추출할 수 있다.

  • 위치: 우측 마지막 열에서 x, y 좌표를 얻는다.

  • x = a_1\cos\theta_1 + a_2\cos(\theta_1+\theta_2)

  • y = a_1\sin\theta_1 + a_2\sin(\theta_1+\theta_2)

  • 자세: 좌상단 3x3 행렬은 베이스 좌표계의 x축에 대한 말단장치 좌표계의 최종 방향이 \theta_1+\theta_2 만큼 회전했음을 보여준다.

이 결과는 단순한 기하학과 삼각법을 이용해 직접 유도한 결과와 정확히 일치하며 21, 이는 DH 표기법 기반의 체계적인 접근법이 타당함을 보여주는 좋은 예시이다.

6. 관절 공간과 작업 공간

로봇의 움직임을 기술하고 제어 전략을 수립할 때, 두 가지 핵심적인 개념적 공간이 등장한다: **관절 공간(Joint Space)**과 **작업 공간(Task Space)**이다. 정기구학은 이 두 공간을 잇는 다리 역할을 한다.

6.1 관절 공간 (Joint Space)

관절 공간은 로봇의 모든 관절 변수들의 집합으로 구성된 공간이다.2

n개의 자유도를 가진 로봇이라면, 관절 공간은 n차원 공간이 된다. 이 공간의 한 점은 관절 벡터 q = [q_1, q_2, \dots, q_n]^T로 표현되며, 로봇의 ‘내부적인’ 자세(configuration)를 완벽하게 정의한다. 로봇의 모터는 이 관절 공간상의 좌표를 직접 제어하며, PID 제어와 같은 저수준 제어 알고리즘은 주로 이 공간에서 작동한다.23

6.2 작업 공간 (Task Space)

작업 공간은 로봇의 말단장치가 실제 작업을 수행하는 3차원 물리 공간이다. 데카르트 공간(Cartesian Space)이라고도 불리며, 말단장치의 위치 (x, y, z)와 자세 (\alpha, \beta, \gamma)로 기술된다.25 이 공간은 로봇의 ‘외부적인’ 목표를 정의하는 데 사용된다. 예를 들어, “테이블 위 특정 지점으로 직선 경로를 따라 이동하라“는 명령은 작업 공간에서 정의된다.24

말단장치가 도달할 수 있는 모든 위치의 집합을 **도달 가능 작업 공간(Reachable Workspace)**이라고 하며, 이는 로봇의 링크 길이, 관절의 가동 범위 등 기구학적 제약에 의해 결정된다.25

6.3 정기구학: 두 공간을 잇는 비선형 매핑

정기구학은 관절 공간의 한 점 q를 작업 공간의 한 점 x로 변환하는 명시적인 함수 x = f(q)를 제공한다.7 앞선 2-DOF 로봇팔 예제에서 보았듯이, 이 함수는 \cos\sin 같은 삼각함수를 포함하므로 일반적으로 비선형(non-linear) 관계를 가진다.

이 비선형성은 로봇 공학의 여러 핵심적인 문제들의 근원이 된다. 관절 공간에서 관절각을 일정하게 변화시켜도, 작업 공간에서 말단장치의 위치는 일정하게 변하지 않는다. 이는 로봇 제어의 복잡성을 야기한다. 원하는 작업 공간 경로를 따라가기 위해 필요한 관절 공간 경로는 직관적이지 않으며, 이 비선형 함수의 역을 구하는 역기구학 문제는 해석적으로 풀기 매우 어려워진다. 또한, 속도나 힘을 제어하기 위해서는 이 비선형 관계를 특정 지점에서 선형적으로 근사할 필요가 생기는데, 이것이 바로 다음 단계에서 배울 자코비안(Jacobian) 행렬의 역할이다.

6.4 표 3: 관절 공간과 작업 공간 비교

구분관절 공간 (Joint Space)작업 공간 (Task Space / Cartesian Space)
정의모든 관절 변수들의 조합으로 이루어진 공간말단장치의 위치와 자세로 이루어진 공간
좌표관절 각도/변위 벡터 q = [q_1, \dots, q_n]^T위치/자세 벡터 x = [x, y, z, \alpha, \beta, \gamma]^T
차원로봇의 자유도(DOF) n보통 3 (위치) 또는 6 (위치+자세)
경로관절의 움직임이 직관적, 경로 계획이 단순함말단장치의 움직임이 직관적 (예: 직선 이동)
제어PID 등 각 관절 모터의 직접 제어 23역기구학을 통한 간접 제어 23
변환x = f(q) (정기구학)q = f^{-1}(x) (역기구학)

7. 정기구학의 응용과 그 너머

정기구학은 로봇 공학의 이론적 토대를 넘어 산업, 엔터테인먼트, 의료 등 다양한 분야에서 실질적으로 활용되는 핵심 기술이다.

7.1 산업용 로봇의 경로 생성 및 시뮬레이션

제조 공정에서 산업용 로봇은 정해진 경로를 따라 정밀한 작업을 수행해야 한다. 정기구학은 특정 관절 각도 시퀀스에 대해 말단장치가 어떤 궤적을 그리는지 예측하고 시뮬레이션하는 데 필수적으로 사용된다.1 이를 통해 실제 로봇을 구동하기 전에 작업 경로가 장애물과 충돌하지 않는지, 로봇의 작업 공간 내에서 작업이 가능한지 등을 사전에 검증할 수 있다.

7.2 컴퓨터 그래픽스와 애니메이션

3D 애니메이션에서 캐릭터의 움직임을 만드는 과정은 로봇 기구학과 매우 유사하다. 캐릭터의 뼈대(skeleton)는 로봇의 직렬 체인으로 모델링될 수 있으며, 각 관절(어깨, 팔꿈치, 손목 등)의 각도를 설정했을 때 손의 최종 위치를 계산하는 것은 정확히 정기구학 문제에 해당한다.4 아티스트가 각 관절을 직접 조작하여 포즈를 만드는 ’정기구학 리깅(FK rigging)’은 애니메이션의 기본적인 기법 중 하나이다.

7.3 가상현실(VR), 의료 로봇, 생체역학

  • 가상현실(VR): 비행 시뮬레이터와 같은 모션 플랫폼에서 정기구학은 몰입감을 높이고 VR 멀미를 줄이는 데 결정적인 역할을 한다. 플랫폼의 움직임은 각 액추에이터의 길이를 기반으로 정기구학을 통해 정확히 계산된다. 이 계산된 플랫폼의 움직임을 VR 헤드셋이 측정한 전체 움직임에서 제거함으로써, 사용자의 순수한 머리 움직임만을 가상 환경에 반영할 수 있다.28

  • 의료 로봇: 다빈치와 같은 수술 로봇 시스템에서, 의사가 조종하는 마스터 장치의 움직임에 따라 환부에서 움직이는 슬레이브 로봇의 정밀한 위치를 파악하고 제어하는 데 정기구학이 사용된다. 최근에는 신경망을 이용하여 로봇의 정기구학 모델을 학습시키는 연구도 활발히 진행되고 있다.29

  • 생체역학(Biomechanics): 인간이나 동물의 팔다리 움직임을 기구학적 체인으로 모델링하여 운동 능력을 분석하거나, 재활 공학에서 의족이나 의수를 설계하는 데 정기구학 원리가 적용된다.8

7.4 고급 주제 소개: 자코비안(Jacobian)과 속도 기구학

정기구학이 관절 공간과 작업 공간 사이의 ‘위치’ 관계(x = f(q))를 다루었다면, 다음 단계는 ’속도’의 관계를 다루는 **속도 기구학(Velocity Kinematics)**이다. 정기구학 식을 시간에 대해 미분하면 다음과 같은 중요한 관계식을 얻을 수 있다.

\dot{x} = J(q)\dot{q}
여기서 \dot{x}는 작업 공간에서의 말단장치 속도(선속도 및 각속도), \dot{q}는 관절 공간에서의 관절 속도 벡터이며, J(q)자코비안(Jacobian) 행렬이라 불린다.7 자코비안은 현재 로봇의 자세(q)에 따라 값이 변하는 행렬로서, 미소 관절 변위에 대한 미소 말단장치 변위의 선형적인 관계를 나타낸다. 이는 로봇의 속도 제어, 힘 제어, 그리고 특정 자세에서 로봇이 움직일 수 없게 되는 특이점(singularity) 분석 등 고급 로봇 공학 주제로 나아가는 핵심적인 교량 역할을 한다. 정기구학에 대한 깊이 있는 이해는 이러한 고급 주제들을 정복하기 위한 필수적인 선행 과정이다.

8. 참고 자료

  1. 로봇 기구학: 정기구학(Forward kinematics)과 역기구학(Inverse kinematics) - Open robotics, https://pg365.tistory.com/38
  2. Robotics - Chapter 3. Manipulator Kinematics | Jun Park, https://junpark-ai.github.io/posts/robotics-3/
  3. ddangeun.tistory.com, https://ddangeun.tistory.com/26#:~:text=Forward%20Kinematics%EB%8A%94%20%EB%A1%9C%EB%B4%87%EC%9D%84,%EB%82%B4%EB%8A%94%20%EA%B2%83%EC%9D%84%20%EC%9D%98%EB%AF%B8%ED%95%A9%EB%8B%88%EB%8B%A4.
  4. [Open GL ES를 이용한 3차원 컴퓨터 그래픽스 입문] 챕터 13 - 캐릭터 애니메이션 [4/4], https://j1y00h4.tistory.com/43
  5. FORWARD KINEMATICS: THE DENAVIT-HARTENBERG CONVENTION - Duke Computer Science, https://users.cs.duke.edu/~brd/Teaching/Bio/asmb/current/Papers/chap3-forward-kinematics.pdf
  6. 기구학 (kinematics) - 만인을 위한 산업용로봇 - 티스토리, https://cobots.tistory.com/7
  7. 기구학 - Velocity Kinematics - 긁어모으고. 기록하고. 고민하고. - 티스토리, https://mrlacquer.tistory.com/15
  8. Forward Kinematics – Modeling, Motion Planning, and Control of Manipulators and Mobile Robots - Clemson University Open Textbooks, https://opentextbooks.clemson.edu/wangrobotics/chapter/forward-kinematics/
  9. Robotics 4. Forward kinematics - velog, https://velog.io/@woobin_robot/Robotics-4.-Forward-kinematics
  10. Chapter 2. 강체운동과 동차변환(Rigid Motions and Homogeneous Transformations), https://t1.daumcdn.net/tistoryfile/fs14/11_tistory_2008_11_05_21_35_4911930541dd8?original
  11. 기구학 - 강체의 수학적 표현 1 — 긁어모으고. 기록하고. 고민하고., https://mrlacquer.tistory.com/11
  12. 3D 강체 변환(Rigid Body Transformation) 개념 정리 - A L I D A - 티스토리, https://alida.tistory.com/78
  13. Lec-3 - Robotics - Transformation | PDF - Scribd, https://fr.scribd.com/document/677562944/Lec-3-Robotics-Transformation
  14. 3D Rigid Body Motion - Rotation Matrix, Transformation Matrix, Euler Angle, Quaternion - JJukE’s Brain - 티스토리, https://jjuke-brain.tistory.com/entry/3D-Rigid-Body-Motion-Rotation-Matrix-Transformation-Matrix-Euler-Angle-Quaternion
  15. How to Calculate a Robot’s Forward Kinematics in 5 Easy Steps - Robotiq’s blog, https://blog.robotiq.com/how-to-calculate-a-robots-forward-kinematics-in-5-easy-steps
  16. [Vision] OpenCV getRotationMatrix2D Theory [ Homogenous coordinate in Transformation Matrix ] - Research, https://suho0515.tistory.com/46
  17. Robotics Part 17 - Forward Kinematics using the Denavit-Hartenberg Convention (DH Parameters) - RoboticsUnveiled, https://www.roboticsunveiled.com/robotics-forward-kinematics-denavit-hartenberg-parameters/
  18. How to Find Denavit-Hartenberg Parameter Tables, https://automaticaddison.com/how-to-find-denavit-hartenberg-parameter-tables/
  19. Kinematics of robot manipulators - forward kinematics 2, https://www.alistairstutorials.co.uk/tutorial21.html
  20. Robotics theory - forward kinematics examples. - mbstudent.com, http://www.mbstudent.com/robotics-forward-kinematics.html
  21. Lecture 7: DH Parameters & Forward Kinematics - Balder W. Holst, https://balderholst.com/notes/vault/lessons/semester-2/kinematik/lecture-7-dh-parameters-and-forward-kinematics.pdf
  22. Forward kinematics · Introduction to Open-Source Robotics, https://www.osrobotics.org/osr/kinematics/forward_kinematics.html
  23. 로봇 팔의 다관절 제어 시스템: 생활 속에서 만나는 기계공학의 마법 - 재능넷, https://www.jaenung.net/tree/20572
  24. 위치제어, https://mrlacquer.tistory.com/m/50
  25. [로봇공학기초 / 2DOF] #3. Work Space (작업공간) - 박재형의 블로그 - 티스토리, https://jhpark0518.tistory.com/7
  26. 두 개의 공간 - 만인을 위한 산업용로봇 - 티스토리, https://cobots.tistory.com/5
  27. 3D 디자인의 역기구학 - Adobe Substance 3D, https://www.adobe.com/kr/products/substance3d/discover/inverse-kinematics.html
  28. Forward and Inverse Kinematics: Explained - Iris Dynamics, https://irisdynamics.com/articles/forward-and-inverse-kinematics
  29. Research trends on kinematics analysis of surgical robotics using machine learning techniques - JIMT Journal of Innovative Medical Technology, https://e-jimt.inforang.com/journal/view.html?doi=10.61940/jimt.240005