Post

Robotics 01: Rigid Body Kinematics 기초 2/2

로보틱스 강의 두 번째 내용 정리. Rotation Matrix 부터 Acceleration in Moving Frame 까지.

Robotics 01: Rigid Body Kinematics 기초 2/2

3D 강체 운동학의 핵심 개념들을 정리한다. Elemental rotation부터 시작해 Euler angles, rigid body formula, rotating frame에서의 미분, 그리고 acceleration 분해까지 다룬다.


1. Elemental Rotations

임의의 3D 회전은 세 개의 기본 회전(elemental rotation)으로 분해할 수 있다. 각 축에 대한 rotation matrix는 다음과 같다.

\[A_x(\varphi) = \begin{bmatrix}1&0&0\\0&c\varphi&s\varphi\\0&-s\varphi&c\varphi\end{bmatrix}, \quad A_y(\beta) = \begin{bmatrix}c\beta&0&-s\beta\\0&1&0\\s\beta&0&c\beta\end{bmatrix}, \quad A_z(\gamma) = \begin{bmatrix}c\gamma&s\gamma&0\\-s\gamma&c\gamma&0\\0&0&1\end{bmatrix}\]

핵심 성질: rotation matrix는 orthonormal이므로 역행렬 = 전치행렬.

\[A^{-1} = A^T \implies {}_1A_2 = ({}_2A_1)^T\]

부호 직관: $x$축 기준 양의 회전(오른손 법칙)에서 $2\vec{e}{y_1}$의 $z_2$ 성분이 $-\sin\varphi$인 이유 — 프레임 1이 φ만큼 회전하면 $\vec{e}_{y_1}$이 $-z_2$ 방향으로 기울어지기 때문이다.


2. Euler Angles (z-x-z)

임의의 3D 회전을 세 번의 elemental rotation으로 표현한다.

\[\boxed{0} \xrightarrow{\psi,\,z} \boxed{1} \xrightarrow{\theta,\,x} \boxed{2} \xrightarrow{\varphi,\,z} \boxed{b}\] \[_2A_1 = A_z(\varphi)\cdot A_x(\theta)\cdot A_z(\psi)\]

역방향은 순서가 뒤집히고 각 행렬이 transpose된다.

\[_1A_2 = A_z(\psi)^T \cdot A_x(\theta)^T \cdot A_z(\varphi)^T\]

Singularity: $\theta = 0$이면 첫 번째와 세 번째 회전이 동일한 축이 되어 구별 불가 → Jacobian rank 감소.


3. Rigid Body Formula

2D

길이 불변 조건 $\vec{r}{AB}\cdot\vec{r}{AB} = \text{const}$를 미분하면 $\vec{V}{AB} \perp \vec{r}{AB}$. Cross product 특성으로:

\[\boxed{\vec{V}_B = \vec{V}_A + \vec{\omega}\times\vec{r}_{AB}}\]

one $\vec{\omega}$ for the entire body — 임의의 두 점 사이에도 동일한 $\vec{\omega}$가 성립함을 벡터 체인으로 증명할 수 있다.

Instantaneous center of rotation: 속도가 0인 점 P가 항상 존재한다.

\[\exists\, P : \vec{V}_A + \vec{\omega}\times\vec{r}_{AP} = 0\]

3D

$\vec{\omega}$가 임의의 방향을 가져도 동일한 공식이 성립한다. 핵심 논증: $\vec{\omega}$ 축 방향 성분 $V_\parallel$은 cross product에 기여하지 않으므로, 평행한 평면 간 이동 시 회전 기여분이 동일하게 유지된다.

\[\boxed{\vec{V}_B = \vec{V}_A + \vec{\omega}\times\vec{r}_{AB}}\]

3D rigid body의 완전한 kinematics는 한 점의 속도 + $\vec{\omega}$ (총 6 scalar)로 결정된다.


4. Time Derivation in Rotating Frames

Angular velocity approach

회전 프레임 b에서 표현된 벡터를 시간 미분할 때, 기저벡터 자체도 회전하므로 추가 항이 생긴다.

\[\boxed{\frac{d\vec{v}}{dt} = \left(\frac{d\vec{v}}{dt}\right)_b + \vec{\omega}_b\times\vec{v}}\]
의미
$(d\vec{v}/dt)_b$프레임 b 안에서 본 변화율 (성분만 미분)
$\vec{\omega}_b\times\vec{v}$프레임 자체가 회전하기 때문에 생기는 항

Rotation matrix approach

\[{}_{b}V_P = {}_{b}A_0\cdot{}_{0}V_P = {}_{b}\dot{r}_P + \underbrace{\,{}_{b}A_0\cdot{}_{0}\dot{A}_b}_{=\,{}_{b}\tilde{\omega}_b}\cdot{}_{b}r_P\]

${}{b}A_0\cdot{}{0}\dot{A}_b$는 skew-symmetric임을 증명할 수 있다 (orthonormality 조건 미분).

\[{}_{b}A_0\cdot{}_{0}A_b = I \implies {}_{b}A_0\cdot{}_{0}\dot{A}_b = -\left({}_{b}A_0\cdot{}_{0}\dot{A}_b\right)^T\]

이 행렬이 ${}{b}\tilde{\omega}_b$ (skew-symmetric matrix)이며, 벡터로 표현하면 ${}{b}\omega_b$.

