https://github.com/gaowenliang/imu_utils
A ROS package tool to analyze the IMU performance.
https://github.com/gaowenliang/imu_utils
allan calibration gyro imu
Last synced: 28 days ago
JSON representation
A ROS package tool to analyze the IMU performance.
- Host: GitHub
- URL: https://github.com/gaowenliang/imu_utils
- Owner: gaowenliang
- License: mit
- Created: 2018-02-08T01:12:23.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2022-02-11T01:30:16.000Z (about 3 years ago)
- Last Synced: 2024-10-27T19:01:56.078Z (6 months ago)
- Topics: allan, calibration, gyro, imu
- Language: C++
- Homepage: https://gaowenliang.github.io/imu_utils
- Size: 3.81 MB
- Stars: 1,473
- Watchers: 34
- Forks: 480
- Open Issues: 36
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-robotic-tooling - imu_utils - A ROS package tool to analyze the IMU performance. (Sensor Processing / Calibration and Transformation)
- awesome-robotic-tooling - imu_utils - A ROS package tool to analyze the IMU performance (Hardware / Calibration and Transformation)
README
# 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`](http://cache.freescale.com/files/sensors/doc/app_note/AN5087.pdf "Allan Variance: Noise Analysis for Gyroscopes"), [`vectornav gyroscope`](https://www.vectornav.com/support/library/gyroscope "vectornav gyroscope") and
[`An introduction to inertial navigation`](http://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-696.html "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`](https://github.com/XinLiGitHub/GyroAllan "GyroAllan")## IMU Noise Values
Parameter | YAML element | Symbol | Units
--- | --- | --- | ---
Gyroscope "white noise" | `gyr_n` ||
![]()
Accelerometer "white noise" | `acc_n` ||
![]()
Gyroscope "bias Instability" | `gyr_w` ||
![]()
Accelerometer "bias Instability" | `acc_w` ||
* White noise is at tau=1;
* Bias Instability is around the minimum;
(according to technical report: [`Allan Variance: Noise Analysis for Gyroscopes`](http://cache.freescale.com/files/sensors/doc/app_note/AN5087.pdf "Allan Variance: Noise Analysis for Gyroscopes"))
## sample test
![]()
* blue : Vi-Sensor, ADIS16448, `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
```* download required [`code_utils`](https://github.com/gaowenliang/code_utils "code_utils");
* put the ROS package `imu_utils` and `code_utils` into your workspace, usually named `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:
unit: " rad/s"
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`
Download link: [`百度网盘`](https://pan.baidu.com/s/1jJYg8R0 "DJI A3")
DJI A3: `400Hz`
Download link: [`百度网盘`](https://pan.baidu.com/s/1pLXGqx1 "DJI N3")
ADIS16448: `200Hz`
Download link:[`百度网盘`](https://pan.baidu.com/s/1dGd0mn3 "ADIS16448")3dM-GX4: `500Hz`
Download link:[`百度网盘`](https://pan.baidu.com/s/1ggcan9D "GX4")
xsens-MTI-100: `100Hz`
Download link:[`百度网盘`](https://pan.baidu.com/s/1i64xkgP "MTI-100")