Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

KH_C++

Yaw Pitch Roll(요, 피치, 롤), Gimbal Lock(짐벌락), Quaternion(쿼터니언) 본문

공부

Yaw Pitch Roll(요, 피치, 롤), Gimbal Lock(짐벌락), Quaternion(쿼터니언)

kanghou 2023. 5. 17. 12:37

[ Yaw Pitch Roll (요, 피치, 롤) ]

Yaw, Pitch, Roll 은 모두 회적축과 관련되어있다.

왼손좌표계를 사용하고있으며 아래 그림처럼 항공기가 수평한 땅에 놓여져 있다고 생각해보자.

우선, 축을 설정하는데 항공기 머리부터 꼬리까지 잇는 종축(longitudinal axis)을 x축 오른날개에서 왼날개까지 잇는 횡축(lateral axis)를 y 항공기 중심과 수평면까지 잇는 수직축(vertical axis)를 z축 이라고 하자.


 

Roll, 롤 : x축(종축)을 중심으로 회전하는 것. 

Pich, 피치 : y축(횡축)을 중심으로 회전하는 것. 

Yaw, 요: z축(수직축)을 중심으로 회전하는 것.

 


x축은 바라보고 있는 방향,

y축은 관자놀이를 통과하는 방향,

z축은 정수리를 통과하는 방향으로 설정하자.

 

이 축을 마치 철봉처럼 고정시켰다고 상상하고 

고개를 돌려보자

 

 

 

Z축 회전각 : Yaw

도리도리하는걸 생각하시면 조금 더 편하다.

Y축 회전각 : Pitch

끄덕끄덕하는걸 생각하시면 편하다.

X축 회전각 : Roll

갸우뚱 갸우뚱하는걸 생각하면 좋다.

 

출처: 

https://happy8earth.tistory.com/492

https://wise-eun.tistory.com/entry/Unreal-Yaw-Pitch-Roll-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-%EC%89%BD%EA%B2%8C-%EC%95%8C%EC%95%84%EB%B3%B4%EA%B8%B0


[ Gimbal Lock(짐벌락) ]

Gimbal

  • 하나의 축을 중심으로 물체가 회전할 수 있도록 만들어진 구조물
  • 자이로스코프, 나침판, 난로 등에서 수평을 이루도록 사용됨
  • 세 축은 roll / pitch / yaw의 자유도를 가짐


Gimbal Lock

1. 각각의 고리는 고유한 축을 기준으로 회전하는데 이는 가장 바깥쪽 고리만 해당할 뿐 안쪽 고리들은 여러 방향으로 회전함을 알 수 있다.

2. 안쪽 고리가 여러 방향으로 회전하는 이유는 고리가 종속 관계를 형성하기 때문이다. 즉 한 고리의 회전이 안쪽 고리의 회전에 영향을 주며 고리의 회전으로 인해 의도치 않게 두 개 이상의 고리가 겹치게 되면 한 축의 회전각이 소실되는데 우리는 이것을 짐벌락이라 한다.

3. 녹색 고리의 회전으로 인해 분홍색 고리와 파란색 고리가 겹치게 되면 두 고리의 회전은 동일한 결과를 낳게 되면서 자연스럽게 한 축의 회전은 소실된다.


  • 오일러각을 이용한 회전 과정에서 두 개 혹은 세 개의 축이 겹쳐서 축이 자유도를 잃어, 같은 방향으로 오브젝트의; 회전 축이 겹치는 현상
  • 짐벌락이 일어나면, 겹친 축을 원하는 방향으로 회전시키는것이 불가능함
  • 회피[완전회피는 불가능]   
  • 회전 범위가 큰 축을 첫 회전 축으로 놓고, 작은 축을 뒤에 놓는 방식으로 회피가 가능
  • Axis라는 임의의 축 회전을 사용

 

출처:

https://merry-nightmare.tistory.com/253

https://kangworld.tistory.com/185


[ Quaternion(쿼터니언) ]

쿼터니언은 행렬에 비해 연산 속도가 빠르고, 차지하는 메모리의 양도 적으며, 결과의 질에 있어 오류가 날 확률이 적다.

 

3개의 축에 대한 회전 연산을 동시에 적용하는 경우에 행렬을 사용하면 한 축이 소실되는 짐벌락 현상이 발행할 수 있는데, 쿼터니언을 사용하면 이 현상을 막을 수 있다.


쿼터니언은 4차원 복소수 공간(Complex Space)의 벡터로서 다음과 같이 나타낸다.

- 쿼터니언을 q = s + v 형태로 쓰기도 하는데, 여기서 s 는 q의 w 성분에 해당하는 스칼라(Scalar) 값이고, v는 q의 x, y, z 성분에 해당하는 벡터(Vector) 부분이다.


  • 쿼터니언은 복소수를 확장한 x, y, z, w 성분을 갖는 4차원 벡터로 세 개의 축을 동시에 회전시켜 축에 대한 종속 관계를 없앴으며 하나의 축이 소실되는 문제점을 방지할 수 있다.

  • 쿼터니언의 장점 
    • 짐벌락 문제가 발생하지 않는다.
    • 계산 비용이 적다.
  • 쿼터니언의 한계점
    • 직관적이지 않다.
    • 원리를 이해하지 못하면 쿼터니언을 사용할 수 없다. 
    • 회전을 하나의 방향에서 다른 방향으로 측정하기 때문에 180도 보다 큰 회전을 표현할 수 없다.

 

출처: 

https://kangworld.tistory.com/185

https://www.stechstar.com/user/zbxe/MultiFGame/44222


Comments