This has some nice utility scripts and packages that allow for calculation of the noise values for use in both kalibr and IMU filters.
The dataset of the manufacture can find the "white noise" values for the system, but the bias noises need to be found through experimental tests.
The gyroscope_random_walk
and accelerometer_random_walk
values can normally be found on the IMU datasheet as either angular random walk or velocity random walk, respectively.
- With the IMU remaining still, record a ROS bag of the readings (we collected a bag for about 4 hours)
- Convert the ROS bag into a matlab mat file.
- Use the included
bagconvert
ROS package to do this - Example:
rosrun bagconvert bagconvert imu.bag /imu0
- Use the included
- Run the included matlab scripts to generate an allan deviation plot for the readings
- We have multiple versions of the script
- We do not recommend the ROS version as matlab parsing of raw ROS bags is slow
- If using ROS version, it uses the matlab robotics toolbox
- If using the parallel version, it uses the matlab parallel toolbox
- Interpret the generated charts to find noise values
- Run the process results script
- Will fit a -1/2 line to the left side of the allan plot
- White noise is at tau=1 (according to kalibr wiki)
- Will fit a 1/2 line to the right side of the allan plot
- Random walk is at tau=3 (according to kalibr wiki)