Skip to content

Releases: CMU-TBD/behavior_machine

v0.4.0

17 Feb 03:41
2110c7a
Compare
Choose a tag to compare

[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 in State 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. Enable AtLeastOneState 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

15 Jun 22:07
d7081bd
Compare
Choose a tag to compare

[0.3.5] - 2021-06-15

  • [Added] SelectorState and SequentialState now has a flowout value which is from the last succcess 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 are tick() before they are set/initialized.

v0.3.4 - Visualization of Machine

30 May 03:32
478c007
Compare
Choose a tag to compare

[0.3.4] - 2021-05-24

  • [Added] Added example of the visualization on first page.
  • [Added] behavior_machine.visualization which has function visualize_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

03 May 21:45
70e7b5e
Compare
Choose a tag to compare

[0.3.3] - 2021-05-03

  • [Added] SaveFlowState, SetFlowFromBoardState,SetBoardState,GetBoardState and SetFlowState. Three states that help with board access.
  • [Added] Tests for the three flow access states.

v0.3.2 - AtLeastOneState

29 Apr 21:04
32de8ba
Compare
Choose a tag to compare

[0.3.2] - 2021-04-16

  • [Added] AtLeastOneState that ends when one of its children states completes (all are run parallely) and return success.

v0.3.1 - SelectorState

16 Apr 02:29
Compare
Choose a tag to compare

[0.3.1] - 2021-04-15

  • [Added] Added SelectorState that mimics Selector in behavior trees. The state run the children in order until one of them returns success.
  • [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 replace checkName and check_status replace checkStatus. The old code redirects to the new functions but throws depreciating warnings.
  • [Fixed] linting problems throughout the program.

v0.3.0 - Flow

07 Apr 18:52
Compare
Choose a tag to compare
  • [Added] The flow machenism that allows you to push information from the current state directly to the next state. The variable self.flow_in contains the information from the previous state and you set self.flow_out to hold information that goes to the next state. The flow is not carried over unless specified by the state. For machine,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 in core instead of it's own namespace.
  • [Added] Other tests that check for consistency of implementation.

v0.2.4

26 Mar 01:17
639e692
Compare
Choose a tag to compare

[0.2.4] - 2021-03-25

  • [Added] Ability to load a python dictionary straight into the board. board.load
  • [Added] A shorthand method to transition when the run_thread is done.
  • [Added] is_interrupted for states to check if it is being interrupted.

v0.2.3

26 Jan 03:36
fc284ab
Compare
Choose a tag to compare

[0.2.3] - 2021-01-25

  • [Fixed] Changed isAlive to is_alive -- by Schwarzbaer
  • [Changed] Change the logging framework to use the python built-in-logger.
  • [Fixed] Typo of EXCEPTIION
  • [Changed] Minor tweaks to tests.

v0.2.2

30 Jul 15:22
51c0b8d
Compare
Choose a tag to compare

[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.