본문 바로가기

Sensor fusion

imu 센서를 활용한 attitude estimation (quaternion base)

mpu9250 을 기준으로 작성된 글입니다.

 

1) 자이로 센서 

자이로 센서 = 각속도를 나타내는 센서로 각 각가속도 *dt 값으로 변화량을 나타낼수 있다. 

 

쿼터니언 기반으로 나타낸 식은 아래와 같다.

 

자이로는 accel 과 지자기 센서보다 훨씬 높은 정확도를 가지지만 bias 를 동반 하기 때문에 일정 주기마다 bias 를 빼는 작업이 필수적이다. 실제로 높은 정확성 때문에 complementary filter 에서 쓰일때도 자이로센서를 0.92~0.98 까지 비율을 쓴다.

 

2) 가속도 센서 (accel sensor)

 가속도 센서는 중력 가속도를 측정할 수 있는 센서이다. 가속도 측정을 통해서 자세를 추정 할 수 있다.  하지만 yaw 값( z축 회전) 은 알수 없으므로 roll, pitch 값만 추정이 가능하다. yaw 측정을 위해서는 지자기 센서의 도움이 필요하다.

 

가속도 센서는 정확하지만 느리다는 단점이 있다. 또한 물체의 움직이는 가속도도 같이 측정이 되므로 이에 따라 오차가 발생 하기도 한다.

 

가속도 센서를 이용하여 자세를 추정하는 식은 아래와 같다 

 

3) 지자기 센서 (magnetometer sensor)

 지자기 센서는 지구의 자기장을 읽는 센서이다. 이를 통해 지구에서 북쪽이 어디인지 알 수 있다. body frame 과 북쪽의 차이로 yaw 값을 계산 할 수 있다. 보통 accel 과 magneto 를 같이 이용하여 자세 추정을 한다. 하지만 주변의 자기장에 영향을 많이 받아 굉장히 불안정하고 주변의 노이즈가 많다. 

 주변의 노이즈는 hard ironing 과 soft ironing 으로 분류 되는데

- hard ironing 은 일정한 자기장이 주변에 있어서 지자기 센서로 주변을 측정해보면 한쪽으로 일정하게 몰려있는 경우이다.

- soft irioning 은 일정하지 않은 자기장이 주변에 있어서 센서로 주변을 측정해 보면 구로 나와야 하는게 타원형으로 나오는 경우이다.

 

이러한 2가지 노이즈를 극복을 해야지 지자기 센서를 사용할수 있다.

 

 

 

지자기 센서의 값을 엑셀로 구해진 쿼터니언의 역 쿼터니언에 곱한뒤 아래의 식에 대입하면 yaw 값을 구할 수 있다.

 

 

  • ㅇㅇ 2021.04.07 16:25

    지자계 센서 쿼터니언에 사용되는 T와 L은 어떤 거신가요? L은 센서 측정 값이신가요???

    • BlogIcon rladntjd 2021.04.08 02:41 신고

      L_x, ㅣ_y, L_z 값은 센서 측정한 값에다가 가속도 센서값을 기반으로 쿼터니언을 만들어서 회전 시킨 값입니다.
      T 는 아니지만 일단 T 라고 하겠습니다.
      T = (L_x^2 + L_y^2_^0.5 입니다