ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
1 | initial version |
Without seeing sensor data inputs (please include those in the future), my guess is that you are seeing this:
t0
: filter initialises. Internal state is all 0, but we don't publish anythning.t1
: receive IMU message. We only have orientation, velocity, and acceleration. We publish the first output, which has all 0s for position.t2
: navsat_transform_node
receives the same IMU data, along with the GPS data, and produces a non-zero pose estimate. This is passed to the EKF.t3
: EKF receives pose data from navsat_transform_node
, and fuses it, causing the EKF output to move towards the GPS pose. Each subsequent measurement drags the state estimate closer to the GPS pose.There isn't currently a way to force the EKF to wait for a specific sensor input before it begins fusion. This could be added pretty trivially, though, and if it's a problem for you, I'd welcome a PR.
In the meantime, you could also modify your other nodes to wait until the first EKF message that has a time stamp after the first navsat_transform_node
output message.