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

Revision history [back]

First, I would advise that you review the tf library. The node is telling you that there is no transform defined from your robot's base_footprint frame to its gps frame. In other words, in order for navsat_transform_node to know how to integrate your GPS data, it needs to know where on your robot the GPS itself is mounted. Imagine a robot with a GPS that is mounted on a long arm that sticks out in front of the robot. Since we want to know the pose of the robot's center (in this case, the base_footprint frame), we need to know what that offset (transform) is.

In this case, you need to use either (a) the robot_state_publisher or (b) a static_transform_publisher to define and broadcast a transform from your base_footprint frame to your gps frame.

First, I would advise that you review the tf library. The node is telling you that there is no transform defined from your robot's base_footprint frame to its gps frame. In other words, in order for navsat_transform_node to know how to integrate your GPS data, it needs to know where on your robot the GPS itself is mounted. Imagine a robot with a GPS that is mounted on a long arm that sticks out in front of the robot. Since we want to know the pose of the robot's center (in this case, the base_footprint frame), we need to know what that offset (transform) is.

In this case, you need to use either (a) the robot_state_publisher or (b) a static_transform_publisher to define and broadcast a transform from your base_footprint frame to your gps frame.

RESPONSE TO EDIT 2:

Just looking at the launch file, I can see a couple issues:

  1. Both your EKFs need to have the same base_link_frame frame_id. For your ekf_odom instance, you have it set to base_footprint, and for the ekf_map instance, you have it set to base_link.
  2. Once you fix (1), make sure your base_to_realsense static transform uses the same child frame_id that you use for the base_link_frame in the EKF instances.