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

Revision history [back]

click to hide/show revision 1
initial version

Have you opened this up as an issue on the github page for this package? What I am about to explain is more properly placed there.

The issue is on lines 110-120 of navsat_transform.cpp

broadcast_cartesian_transform_ =
  this->declare_parameter("broadcast_utm_transform", broadcast_cartesian_transform_);

if (broadcast_cartesian_transform_) {
  RCLCPP_WARN(
    this->get_logger(), "Parameter 'broadcast_utm_transform' has been deprecated. "
    "Please use 'broadcast_cartesian_transform' instead.");
} else {
  broadcast_cartesian_transform_ =
    this->declare_parameter("broadcast_utm_transform", broadcast_cartesian_transform_);
}

We can see that if the broadcast_utm_transform parameter is false, it will be declared on both the first statement and in the else branch.

If I had to guess on the intent of the code, the else branch should look more like this:

} else {
  broadcast_cartesian_transform_ =
    this->declare_parameter("broadcast_cartesian_transform", broadcast_cartesian_transform_);
}

(the name of the parameter should be different)

To jump passed this without modifying code, pass it true for broadcast_utm_transform parameter with:

ros2 run robot_localization navsat_transform_node --ros-args -p broadcast_utm_transform:=true

Please either open an issue on the github page, or let me know if you are not going to so I can.

Hope this helps!