[Study, Robotics] Spatial Description (End-effector Configuration, Euler Angles)

minbrass·2025년 5월 12일

Study_Robotics

목록 보기
2/2
post-thumbnail
  • 본 글은 스탠포드 CS223A 강의 "Introduction to Robotics"와, 서울대학교 융합과학기술대학원 DRSL 연구실 박재흥 교수님의 "로봇공학" 대학원 강의 자료를 참고하여 공부한 내용이다.


1. End-effector Configuration


로봇 매니퓰레이터의 가장 중요한 목적은 작업 목표 지점에서 원하는 방식으로 상호작용을 수행하는 것이다. 이 역할을 담당하는 부분이 바로 End-effector이며, 이는 로봇이 외부 환경과 물리적으로 접촉하는 가장 말단 link에 해당한다.
(즉, 가장 마지막 joint에 붙어있는 link로 취급함)

End-effector가 어떤 위치에 놓여 있는지, 그리고 어떤 방향을 바라보는지를 완전히 기술하기 위해서는 총 6개의 자유도(Degrees of Freedom, DOF)가 필요하다:

  • 3개의 위치 자유도: x,y,zx, y, z
  • 3개의 자세 자유도: roll, pitch, yaw 또는 그에 상응하는 회전 표현

1.1. Position Representations

End-effector의 위치(Position)는 기준 좌표계(보통 로봇의 Base frame 또는 World frame)로부터 측정된 3차원 위치 벡터로 표현된다:

p=[xyz]\vec{p} = \begin{bmatrix} x \\ y \\ z \end{bmatrix}

이 벡터는 End-effector의 기준점 (보통 tool center point, TCP)이 현재 공간상에서 어디에 위치하는지를 나타내며, 로봇이 특정 작업을 수행하려면 해당 위치로 이동해야 한다.

또한 앞선 포스팅에서 정리했듯, 위치 정보는 회전 정보와 함께 동차변환행렬(Homogeneous Transformation Matrix)로 통합되어, End-effector의 전체 포즈(pose)를 다음과 같이 합쳐져서 표현될 수 있다.

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

여기서 RR은 회전 행렬(자세), p\vec{p}는 위치 벡터이다. 이와 같은 통합 표현은 다양한 좌표계 간의 변환 및 계산을 단일 행렬 연산으로 효율적으로 처리할 수 있게 해준다.


1.2. Rotation Representations

End-effector의 자세(Orientation)는 단순한 3차원 벡터가 아닌, 회전 연산(rotation)을 수학적으로 정확히 표현할 수 있는 별도의 구조가 필요하다. 자세 표현은 다음의 이유에서 중요한 역할을 한다:

자세 표현은 한 가지로 고정된 것이 아니며, 여러가지 표현법이 존재하며, 각기 다른 수학적 구조와 연산 특성을 가진다. (각 표현법마다 장단점과 유용하게 쓰이는 곳이 서로 다르다.) 대표적인 표현 방식은 다음과 같다.


1.2.1. Fixed Angles (고정 회전 각)

  • 회전을 기준 프레임의 고정된 축들에 대해 순차적으로 수행
  • 예: X축 → Y축 → Z축 순으로 회전
  • 직관적이지만 회전 순서에 따라 결과가 달라지므로 주의 필요
  • 표기 예: R=Rz(γ)Ry(β)Rx(α)R = R_z(\gamma) R_y(\beta) R_x(\alpha)

1.2.2. Euler Angles (오일러 각)

  • 회전을 회전된 프레임의 축 기준으로 연속 수행
    (즉, 회전된 축에 누적하여, 그 축을 기준으로 다시 회전을 수행)
  • 인간에게 직관적이나, Gimbal Lock 등 특이점 문제가 존재
  • 여러 종류의 오일러 각이 존재하며 순서에 따라 전혀 다른 회전 결과를 나타냄

Q. Gimbal Lock이란?

A. Gimbal Lock은 Euler Angles와 같은 회전 표현 방식에서 발생할 수 있는 특이점(singularity) 문제로, 세 개의 회전축 중 두 축이 정렬되어 하나의 회전 자유도가 상실되는 현상을 말한다.

예를 들어 Z-Y-X 오일러 각에서 pitch(중간 회전축인 Y축)가 ±90도에 가까워질 경우, roll과 yaw 축이 동일 선상에 놓이게 되어 이 둘의 회전을 구분할 수 없게 된다. 결과적으로 3차원의 회전 공간이 2차원으로 축소되어, 원하는 자세를 정확하게 표현하거나 도달하는 것이 어려워진다.

