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

Revision history [back]

Please update the question by posting a sample message from each sensor input.

So, I have two problems: 1ST: When I do rostopic hz with the 2 topics above, it shows a rate of approximately 1Hz. That is very slow, isn't it?

For a GPS, that makes sense. For an IMU, that doesn't seem right.

2ND: When I use the launch file above, it starts by showing:

If you are getting transform warnings, it means that the transforms coming out of the EKF are older than the timestamps on the input messages going into navsat_transform_node. This is because the EKF only predicts up to the point of its most recent input message. Since the IMU and GPS data probably (?) have the same time stamps, navsat_transform_node receives a GPS message at the same time that the EKF receives its latest IMU data. That means the EKF will have to compute and publish the transform before navsat_transform_node can use it, but navsat_transform_node needs that transform at the time it receives the GPS message (which is at the time the EKF just receives the IMU message, so it won't be available).

You have three options:

  1. Change your transform_time_offset EKF parameter to some small positive value. This will future-date its transform it's generating.
  2. Set predict_to_current_time to true for the EKF. That will force the EKF to make a prediction to the current ROS time before publishing, rather than just publishing the state estimate at the time of the most recent measurement.

Please update the question by posting a sample message from each sensor input.

So, I have two problems: 1ST: When I do rostopic hz with the 2 topics above, it shows a rate of approximately 1Hz. That is very slow, isn't it?

For a GPS, that makes sense. For an IMU, that doesn't seem right.

2ND: When I use the launch file above, it starts by showing:

If you are getting transform warnings, it means that the transforms coming out of the EKF are older than the timestamps on the input messages going into navsat_transform_node. This is because the EKF only predicts up to the point of its most recent input message. Since the IMU and GPS data probably (?) have the same time stamps, navsat_transform_node receives a GPS message at the same time that the EKF receives its latest IMU data. That means the EKF will have to compute and publish the transform before navsat_transform_node can use it, but navsat_transform_node needs that transform at the time it receives the GPS message (which is at the time the EKF just receives the IMU message, so it won't be available).

You have three two options:

  1. Change your transform_time_offset EKF parameter to some small positive value. This will future-date its transform it's generating.
  2. Set predict_to_current_time to true for the EKF. That will force the EKF to make a prediction to the current ROS time before publishing, rather than just publishing the state estimate at the time of the most recent measurement.