Skip to main content

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()

Example

Documentation

You can view more detailed documentation by following this link

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

behavior_machine-0.4.0.tar.gz (20.0 kB view details)

Uploaded Source

Built Distribution

behavior_machine-0.4.0-py3-none-any.whl (33.1 kB view details)

Uploaded Python 3

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

Hashes for behavior_machine-0.4.0.tar.gz
Algorithm Hash digest
SHA256 20f35d10a688ce8df1fb9d2121ec70851fd91906026c101031cdab91c6f4588f
MD5 f6a9b6e5ce2cd2e0a1a6ead3d83b592e
BLAKE2b-256 e8b17dbdf476d5b7aa3d5a4317c7300bb03cb5e7c2840ad94b4eef19461b1ec8

See more details on using hashes here.

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

Hashes for behavior_machine-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 facc6b5e35c221a03236a830697d04edf0cf6613e26d881b15f4af4bead12365
MD5 bdfc8745a79e700c7e43ed6412fed2f0
BLAKE2b-256 bea9e993b1228d94473c3e00885fe01aa4701a782d8fb5eb2a356603bbf5a331

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page