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

Rviz tf 'world' does not exist

asked 2019-04-24 07:11:15 -0600

Jan Tromp gravatar image

updated 2019-04-24 07:30:31 -0600

gvdhoorn gravatar image

Hello everyone,

Basic info:

env | grep ROS:

OS: ubuntu 16.04

I've been trying to get a UR10 moving in Rviz using moveit. This worked. Now i want to add my end effector to the URDF so that this will also be included in the plath planning.

For some reason i am unable to get this to work in Rviz. My problem:

I use the standard files i downloaded from the 'universal_robot' package, but in Rviz is get the following error:

My fixed frame is set to 'world'. The tf world is made in the ur10_robot.urdf.xacro, provided by the ur_description.

Then at global options an error appears saying "Fixed Frame [world] does not exist" At my RobotModel status is Error, saying:

URDF parsed OK
tranform (world to world) OK
No transform from [base] to [world]
No transform from [base_link] to [world]
No transform from [ee_link] to [world]
No transform from [forearm_link] to [world]
No transform from [tool0] to [world]

and this for all links in the URDF

Am i missing something and is this even the right way to link multiple URDF's to eachother?

Kind regards, Jan Tromp

edit retag flag offensive close merge delete


is this even the right way to link multiple URDF's to eachother?

I don't believe we can answer this as you don't describe how you've actually added the EEF to the URDF.

gvdhoorn gravatar image gvdhoorn  ( 2019-04-24 07:31:22 -0600 )edit

What do you mean? You mean the physical connection? or the way i added the camera to the URDF.

Jan Tromp gravatar image Jan Tromp  ( 2019-04-24 07:34:20 -0600 )edit

or the way i added the camera to the URDF.

Yes, at the very least.

You state that what "you did" did not work, but you don't show us what you did. You then ask us whether what "you did" is the right way, but without seeing what you did we cannot really know, can we?

gvdhoorn gravatar image gvdhoorn  ( 2019-04-24 07:36:13 -0600 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2019-04-25 02:23:34 -0600

Jan Tromp gravatar image

updated 2019-04-25 03:09:48 -0600

gvdhoorn gravatar image

I found a solution. Went back to the previous code my co-worker made and there the urdf's are linked and everything works fine. I think my problem eventually was in the fact that i didnt have the tf static transform node running.

Can someone with enough karma close this?

Edit: Okay so if you look at the ur10_robot.urdf.xacro, it includes the ur10.urdf.xacro, and then links the base to the world. My co-worker added the other urdf files below this and linked them directly in the urdf like this:

<xacro:include filename="$(find cam_desc)/urdf/camera_macro.xacro" />

<link name="world" />  

<!-- connects the UR10 arm to the world -->
<joint name="world_joint" type="fixed">
  <parent link="world" />
  <child link = "base_link" />
  <origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />

<!-- connects the  camera to the UR10 arm -->
<joint name="cam_joint" type="fixed">
  <parent link="ee_link"/>
  <child link="mount_link"/>
  <origin xyz="0.0 -0.045 0.0" rpy="3.14 0.0 1.57" />

Now the problem of the world joint that cannot be found in Rviz is also a bit more clear. As your thought, it wasn't because of the tf transform node. The reason was because i forgot to start the node that pubs robot state.

edit flag offensive delete link more


I think my problem eventually was in the fact that i didnt have the tf static transform node running.

that is not something I would expect to be an issue, unless you are not actually using a joint to connect your EEF to your robot model (which is possible, but not necessarily the best way to go about it).

If you could add some more detail to your answer as to how your "co-worker's code" connects everything, that might be valuable to future visitors of this site. RIght now this Q&A are too localised to be of help to anyone but you.

gvdhoorn gravatar image gvdhoorn  ( 2019-04-25 02:33:16 -0600 )edit

thanks for the update. This helps.

My co-worker added the other urdf files below this

note: it's considered best-practice to create a separate package, with a separate top-level xacro in which you create your composite model. Don't edit files in third-party packages.

It introduces maintenance for you, as tracking upstream updates becomes much harder, and you "contaminate" what would otherwise be a completely stand-alone package with application-specific artefacts (ie: your gripper model). That in turn complicates deployments (as you now have to distribute your changed third-party package, instead of your own package with just the composite model).

gvdhoorn gravatar image gvdhoorn  ( 2019-04-25 03:12:49 -0600 )edit

Question Tools

1 follower


Asked: 2019-04-24 07:11:15 -0600

Seen: 734 times

Last updated: Apr 25 '19