본문으로 건너뛰기

Modern Robotics, Part 1 - 강체 운동과 지수 곱 공식

로봇 기구학은 흔히 관절 변수와 좌표계의 모음으로 소개됩니다. 하지만 실제로 우리가 다루는 대상은 물리적 제약을 받으며 공간을 움직이는 강체입니다. Modern Robotics는 이러한 운동을 설명하기 위해 비틀림(twist), 나선축(screw axis), 동차 변환, 지수 사상이라는 통일된 수학적 언어를 제공합니다.

이 글은 modern-robotics-wasm 프로젝트의 이론적 배경을 설명하는 시리즈의 첫 글입니다. 같은 개념이 브라우저에서 어떻게 상호작용 가능한 형태로 구현되는지도 함께 살펴봅니다.

1. 고전적인 좌표 계산이 복잡해지는 이유

로봇 팔은 단순히 각도를 이어 붙인 체인이 아닙니다. 로봇의 configuration은 관절 변수뿐 아니라 링크의 형상과 링크가 움직이는 공간의 구조에 의해 결정됩니다.

관절 값 heta1,,θn heta_1, \dots, \theta_n만 알고 있다고 해서 공간에서 말단 장치의 pose를 알 수 있는 것은 아닙니다. 관절 공간에서 작업 공간으로 가는 사상이 필요합니다.

Tsb=f(θ1,,θn),T_{sb} = f(\theta_1, \dots, \theta_n),

여기서 TsbT_{sb}는 로봇 베이스 좌표계 {s}\{s\}에서 말단 장치 좌표계 {b}\{b\}로 가는 동차 변환입니다.

이 사상은 기구학의 핵심 대상입니다. nn개의 관절을 가진 로봇에서 말단 장치의 pose는 일반적으로 관절 configuration의 함수입니다. 중요한 점은 이 값을 계산하는 데 그치지 않는다는 것입니다. 회전과 병진, 서로 다른 기준 좌표계 사이의 변환까지 수학적으로 일관된 방식으로 다뤄야 합니다.

Modern Robotics는 이를 위해 강체 운동을 좌표식을 임의로 조합한 결과가 아니라 하나의 기하학적 대상으로 다룹니다.

2. 변환으로 표현하는 강체 운동

강체는 각 점 사이의 거리를 유지하면서 3차원 공간을 움직일 수 있습니다. 따라서 강체의 pose는 회전과 병진으로 완전히 표현됩니다.

RSO(3),pR3.R \in SO(3), \qquad p \in \mathbb{R}^3.

이 둘을 합치면 동차 변환을 얻습니다.

T=[Rp01].T = \begin{bmatrix} R & p \\ 0 & 1 \end{bmatrix}.

이 행렬은 한 좌표계에서 표현한 점을 다른 좌표계의 표현으로 바꿉니다. 어떤 점 qq가 강체 좌표계에서 표현되어 있다면, 공간 좌표계에서의 표현은 다음과 같습니다.

[qs1]=Tsb[qb1].\begin{bmatrix} q_s \\ 1 \end{bmatrix} = T_{sb} \begin{bmatrix} q_b \\ 1 \end{bmatrix}.

이것이 로봇 기구학에서 가장 중요한 기본 요소입니다. 로봇은 각 링크에 붙은 좌표계 사이를 연결하는 강체 변환의 연쇄로 표현됩니다.

기하학적으로 어려운 점은 관절이 움직일 때 이 변환도 연속적으로 변한다는 데 있습니다. 결국 이 변화를 간결하면서도 일반적인 방식으로 모델링해야 합니다.

3. 강체 운동의 순간적인 표현: twist

Modern Robotics는 운동을 유한한 회전과 병진으로 바로 표현하는 대신, 먼저 순간적인 운동을 twist로 나타냅니다.

Twist ξ\xi는 다음과 같이 정의됩니다.

ξ=[ωv],\xi = \begin{bmatrix} \omega \\ v \end{bmatrix},

여기서 ωR3\omega \in \mathbb{R}^3는 각속도이고, vR3v \in \mathbb{R}^3는 보통 선택한 좌표계에서 표현한 강체 기준점의 선속도입니다.

qq를 지나는 축 ω\omega를 중심으로 순수 회전하는 경우 twist는 다음과 같이 쓸 수 있습니다.

ξ=[ωω×q].\xi = \begin{bmatrix} \omega \\ -\omega \times q \end{bmatrix}.

방향 vv를 따라 순수 병진하는 경우에는 다음과 같습니다.

ξ=[0v].\xi = \begin{bmatrix} 0 \\ v \end{bmatrix}.

Twist는 단순한 유클리드 공간의 속도 벡터가 아닙니다. 강체 전체의 속도장을 나타냅니다. 다시 말해 강체 운동에는 하나의 각속도와 그 회전 및 병진에 대응하는 선속도장이 존재합니다.

