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

Revision history [back]

I see what you're trying to do. You shouldn't need the datum parameter; that's really there to force the GPS origin to a given point, rather than letting the first GPS reading be the GPS origin.

The problem is that navsat_transform_node was written to handle this situation:

  1. Robot starts driving indoors and generating nav_msgs/Odometry messages with its current pose. No GPS signal is available.
  2. Robot drives outside and gets a GPS fix.

In that situation, we need to invert our robot's pose in the nav_msgs/Odometry message, append that to the GPS reading, and use that point as our GPS origin.

In your case, I think you should be able to just publish a nav_msgs/Odometry message to /initialpose that has a 0 position and an identity quaternion. You need to make sure that you set the frame_id and child_frame_id appropriately in the /initialpose message (in your case, it appears that you want map and base_link, respectively). Also, your IMU data is in the body_FLU frame. Are you providing a transform from that frame to base_link? You'll need to.