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

ROS1 /tf incompatible with ROS2 through ROS1 bridge

asked 2020-04-10 23:13:22 -0500

mequi gravatar image

updated 2020-04-12 12:13:05 -0500

I am having trouble getting the /tf topic into ROS2 through the ROS bridge. I am using ROS melodic and ROS2 eloquent on Ubuntu 18.04. When I run my node which tries to perform a lookup for a specific transform on my robot it fails and the ROS bridge outputs the following error [dynamic_bridge-1] failed to create 1to2 bridge for topic '/tf' with ROS 1 type 'tf/tfMessage' and ROS 2 type 'tf2_msgs/msg/TFMessage': No template specialization for the pair [dynamic_bridge-1] check the list of supported pairs with the --print-pairs option. It looks like this stems from the fact that /tf is using tf1 message types. Note that /tf_static does not have these same issues and does use tf2 message types. It looks like others have encountered similar problems such as what is described here but nothing has been done to remedy the problem (or at least I can't find any information on a reasonable fix). Is there something I am missing or will I need to write some contorted translation node? Any guidance is appreciated.

edit retag flag offensive close merge delete


Please edit your question with a full description of your setup and your problem, if the hyperlink breaks this question and the matching answer will not be useful to other users. Also often "the same problem" is not the same based on difference of setup, version etc

marguedas gravatar image marguedas  ( 2020-04-11 06:07:15 -0500 )edit

@marguedas Sorry about that, I wrote it when I was tired and I thought I said more than I actually did. I made some updates so hopefully that helps.

mequi gravatar image mequi  ( 2020-04-11 12:05:36 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2020-04-12 04:08:13 -0500

marguedas gravatar image

updated 2020-04-12 05:26:14 -0500

gvdhoorn gravatar image

If you installed the ros1_bridge from debs (ros-eloquent-ros1-bridge) this behavior is currently expected as the deb does not provide a mapping for tf/tfMessage only for tf2 messages. I'll take advantage of this to point out that tf and tfMessage have been deprecated for 7 years now (since ROS Hydro) so relying on them in ROS 1 is discouraged. See this PR for a request to provide support for it in the deb.

If you built the bridge from source (like in the github issue you link to) with ROS 1 tf package installed and ROS 2 tf2_msgs package installed, bridging should work. You would need to provide the exact steps you used to build the bridge to find out why it's not working.

I am also having a problem with /tf_static not being published on the ROS2 side

Please open separate questions for separate problems so that each answer respond to only one question.

edit flag offensive delete link more

Question Tools



Asked: 2020-04-10 23:13:22 -0500

Seen: 1,169 times

Last updated: Apr 12 '20