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

Revision history [back]

(1) Both of those are correct, thought I'm surprised the node generates any output when you turn off the base_link->gps_reddot transform. Regardless, you need that transform to be defined, so that's not a problem per se. Also, the node only generates pose data, not twist data. I'm not differentiating pose to get velocity. The real issue is that the output of the node should have been a PoseWithCovarianceStamped, but for legacy reasons, I left it as-is.

(2) This is also what I expect. First, you only have an IMU and GPS, so when you aren't getting GPS signals, your robot's pose is dictated solely by integrating IMU data. Since the only linear (as opposed to rotational) quantity measured by the IMU is acceleration, you're probably going to see a fair amount of drift when you aren't getting GPS measurements. This will cause the filter's error (covariance) to increase, and when you next receive a GPS measurement, its covariance will likely be much lower than the filter's, so the filter will accept that GPS measurement as more or less a measure of ground truth, and will "jump" to that pose.

Bottom line: integrating an IMU with a GPS isn't going to produce fantastic results without a velocity measurement, though it may improve if I ever find time to implement this. Also, if your GPS has reasonable accuracy, then you aren't going to improve its estimate with a filter very much, but rather you will have smoother transitions between its (infrequent) measurements.