트러블해이팅 마인드

Rigid body와 euler angle 본문

공학

Rigid body와 euler angle

크래프트맨 2019. 12. 3. 10:13

어떤 강체가 3차원 공간 상에 존재한다고 하면, 이 강체를 수학적으로 표현하기 위해서는 위치 (position)나 방향 (orientation)을 정의해야만 한다. 위치는 x, y, z 좌표를 이용해 (0, 0, 0)이라고 쉽게 정의할 수 있다. 그런데 방향은 어떻게 정의할 수 있을까? x, y, z의 세 축을 기준으로 회전하면 되지 않을까? 오일러 각 (euler angle)은 3차원 상에서 강체 (rigid body)의 방향과 회전을 정의하기 위해 오일러가 만들어낸 시스템이다. 3차원 공간에 존재하는 어떤 강체를 회전시키고 싶으면 세 개의 축을 통한 회전으로 표현할 수가 있다는 것이다. 다만, 회전을 할 때에는 이 세 축이 종속적일 수밖에 없다. 예를 들어, z축을 돌리는 순간 x, y축은 함께 돌기 때문이다 [1].

1. Construction of a local coordinat system in 3D
· Orientation definition of a segment requires three markers. These three markers describe a plane. In motion analysis, these points can be landmarks or technical markers.

· From x-y-z global coordinates markers, we can construct a local coordinate system (or: frame). Frame describes its orientation and position (=pose) in global space.

· There are five steps to define a local frame
Define the first axis (ref: latex code https://www.codecogs.com/latex/eqneditor.php)
$$ \bar{z}_{u}=\frac{AA-TS}{\left \| AA-TS \right \|} $$
unit vector를 구하기 위해 벡터 AA-TS를 해당 벡터의 magnitude인 AA-TS로 나누어준다.

Define a support axis to define the plane orientation
$$ \bar{y}_{temp}=\frac{AA-AI}{\left \| AA-AI \right \|} $$
세 점에 의해 정의된 plane의 방향을 정의하기 위해 임시적으로 벡터 하나를 만들어준다.

③ Define a second axis perpendicular to the plane
$$ \bar{x}=\bar{y}_{temp} \times \bar{z}_{u}, \quad \bar{x}_{u}=\frac{\bar{x}}{\left \| x \right \|} $$
벡터 곱 (vector product; cross product)의 정의에 따라 벡터 x는 벡터 y와 z에 의해 형성된 plane에 수직 (perpendicular)이다.

④ Orthogonize your system: calculate the axis in the plane perpendicular to the first two.
$$ \bar{y}=\bar{z}_{u} \times \bar{x}_{u}, \quad \bar{y}_{u}=\frac{bar{y}}{\left \| y \right \|} $$
1번, 3번 과정으로부터 두 axis인 x축과 z축이 정의되었기 때문에, 이 두 축에 수직이 되게끔 y축을 정의해주면 된다. 역시 벡터 곱을 이용한다. 

⑤ Construct the orientation matrix = all three axes / direction vectors
$$ R=\begin{bmatrix} \bar{x}_{u}&\bar{y}_{u}&\bar{z}_{u} \end{bmatrix} $$
세 개의 방향을 정의하는 축으로 구성된 1x3의 orientation matrix을 construct한다.

위 내용을 결과적으로 정리해보면 다음과 같다.


· The resulting 3x3 matrix describes the orientation of a segment in the global system.  The matrix contains the three direction vectors. Each direction vector defines the angle of that axis with the three axes of the global coordinate system.
$$ R_{scapula}=\begin{bmatrix}
cos(x,X) & cox(y,X) & cox(z,X)\\
cox(x,Y) & cox(y,Y) & cox(z,Y)\\
cox(x,Z) & cox(y,Z) & cox(z,Z)
\end{bmatrix} $$

 

[1] https://hoodymong.tistory.com/3

 

짐벌락과 오일러 각 (gimbal lock, euler angles)

-오일러 각이란? -짐벌락이란? -짐벌락은 왜 생기나? 1. Gimbal 이란? 출처 - [http://ko.wikipedia.org/wiki/%EC%A7%90%EB%B2%8C] 이것이 바로 짐벌이다. 위키에는 단일 축으로 물체가 회전하도록 중심축을 가진..

hoodymong.tistory.com

[2] https://www.stiff-project.eu/fileadmin/biomechanics/lecture02_kinematics.pdf

불러오는 중입니다...

 

Comments