Post

Koordinate System, Euler Angle, Cardan Angle, Rotation Matrix

Koordinatensysteme, Konfiguration des Einzelkörpers, Koordinatentransformationen, Euler Angle, Cardan Angle, 오일러각, 카단각

Koordinate System, Euler Angle, Cardan Angle, Rotation Matrix

Koordinatensysteme und Transformation

Koordinatensysteme und Konfiguration des Einzelkörpers

로봇운동학을 계산하기 위해 두 가지 주요 좌표계가 도입된다.

  • Ein inertial festes KOS / 관성 고정 좌표계 - Basis \(B_0\) : 공간에 고정된 기준 시스템
  • Ein körperfestes KOS / 본체 고정 좌표계 - Basis \(B_i\) : 각 몸체 \(i\)에 고정되어 함께 움직이는 시스템.

  • Konfiguration des Einzelköpers : 강체 하나의 상태를 고유하게 설명하려면 6개의 파라미터가 필요하다.
    1. 위치 $r_i$ : $B_0$에 대한 $B_i$의 원점 위치
    2. 방향 : $B_0$에 대한 $B_i$의 회전 상태

각각 총 3개의 파라미터가 필요하다.

좌표 변환 수식: 점 $P$의 위치를 $B_0$에서 $B_i$로 변환하는 관계식은 다음 과 같다. \(_{i}r_P = _{i}A_0 \ _0 r_p\)

여기서 $_{i}A_0$은 3x3 회전 행렬이다.

Koordinatentransformation

Elementardrehungen / 기본 회전

축 $x, y, z$를 중심으로 하는 기본 회전 행렬은 다음과 같다.

회전행렬($A$)
$x$축($\alpha$)\(A_x(\alpha) = \begin{pmatrix} 1 & 0 & 0 \\ 0 & \cos(\alpha) & \sin(\alpha) \\ 0 & -\sin(\alpha) & \cos(\alpha) \end{pmatrix}\)
$y$축($\beta$)\(A_y(\beta) = \begin{pmatrix} \cos(\beta) & 0 & -\sin(\beta) \\ 0 & 1 & 0 \\ \sin(\beta) & 0 & \cos(\beta) \end{pmatrix}\)
$z$축($\gamma$)\(A_z(\gamma) = \begin{pmatrix} \cos(\gamma) & \sin(\gamma) & 0 \\ -\sin(\gamma) & \cos(\gamma) & 0 \\ 0 & 0 & 1 \end{pmatrix}\)

Räumliche Drehungen

공간의 일반적 회전은 세 개의 기본회전(Elementardrehungen)을 연속적으로 결합해서 표현 가능한다. Orthonormale Basis를 사용하면, 각 좌표계의 단위벡터($e_i$) 길이가 1이고, 서로 수직이기 때문.

회전행렬의 각 열은 회전된 시스템의 단위 벡터로 구성되기때문에, 다음 성질이 성립한다. \(_jA_i^T \ _{j}A_i = E \newline \Rightarrow _{i}A_j^{-1} = _{i}A_j^T\)

즉, 회전행렬의 역행렬은 전치행렬과 같다.

Euler-Winkel / 오일러 각도

$z - x - z$ 순서로 세 번 회전해서 일반적인 공간 회전을 표현한다.

초기 상태

Phase

Step 1: $I_z$축(초기 $z$축)을 기준으로 $\varphi$ 만큼 회전한다.
Step 2: 새로 형성된 $1_x$축을 기준으로 $\vartheta$만큼 회전한다.
Step 3: 최종 $K_z$축을 기준으로 $\phi$만큼 회전한다. \

최종 회전행렬은 다음과 같다.

kAI

만약 두번째 회전각도인 $vartheta$가 0이 되면, 첫번째회전($\varphi$)과 세번째 회전($\phi$)이 모두 동일한 $z$축 상에서 일어나게 된다. 이 경우 회전 행률은 단순히 $z$축에 대한 A_z($\varphi + \phi$)회전이 되어, 각 파라미터를 고유하게 결정할 수 없는 특이점 상태에 빠진다.

각속도 $\omega$ 는 개별 회전 속도의 벡터 합으로 표현된다. \(\omega = \dot{\varphi} \mathbf{e}_z^{(0)} + \dot{\vartheta} \mathbf{e}_x^{(1)} + \dot{\phi} \mathbf{e}_z^{(2)}\)

여기서:

  • $\dot{\varphi}$ : 첫 번째 $z$축 회전의 각속도
  • $\dot{\vartheta}$ : 두 번째 $x$축 회전의 각속도
  • $\dot{\phi}$ : 세 번째 $z$축 회전의 각속도
  • $\mathbf{e}_z^{(0)}$ : 초기 $z$축 단위벡터
  • $\mathbf{e}_x^{(1)}$ : 첫 번째 회전 후 새로운 $x$축 단위벡터
  • $\mathbf{e}_z^{(2)}$ : 두 번째 회전 후 새로운 $z$축 단위벡터