이 문제는 특히 정밀한 자세 제어나 역운동학 계산에서 큰 장애가 되며, 이를 회피하기 위해 Quaternion이나 Angle-Axis와 같은 특이점이 없는 회전 표현이 널리 사용된다. Gimbal Lock은 회전을 순차적으로 적용하는 방식에서 발생하는 구조적 한계로, 수학적으로도 완전히 제거할 수 없기 때문에 설계 시 회피 전략이 중요하다.

오일러 각은 특히나 중요하기 때문에 아래에서 따로 살펴보도록 하겠다.


1.2.3. Angle-Axis 표현

  • 하나의 회전축(axis)과 그 축을 기준으로 한 회전각(angle)으로 구성
  • 가장 기하학적으로 명확한 회전 표현이며, 물체가 어떤 축을 기준으로 어느 정도 회전했는지를 직관적으로 바로 알 수 있음
  • 회전 행렬로부터 수학적으로 추출 가능

1.2.4. Euler Parameters (Quaternion)

  • 회전을 4개의 실수(Quaternion)로 표현
  • q=[ϵ1,ϵ2,ϵ3,ϵ4]Tq = [\epsilon_1, \epsilon_2, \epsilon_3, \epsilon_4]^T
  • Gimbal Lock을 피할 수 있으며, 연산 효율성과 수치적 안정성이 뛰어남



2. Euler Angles


로봇의 자세를 표현하기 위해 가장 보편적으로 사용되는 방법 중 하나가 Euler Angles(오일러 각)이다. 이는 복잡한 3차원 회전을 세 번의 단순한 1축 회전으로 분해하여 기술하는 방식으로, 사람에게는 직관적으로 이해되기 쉽다는 장점이 있다.

또한 회전된 축에 누적하여 회전이 연속하여 이루어진다는 점 때문에, 현실세계에서의 다양한 동체와 로봇들에 쉽게 적용될 수 있기 때문이다.


2.1. Fixed Angles (X-Y-Z 순서 회전)

Fixed Angles는 세 차례의 회전이 모두 기준 좌표계(Base frame)에 고정된 축을 기준으로 수행된다는 점에서 특징을 가진다. 예를 들어, X → Y → Z 순서로 회전한다면, 이는 각각의 회전이 다음과 같은 의미를 갖는다:

  • 첫 번째 회전 Rx(α)R_x(\alpha): 기준 좌표계의 x축을 기준으로 회전
  • 두 번째 회전 Ry(β)R_y(\beta): 여전히 기준 좌표계의 y축을 기준으로 회전
  • 세 번째 회전 Rz(γ)R_z(\gamma): 여전히 기준 좌표계의 z축을 기준으로 회전

이렇게 구성된 전체 회전 행렬은 다음과 같이 표현된다:

R=Rz(γ)Ry(β)Rx(α)R = R_z(\gamma) \cdot R_y(\beta) \cdot R_x(\alpha)

Fixed Angle에서는 회전의 순서를 바꾸는 것이 결과에 직접적인 영향을 준다.

예를 들어, R=RxRyRzR = R_x R_y R_zR=RzRyRxR = R_z R_y R_x는 전혀 다른 결과를 낳는다. 이는 회전 연산이 누적되지 않기(회전된 축에 이어져서 회전되지 않기, 비가환성이기(non-commutative)) 때문이다.

Fixed Angles는 각 회전이 독립적으로 정의되므로 구현이 단순하고, 일부 제어 알고리즘에서는 해석적으로 유리할 수 있다. 하지만 로봇의 관절이 연속적으로 회전되는 실제 기구학 모델과는 맞지 않는 경우가 많고, 직관적인 공간 해석이 어려운 단점이 있다.


2.2. Euler Angles (Z-Y-X, Z-Y-Z 등)

Euler Angles는 각 회전이 회전된 좌표계(rotated frame)의 축을 기준으로 수행된다는 점에서 Fixed Angles와 구별된다. 즉, 첫 번째 회전 이후 좌표계 자체가 회전하고, 다음 회전은 이 새로운 회전 좌표계의 축을 기준으로 이루어진다.

예를 들어, Z-Y-X 순서의 Euler 각은 다음과 같이 정의된다:

R=Rx(γ)Ry(β)Rz(α)R = R_x(\gamma) \cdot R_y(\beta) \cdot R_z(\alpha)

