Show EOL distros:
Package Summary
The smach_ros package contains extensions for the SMACH library to integrate it tightly with ROS. For example, SMACH-ROS can call ROS services, listen to ROS topics, and integrate with actionlib both as a client, and a provider of action servers. SMACH is a new library that takes advantage of very old concepts in order to quickly create robust robot behavior with maintainable and modular code.
- Author: Jonathan Bohren
- License: BSD
- Repository: ros-pkg
- Source: hg https://kforge.ros.org/smach/executive_smach
Package Summary
The smach_ros package contains extensions for the SMACH library to integrate it tightly with ROS. For example, SMACH-ROS can call ROS services, listen to ROS topics, and integrate with actionlib both as a client, and a provider of action servers. SMACH is a new library that takes advantage of very old concepts in order to quickly create robust robot behavior with maintainable and modular code.
- Author: Jonathan Bohren
- License: BSD
- Source: git https://github.com/ros/executive_smach.git (branch: executive_smach-1.0)
Package Summary
The smach_ros package contains extensions for the SMACH library to integrate it tightly with ROS. For example, SMACH-ROS can call ROS services, listen to ROS topics, and integrate with actionlib both as a client, and a provider of action servers. SMACH is a new library that takes advantage of very old concepts in order to quickly create robust robot behavior with maintainable and modular code.
- Author: Jonathan Bohren
- License: BSD
- Source: git https://github.com/ros/executive_smach.git (branch: fuerte-devel)
Package Summary
The smach_ros package contains extensions for the SMACH library to integrate it tightly with ROS. For example, SMACH-ROS can call ROS services, listen to ROS topics, and integrate with actionlib both as a client, and a provider of action servers. SMACH is a new library that takes advantage of very old concepts in order to quickly create robust robot behavior with maintainable and modular code.
- Maintainer: Jonathan Bohren <jbo AT jhu DOT edu>
- Author: Jonathan Bohren
- License: BSD
- Source: git https://github.com/ros/executive_smach.git (branch: groovy-devel)
Package Summary
The smach_ros package contains extensions for the SMACH library to integrate it tightly with ROS. For example, SMACH-ROS can call ROS services, listen to ROS topics, and integrate with actionlib both as a client, and a provider of action servers. SMACH is a new library that takes advantage of very old concepts in order to quickly create robust robot behavior with maintainable and modular code.
- Maintainer: Jonathan Bohren <jbo AT jhu DOT edu>
- Author: Jonathan Bohren
- License: BSD
Package Summary
The smach_ros package contains extensions for the SMACH library to integrate it tightly with ROS. For example, SMACH-ROS can call ROS services, listen to ROS topics, and integrate with actionlib both as a client, and a provider of action servers. SMACH is a new library that takes advantage of very old concepts in order to quickly create robust robot behavior with maintainable and modular code.
- Maintainer status: maintained
- Maintainer: Isaac I. Y. Saito <gm130s AT gmail DOT com>
- Author: Jonathan Bohren
- License: BSD
- Source: git https://github.com/ros/executive_smach.git (branch: indigo-devel)
Package Summary
The smach_ros package contains extensions for the SMACH library to integrate it tightly with ROS. For example, SMACH-ROS can call ROS services, listen to ROS topics, and integrate with actionlib both as a client, and a provider of action servers. SMACH is a new library that takes advantage of very old concepts in order to quickly create robust robot behavior with maintainable and modular code.
- Maintainer status: maintained
- Maintainer: Isaac I. Y. Saito <gm130s AT gmail DOT com>
- Author: Jonathan Bohren
- License: BSD
- Source: git https://github.com/ros/executive_smach.git (branch: indigo-devel)
Package Summary
The smach_ros package contains extensions for the SMACH library to integrate it tightly with ROS. For example, SMACH-ROS can call ROS services, listen to ROS topics, and integrate with actionlib both as a client, and a provider of action servers. SMACH is a new library that takes advantage of very old concepts in order to quickly create robust robot behavior with maintainable and modular code.
- Maintainer status: maintained
- Maintainer: Isaac I. Y. Saito <gm130s AT gmail DOT com>
- Author: Jonathan Bohren
- License: BSD
- Source: git https://github.com/ros/executive_smach.git (branch: indigo-devel)
Package Summary
The smach_ros package contains extensions for the SMACH library to integrate it tightly with ROS. For example, SMACH-ROS can call ROS services, listen to ROS topics, and integrate with actionlib both as a client, and a provider of action servers. SMACH is a new library that takes advantage of very old concepts in order to quickly create robust robot behavior with maintainable and modular code.
- Maintainer status: maintained
- Maintainer: Isaac I. Y. Saito <gm130s AT gmail DOT com>
- Author: Jonathan Bohren
- License: BSD
- Source: git https://github.com/ros/executive_smach.git (branch: indigo-devel)
Package Summary
The smach_ros package contains extensions for the SMACH library to integrate it tightly with ROS. For example, SMACH-ROS can call ROS services, listen to ROS topics, and integrate with actionlib both as a client, and a provider of action servers. SMACH is a new library that takes advantage of very old concepts in order to quickly create robust robot behavior with maintainable and modular code.
- Maintainer status: maintained
- Maintainer: Isaac I. Y. Saito <gm130s AT gmail DOT com>
- Author: Jonathan Bohren
- License: BSD
- Source: git https://github.com/ros/executive_smach.git (branch: indigo-devel)
Package Summary
The smach_ros package contains extensions for the SMACH library to integrate it tightly with ROS. For example, SMACH-ROS can call ROS services, listen to ROS topics, and integrate with actionlib both as a client, and a provider of action servers. SMACH is a new library that takes advantage of very old concepts in order to quickly create robust robot behavior with maintainable and modular code.
- Maintainer status: maintained
- Maintainer: Isaac I. Y. Saito <gm130s AT gmail DOT com>
- Author: Jonathan Bohren
- License: BSD
- Source: git https://github.com/ros/executive_smach.git (branch: noetic-devel)
Contents
ROS integration
For example, if you want to call an actionlib action from SMACH, you can of course write a generic state, which would look something like this:
   1   class ManualActionState(smach.State):
   2      def __init__(self, outcomes=['succeeded', 
   3                                   'aborted',
   4                                   'preempted']):
   5        self.action_client = SimpleActionClient('action_name',
   6                                                ActionType)
   7        self.action_client.wait_for_server()
   8 
   9      
  10      def execute(self, userdata):
  11        goal = ActionGoal()
  12        ret = self.action_client.send_goal_and_wait
  13        if ret == ActionStatus.SUCCEEDED:
  14           return 'succeeded'
  15        elif ret == ActionStatus.PREEMPTED:
  16           return 'preempted'
  17        elif ret == ActionStatus.ABORTED:
  18           return 'aborted' 
  19 
  20 
  21 sm = StateMachine(['succeeded','aborted','preempted'])
  22 with sm:
  23     smach.StateMachine.add('TRIGGER_GRIPPER',
  24                            ManualActionState(),
  25                            rransitions={'succeeded':'APPROACH_PLUG'})
But you can call that same action with much less coding, using the SimpleActionState:
SMACH ROS offers the same type of support for ROS services and ROS topics. For more details take a look at the tutorials.
