1 | initial version |

[Answering my own question] So here is what i did. I calculated the standard deviation of the data from the IMUs while they were all stationary and put those values (squared) into the covariance matrices of the IMU messages. then the covariances of the kelman filter stopped exploding. however so far this only worked for the gyro readings. when i introduce the accelerometer readings (with the correct covariance matrix) i cant seem to get an accurate position estimation, not even for a short while. same goes for the orientation data itself, feeding in the euler angles produces a very noisy estimation and i think its because my yaw angle is very noisy and aso when it is being converted to a quternion it actually effects the entire orientation estimation.

So to get around that i used visual odometry (package name was aruco_ros).

The ekf is working fine, reading the gyros from the IMUs and reading the position and the euler angles from the visual odometry.

however, i wish to make my state estimation more robust. i want to be able to retain a correct pose even if the camera loses view of the marker and the odometry message stops broadcasting data.

unfortunately the IMUs so far are terrible for achieving this. 'remove gravitational acceleration = true' does not work well at all. question is, is it because: specificly the IMUs that im using are not accurate enough, or is it because an IMU cant ever get good enough results for state estimation even through a kelman filter?

thank you, Jair

ROS Answers is licensed under Creative Commons Attribution 3.0 Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.