\[{}_{b}\tilde{\omega}_b\cdot{}_{b}r = {}_{b}\omega_b\times{}_{b}r\]

5. Base Transformation of Angular Velocity Matrix

\[{}_{0}\tilde{\omega}_b = {}_{0}A_b\cdot{}_{b}\tilde{\omega}_b\cdot({}_{0}A_b)^T\]

이는 2차 텐서(tensor of 2nd order)의 변환 법칙이다. 벡터는 $A$를 한 번 곱하지만, 행렬(텐서)은 $A(\cdot)A^T$ 형태로 양쪽에서 변환한다.


6. Angular Velocities are Vectors

세 프레임 0 → b → c에서:

\[{}_{c}\tilde{\omega}_{oc} = {}_{c}\tilde{\omega}_{ob} + {}_{c}\tilde{\omega}_{bc}\]

벡터로 쓰면:

\[{}_{c}\vec{\omega}_{oc} = {}_{c}\vec{\omega}_{ob} + {}_{c}\vec{\omega}_{bc}\]

Angular velocity는 벡터이므로 더할 수 있다. 로봇에서 각 joint의 $\omega$를 누적해 end-effector의 총 $\omega$를 구하는 원리가 바로 이것이다.


7. Angular Velocities and Euler Angles — Jacobian

Euler angles (z-x-z)에서 angular velocity를 각도 미분으로 표현하면:

\[{}_{b}\omega_b = \underbrace{\begin{bmatrix}s\varphi\,s\theta & c\varphi & 0\\c\varphi\,s\theta & -s\varphi & 0\\c\theta & 0 & 1\end{bmatrix}}_{\,{}_{b}J(q)}\begin{pmatrix}\dot{\psi}\\\dot{\theta}\\\dot{\varphi}\end{pmatrix}\]

이 행렬 ${}_{b}J(q)$가 Jacobian이다. $\dot{q} \mapsto \omega$의 선형 매핑.

Singularity: $s\theta = 0$이면 rank 감소 → $\omega$로부터 $\dot{q}$ 역산 불가.

Tait-Bryan angles (z-y-x, 항공 관례)

\[{}_{p}\omega_{op} = \begin{pmatrix}-\sin\theta & 0 & 1\\\cos\theta\sin\varphi & \cos\varphi & 0\\\cos\theta\cos\varphi & -\sin\varphi & 0\end{pmatrix}\begin{pmatrix}\dot{\psi}\\\dot{\theta}\\\dot{\varphi}\end{pmatrix}\]

Singularity: $\theta = \pi/2$ 또는 $3\pi/2$ → Gimbal lock (마지막 회전축 $x_p$가 첫 번째 축 $z_0$과 평행).

방향 (forward)$(\psi,\theta,\varphi),\,\dot{q}$ → $\omega$항상 가능 (행렬 곱)
역방향 (inverse)$\omega$ → $\dot{q}$singularity에서 불가

8. Accelerations in Moving Frames

Velocity 공식을 한 번 더 시간 미분하면:

\[\boxed{\,{}_{b}a_P = \underbrace{\,{}_{b}\ddot{r}_P}_{\text{relative acc.}} + \underbrace{\,{}_{b}\dot{\omega}_b\times{}_{b}r_P}_{\text{rotational acc.}} + \underbrace{2\,{}_{b}\omega_b\times{}_{b}\dot{r}_P}_{\text{Coriolis}} + \underbrace{\,{}_{b}\omega_b\times({}_{b}\omega_b\times{}_{b}r_P)}_{\text{centripetal acc.}}}\]

관성계($\omega = 0$)에서는 모든 추가 항이 사라진다.

예시: Archimedean Spiral

\[{}_{b}\omega_b = \begin{pmatrix}0\\0\\\omega_0\end{pmatrix}, \quad {}_{b}r_P = \begin{pmatrix}V_0 t\\0\\0\end{pmatrix}\]

Velocity:

\[{}_{b}V_P = \begin{pmatrix}V_0\\\omega_0 V_0 t\\0\end{pmatrix}\]

Acceleration:

\[{}_{b}a_P = \begin{pmatrix}-\omega_0^2 V_0 t\\2\omega_0 V_0\\0\end{pmatrix}\]
  • $-x$ 방향: centripetal (회전 중심 방향, 거리에 비례해 증가)
  • $+y$ 방향: Coriolis (시간에 무관하게 일정)

핵심 공식 요약

공식의미
$A^{-1} = A^T$Rotation matrix의 직교성
$_2A_1 = {}_2A_b\cdot{}_bA_a\cdot{}_aA_1$회전 체인 합성
$\vec{V}B = \vec{V}_A + \vec{\omega}\times\vec{r}{AB}$Rigid body velocity formula
$\frac{d\vec{v}}{dt} = \dot{\vec{v}}_b + \vec{\omega}_b\times\vec{v}$Rotating frame 미분
${}{b}\tilde{\omega}_b = {}{b}A_0\cdot{}_{0}\dot{A}_b$Skew-symmetric = angular velocity
${}{b}\omega_b = {}{b}J(q)\,\dot{q}$Jacobian mapping
${}{b}a_P = {}{b}\ddot{r}P + {}{b}\dot{\omega}b\times{}{b}r_P + 2\omega_b\times{}{b}\dot{r}_P + \omega_b\times(\omega_b\times{}{b}r_P)$Acceleration 분해
This post is licensed under CC BY 4.0 by PythonToGo .