An implementation of a behavior tree + hierarchical state machine hybrid.
Project description
Behavior_Machine
Copyright - Transportation, Bots, and Disability Lab, Carnegie Mellon University
Released under MIT License
This is an implementation of a hierarchical state machine but with additional behavior-tree like features (Sequential, Parallal, etc). Unlike behavior trees, the execution of each state is independent of the tick (A repeative signal generated from the root). The transition of the state are determined by the machine's tick but can be set at different levels
Illustrative Example:
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()
Documentation
You can view more detailed documentation by following this link
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file behavior_machine-0.4.0.tar.gz
.
File metadata
- Download URL: behavior_machine-0.4.0.tar.gz
- Upload date:
- Size: 20.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 20f35d10a688ce8df1fb9d2121ec70851fd91906026c101031cdab91c6f4588f |
|
MD5 | f6a9b6e5ce2cd2e0a1a6ead3d83b592e |
|
BLAKE2b-256 | e8b17dbdf476d5b7aa3d5a4317c7300bb03cb5e7c2840ad94b4eef19461b1ec8 |
File details
Details for the file behavior_machine-0.4.0-py3-none-any.whl
.
File metadata
- Download URL: behavior_machine-0.4.0-py3-none-any.whl
- Upload date:
- Size: 33.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | facc6b5e35c221a03236a830697d04edf0cf6613e26d881b15f4af4bead12365 |
|
MD5 | bdfc8745a79e700c7e43ed6412fed2f0 |
|
BLAKE2b-256 | bea9e993b1228d94473c3e00885fe01aa4701a782d8fb5eb2a356603bbf5a331 |