Enea,

SMACH is the recommended way to coordinate complex systems.  actions using actionlib are commonly used as states within SMACH.

actions are as you say very similar to services in their use but have more control and feedback.  SMACH is designed to work as a coordination engine, strongly based on a state machine.  SMACH has been designed that it is trivial to use an action as a state within a SMACH state machine.  Thus we use SMACH and actionlib at the same time.  

Tully

On Wed, Sep 15, 2010 at 5:52 AM, Enea Scioni <enea.scioni@student.unife.it> wrote:

HI all,

I'm following this topic but I'm also a bit confused..
In order to manage the whole system, composed as hundreds nodes, should I
use SMACH (instead actionlib)?
What is the " best practice " that ROS suggest? When should I use actionlib
and when SMACH?

Starting from the documentation (and my experiments), in a nutshell I see
actionlib more similar to a ROS Service, but with added features, as
possibilities to receive a feedback, delete the request and so on; to do
that actionlib use/implement an "internal" state machine in order to manage
the communication protocol on topic between the Action Server and Action
Client.
Is it true or I'm making a mistake?

Regards,
Enea Scioni
--
View this message in context: http://ros-users.122217.n3.nabble.com/actionlib-design-questions-tp1468507p1479561.html
Sent from the ROS-Users mailing list archive at Nabble.com.
_______________________________________________
ros-users mailing list
ros-users@code.ros.org
https://code.ros.org/mailman/listinfo/ros-users



--
Tully Foote
Systems Engineer
Willow Garage, Inc.
tfoote@willowgarage.com
(650) 475-2827