**Autonomous driving tech./Learning

Concept of Inertial Measurement Unit, IMU

2wnswoo 2024. 12. 10. 04:18

01. Introduction

SLAM 논문을 보면 *Inertial( 관성의 )이라는 단어가 붙은 SLAM 알고리즘들이 자주 등장한다.

 

카메라를 활용한 SLAM에서는 VIO( Visual Inertial Odometry ), 라이다를 활용한 SLAM에서는 LIO( LiDAR Inertial Odometry ) 카메라, 라이다, IMU를 모두 활용한 SLAM도 등장하고 있다.

 

대부분 SLAM 논문에선 IMU의 기본적인 개념을 알고 있다는 전제하에 서술되므로, 

IMU개념을 포스팅한다.

 

--

02. Concept of IMU( Inertial Mesurement Unit )

IMU 센서는 자체적으로 가속도 및 각속도를 측정할 수 있으며, 일부의 센서는 자기장까지 측정할 수 있다.

IMU 센서를 통해 얻어낸 가속도 및 각속도 값을 활용( 시간에 따라 누적 ) 하여 회전량( Rotation )과 이동량( Translation )을 구할 수 있게 된다.

 

하지만 IMU 센서를 사용할 때 고려해야 할 점이 있는데, 바로 Noise와 Bias값을 알아야 정확하게 사용을 할 수 있다는 것이다. Noise와 Bias값을 잘못 구할 경우, IMU 센서가 SLAM 전체 알고리즘에 더욱 악영향을 미칠 수도 있다는 것을 주의해야한다. 

 

IMU와 관련된 글을 읽다보면 MEMS란 단어가 종종 등장하는데, MEMS는 Micro Electro Mechanical Systems의 줄임말로 IMU의 동작 방식 중 하나이다. IMU의 동작 방식에 따라 분류를 하면 MEMS와 FOG로 분류를 할 수 있다.

 

 

--

03. aixs IMU vs 9 axis IMU

IMU의 출력값에는 기본적으로 가속도 값( Accelerometer - ax, ay, az )와 각속도 값 ( Gyroscope - wx, wy, wz )값이 존재한다. 기본적인 값 6개를 출력하는 IMU를 6 axis IMU라고 부른다.

 

*Gyroscope의 출력 값은 물체의 각속도( angular velocity )를 나타냄 

 

6 axis IMU 만으로 필요한 정보 ( x, y, z, roll, pitch, yaw )를 모두 얻어내기 위해서는 추가적으로 AHRS algorithm과 같은 Orientation을 구해주는 알고리즘이 필요하다. IMU를 사용하면 피할 수 없는 Error 값이 누적되는 Drift 현상으로 인해 더 많은 출력값을 내보내는 9 axis IMU를 사용하기도 한다.

 

Drift 현상이 일어나는 이유는, 각속도 값을 시간에 대해 누적해서 회전에 대한 값( yaw )을 구하게 되는데 각속도 값에 Noise가 포함되어 있을 경우, 필연적으로 오차가 누적되기 때문이다.

 

9axis IMU의 경우, 가속도 값( ax, ay, az )와 각속도 값( wx, wy, wz )값과 함께 지자기 값( mx, my, mz )을 함께 출력한다.

 

지자기 값( magnetometer )을 통해 센서에서 바로 지구 중력 방향을 계산할 수 있게 되고, 지자기 값 데이터가 가속도 값과 각속도 값과 융합되어 회전에 대한 변화량( Orientation )을 조금 더 정교하게 구할 수 있게 된다.

 

일반적으로 9 axis IMU가 6 axis IMU보다 가격이 비싸므로, 자신이 처한 환경에 맞게 IMU를 선택하면 된다.

지자기 센서의 경우 주변에 자석이 있으면 지구 중력 방향을 잘못 계산하므로 주의해야한다.

 

 

--

04. IMU Bias 그리고 Noise

IMU를 활용한 SLAM 논문을 보다보면, Notation은 조금씩 다르지만 아래와 같은 수식을 많이 관찰 할 수 있다.

 

이때, 관찰한 값과 원하는 값을 구할 때 생기는 차이는 Bias와 Noise 때문이다.

 

IMU Bias란 Input value와 Output value의 일정한 offset, 고정된 차이 을(를) 의미한다. IMU 센서의 경우, 매우 빠른 속도로 값( 100Hz 이상 )을 관찰하고 측정하기 때문에 출력으로 내보내는 값인 가속도 값( accelerometer ) 와 각속도 값( gyroscope )이 들어오는 시점과 이를 내보내는 시점의 일정한 차이가 있다.

 

Bias는 IMU 센서가 측정할 때 마다 그 값이 바뀌므로 보통 SLAM에서 최적화를 할 때 Bias를 최소화 하는 식으로 구하게 된다.

 

Bias를 일정한 offset이라고 표현했지만, 실제로 사용을 해보면 Bias를 측정 및 추정할 때도 Noise가 존재한다.

IMU 센서를 관찰할 때 White noise가 있다고 가정하므로 Gaussian noise를 가지는 Random walk process를 일반적으로 IMU bias modeling에 사용한다.

 

 

 

이 글은 'Taeyoung's Blog의 김태영님의 [SLAM] IMU(Inertial sensor) 관련 용어 및 개념 정리'의 일부를 옮겨 적은 글입니다.