Twist에 스칼라 관절 속도 θ˙\dot{\theta}를 곱하면 관절 속도에 따른 강체의 순간 운동을 얻습니다.

T˙=ξθ˙T\dot{T} = \xi \dot{\theta} T

또는 좌표계 convention에 따라 다음과 같이 쓸 수 있습니다.

T˙=Tξ^.\dot{T} = T \hat{\xi}.

이 식은 순간 속도와 강체 변환을 연결합니다.

4. 관절 운동에서 강체 운동으로: exponential map

다음 단계는 스칼라 관절 변수 θ\theta를 유한한 강체 변환과 연결하는 것입니다.

고정된 나선축 ξ\xi가 있을 때, 각도 또는 변위 θ\theta만큼 발생하는 운동은 다음과 같이 표현됩니다.

T(θ)=eξ^θ.T(\theta) = e^{\hat{\xi}\theta}.

여기서 ξ^\hat{\xi}는 twist를 행렬로 표현한 것으로, 보통 다음과 같이 씁니다.

ξ^=[[ω]v00],\hat{\xi} = \begin{bmatrix} [\omega] & v \\ 0 & 0 \end{bmatrix},

[ω][\omega]ω\omega와의 외적을 나타내는 반대칭 행렬입니다.

이 부분이 Modern Robotics 정식화의 핵심입니다. 지수 사상은 접공간에서 표현한 운동을 강체 pose 공간의 유한한 변환으로 바꿉니다.

회전 관절의 경우 운동은 나선축을 중심으로 한 회전입니다.

T(θ)=e[ω]×θ.T(\theta) = e^{[\omega]_{\times}\theta}.

직동 관절의 경우에는 한 방향을 따른 병진이 됩니다.

T(d)=e[0v00]d.T(d) = e^{\begin{bmatrix}0 & v \\ 0 & 0\end{bmatrix} d}.

이렇게 하면 운동의 기하가 분명해집니다. 축의 위치와 방향, 그리고 운동량이 최종 변환을 결정합니다.

5. 정식화의 기하학적 중심인 나선축

나선축은 운동의 방향과 축이 공간에서 놓인 위치를 함께 담습니다. 회전 관절에서는 회전이 일어나는 3차원 직선이고, 직동 관절에서는 병진이 일어나는 직선입니다.

일반적인 나선축은 다음과 같이 쓸 수 있습니다.

S=[ωv0],\mathcal{S} = \begin{bmatrix} \omega \\ v_0 \end{bmatrix},

여기서 ω\omega는 축의 단위 방향 벡터이고 v0v_0는 운동으로 인해 축 위의 한 점에 생기는 선속도입니다.

원점을 지나지 않는 직선을 중심으로 회전한다면 선형 성분은 임의로 정할 수 없습니다. 축의 기하에 의해 다음과 같이 제한됩니다.

v0=ω×q,v_0 = -\omega \times q,

여기서 qq는 축 위의 임의의 점입니다. 이는 축을 중심으로 한 순간 회전이 강체 기구학과 일관된 방식으로 강체 곳곳에 선속도를 만든다는 사실을 반영합니다.

Screw theory가 유용한 이유도 여기에 있습니다. 운동 방향과 축의 기하를 분리해서 다룰 수 있고, 강체 운동을 구조화된 기구학 모델의 하나의 원소로 표현할 수 있습니다.

6. 모든 관절을 조합하는 Product of Exponentials

각 관절에 나선축을 대응시키면, 각 관절이 순서대로 만들어 내는 운동을 조합해 로봇 전체를 모델링할 수 있습니다.

말단 장치의 pose는 다음과 같이 표현됩니다.

Tsb(θ)=eξ^1θ1eξ^2θ2eξ^nθnTsb(0),T_{sb}(\theta) = e^{\hat{\xi}_1 \theta_1} e^{\hat{\xi}_2 \theta_2} \cdots e^{\hat{\xi}_n \theta_n} T_{sb}(0),

여기서 Tsb(0)T_{sb}(0)은 베이스에 대한 말단 장치의 초기 configuration입니다.

이것이 Product of Exponentials 공식입니다. 각 관절 운동이 만들어 내는 변환을 곱하면 로봇의 말단 장치 변환을 얻는다는 뜻입니다.

이는 단순한 표기상의 편의가 아닙니다. 로봇 전체의 운동이 각각의 나선축을 따른 운동의 합성이라는 기하학적 사실을 나타냅니다. 강체 변환은 곱셈으로 합성되므로 최종 pose가 자연스럽게 지수 함수의 곱으로 표현됩니다.

브라우저 데모도 이 정식화를 바탕으로 구현했습니다. 로봇은 관절축으로 구성되고, 각 변환을 이용해 말단 장치 pose를 실시간으로 다시 계산합니다.

