Does robot_localization account for orientation in linear acceleration?
I've built a GPS/IMU device based on the Arduino 10-DOF breakout board, and have a question regarding feeding the data into the robot_localization ekf. At present this unit uses the XYZ accelerometers and magnetometers to determine roll, pitch, and heading. I would like to feed in the XYZ accelerometers as well, but am curious if the acceleration is getting doubly handled?
For example, my INU message looks like:
header:
seq: 871289
stamp:
secs: 1457646520
nsecs: 937000000
frame_id: inu
orientation:
x: 0.0673696058881
y: -0.336867507998
z: -0.479866940137
w: -0.807285165243
orientation_covariance: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
angular_velocity:
x: 0.0
y: 0.0
z: 0.0
angular_velocity_covariance: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
linear_acceleration:
x: -0.039227
y: 1.176798
z: 10.15969
linear_acceleration_covariance: [45.0, 0.0, 0.0, 0.0, 45.0, 0.0, 0.0, 0.0, 45.0]
do I need to correct out the acceleration so that the only acceleration is in the z axis (the unit is sitting motionless on my desk)?
The question arises from the fact that I have really noisy outputs in my /odometry/filtered topic, and while I haven't tuned the covariance matrices yet (still learning the best way to do this), my filtered GPS keeps going way off (like 2 degrees lat/lon) when it's sitting stationary.