이때,

  • Rz(α)R_z(\alpha): 초기 기준 프레임의 z축을 기준으로 회전
  • Ry(β)R_y(\beta): z축 회전이 된 이후 생성된 새로운 y축을 기준으로 회전
  • Rx(γ)R_x(\gamma): 앞선 두 번의 회전 후 생긴 프레임의 x축을 기준으로 회전

이와 같이 회전의 기준 축이 변형되기 때문에, Euler Angles는 실제 로봇 링크 또는 항공기의 자세처럼 축이 계속 변하는 시스템을 표현하는 데 더 직관적이다. 대표적으로 Z-Y-Z Euler Angles는 산업용 로봇 암에서 많이 사용되며, Z-Y-X는 항공기 자세 표현(roll, pitch, yaw)에서 표준적으로 사용된다.

그러나 이 방식은 Singularity, 즉 Gimbal Lock 문제에 취약하고, 수치적으로 불안정한 해석을 야기할 수 있다. 따라서 복잡한 제어 상황에서는 Euler Angles의 한계가 명확하게 드러나며, Quaternion 등으로 대체되는 경우가 많다.


2.3. 회전 순서의 의미

Euler Angles에서 가장 중요한 설계 요소 중 하나는 회전 순서(rotation sequence)이다. 세 번의 회전을 어떤 축에서 어떤 순서로 수행하는지는 회전 행렬의 전체 결과에 절대적인 영향을 준다. 이는 다음과 같은 수학적 성질에서 기인한다

  • 회전 행렬은 비가환적이다:
    Rx(θ1)Ry(θ2)Ry(θ2)Rx(θ1)R_x(\theta_1) \cdot R_y(\theta_2) \neq R_y(\theta_2) \cdot R_x(\theta_1)

이로 인해 Euler Angles로 로봇의 포즈를 설계할 때는 반드시,

  1. 회전 순서를 명확하게 지정해야 하며
  2. 시스템 전반에서 일관되게 사용해야 하며
  3. 표준화된 기구 프레임 구조(예: Z-Y-X 또는 Z-Y-Z)에 기반하여 해석해야 한다.

예를 들어, Z-Y-X 순서는 항공기의 roll, pitch, yaw 표현과 맞물려 많이 사용되며, Z-Y-Z 순서는 로봇 매니퓰레이터의 관절 회전 특성과 자연스럽게 연동된다.

정리하자면, Euler Angles의 수학적 구조는 직관성과 단순성이라는 장점을 가지지만, 순서의 모호성, 해당 순서에 따른 특이점 존재 여부, 실제 하드웨어와의 기하적 정합성 등을 모두 고려하여 사용해야 한다. 이는 로봇 설계 및 제어 알고리즘의 초기 단계에서 반드시 숙지되어야 하는 핵심 개념이다.

Q. zyx는 사실 3차원의 세가지 축을 기준으로 모두 회전을 하니까 공간을 전부 span할수있는 점에서 쉽게 이해가 가는데, zyz는 왜 또 똑같은 축(z를 두번)에 대해서 회전을 시키는 걸까?

A. ZYZ Euler 각에서 Z축을 두 번 회전하는 이유는 3차원 회전의 세 가지 자유도 중 하나를 End-effector의 자기 축 회전(self-rotation)으로 분리하기 위함이다. 첫 번째 Z축 회전은 접근 방향을 설정하고, 두 번째 Y축 회전은 기울기를 조절하며, 마지막 Z축 회전은 도달한 위치에서 End-effector가 자신의 축을 기준으로 도는 회전을 표현한다. 이 구조는 기하학적으로 모든 자세를 유일하게 표현할 수 있도록 하며, 공간을 완전히 span할 수 있다.

특히 로봇 매니퓰레이터에서는 End-effector의 위치뿐만 아니라 공구 방향과 회전도 독립적으로 제어해야 하기 때문에 ZYZ 순서가 유리하다. 실제 작업에서 필요한 정렬 및 툴 방향 제어를 직관적으로 분리할 수 있다는 장점이 있기 때문이다.


2.4. Inverse Problem

Euler Angles는 회전 행렬을 구성하기에는 상대적으로 간단하고 직관적이다. 주어진 각도들을 순차적으로 회전시키면 복합적인 회전 행렬 RSO(3)R \in SO(3)을 쉽게 계산할 수 있다. 예를 들어, ZYX 순서의 Euler 각을 사용하면 다음과 같이 표현된다:

R=Rz(α)Ry(β)Rx(γ)R = R_z(\alpha) \cdot R_y(\beta) \cdot R_x(\gamma)

