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

Will declaring a metapackage dependency pull all children packages.

asked 2013-08-19 05:24:34 -0500

ehuang gravatar image

I have meta package structured like so

catkin_ws/src/vision_common/

  vision_common/ (a subpackage in the package)

  vision_msgs/

  vision_3d/

I want to use the vision_msgs in another package. Is it sufficient to do <run_depend>vision_common</run_depend>and

generate_messages(
  DEPENDENCIES
  vision_msgs
)

In the other package? I'm running into trouble with the following error:

CMake Error at /home/vision/catkin_ws/build/planning_common/cmake/planning_common-genmsg.cmake:3 (message):
  Could not find messages which
  '/home/vision/catkin_ws/src/planning_common/srv/SimplePlanningSrv.srv'
  depends on.  Did you forget to specify generate_messages(DEPENDENCIES ...)?

  Cannot locate message [ParametricObjectMsg]: unknown package
  [vision_common] on search path [{{'household_objects_database_msgs':
  ['/opt/ros/groovy/share/household_objects_database_msgs/msg'],
  'shape_msgs': ['/opt/ros/groovy/share/shape_msgs/msg'], 'vision_msgs':
  ['/home/vision/catkin_ws/src/vision_common/vision_msgs/msg'],
  'std_msgs': ['/opt/ros/groovy/share/std_msgs/msg'], 'moveit_msgs':
  ['/opt/ros/groovy/share/moveit_msgs/msg'], 'trajectory_msgs':
  ['/opt/ros/groovy/share/trajectory_msgs/msg'], 'sensor_msgs':
  ['/opt/ros/groovy/share/sensor_msgs/msg'], 'object_recognition_msgs':
  ['/opt/ros/groovy/share/object_recognition_msgs/msg'], 'octomap_msgs':
  ['/opt/ros/groovy/share/octomap_msgs/msg'], 'manipulation_msgs':
  ['/opt/ros/groovy/share/manipulation_msgs/msg'], 'geometry_msgs':
  ['/opt/ros/groovy/share/geometry_msgs/msg'], 'actionlib_msgs':
  ['/opt/ros/groovy/share/actionlib_msgs/msg'], 'control_msgs':
  ['/opt/ros/groovy/share/control_msgs/msg'], 'diagnostic_msgs':
  ['/opt/ros/groovy/share/diagnostic_msgs/msg']}}]
Call Stack (most recent call first):
  /opt/ros/groovy/share/genmsg/cmake/genmsg-extras.cmake:280 (include)
  planning_common/CMakeLists.txt:28 (generate_messages)
edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
2

answered 2013-08-19 12:17:48 -0500

ahendrix gravatar image

No; you should explicitly depend on the packages that you use.

The main reason for this is that the CMake file in most metapackages does not pull in cmake files for its dependencies.

In your case, I would explicitly depend on vision_msgs in both your package.xml and your CMake file.

P.S. - this may also be a problem with your service file. If you're still having trouble, I suggest adding your service file to the question.

edit flag offensive delete link more

Question Tools

Stats

Asked: 2013-08-19 05:24:34 -0500

Seen: 476 times

Last updated: Aug 19 '13