一种行为树+层次状态机混合体的实现。
behavior-machine的Python项目详细描述
行为机器
版权所有-卡内基梅隆大学交通、机器人和残疾实验室
在麻省理工学院许可下发布
这是一个分层状态机的实现,但是具有额外的类似行为树的特性(顺序、视差等)。与行为树不同,每个状态的执行独立于tick(从根生成的重复信号)。状态的转换由机器的滴答声决定,但可以在不同的级别进行设置
示例:
from behavior_machine.core import State, Machine
from behavior_machine.library import PrintState, SequentialState, IdleState
ps1 = PrintState("ps1", "Hello World 1")
ps2 = PrintState("ps2", "Hello World 2")
is1 = IdleState("is1")
ps3 = PrintState("ps3", "Hello World 3")
ss = SequentialState("ss", children=[ps1, ps2])
ss.add_transition_on_success(ps3)
m1 = Machine("m1", ss, rate=10)
m1.add_transition(lambda state, board: state._curr_state._name == "ps3", is1)
m2 = Machine("m2", m1, end_state_ids=['is1'], rate=10)
m2.run()
- 项目
标签: