Releases: CMU-TBD/behavior_machine
Releases · CMU-TBD/behavior_machine
v0.4.0
[0.4.0] - 2022-02-16
- [Added]
RandomPickState
which randomly pick one of the children to be executed. All children has uniform probability being picked. - [Added] added
get_status
method inState
which return the status of the State. - [Changed] name for
State
is now optional, the default is its class name. - [Changed] streamlined
ParallelState
to prevent potential interrupt race issues. EnableAtLeastOneState
to overwrite two function for its functionality. - [Changed]
ParallelState
now ignores empty/None States if passed in as children. - [Fixed] condition in
AtLeastOneState
where other states aren't destroyed when exiting under success condition.
v0.3.5 - Flow Out in Selector/Sequential
[0.3.5] - 2021-06-15
- [Added]
SelectorState
andSequentialState
now has a flowout value which is from the lastsucccess
state, None otherwise. - [Changed]
add_transition_on_complete
now has option to not ignore exceptions (default is always not). - [Fixed] race condition in
SequentialState
where the internal states aretick()
before they are set/initialized.
v0.3.4 - Visualization of Machine
[0.3.4] - 2021-05-24
- [Added] Added example of the visualization on first page.
- [Added]
behavior_machine.visualization
which has functionvisualize_behavior_machine
that can visualize any machine and it's subcomponents. - [Added] Shorthand transition to transition after certain time.
- [Added] Examples and tests of visualization under the folder
viz_test
- [Fixed] Machine now only waits for the remaining time instead of always waiting the fixed amount. Also Fixed tests with weird behavior about the waiting.
- [Fixed] Possible bug where Atleast returns result due to race condition.
- [Fixed] bug where interrupts crashs the application if called before the state starts.
- [Fixed] bug in test where sometimes states completed way too fast.
v0.3.3 - Access State
[0.3.3] - 2021-05-03
- [Added]
SaveFlowState
,SetFlowFromBoardState
,SetBoardState
,GetBoardState
andSetFlowState
. Three states that help with board access. - [Added] Tests for the three flow access states.
v0.3.2 - AtLeastOneState
[0.3.2] - 2021-04-16
- [Added]
AtLeastOneState
that ends when one of its children states completes (all are run parallely) and returnsuccess
.
v0.3.1 - SelectorState
[0.3.1] - 2021-04-15
- [Added] Added
SelectorState
that mimicsSelector
in behavior trees. The state run the children in order until one of them returnssuccess
. - [Added] debugging function
get_debug_name
that returns a string with name + type to help debugging and loggin. - [Added] More tests for different edge cases around transitions when reusing nodes.
- [Changed]
check_name
replacecheckName
andcheck_status
replacecheckStatus
. The old code redirects to the new functions but throws depreciating warnings. - [Fixed] linting problems throughout the program.
v0.3.0 - Flow
- [Added] The
flow
machenism that allows you to push information from the current state directly to the next state. The variableself.flow_in
contains the information from the previous state and you setself.flow_out
to hold information that goes to the next state. The flow is not carried over unless specified by the state. Formachine
,sequential states
,flow
are passed into low-level states. - [Changed] Restructure the code, such that core is in a sperate module instead of using the same file.
Board
is now incore
instead of it's own namespace. - [Added] Other tests that check for consistency of implementation.
v0.2.4
v0.2.3
v0.2.2
[0.2.2] - 2020-07-30
- [Added] Boards can now check if a key already exist using the
exist
method. - [Added] You can specify whether a deep copy or shallow copy of an object is saved in the board using the
deep_copy
flag in the set/get methods. By default, the flag is set to true. - [Added] Additional tests to check the new board functionalities and validate end state runs completely before the machine consider it complete.