M3DSS-dataset

IMU Intrinsics

Introduction:

The error model of the IMU
The errors of accelerometers and gyroscopes can be divided into deterministic errors and random errors. Deterministic errors can be calibrated in advance, including bias, scale, misalignment, etc. Random errors usually assume that the noise obeys a Gaussian distribution, including Gaussian white noise, random walker, etc. Scale can be regarded as the ratio between the actual value and the input value. When the misalignment multi-axis sensor is manufactured, xyz may not be vertical due to manufacturing process problems. Both "White Noise" and "Bias" have two forms: continuous time model and continuous time model. The two modes can be converted to each other. Here, it is emphasized that some calibration tools output continuous type (imu_utils) and some are discrete type (kalibr_allan ). Here I use imu_utils to calibrate the imu, and the obtained acceleration noise and acceleration random walk noise as well as angular velocity noise and angular velocity random walk noise.

Method and process:

The Allan variance method was proposed by David Allan of the National Bureau of Standards in the 1960s, and it is an analysis method based on time domain. The brief process is as follows:
1. Keep the sensor absolutely still to acquire data.
2. Segment the data and set the duration of the time segment.
3. Average the sensor data over time.
4. Calculate the variance and draw the Allen curve. .

1.Install dependencies

sudo apt-get install libdw-dev

2. Install the imu driver to be able to record imu topic.

3.Down;oad imu_utils和code_utils

imu_utils download address is:https://github.com/gaowenliang/imu_utils
code_utils download address is: https://github.com/gaowenliang/code_utils

4. Before compiling, let's pay attention to three problems

(1) Install the ceres library, code_imu depends on ceres.
(2) Do not put imu_utils and code_utils together under src for compilation. Since imu_utils depends on code_utils, first put code_utils under the src of the workspace and compile it.

5. Compile

Create a folder catkin_ws, internal folder src; put code_utils in src first

cd catkin_ws/src
git clone https://github.com/gaowenliang/code_utils.git
cd ..
catkin_make
Then put imu_utils under the src of the workspace, do not delete the previous files, and then compile:
cd catkin_ws/src
cd catkin_ws/src
git clone https://github.com/gaowenliang/imu_utils.git
cd ..
catkin_make

Compile and install complete

6.Calibration

1. Keep the IMU still for two hours and record the IMU data;

rosbag record topic -O imu.bag
2. Then modify the src/imu_utils/launch file according to the requirements: mainly including topic name, duration and so on;
3. To play the recorded bag, it must be played at double speed.
rosbag play -r 200 imu-.bag (Published at 200x speed)
4、run launch
roslaunch imu_utils xxx.launch

5. The final calibration result file is saved in src to find the corresponding yaml file

refer to:

csdn