示例#1
0
{% from "Utils.tpl.py" import render_transitions, render_remapping %}

{% block class_defs %}
# define state Bar
class Bar(smach.State):
    def __init__(self):
        smach.State.__init__(self, 
                             outcomes=['outcome1']{% if remapping is defined %},
                             input_keys=['bar_counter_in']{% endif %})

    def execute(self, userdata):
        rospy.loginfo('Executing state {{ name }}'){% if remapping is defined %}
        rospy.loginfo('Counter = %f'%userdata.bar_counter_in){% endif %} 
        return 'outcome1'
{% endblock class_defs %}

{% block body %}
smach.{{ parent_type }}.add('{{ name }}', Bar(){% if transitions is defined %}, 
{{ render_transitions(transitions) }}{% endif %}{% if remapping is defined %},
{{ render_remapping(remapping) }}{% endif %})
{% endblock body %}
示例#2
0
{% from "Utils.tpl.py" import render_transitions %}

{% block class_defs %}
# define state Bas
class Bas(smach.State):
    def __init__(self):
        smach.State.__init__(self, outcomes=['outcome3'])

    def execute(self, userdata):
        print('Executing state {{ name }}')
        return 'outcome3'
{% endblock class_defs %}

{% block body %}
smach.{{ parent_type }}.add('{{ name }}', Bas(),
{{ render_transitions(transitions) }})
{% endblock body %}
示例#3
0
{% extends "State.tpl.py" %}

{% block imports %}
{{ super() }}
{{ import_module(defined_headers, 'rospy') }}
{% endblock imports %}

{% block class_defs %}
{{ super() }}
{% if 'class_SleepState' not in defined_headers %}
class SleepState(smach.State):
    def __init__(self, time, input_keys = [], output_keys = [], callbacks = [], outcomes=['succeeded']):
        smach.State.__init__(self, input_keys=input_keys, output_keys=output_keys, outcomes=outcomes)

        self._time = time

    def execute(self, userdata):

        rospy.sleep(self._time)

        return 'succeeded'
{% do defined_headers.append('class_SleepState') %}{% endif %}
{% endblock class_defs %}

{% block body %}
smach.{{ parent_type }}.add('{{ name }}',
        {{ '' | indent(23, true) }}SleepState({{ time }}){% if transitions is defined %},
{{ render_transitions(transitions) }}{% endif %})
{% endblock body %}