이번 포스팅에서는 오일러 각에 대해 알아보도록 합시다.
오일러 각(Euler angle)
오일러 각은 흔히 오일러 앵글이라고들 많이 부르는데,
3차원 공간에서 강체가 놓인 자세를 표현하기 위해 나타내는 3개의 각도입니다.
그리고 그 순서에 따라 x:1, y:2, z:3과 같이 숫자를 붙여서
오일러 313(z-x-z), 오일러 321(z-y-x) 좌표 등으로 부릅니다.
왜 쓸까?
2차원에서는 회전 자유도가 1개 뿐이기 때문에
강체가 회전할 때에 어느 방향으로 회전해도 한 개의 좌표 θ로 나타낼 수 있지만,
3차원에서는 이야기가 다릅니다.
그림 1과 같이 나란히 놓여있는 좌표계에서 각 축을 순서를 달리하여 회전시켜보죠.
1) x축을 회전축으로 하여 +90º, y축을 회전축으로 하여 +90º만큼 회전
2) 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)에 대해 알아보았습니다.
'공학 > 동역학' 카테고리의 다른 글
[동역학] 운동량 보존의 법칙 (0) | 2021.05.26 |
---|---|
[동역학] 회전 변환 행렬(2D & 3D) (0) | 2021.02.15 |
[동역학] 달랑베르의 원리(d'Alembert's principle) (0) | 2020.11.16 |
[동역학] 자유물체도(FBD, Free Body Diagram) (0) | 2020.11.05 |
[동역학] 자유도(DOF, Degrees of Freedom) (0) | 2020.10.30 |