Ask Your Question

Revision history [back]

A bunch of things:

  1. Please post the actual code you are using to look up the utm->map transform. Please also post your full EKF configs (maybe don't post the covariances), and sample messages for each sensor input.
  2. Regarding this:

    I am experiencing "Initial odometry pose is " which I don't believe to be correct as you can see I have use_odometry_yaw false

    Let's say you start your robot indoors, where there is no GPS signal. You drive around for a long time, then go outdoors. In order to properly create the utm->map transform, we need to know your map frame pose at the time the first GPS signal is received, so that we can invert that pose (transform) so that the first UTM coordinate that we receive cooresponds to that current map pose, and doesn't produce a (0, 0) position measurement.

    In other words, this is normal and correct behavior.

  3. The reason I ask for (1) is that navsat_transform_node does this:

    • Waits for the initial GPS position. Converts it to UTM. Uses your robot's current world-frame heading, along with its map-frame pose, to create a transform from utm->map.
    • Now let's say you get another GPS fix a few seconds later. That GPS fix gets converted to UTM, passed through the transform, and turned into a pose. If that pose is consistent with your robot's map frame pose, that indicates that the utm->map transform is correct. Note that this chain of events is identical to what you're trying to do: take a GPS pose, pass it through the transform, and use the result. If there were an issue with the transform, I would expect the odometry/gps poses to vary as wildly as you are saying the goals do.

In the end, though, I can't comment without a lot more information.