ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

Without more information (see my comment about including sensor messages), my guess is that:

  1. You aren't measuring any of the 3D orientation variables from the non-IMU inputs (this makes sense, given what you said).
  2. Your IMU data isn't being respected. This is often because you don't have a transform defined from the IMU's frame to your robot's body frame.

The real issue is (2). If you want the filter to estimate your state, you have to provide a reference for every variable in the state, whether it's for the absolute dimension (e.g., RPY) or the velocities for those dimensions.

BTW, your IMU config comment doesn't match your comment. You are fusing absolute orientation.

Without more information (see my comment about including sensor messages), my guess is that:

  1. You aren't measuring any of the 3D orientation variables from the non-IMU inputs (this makes sense, given what you said).
  2. Your IMU data isn't being respected. This is often because you don't have a transform defined from the IMU's frame to your robot's body frame.

The real issue is (2). If you want the filter to estimate your state, you have to provide a reference for every variable in the state, whether it's for the absolute dimension (e.g., RPY) or the velocities for those dimensions.dimensions. If including the IMU data does nothing, then the filter is ignoring it.

BTW, your IMU config comment doesn't match your comment. You are fusing absolute orientation.

Without more information (see my comment about including sensor messages), my guess is that:

  1. You aren't measuring any of the 3D orientation variables from the non-IMU inputs (this makes sense, given what you said).
  2. Your IMU data isn't being respected. This is often because you don't have a transform defined from the IMU's frame to your robot's body frame.

The real issue is (2). If you want the filter to estimate your state, you have to provide a reference for every variable in the state, whether it's for the absolute dimension (e.g., RPY) or the velocities for those dimensions. If including the IMU data does nothing, then the filter is ignoring it.

BTW, your IMU config comment doesn't match your comment. You are fusing absolute orientation.

EDIT after updates:

Do you have a transform defined from base_link->imu_link anywhere? If not, you need one.

Regardless, yes, those covariances are utterly massive. The standard deviation for each angular dimension is ~13.2 radians. I'm not sure how you or you IMU driver are computing them, but the filter would definitely behave strangely (and largely ignore measurements) with covariances like that.