본문 바로가기

Autonomus Driving

[IMU] Quaternion과 Euler를 알아보자.

목적

IMU에서 원하는 헤딩앵글을 계산하려고 하는데, 회전각속도를 단순 수치적분하여 얻은 것은 드리프트 현상( 오차 누적)으로 시간이 지날수록 오차가 커진다고 한다. 이를 줄이기 위해서는 칼만 필터 등 여러 보정작업이 필요하고 yaw만 필요하기 때문에 단순 한 축의 회전 각속도만 고려하는 것보다  Euler Angle, Quaternion에 대한 추가 공부를 해보자.

 

Quaternion <-> Euler Angle

Euler angle은 x,y,z 3 개의 축을 기준으로 0~360도만큼 회전시키는 우리에게 친숙한 좌표계이다

 Euler angle은 Gimbal lock이라는 문제점이 존재한다. Gimbal lock이란 두 개의 회전축이 겹쳐 특정 방향의 회전이 불가능해지는 것을 말한다. 

otation값을 저장할 때 Quaternion이라는 개념을 

결론으로 모든 Rotation에는 내부적으로 Quaternion이 사용되며 익숙한 Euler angle로 바꾸어 사용하는것이 유리하다.

보통 imu의 raw data에서 orientation으로 들어오는 xyzw 이 4개가 quaterinion 이거를 tf.transformations의 내장함수로 euler angle로 편하게 바꿀수 있지.

'Autonomus Driving' 카테고리의 다른 글

PID 제어 활용하기.  (0) 2021.05.25