Spatial Vector Algebra 입문 (1)
강체의 병진과 회전을 3D 벡터로 따로 쓰면, 기준점만 바꿔도 선속도 식이 증가하기 때문에 spatial(6D) vector 로 묶어 운동을 하나의 객체로 다루는 것이 좋습니다. 이 글에서는 spatial 표기의 동기와 Plücker motion 좌표로 정의한 spatial velocity, 그리고 원점을 옮겨도 같은 공간 벡터로 남는다는 성질까지 살펴봅니다.
6 자유도 공간 벡트(Spatial Vector)
합력과 모멘트를 나누어 표현하면 다음과 같이 표혈 할 수 있습니다.
\(f_{3}\): 질량중심에 작용하는 합력(N, \(\mathbb{R}^{3}\))
\(m\): 질량(kg)
\(a_{C}\): 질량중심 선가속도(m/s²)
\(n_{C}\): 질량중심 기준 모멘트(N·m)
\(\bar{I}_{C}\): 질량중심 기준 회전 관성 텐서(\(3\times 3\), kg·m²)
\(\omega\), \(\dot{\omega}\): 각속도·각가속도(rad/s, rad/s²)
Spatial 표기에서는 같은 내용을 하나의 식으로 표현합니다.
\(f \in F^{6}\): spatial force (모멘트 3 + 힘 3)
\(v \in M^{6}\): spatial velocity (각속도 3 + 기준점 선속도 3)
\(a \in M^{6}\): spatial acceleration
\(I : M^{6}\to F^{6}\): spatial inertia (보통 \(6\times 6\) 대칭)
\(\times^{*}\): 힘 공간용 spatial cross-product 연산자
이를 통해 두 강체를 붙일 때 \(I_{\mathrm{new}}=I_{1}+I_{2}\)처럼 합성이 단순해지고 대수와 코드 길이가 줄어드는 효과를 볼 수 있습니다.
Spatial velocity — Plücker motion 좌표
하나의 고정점 \(O\)에 대해서 강체 \(B\)의 운동은 아래와 같이 표현될 수 있습니다.
\(\omega \in \mathbb{R}^{3}\): \(O\)를 지나는 축에 대한 각속도(rad/s)
\(v_{O} \in \mathbb{R}^{3}\): 지금 \(O\)와 일치하는 물체고정점의 선속도(m/s)
따라서 강체위에 존재하는 한점 \(P\)에서의 선속도는 다음과 같으며, \(O\)를 바꿔도 물리 운동은 같고, 표현 \((\omega,v_{O})\)만 바뀝니다.
\(v_{P}\): \(P\)에 있는 물체고정점의 선속도(m/s)
\(\overrightarrow{OP}\): \(O\)에서 \(P\)로 가는 위치 벡터(m)
공간 속도 벡터 \(\hat{v} \in M_6\)를 정의하기 위해 \(M_6\) 공간 상의 기저 \(D_O\)를 정의합니다.
\(d_{Ox}, d_{Oy}, d_{Oz}\): \(Ox, Oy, Oz\) 축에 대한 단위 회전(unit rotation)
\(d_x, d_y, d_z\): \(x, y, z\) 방향으로의 단위 병진(unit translation)
6가지 기본 운동 성분을 플뤼커 기저 벡터와 1:1로 대응시킴으로써, 하나의 6차원 공간 속도 벡터로 합성합니다.
\(\hat{v}_{O}\): 좌표 프레임 \(O\)에서 본 spatial velocity 좌표 표현
\(\omega_{x}, \omega_{y}, \omega_{z}\): \(Ox, Oy, Oz\) 축에 대한 회전 속도 성분
\(v_{O_x}, v_{O_y}, v_{O_z}\): \(x, y, z\) 방향으로의 선속도 성분
원점 변경에 대한 공간 속도 벡터의 불변성
원점 \(O\) 대신 새로운 점 \(P\)를 기준 원점으로 삼아 정의한 공간 속도 벡터를 \(\hat{v}'\)이라 할 때, \(\hat{v}' = \hat{v}\) (원점 위치와 상관없이 동일한 벡터)임을 증명하고자 합니다. 계산의 편의를 위해 점 \(P\)의 좌표를 \(O\) 기준으로 \((r, 0, 0)\)이라 가정했을 때 점 \(P\)에서의 속도 \(v_P\)는 \(v_P = v_O + \boldsymbol{\omega} \times \vec{OP}\) 관계식에 의해 다음과 같이 계산됩니다.
Figure 2.2: Expressing \(d_{Py}\) and \(d_{Pz}\) at \(O\)
기저 벡터의 변화: 원점이 \(P\)로 이동함에 따라 기저 벡터 역시 이동합니다.
\(d_{Px} = d_{Ox}\) (\(Px\) 축과 \(Ox\) 축은 동일한 직선)
\(d_{Py} = d_{Oy} + r d_z\) (\(Py\) 축 회전 시, 원점 \(O\)에서는 \(z\) 방향으로 \(r\)만큼의 선속도 발생)
\(d_{Pz} = d_{Oz} - r d_y\) (\(Pz\) 축 회전 시, 원점 \(O\)에서는 \(-y\) 방향으로 \(r\)만큼의 선속도 발생)
점 \(P\)를 기준으로 작성한 공간 속도 벡터 \(\hat{v}'\) 식에 위 성분들과 기저를 대입하면 \(r\) 관련 항들이 서로 상쇄됩니다.
정리
공간 벡터(Spatial Vector)의 사용
Plücker motion 기저 \(D_O\)와 spatial velocity \(\hat{v}\)
원점을 바꿔도 \(\hat{v}'=\hat{v}\)인 불변성에 대한 증명
참고: Roy Featherstone, Rigid Body Dynamics Algorithms, Springer, 2008, Chapter 2. Springer link