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.
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
cd catkin_ws/src
cd catkin_ws/src
git clone https://github.com/gaowenliang/imu_utils.git
cd ..
catkin_make
6.Calibration
1. Keep the IMU still for two hours and record the IMU data;
rosbag record topic -O imu.bag
rosbag play -r 200 imu-.bag (Published at 200x speed)
roslaunch imu_utils xxx.launch