Inertial measurement unit
IMU(Inertial measurement unit)란 body의 force, angular rate를 측정하는 electronic 장치이다.
일반적으로 IMU는 3축 accelerometer를 통해 x, y, z 세 가지 축에 대한 acceleration을 측정하고 3축 gyroscope를 통해 roll, pitch, yaw에 대한 rotational rate를 측정한다.
- accelerometer : 축에 가해지는 가속도를 측정한다. (m/\( s^2 \) 또는 g)
- gyroscope : 축을 기준으로 시간당 물체가 얼마나 회전했는지 측정한다. (rad/s 또는 deg/s)
IMU는 GPS, Wheel sensor등과 함께 INS(Inertial Navigation System)에 통합되어, global reference frame을 기준으로 body의 자세, 속도 그리고 위치를 계산하는데 사용되는데, IMU에서 측정되는 data(linear acceleration, rotational rate)는 다른 sensor들과 fusion되어 dead reckoning라는 방법을 통해 물체를 추적할 수 있게 해준다.
Accelerometer
accelerometer는 중력에 영향을 받는다. 물체가 자유낙하를 한다면 떨어지는 방향의 가속도는 0 m/\( s^2 \)으로 측정될 것이고, 평평한 바닥 위에 물체가 존재한다면 바닥 위쪽으로 9.8 m/\( s^2 \)으로 가속도가 측정될 것이다. accelerometer에서 측정되는 raw data는 바로 사용되기 보다는 측정된 데이터에서 중력성분을 따로 분리하고 이를 이용하여 물체가 얼마나 기울어졌는지 측정하거나, 측정된 데이터에서 중력성분을 제외하여 linear accelation을 분리하여 사용한다.
accelerometer를 사용할 때 큰 변화에 집중하고 noise를 피하고 싶을 것이다. low-pass filter는 중력성분을 분리하는데 도움이 되고 high-pass filter는 linear accelation 성분을 분리하는데 도움이 된다. 하지만 high-pass filter와 low-pass filter는 delay를 발생시키므로 적용하기 전에 그 정도가 수용 가능한지 검토해야한다.
Gyroscope
gyroscope에서 측정된 data(rotational rate)는 적분을 통해 우리가 원하는 정보(rotational angle)로 변환된다.
θn = θn-1 + ω × ∂t
gyroscope는 높은 주파수로 진동하면서 각속도를 측정한다. 그렇기 때문에 sensor에 미치는 다른 진동(모터 진동, 스피커 진동 등)은 gyroscope에 noise가 된다. 또한 rotational angle을 얻기 위해 적분을 하므로, noise도 계속해서 중첩되어 drift 문제를 야기하게 된다. 다음은 noise()의 적분식이다.
∫cos(2π×ft)) = (1/(2π×f)) × sin(2π×ft), f : frequency
적분의 결과에 1/f가 존재하는 것을 볼 수 있다. 즉 매우 높은 주파수의 noise는 적분하면 아주 작은 값으로 작아진다. 반대로 매우 낮은 주파수의 noise를 적분하면 noise가 더 증폭될 수 있다.
그렇기 때문에 대부분의 gyroscope는 장치에 인접한 하드웨어에 의해 발생하는 낮은 주파수 noise에 대해 drift compensation을 적용하여 교정해야 한다.