그러나 반대로, 이미 주어진 회전 행렬 RR로부터 α,β,γ\alpha, \beta, \gamma와 같은 Euler 각을 역산하는 문제는 여러 가지 어려움을 동반하고, 이를 Euler Angle Inverse Problem 또는 회전행렬의 분해(decomposition)라고 부른다. 이 문제가 어려운 이유는 아래와 같다.


2.4.1. 다중 해(Multiple Solutions) 문제

  • 삼각함수의 주기성으로 인해 동일한 회전 행렬을 만족하는 Euler 각이 2쌍 이상 존재할 수 있다.
  • 예를 들어, θ=sin1(x)\theta = \sin^{-1}(x)θ\thetaπθ\pi - \theta 모두 해가 될 수 있음.

2.4.2. 해의 불연속성

  • Euler 각이 회전 행렬에 대해 비선형 함수이기 때문에, 회전 행렬이 조금만 바뀌어도 Euler 각이 불연속적으로 점프할 수 있다.
  • 이는 로봇 제어에서 회전이 부드럽게 이어지지 못하게 하며, 흔들림이나 진동을 유발할 수 있다.

2.4.3. Singularity로 인한 정의 불능

  • 회전 행렬의 특정 원소가 ±1 또는 0이 될 때, 역삼각함수 계산이 불안정해지고 Euler 각 중 일부가 정의되지 않거나 상호의존적이 된다.
  • 대표적으로 pitch(중간 회전)의 각도가 ±90도에 가까울 때 이런 문제가 자주 발생하며, 이는 다음 절에서 다룰 Singularity 문제와 직결된다.
    -> 바로 아래에서 조금 더 자세히 살펴보도록 하겠다.

2.5. Singularity Problem

Singularity(특이점)란 수학적으로는 함수나 시스템이 잘 정의되지 않거나 미분 불가능해지는 점, 물리적으로는 기능이 상실되거나 과도한 민감도를 가지는 지점을 말한다. Euler Angles에서도 이러한 특이점이 존재하며, 이때 시스템은 Gimbal Lock이라는 현상을 겪게 된다.


2.5.1. Singularity의 기하학적 원인

Euler Angles는 회전을 세 개의 축 기준으로 순차적으로 분해하는 구조인데, 이 중 두 축이 정렬되거나 평행하게 겹치면** 서로 독립적인 축으로서 역할을 못하게 된다. 이로 인해 3개의 회전 자유도 중 하나가 상실된다.

예시:

  • ZYX Euler Angle에서 **Y축(pitch)**가 ±90도에 가까워지면,
    → X축(roll)과 Z축(yaw)이 동일 평면상에 정렬
    → 두 축이 같아지므로 남은 하나는 중복되어 실질적 DOF가 2개로 줄어듦

이렇게 되면, 하나의 회전 자유도가 사라지며, 특정 방향으로의 회전이 불가능해진다. 제어 상에서는 작은 자세 변화에 대해 Euler 각이 급변하거나 무한대로 튀는 문제가 발생하게 되고, 이는 역운동학 계산에서 해가 존재하지 않거나, 해가 불연속적으로 변하는 원인이 될 수 있으므로 반드시 해결해야 한다.


2.5.2. 해결방법

  • Quaternion(4차원 회전 벡터)을 사용하면 회전을 특이점 없이 연속적으로 표현 가능
  • Angle-Axis나 Rotation Matrix도 특이점 없이 회전을 안정적으로 처리할 수 있음
  • 실제 제어 시스템에서는 Euler 각은 입력 또는 시각화에만 사용하고, 내부 연산은 Quaternion 기반으로 수행하는 경우가 많음



3. Angle-Axis Representation


Angle-Axis 표현은 3차원 회전을 설명할 때 가장 직관적인 방식 중 하나로, 회전을 하나의 방향(회전축)과 그 방향을 기준으로 하는 회전량(각도)으로 표현한다. 이 방식은 Euler’s Rotation Theorem에 기반하며, 이 이론에 따르면,

“임의의 3차원 강체 회전은 하나의 고정된 축을 중심으로 하는 어떤 각도의 회전으로 표현할 수 있다.”

즉, 하나의 단위 벡터(회전축)와 하나의 스칼라 값(회전각)만으로 3차원 공간의 모든 회전을 기술할 수 있다. 이는 기하학적으로도 매우 직관적이며, 회전 행렬이나 Euler Angles와 달리 축과 각의 물리적 의미가 명확히 분리되어 있는 장점이 있다.