이를 수치적으로 계산할때, $\vartheta = 0$근처에서는 파라미터 변화율이 $\frac{1}{sin \varphi}$에 비례해서 무한대로 발산하므로 주의가 필요하다. 따라서 실제 로봇 제어시엔 이러한 특이점이 없는 Quaternionen or 다른 파라미터화 방식을 고려한다.

Kardan-Winkel / 카단 각도

오일러 각도의 대안으로 $x - y - z$ 순서로 회전하는 방식이다. $\alpha , \beta, \gamma $

initial state

Phase

Step 1: 초기 $x$축을 기준으로 $\alpha$ 만큼 회전한다.
Step 2: 새로 형성된 $y$축을 기준으로 $\beta$ 만큼 회전한다.
Step 3: 최종 $z$축을 기준으로 $\gamma$ 만큼 회전한다. \

전체 시스템 구성의 최소좌표

N개의 몸체로 구성된 다물체 시스템을 $6N$개의 좌표로 설명하는 것은 Redundant가 발생한다. 로봇은 관절로 연결되어 있어 자유로운 움직임에 제약이 있기 때문. 그래서 우리는 최소좌표(Minimalkoordinaten $q$)를 설정한다. 이것은 시스템 구성을 고유하게 설명하는 최소한의 파라미터 집합이다.

로보틱스에서는 보통 관절각도(회전)이나 이동변위를 최소좌표로 선택함.



1.1 Freiheitsgrade (FhG, 자유도)와 Konfiguration

로봇시스템의 상태를 정의하기 위해서, 가장 먼저 시스템의 자유도를 파악해야 한다.

자유도?

시스템의 기하학적 상태를 유일하게 설명하기 위해 필요한 독립적인 변수의 수.

Elastischer Körper (탄성체)

각 점이 독립적으로 움직일 수 있으므로 unendliche FhG (무한 자유도) 를 가진다.

Starrkörper (강체)

  • 2D (Ebene) : 2개의 Translation 과 1개의 Rotation 으로 총 3 FhG

  • 3D (Raum) : 3개의 Translation 과 3개의 Rotation 으로 총 6 FhG

Doppelpendel (이중 진자)

2개의 회전 관절이 있으므로, 2 FhG

좌표 표현

  • Minimalkoordinaten (\(q\)) : 시스템의 상태를 중복 없이 설명하는 최소한의 변수 집합, Gelenkfreiheitsgrad (관절자유도) 를 의미함.

  • Arbeitsraum (\(w\)) : 로봇의 Endeffektor (말단 장치) 의 위치와 방향을 표현하는 공간

1.2 KOS and Transformation

벡터를 서로 다른 좌표계 사이에서 변환하는 능력

  • Ortsvektor (위치 벡터) : 점 P 의 위치를 \(B_i\) 좌표계에서 바라본 벡터는 \(^{i}r_P\)
    • Sum of vectors: 점 C 에서 B 로 가는 벡터 \(r_{CB} := -r_{AC} + r_{AB}\) 처럼 경로를 따라 계산 가능하다.
  • Rotationsmatrix (회전 행렬, A) : 어떤 좌표계의 표현을 다른 좌표계로 바꿀 때 사용하며, Orthonormal 특성을 가진다.
    • 주요 성질 \(^i A^{-1}_j = ^i A^T_j\)

    (역행렬은 전치행렬과 같다)

    • 좌표 변환 \(^i r_P = ^i A_0 \cdot ^0 r_P\)

    (0 좌표계의 벡터를 i 좌표계로 변환)

  • **Homogene Transformation (D)$$ : 회전 행렬 A 와 위치벡터 $r$ 을 4 X 4 행렬 하나에 합쳐놓은 것.

1.3 Relativekinematik (상대 운동학) - 속도, 가속도

강체 위 한 점의 속도와 가속도를 계산하는 핵심 수식

  • Tilde-Operator (\(\tilde{\square}\)) : Kreuzprodukt 를 행렬 곱셈으로 바꾸기 위해 도입했고, Wikelgeschwindigkeit (각속도, \(\omega\)) 에 대해 다음과 같이 정의한다.
\[\omega \times r = \tilde{\omega}r\]
  • Geschwindigkeit (velocity, \(v\)) : 강체 \(k\) 위의 한 점 P의 절대 속도 \(^k v_p\) 는 기준점 M 의 속도와 상대 회전 속도의 합으로 나타난다
    • 일반 수식:

\(^k v_p = ^k v_k + ^k \omega \times ^k r_{kP} + ^k \dot{r}_{kP}\)

  • 만약 점 P가 강체에 고정되어 있다면 \(^k \dot{r}_{kP} = 0\) (상대적으로 움직임이 없다) 가 된다.

  • Beschleunigung (accelerate, $a$) : 코리올리 가속도 등을 포함한 복합적인 가속도 성분 고려

\[^k a_P = ^k a_k + (^k \dot{\tilde{\omega}} + ^k \tilde{\omega}^k \tilde{\omega}) ^k r_{kP} + 2 ^k \tilde{\omega}^k \dot{r}_{kP} + ^k \ddot{r}_{kP}\]

Quiz: Freiheitsgrade & Transformation

This post is licensed under CC BY 4.0 by PythonToGo .