0
$\begingroup$

Rosanswers logo

  • 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.

Originally posted by 130s on ROS Answers with karma: 10937 on 2018-10-12

Post score: 0

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

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.


Originally posted by Dirk Thomas with karma: 16276 on 2018-10-12

This answer was ACCEPTED on the original site

Post score: 0


Original comments

Comment by 130s on 2018-10-12:
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.

Comment by Dirk Thomas on 2018-10-12:
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.

Comment by Dirk Thomas on 2018-10-15:
Reverted in http://wiki.ros.org/action/diff/actionlib?action=diff&rev1=199&rev2=200

Comment by 130s on 2018-10-21:\

Reverted in http://wiki.ros.org/action/diff/actionlib?action=diff&rev1=199&rev2=200

@Dirk Thomas I responded by updating OP.

Comment by Dirk Thomas on 2018-10-22:
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.

Comment by Dirk Thomas on 2018-10-22:
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).

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.