0
$\begingroup$

Rosanswers logo

I find the notion of action server "limited" to one goal rather restrictive... Is it possible to have a process with more than one action server?

For example, imagine that your have a process handling a particular "functionality" on your robot, and you want this process to handle different types of action goals (which need to execute in the same memory space). Could it be possible to define multiple action server in this process, or there will be some problems (such as reentrance, etc).

Of course, you could define a "meta" goal and use one of its arguments to define which underlying action/goal to execute.


Originally posted by felix on ROS Answers with karma: 71 on 2011-04-19

Post score: 4

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

I find the notion of action server "limited" to one goal rather restrictive... Is it possible to have a process with more than one action server?

There is a difference between limitation to one goal and limitation to one action server.

  • There is no limit to how many action servers a node can have. It is perfectly possible to have one ROS node with multiple action servers; just pass them different topic names on creation.
  • Each SimpleActionServer is limited to one goal; whenever there is a new incoming goal, the currently pending goal is cancelled. This behaviour is a simplification of the actionlib API which catches most use cases.
  • If you want to have a more sophisticated handling of goals, you are free to do so using the actionlib API directly (without the SimpleActionServer). You could have multiple goals executing in parallel, queue goals, and generally do whatever you want.

Just a side remark: if you have separate functionalities which you would ordinarily implement as separate ROS nodes, but which have to run in the same process for technical reasons, you could consider implementing them as nodelets.


Originally posted by Martin Günther with karma: 11816 on 2011-04-19

This answer was ACCEPTED on the original site

Post score: 9


Original comments

Comment by nickcking on 2017-02-14:
Thanks! this is very clear and useful.

$\endgroup$

Your Answer

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