공학/동역학

[동역학] 오일러 각(Euler angle)

슬기나무 2020. 11. 19. 20:08
반응형

이번 포스팅에서는 오일러 각에 대해 알아보도록 합시다.

 

 오일러 각(Euler angle)

오일러 각은 흔히 오일러 앵글이라고들 많이 부르는데,

 

3차원 공간에서 강체가 놓인 자세를 표현하기 위해 나타내는 3개의 각도입니다.

 

그리고 그 순서에 따라 x:1, y:2, z:3과 같이 숫자를 붙여서

 

오일러 313(z-x-z), 오일러 321(z-y-x) 좌표 등으로 부릅니다.

 

 왜 쓸까?

2차원에서는 회전 자유도가 1개 뿐이기 때문에

 

강체가 회전할 때에 어느 방향으로 회전해도 한 개의 좌표 θ로 나타낼 수 있지만,

 

3차원에서는 이야기가 다릅니다.

 

그림 1. 3차원 좌표계

그림 1과 같이 나란히 놓여있는 좌표계에서 각 축을 순서를 달리하여 회전시켜보죠.

 

1) x축을 회전축으로 하여 +90º, y축을 회전축으로 하여 +90º만큼 회전

그림 2. x축으로 +90º, y축으로 +90º 회전

 

2) y축을 회전축으로 하여 +90º, x축을 회전축으로 하여 +90º만큼 회전

그림 3. y축으로 +90º, x축으로 +90º 회전

 

두 경우, 각 축으로 회전한 양은 각각 90º로 같지만, 회전 축의 순서에 따라

 

좌표 축이 가리키는 방향이 다른 것을 확인할 수 있습니다.

 

이처럼, 3차원에서는 회전하는 방향의 순서에 따라 강체의 자세가 달라지기 때문에

 

회전하는 세 개 각도의 순서를 정하여 강체의 자세를 나타내는 것이 오일러 각입니다.

 

 

 변환행렬(Transformation matrix)

회전 변환을 나타내기 위한 행렬을 변환 행렬이라 합니다.

 

그리고 각 축 방향의 회전각도에 대하여, 아래와 같이 나타낼 수 있습니다.

 

1) x축을 회전축으로 하여 회전할 때의 변환행렬

 

2) y축을 회전축으로 하여 회전할 때의 변환행렬

 

3) z축을 회전축으로 하여 회전할 때의 변환행렬

 

 

 오일러 각을 이용하여 좌표를 나타내는 법

오일러 각이 무엇인지, 그리고 변환행렬이 무엇인지도 알아봤으니

 

이를 이용해 임의의 값을 가지는 X=(x,y,z)라는 벡터에 대해 적용해볼까요?

 

간단합니다.

 

회전하기 전의 좌표계를 Global 좌표계, 회전 후의 좌표계를 Local 좌표계라 하고

 

회전하기 전의 벡터 X = [x, y, z], 회전 후의 벡터 X''' = [x''', y''', z''']라 한다면

 

Local 좌표계 기준의 벡터에 변환행렬을 곱하면 그만입니다.

 

즉, 벡터 X와 X'''를 오일러321좌표의 관계로 표현하고 싶다면

 

로 나타낼 수 있습니다.

 

 

 주의사항 - Critical angle (gimbal lock case)

오일러 각을 이용하여 좌표를 계산할 때엔 주의해야할 사항이 있습니다.

 

바로 두번째 회전 각도 때문인데요.

 

경우에 따라 두번째 각도가 nπ, (2n+1)π/2일 때 (n=0, 1, 2, ...)

 

'짐벌 락' 현상이 생깁니다.

 

예를 들어 오일러 313의 경우, 두번째 각도가 nπ일 때 짐벌 락 현상이 발생합니다.

 

수학적으로는 운동방정식을 풀 때 변환행렬의 inverse matrix를 구하게 되는데

 

이 때 행렬의 determinant가 0이 되어 발산하는 현상을 말하며,

 

직접 좌표축을 돌려보면 두번 째 회전 시 +z축과 -z축이 나란하게 되어

 

자세가 구분이 되지 않습니다.

 

이런 이유때문에 오일러 각을 사용할 땐

 

critical angle에 대해 숙지하고 사용하여야 합니다.

 

 

 

이번 포스팅에서는 오일러 각(Euler angle)에 대해 알아보았습니다.

반응형