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

Cannot locate rosdep definition for [joint_state_publisher]

asked 2013-05-22 20:25:34 -0600

bit-pirate gravatar image

updated 2013-05-23 14:08:08 -0600

One of my packages has a run dependency on the joint state publisher (cfrom a roslauncher). Checking the dependencies with rosdep gives me this error:

$ rosdep check robosem_meta
All system dependencies have been satisified
ERROR[robosem_meta]: Cannot locate rosdep definition for [joint_state_publisher]
        rosdep key : joint_state_publisher
        OS name    : ubuntu
        OS version : precise
        Data: <no data>

I have the joint_state_publisher installed and I can use it without problems. So this is not a real problem, but I would still like to fix it. Anyone knows how?

PS: Unfortunately the link for filing issue tickets on the wiki is not existent or broken, otherwise I would have used that for problems like this one here. Maybe the maintainer could move the code to Github or Bitbucket?

/edit: My package is a catkin package and the dependency on the joint_state_publisher is defined like this:

edit retag flag offensive close merge delete


What happens when you do "rosdep install joint_state_publisher"?

You could try installing urdf_tools from which comes with the joint_state_publisher node.

sobotacm gravatar image sobotacm  ( 2013-05-23 00:24:15 -0600 )edit

@sobotacm The joint_state_publisher is installed and working. The only issue is that rosdep does not recognise it.

bit-pirate gravatar image bit-pirate  ( 2013-05-23 14:03:20 -0600 )edit

2 Answers

Sort by » oldest newest most voted

answered 2013-05-23 14:19:04 -0600

William gravatar image

According to:

joint_state_publisher is part of the robot_model_visualization stack which is dry (rosbuild). caktin packages cannot depend on rosbuild packages.

edit flag offensive delete link more



So that's the reason why rosdep complains?

bit-pirate gravatar image bit-pirate  ( 2013-05-23 14:52:25 -0600 )edit

Yes. Since catkin can't resolve it, the dependency is passed along to rosdep. That has some advantages, but frequently generates confusing error messages.

joq gravatar image joq  ( 2013-05-23 16:46:47 -0600 )edit

@joq is correct. All catkin dependencies are passed to rosdep for processing. rosdep has no knowledge of dry (rosbuild) packages so when you list a dry package as a dependency of a wet package, rosdep doesn't know what to do with it.

William gravatar image William  ( 2013-05-23 17:26:25 -0600 )edit

Thanks for the clarification!

bit-pirate gravatar image bit-pirate  ( 2013-05-23 18:04:23 -0600 )edit

answered 2013-05-23 01:38:35 -0600

In your manifest.xml, you probably have the following line:

<rosdep name="joint_state_publisher"/>

This is incorrect; instead, change it to:

<depend package="joint_state_publisher"/>

The reason is that rosdep checks for system dependencies (i.e., non-ROS software that is available as a debian package, like libmesa or qt4-qmake). On the other hand, rospack (which is invoked by the depend tag) is responsible for finding ROS package dependencies.

edit flag offensive delete link more


I forgot to mention, that my package is a catkin package and the dependency is defined as &lt;run_depend&gt;joint_state_publisher&lt;/run_depend&gt;. I have added this information to my question. Any idea what could cause this error in a catkin package?

bit-pirate gravatar image bit-pirate  ( 2013-05-23 14:09:58 -0600 )edit

All right, I assumed you were using rosbuild. William's answer is correct.

Martin Günther gravatar image Martin Günther  ( 2013-05-23 23:10:40 -0600 )edit

Question Tools


Asked: 2013-05-22 20:25:34 -0600

Seen: 16,582 times

Last updated: May 23 '13