lastnamesong
[Rotation Matrix] Properties of vee/hat operator 본문
앞선 글에서 Skew-symmetric matrix와 vee/hat operator의 정의에 대해 소개했던 적이 있다.
[Rigid Body Motions] Linear & Angular Velocities
Linear and angular velocities of rigid bodies
lastnamesong.tistory.com
이 중 hat operator와 관련한 쓸모있는 성질들을 소개하고 몇 가지는 증명을 해보도록 하겠다. 이 글에서 정의하는 수식적인 부분 중 소문자 알파벳 (e.g., \(a, b, ...\))은 \(3 \times 1 \) 벡터, \( R \)은 3차원의 rotation matrix로 정의하겠다.
- \( \hat{\cdot} \) is linear
Linearity를 보이기 위해서는 두 가지를 확인하면 된다. Superposition과 Homogeneity이다. 어려워 보이는 듯한 이 용어는 수식으로 표현하면 간단하게 표현할 수 있다.
- superposition: \( \widehat{a + b} = \hat{a} + \hat{b} \)
- homogeneity: \( \gamma \hat{a} = \widehat{\gamma a} \) ( \( \gamma \)는 scalar)
이를 보이기 위해서는 \( \widehat{(\gamma_{1}a_{1} + \gamma_{2}a_{2})} = \gamma_{1}\hat{a_{1}} + \gamma_{2}\hat{a_{2}} \)임을 보이면 되며, 그 방법은 \( a_{1} = \begin{bmatrix} a_{1x} & a_{1y} & a_{1z} \end{bmatrix}^{T} \), \( a_{2} = \begin{bmatrix} a_{2x} & a_{2y} & a_{2z} \end{bmatrix}^{T} \)로 정의하고 다 넣어서 풀면 된다.
- \( \hat{a}b = a \times b \)
외적을 풀어보면 쉽게 확인할 수 있다. \( a = \begin{bmatrix} a_{x} & a_y & a_z \end{bmatrix}^{T} \)와 \( b = \begin{bmatrix} b_{x} & b_y & b_z \end{bmatrix}^{T} \)에 대해
$$ a \times b = \begin{bmatrix} a_{x} \\ a_{y} \\ a_{z} \end{bmatrix} \times \begin{bmatrix} b_{x} \\ b_{y} \\ b_{z} \end{bmatrix} = \begin{bmatrix} 0 & -a_{z} & a_{y} \\ a_{z} & 0 -a_x \\ -a_y & a_x & 0\end{bmatrix} \begin{bmatrix} b_{x} \\ b_{y} \\ b_{z} \end{bmatrix} = \mathbf{\hat{a}b} $$
- \( \widehat{Ra} = R\hat{a}R^{T} \)
사실 이 부분에 대해서 증명을 찾아보다가 이 글을 쓰게 되었다..
[Rotation Matrix] 회전변환과 벡터 외적의 분배법칙(?)
회전변환 행렬의 여러 성질이 있지만, 벡터 외적과 관련하여 흥미로운 성질이 있어 공유한다. 두 벡터를 회전시킨 후 벡터 외적을 취하는 것과 벡터 외적을 먼저 취한 다음 결과를 회전시키는
lastnamesong.tistory.com
위의 글에서, \( (Ra) \times (Rb) = R(a \times b) \)임을 보였다. 이를 hat operator를 이용하여 skew-symmetry form으로 써보면,
$$ \widehat{Ra} (Rb) = R(\hat{a}b)$$
그리고 \( \hat{a} \)와 \( b \) 사이에 \( R^{T}=I \)를 넣으면 identity matrix를 곱한 것이므로 식에 영향을 주지 않으면서 다음과 같이 쓸 수 있게 된다.
$$ \widehat{Ra} (Rb) = R(\hat{a}b) = R(\hat{a}R^{T}Rb) $$
결합법칙으로 정리하면
$$ \widehat{Ra}(Rb) = (R\hat{a}R^{T})(Rb)$$
위의 식이 임의의 \( 3 \times 1 \) 벡터 \(b\)에 대해 성립하려면 앞의 행렬들이 같아야 한다는 것은 자명하다.
$$ \widehat{Ra}R = R\hat{a}R^{T}R$$
양변의 우측에 \( R^T = R^{-1} \)을 곱하면 다음과 같은 식을 얻을 수 있다.
$$ \widehat{Ra} = R\hat{a}R^{T} $$
- Other useful properties of hat operator
- \( \hat{a}^{T} = -\hat{a} \)
- \( (a \times b)^{T} = a^T\hat{b} \)
- \( \hat{a}\hat{b} = ba^{T} - a^{T}bI \)
- \( \hat{a}^T = aa^T- ||a||^{2}I \)
- \( \widehat{a \times b} = \hat{a}\hat{b} - \hat{b}\hat{a} = ba^T-ab^T \)
이번 글에서는 skew-symmetry를 정의할 때 필수적으로 따라오는 vee/hat operator의 성질 대해 정리해보았다.
언젠가는 들여다 볼 일이 있기를..
'Robotics' 카테고리의 다른 글
[Matrix Exponential] 행렬지수함수 (선형대수, 공업수학) (0) | 2024.07.24 |
---|---|
[Rotation Matrix] 회전변환과 벡터 외적의 분배법칙(?) (0) | 2024.07.16 |