hsm
C++ framework library to simplify state-driven code (by amaiorano)
BehaviorTree.CPP
Behavior Trees Library in C++. Batteries included. (by BehaviorTree)
Our great sponsors
hsm | BehaviorTree.CPP | |
---|---|---|
1 | 4 | |
106 | 2,690 | |
- | 4.5% | |
0.0 | 9.3 | |
over 2 years ago | 1 day ago | |
C++ | C++ | |
MIT License | MIT License |
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
hsm
Posts with mentions or reviews of hsm.
We have used some of these posts to build our list of alternatives
and similar projects.
-
Is it ok to have state-wide conditions in a Finite State Machine? Or does that defeat the purpose?
Finally you can make a more complete Hierarchical (or Nested) State Machine, which allows you to have states within states. This is what we've done in several games I've worked on. This can allow reusing states in multiple contexts, such as being in an Idle state that pushes a Targeting state, or in a Running state that also pushes the Targeting state. You are then considered in all of the states on your state stack. This is tricky to implement right though and needs careful design, but used correctly can be extremely powerful. I'm aware of a C++ HSM library that I can recommend ( https://github.com/amaiorano/hsm ), but there's probably other good ones out there.
BehaviorTree.CPP
Posts with mentions or reviews of BehaviorTree.CPP.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-06-22.
- Coroutines make robot code easy for high schoolers
-
ROS2 task/schedule/statemachine discussion
Have a look at Behavior Trees, especially the BehaviorTreeCpp library https://www.behaviortree.dev The method is simple to understand, scales better than State Machines and if you implement the actions well they’re inherently modular. Nav2 uses them, and also BostonDynamics in their Spot SDK.
-
Facts about State Machines
Unrelated to javascript, but in the robotics industry there is a trend towards Behaviour Trees. https://www.behaviortree.dev/ is a C++ library that was originally designed for controlling robots via ROS, but it appears to be decoupled from the ROS ecosystem so it could be used for other projects.
There is a basic UI available for editing the tree https://github.com/BehaviorTree/Groot
- BehaviorTree.CPP: C++ behavior tree library, batteries included