7. Twist 정식화에서 자연스럽게 나오는 Jacobian

다음으로 중요한 대상은 Jacobian입니다. 관절 속도를 θ˙\dot{\theta}로 두면 말단 장치의 twist는 다음과 같습니다.

ν=J(θ)θ˙,\nu = J(\theta) \dot{\theta},

여기서 ν\nu는 말단 장치의 twist이고 J(θ)J(\theta)는 Jacobian입니다.

Jacobian은 관절 변수의 작은 변화가 말단 장치 속도에 어떤 영향을 주는지 알려줍니다. 즉, 로봇의 configuration과 공간에서의 운동을 잇는 핵심 연결고리입니다.

Convention에 따라 다음 두 Jacobian을 구분합니다.

  • spatial Jacobian JsJ_s
  • body Jacobian JbJ_b

Spatial Jacobian은 관절 속도와 spatial twist를 연결합니다.

ξs=Js(θ)θ˙.\xi_s = J_s(\theta)\dot{\theta}.

이는 제어와 계획에서 중요합니다. Spatial twist는 월드 좌표계에서 본 말단 장치의 순간 속도를 나타내기 때문입니다.

Jacobian은 근본적으로 configuration 사상을 관절 변수에 대해 미분한 결과입니다. 다시 말해,

J(θ)=fθ,J(\theta) = \frac{\partial f}{\partial \theta},

입니다. 강체 운동이 지수 변환으로 표현되기 때문에, 이 미분을 나선축을 이용해 구조적으로 깔끔하게 계산할 수 있습니다.

Modern Robotics가 강력한 이유 중 하나가 여기에 있습니다. Jacobian은 나중에 덧붙인 행렬이 아니라 로봇 운동의 기하와 자연스럽게 연결된 결과입니다.

8. 이 정식화가 실제로 중요한 이유

앞에서 다룬 수학적 구조는 보기 좋은 추상화에 그치지 않습니다. 로봇을 실제로 움직이게 만드는 알고리즘의 바탕입니다.

  • 순기구학은 관절 값으로부터 말단 장치 pose를 계산합니다.
  • 역기구학은 목표 pose를 만들 수 있는 관절 변수를 찾습니다.
  • Jacobian은 관절 속도와 작업 공간 운동을 연결합니다.
  • 궤적 계획은 이 값들을 이용해 실행 가능한 운동을 생성합니다.
  • 동역학과 제어는 같은 기하학적 표현 위에 세워집니다.

브라우저 데모가 유용한 이유는 이런 개념들을 직접 눈으로 확인할 수 있기 때문입니다. 슬라이더를 움직이면 θi\theta_i가 바뀌고, 이에 따라 TsbT_{sb}가 갱신됩니다. 그러면 말단 장치 pose가 변하고, 동시에 로봇의 순간 운동과 도달 가능한 작업 공간도 달라집니다.

즉, 이 데모는 단순한 시각화 장난감이 아닙니다. 다음 수학적 흐름을 직접 구현한 결과입니다.

θTsb(θ)ξJ(θ)motion.\theta \rightarrow T_{sb}(\theta) \rightarrow \xi \rightarrow J(\theta) \rightarrow \text{motion}.

9. 핵심 개념 정리

Modern Robotics의 핵심은 다음 몇 가지로 요약할 수 있습니다.

  1. 로봇은 configuration을 하나의 변환으로 표현하는 강체 메커니즘입니다.
  2. 순간 운동은 twist로 표현합니다.
  3. 관절은 나선축을 따라 운동을 만들어 냅니다.
  4. 유한한 운동은 지수 사상으로 생성합니다.
  5. 로봇 전체의 운동은 이러한 지수 변환들의 합성입니다.
  6. Jacobian은 관절 속도와 말단 장치 twist 사이의 선형 사상입니다.

이 추상화는 로봇 기구학과 동역학을 더 우아하게 만들 뿐 아니라, 시뮬레이션·계획·제어 전반을 일관되게 추론하고 구현하기 쉽게 해줍니다.

10. 다음 글에서 다룰 내용

이번 글에서는 전체 시리즈의 기초를 놓았습니다. 다음 글부터는 다음 주제를 더 자세히 살펴봅니다.

  • 나선축의 구체적인 기하
  • Product of Exponentials를 이용한 순기구학
  • Jacobian 구성과 실제 계산
  • 역기구학과 궤적 생성
  • 이러한 개념이 interactive modern-robotics-wasm 구현에 나타나는 방식

목표는 우아한 수학을 브라우저에서 실제로 로봇을 움직이는 소프트웨어와 연결하는 것입니다.

다음 글에서는 나선축을 더 자세히 살펴보고, 관절 운동이 지수 사상을 통해 어떻게 자연스럽게 강체 운동을 만들어 내는지 알아보겠습니다.