Need help with imu_utils?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

gaowenliang
827 Stars 323 Forks MIT License 33 Commits 25 Opened issues

#### Description

A ROS package tool to analyze the IMU performance.

!
?

# 56,605
C++
MATLAB
imu
calibra...
28 commits
# 118,926
HTML
MATLAB
imu
Jupyter...
1 commit

# imu_utils

A ROS package tool to analyze the IMU performance. C++ version of Allan Variance Tool. The figures are drawn by Matlab, in

scripts
.

Actually, just analyze the Allan Variance for the IMU data. Collect the data while the IMU is Stationary, with a two hours duration.

## refrence

Refrence technical report:

Allan Variance: Noise Analysis for Gyroscopes
,
vectornav gyroscope
and
An introduction to inertial navigation
.

Woodman, O.J., 2007. An introduction to inertial navigation (No. UCAM-CL-TR-696). University of Cambridge, Computer Laboratory.


Refrence Matlab code:

GyroAllan

## IMU Noise Values

Parameter

YAML element Symbol Units
Gyroscope "white noise"

gyr_n
${\sigma_g}$ ${\frac{rad}{s}\frac{1}{\sqrt{Hz}}}$
Accelerometer "white noise"
acc_n
${\sigma_a}$ ${\frac{m}{s^2}\frac{1}{\sqrt{Hz}}}$
Gyroscope "bias Instability"
gyr_w
${\sigma_b_g}$ $\frac{rad}{s}&space;\sqrt{Hz}$
Accelerometer "bias Instability"
acc_w
${\sigma_b_a}$ $\frac{m}{s^2}&space;\sqrt{Hz}$
• White noise is at tau=1;

• Bias Instability is around the minimum;

(according to technical report:

Allan Variance: Noise Analysis for Gyroscopes
)

## sample test

200Hz
• red : 3dm-Gx4,
500Hz
• green : DJI-A3,
400Hz
• black : DJI-N3,
400Hz
• circle : xsens-MTI-100,
100Hz

## How to build and run?

### to build

sudo apt-get install libdw-dev


code_utils
;

• put the ROS package

imu_utils
and
code_utils
catkin_ws
;
• cd to your workspace, build with

catkin_make
;

### to run

• collect the data while the IMU is Stationary, with a two hours duration;

• (or) play rosbag dataset;

 rosbag play -r 200 imu_A3.bag

• roslaunch the rosnode;
roslaunch imu_utils A3.launch


Be careful of your roslaunch file:





### sample output:

type: IMU
name: A3
Gyr:
avg-axis:
gyr_n: 1.0351286977809465e-04
gyr_w: 2.9438676109223402e-05
x-axis:
gyr_n: 1.0312669892959053e-04
gyr_w: 3.3765827874234673e-05
y-axis:
gyr_n: 1.0787155789128671e-04
gyr_w: 3.1970693666470835e-05
z-axis:
gyr_n: 9.9540352513406743e-05
gyr_w: 2.2579506786964707e-05
Acc:
unit: " m/s^2"
avg-axis:
acc_n: 1.3985049290745563e-03
acc_w: 6.3249251509920116e-04
x-axis:
acc_n: 1.1687799474421937e-03
acc_w: 5.3044554054317266e-04
y-axis:
acc_n: 1.2050535351630543e-03
acc_w: 6.0281218607825414e-04
z-axis:
acc_n: 1.8216813046184213e-03
acc_w: 7.6421981867617645e-04


## dataset

DJI A3:

400Hz

百度网盘

DJI A3:

400Hz

百度网盘

200Hz

百度网盘

3dM-GX4:

500Hz

百度网盘
100Hz
百度网盘