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:
- Is this expected? Should I just “ignore” it and take it into account when setting the sensor noise covariance in the Kalman filter?
- 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.
- 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!