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

Revision history [back]

There really isn't a good way to remove a tf frame from the graph as far as I know. And the issue you then see is reparenting. TF supports only a tree, not a generic graph, and thus your robot frame has two parents in the graph, which is illegal and causes headaches. There are two possible fixes:

1) The proper fix is probably to add a ROS parameter to the diff drive controller that disables TF output (honestly, the plugin should support this, since you wouldn't want a TF frame if you were trying to use robot_pose_ekf or similar to merge IMU + odom). I would presume that such a fix could even be merged upstream, making it available to others.

2) The hack I can think of, would be to remap "tf" topic of your plugin to "tf_ignored". This would then mean that nobody gets the TF data from the plugin. However -- this will only work if you have no other tf data that you care about being generated by the same node as the plugin (which is all of gazebo I believe). This may not be the case.

There really isn't a good way to remove a tf frame from the graph as far as I know. And the issue you then see is reparenting. TF supports only a tree, not a generic graph, and thus your robot frame has two parents in the graph, which is illegal and causes headaches. There are two possible fixes:

1) The proper fix is probably to add a ROS parameter to the diff drive controller that disables TF output (honestly, the plugin should support this, since you wouldn't want a TF frame if you were trying to use robot_pose_ekf or similar to merge IMU + odom). I would presume that such a fix could even be merged upstream, making it available to others.

2) The hack I can think of, would be to remap "tf" topic of your plugin to "tf_ignored". "tf_ignored" (or any topic name that is not "tf"). This would then mean that nobody gets the TF data from the plugin. However -- this will only work if you have no other tf data that you care about being generated by the same node as the plugin (which is all of gazebo I believe). This may not be the case.