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

Help with setting up navigation stack for two kuka youbots

asked 2019-04-29 20:22:24 -0500

tsou10 gravatar image


I am currently doing a project with two kuka youbots running ros hydro and ubuntu 12.04. I plan on controlling them with an external computer running a master node. I was able to setup the navigation stack in Gazebo and RVIZ, and it works fine. However, I am having issues when trying to implement the navigation stack on the real platforms.

My issue is when I launch both of the real drivers (i.e. youbot_driver.launch) they both publish the same "odom" topic that is connected to the "base_footprint" frame. Since both youbots have the same topic and frame names, I get "TF_OLD_DATA" warnings for "odom" and "base_footprint". In simulation, I was able to fix this by remapping the topic and frame to include the robots name(i.e youbot1 or youbot2) before each topic and everything worked fine. This was done using "group_ns" and remapping args.

Now, when I tried to use remapping args on the real platforms, the robots name would get published before every topic except for odom and frame "base_footprint". Even when I set the "odom_frame", "odom_topic" and "robot_base_frame" parameters to "robot_name/odom" or "robot_name/base_footprint" in youbot_driver.launch, the tf_tree output still shows only odom and base_footprint without the robot name prefix.

How can remap odom and basefootprint in "youbot_driver.launch" to match what I am seeing in simulation? I feel like I have exhausted the forums on remapping topics and using tf_prefix, so any information would help,


edit retag flag offensive close merge delete

1 Answer

Sort by » oldest newest most voted

answered 2019-04-29 21:10:46 -0500

jinseoi gravatar image

I solved these problems with my own robots. Actually, there are two details you have to take care of. One is the topic name, and another one is TF frame_id.

To solve the same topic names confliction, you can use remap tag or add some prefix to topic name for each robot.

To solve the same TF frame_id confliction, you should check each node broadcast which TF translation. the In my case, my controller(driver) broadcasts the translation from "odom" to "base_footprint", so I add a prefix to frame_id before broadcasting. image description

By the way, some details you should know, you should check the frame_id in topic messages' header. Making sure every frame_id has been added prefix.

edit flag offensive delete link more


Thanks for your answer. I'm aware of how to use remapping tags for topics simply using <remap from="topic " to="something/topic "/> and using to change frame names. Is this similar to what you did? My issue stems from me implementing those changes but the driver not actually publishing those changes. I am starting to suspect tf_prefix may only work in Indigo, where my simulation is working.

tsou10 gravatar image tsou10  ( 2019-04-29 21:35:12 -0500 )edit

I don't think remapping will work for frame names. because the frames' name and topics' name are two different things! I don't know if tf_prefix works in hydro, but it works in Kinetic. If I were in your situation, I will try to set the frame_id as params(maybe have to add some code in driver source codes) then I can change it in launch.

jinseoi gravatar image jinseoi  ( 2019-04-29 22:03:28 -0500 )edit

Question Tools



Asked: 2019-04-29 20:22:24 -0500

Seen: 130 times

Last updated: Apr 29 '19