# IMU

### **MPU-9250**

* cheap, readily available low-end IMU, at the cost about a few dollars.
* Accelerometer noise density: 300 µg/√Hz
* Gyroscope noise density: 0.01 º/sec/√Hz

### **Microstrain 3DM-GX5**

* Industrial grade IMU made by microstrain; also available from Clearpath at about $2000.
* 3DM-GX5-25 is adopted by LIO-SAM project. Note that its accelerometer and gyroscope have different coordinate setup in orientation. (But still, they can be regarded to have the same origin.) For more information, see <https://github.com/TixiaoShan/LIO-SAM#prepare-imu-data>.
* We use 3DM-GX5-AHRS, and in this version the coordinate frames of accelerometer and gyroscope are treated identical. It comes equipped with built-in complementary filter and EKF algorithms, running at 1000Hz and 500Hz respectively.&#x20;
  * Accelerometer noise density: 20 µg/√Hz (2 g)&#x20;
  * Gyroscope noise density: 0.005°/sec/√Hz (300°/sec)

### VN-100

* High-end calibrated IMU with an onboard processor, provided by vectornav at about $1000.
* Adopted by the CoSTAR team in the SubT challenge.
* <https://www.vectornav.com/products/detail/vn-100>
* <https://github.com/NeBula-Autonomy/nebula-odometry-dataset/blob/main/pages/overview.md>

### **IMU Calibration Tool**

* Kalibr requires the noise parameters of IMU as input, and this can be calibrated using the Allan variance method. Open source repo: <https://github.com/ori-drs/allan_variance_ros>

```
# This is the result calibrated for the Microstrain 3DM-GX5-AHRS IMU that we have
# Accelerometer
accelerometer_noise_density: 0.0002276846771973415 
accelerometer_random_walk: 6.706087584689249e-06 

# Gyroscope
gyroscope_noise_density: 0.00010426654551109309 
gyroscope_random_walk: 3.5636559575381104e-06 

rostopic: '/sensors/imu' #Make sure this is correct
update_rate: 200.0 #Make sure this is correct
```