3.1. Angle (회전각)

회전각 θ\theta는 회전이 이루어진 회전량을 의미하며, 일반적으로 0θπ0 \leq \theta \leq \pi (또는 0도에서 180도) 범위 내의 값을 가진다. 회전각은 회전 행렬 RSO(3)R \in SO(3)의 대각합(trace)을 통해 다음과 같이 계산된다:

θ=cos1(tr(R)12)\theta = \cos^{-1} \left( \frac{\text{tr}(R) - 1}{2} \right)

여기서 tr(R)\text{tr}(R)RR의 대각 성분들의 합이며, 이 식은 회전 행렬의 대수적 성질을 이용한 공식이다.

이 식은 회전이 없는 경우(θ=0\theta = 0)에는 tr(R)=3\text{tr}(R) = 3이 되고, 최대 회전(θ=π\theta = \pi)에서는 tr(R)=1\text{tr}(R) = -1이 된다.

이 회전각은 단순히 회전의 “크기”를 나타내며, 방향성과 무관하게 하나의 수치로 정의된다.


3.2. Axis (회전축)

회전축 k^=[kx,ky,kz]T\hat{k} = [k_x, k_y, k_z]^T는 회전이 일어나는 고정된 방향을 나타내며, 항상 단위벡터(norm = 1)로 정의된다. 이 벡터는 회전이 이루어지는 축이며, 회전 전후의 공간 요소들이 이 축을 중심으로 회전하게 된다.

회전 행렬로부터 회전축을 복원할 때는 회전각 θ\theta를 먼저 계산한 후, 다음 공식을 사용한다:

k^=12sinθ[R32R23R13R31R21R12]\hat{k} = \frac{1}{2\sin\theta} \begin{bmatrix} R_{32} - R_{23} \\ R_{13} - R_{31} \\ R_{21} - R_{12} \end{bmatrix}

이 식은 회전 행렬의 반대칭 부분(antisymmetric part)을 추출하여, 회전축의 방향을 유도하는 방식이다.

  • RijR_{ij}는 회전 행렬 RR의 i행 j열 성분이다.
  • 분모의 sinθ\sin\thetaθ=0\theta = 0 또는 π\pi 근처에서 작아지기 때문에 수치적으로 주의가 필요하다.

이 벡터 k^\hat{k}는 회전의 방향성만을 나타내며, 실제로는 회전축과 회전각을 결합한 다음 형태로 표현되기도 한다.

θk^=[θkxθkyθkz](axis-angle vector)\theta \cdot \hat{k} = \begin{bmatrix} \theta k_x \\ \theta k_y \\ \theta k_z \end{bmatrix} \quad \text{(axis-angle vector)}

3.3. Inverse Problem

회전 행렬 RR로부터 Angle-Axis 파라미터 (θ,k^)(\theta, \hat{k})를 복원하는 역문제는 일반적으로 다음과 같은 과정을 거치게 된다.

  1. 회전각 θ\theta를 trace로부터 계산
  2. sinθ0\sin\theta \neq 0인 경우, 위의 수식을 통해 회전축 계산

그러나 특정 회전 상태에서는 역산이 어렵거나 회전축이 정의되지 않아서 해석에 어려움을 겪게될 수 있다.

3.3.1. θ=0\theta = 0: 회전 없음

  • 회전이 없으므로 회전축은 의미가 없다.
  • 수학적으로는 sinθ=0\sin\theta = 0이 되어 축 계산이 불가능함

3.3.2. θ=π\theta = \pi: 180도 회전

  • 이 경우에도 sinθ=0\sin\theta = 0이 되어 분모가 0이 되며, 회전축 계산이 불안정해짐
  • 대신 R+IR + I의 주대각선을 이용해 축을 추정하는 보완 기법이 사용됨

이러한 경우를 수학적으로는 특이점(singularity)로 분류하며, 수치 계산 과정에서는 예외 처리과정이 반드시 필요하다.



4. Euler Parameters (Quaternion)


Euler Parameters, 흔히 Quaternion이라 불리는 회전 표현 방식은 3차원 회전을 4개의 실수로 구성된 확장된 벡터 공간에서 표현하는 기법이다.

Quaternion은 본질적으로 Angle-Axis 표현을 기반으로 확장한 구조이며, 단일 회전을 고차원 벡터 공간에서 처리함으로써 특이점(Singularity)을 방지하는 효과를 지닌다.


4.1. Definition

Euler Parameter qq는 다음과 같은 형태로 정의된다:

q=[ϵ1ϵ2ϵ3ϵ4]=[k^xsin(θ2)k^ysin(θ2)k^zsin(θ2)cos(θ2)]q = \begin{bmatrix} \epsilon_1 \\ \epsilon_2 \\ \epsilon_3 \\ \epsilon_4 \end{bmatrix} = \begin{bmatrix} \hat{k}_x \sin\left(\frac{\theta}{2}\right) \\ \hat{k}_y \sin\left(\frac{\theta}{2}\right) \\ \hat{k}_z \sin\left(\frac{\theta}{2}\right) \\ \cos\left(\frac{\theta}{2}\right) \end{bmatrix}

여기서:

  • k^=[k^x,k^y,k^z]T\hat{k} = [\hat{k}_x, \hat{k}_y, \hat{k}_z]^T: 회전축 단위벡터
  • θ\theta: 회전각
  • 앞의 세 항 (ϵ1,ϵ2,ϵ3)(\epsilon_1, \epsilon_2, \epsilon_3)는 벡터 파트 (imaginary part)
  • 마지막 항 ϵ4\epsilon_4는 스칼라 파트 (real part)

Euler Parameter은 복소수(complex number)를 4차원으로 확장한 하이퍼복소수(hypercomplex number) 개념에서 유래했고, 특히 순서를 가진 곱셈(비가환성)을 통해 회전을 연속적으로 조합할 수 있다.


4.2. Normality 조건

Quaternion이 단위 회전을 표현하기 위해서는 반드시 다음의 조건을 만족해야 한다:

ϵ12+ϵ22+ϵ32+ϵ42=1\epsilon_1^2 + \epsilon_2^2 + \epsilon_3^2 + \epsilon_4^2 = 1

이 조건은 Quaternion이 4차원 단위 구(S³) 위의 점이라는 것을 의미하며, 실제 회전은 이 구의 표면에서 이동하는 경로로 해석할 수 있다. 이를 통해 회전의 크기와 방향에 따라 서로 다른 Quaternion이 만들어 진다.

또한 이 구조는 회전의 선형 보간(interpolation)을 매끄럽게 수행할 수 있게 하며, 이는 SLERP(Spherical Linear Interpolation)이라는 고급 기법으로 확장되어 모션 추정이나 애니메이션 등에서 사용된다.


4.3. Example of Euler Parameters

솔직히 잘 이해가 안되지만 일단 정리부터 하고 이해해보자.
예시를 통해 이해해보도록 하자.

x축을 기준으로 30도 회전한 경우를 Quaternion으로 표현하는 방법이다.

  • 회전축: k^=[1,0,0]\hat{k} = [1, 0, 0]
  • 회전각: θ=30\theta = 30^\circ
  • 따라서 Quaternion은:
q=[sin(15)00cos(15)![](https://velog.velcdn.com/images/minbrass/post/cdf959f109574157811d00253708bf2c/image.png)![](https://velog.velcdn.com/images/minbrass/post/92af4a7d90c7466bb796451f93a6be6e/image.png)![](https://velog.velcdn.com/images/minbrass/post/9c8ddcd7ead34cb98952029b3e774ce2/image.png)][0.2588000.9659]q = \begin{bmatrix} \sin(15^\circ) \\ 0 \\ 0 \\ \cos(15^\circ)![](https://velog.velcdn.com/images/minbrass/post/cdf959f1-0957-4157-811d-00253708bf2c/image.png) ![](https://velog.velcdn.com/images/minbrass/post/92af4a7d-90c7-466b-b796-451f93a6be6e/image.png) ![](https://velog.velcdn.com/images/minbrass/post/9c8ddcd7-ead3-4cb9-8952-029b3e774ce2/image.png) \end{bmatrix} \approx \begin{bmatrix} 0.2588 \\ 0 \\ 0 \\ 0.9659 \end{bmatrix}

이와 같이, Quaternion은 회전 방향(축)을 벡터 파트로, 회전량(각)을 스칼라 파트로 직관적으로 나누어 표현하며, 직관적이고 간결해서 아주 편리하다.



5. Reference


[1] Stanford Edu - Introduction to Robotics(CS223A)

[2] 서울대학교 융합과학기술대학원 박재흥 교수 - 로봇공학개론 수업

[3] 참고 서적:

  • Introduction to Robotics: Mechanics and Control, John J. Craig, Pearson Education
profile
인공지능 대학원 진학을 희망하는 학부생의 정리노트

0개의 댓글