IMU's offset and Kalman filter

#1

Hello,

I have a Pixhawk 2 mounted on a rover with direct contact to a aluminum plate. Using mavros, I get IMU readings for all three. This data (maybe not all three, haven’t decided) is then fed into the robot_localization ROS package (Kalman filter). What stumps me is that the IMUs output noticeably large values when the robot is still. Below I have a sample of what they are outputting.

IMU1:

linear_acceleration:
x: -0.2549729
y: -0.3334261
z: 9.85568325

IMU2:

linear_acceleration:
x: 0.46091255
y: 0.3334261
z: 8.50236555

IMU3:

linear_acceleration:
x: 0.08825985
y: -0.04903325
z: 10.03220295

The values are pretty consistent, but they might change if I reconnect to it a few hours later. I have a couple of questions:

  1. Is this expected? Should I just “ignore” it and take it into account when setting the sensor noise covariance in the Kalman filter?
  2. Before I begin robot_localization, should I offset the IMUs to what the readings should be (0,0,9,81)? I’ve noticed it improves the robot_localization’s output, but I am sure if this is a frown upon method.
  3. Is there something wrong with my setup? Anything I can do to improve the readings? We calibrated the pixhawk before mounting it on the rover since its infeasible to calibrate it with it already attached to the large rover.

I will appreciate any input on it!
Thanks!

#2

Hi,

The IMUs are measuring acceleration including gravity, so the values will be dependent of the attitude of the platform. Or do you mean that the norm is larger than expected?

#3

Hello Carl,

Thanks for the reply!

I am not sure if I fully understand what you are asking, but I am expecting the values to be close to (x: 0, y: 0, z: 9.81).

#4

I am expecting the values to be close to (x: 0, y: 0, z: 9.81).

So you are saying that you have the IMU perfectly horizontal and wonder why the x and y axis are not zero? In that case it looks normal, this is a plot from a stationary plane standing flat on the ground before takeoff

#5

Ah okay. This is what I wanted to know. I was unsure if my readings were off, but it seems like what I am getting is perfectly good.

Thank you!!