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

Dependency on actionlib when building .action files

asked 2018-10-12 13:32:15 -0500

130s gravatar image

updated 2018-10-21 19:47:30 -0500

  • Up to today's latest wiki page of actionlib lists actionlib as a required dependency with actionlib_msgs to build a package that includes .action files, along.
  • However, in Catkin's doc (melodic) only actionlib_msgs is a required dependency.

    To generate actions, add actionlib_msgs as a dependency

Which one is correct?


UPDATE1: Responding to the comment from @Dirk Thomas:

The referenced wiki page does not only mention building a package with .action files but also contains examples how to use the action server / client. Therefore I would highly suggest to revert your change since it will make the page incomplete / incorrect.

I still think the wiki should present only the minimal dependency example first, so showing dependency on actionlib_msgs suffices because:

  • The portion of wiki I referred to is specifically under ".action file" section.
  • It's not official AFAIK, but my understanding is the practice in ROS is to separate message/service/action definition files in a designated package (e.g. #q11835). For a package that contains .action but no code, adding a dependency on action_msgs should be enough, according to your answer.
    • Of course creating a package that contains both .action files and code that depends on actionlib api is not restricted at all, but I'm not sure if the actionlib's wiki page needs to present that info, let alone in ".action file" section.
edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
0

answered 2018-10-12 14:13:33 -0500

Dirk Thomas gravatar image

Both are right. It depends what you want to do.

If a package has .action files it needs a dependency on actionlib_msgs since that package provides the CMake API like add_action_files().

If your package wants to use the API of the actionlib package to implement an action server or use an action client than it obviously needs a dependency on that package too.

edit flag offensive delete link more

Comments

Thanks for clarification. Then, because the wiki page section I referred to is about building a package that contains .action but not necessarily the code, I dropped actionlib from there.

130s gravatar image 130s  ( 2018-10-12 15:01:30 -0500 )edit

The referenced wiki page does not only mention building a package with .action files but also contains examples how to use the action server / client. Therefore I would highly suggest to revert your change since it will make the page incomplete / incorrect.

Dirk Thomas gravatar image Dirk Thomas  ( 2018-10-12 15:05:05 -0500 )edit
Dirk Thomas gravatar image Dirk Thomas  ( 2018-10-15 12:41:20 -0500 )edit

Reverted in http://wiki.ros.org/action/diff/actio...

@Dirk Thomas I responded by updating OP.

130s gravatar image 130s  ( 2018-10-21 19:48:32 -0500 )edit

The previous edit of the page reduced the dependencies for only building action files but the remaining of the page actually describes how to use action servers and clients.

Dirk Thomas gravatar image Dirk Thomas  ( 2018-10-22 00:45:45 -0500 )edit
1

So in order to be consistent if you want to only mention the dependencies for the first part then the second part needs to be updated as well that additional dependencies are necessary using the action server and client. Otherwise the information is misleading (as in your previous edit).

Dirk Thomas gravatar image Dirk Thomas  ( 2018-10-22 00:46:56 -0500 )edit

Question Tools

2 followers

Stats

Asked: 2018-10-12 13:32:15 -0500

Seen: 566 times

Last updated: Oct 21 '18