Please ask about problems and questions regarding this tutorial on answers.ros.org. Don't forget to include in your question the link to this page, the versions of your OS & ROS, and also add appropriate tags. |
StateMachine容器
Description: 本教程教会你如何使用StateMachine容器.Tutorial Level: BEGINNER
Next Tutorial: Concurrence容器
创建状态机
首先加载状态机:
1 from smach import StateMachine
SMACH StateMachine也提供了一个状态接口,它的结果和用户数据交互必须在构造上指定
和SMACH状态接口类似,输入键和输出键是可选的。构造函数模板如下:
1 __init__(self, outcomes, input_keys=[], output_keys=[])
添加状态
当向状态机添加状态时,首先指定要添加状态的状态机。这可以通过使用Python的"with"语句完成。你可以把它想象成"opening"容器来构造。它创建了一个上下文,其中所有后续的add*调用都将应用于打开的容器。
例如,要将两个状态添加到一个名为"sm"的状态机,你可以编写以下内容:
上面的示例分别添加了"FOO"和"BAR"的两个状态,分别是"FooState"和"BarState"。静态添加方法有可选参数。添加方法的签名如下:
1 add(label, state, transitions=None, remapping=None)
有关转换的详细信息,请查看开始指南
有关映射的详细信息,请查看用户数据