py_trees
py_trees copied to clipboard
Python implementation of behaviour trees.
All Composite classes have logic inside their tick() function which calls self.update() before iterating through children and calling tick() on them. The return value for the call to self.update() is...
`Composite(behaviour.Behaviour)` should be implemented as an abstract (ABC) class. Users will confuse this as a valid type of `composite` when setting up a pytree (and end up getting `INVALID` state...
What do you think about the generating trees by parsing yaml file. something like ``` root: name: Reality type: composites.Parallel children: child_a child_a: name: My Timer type: timer.Timer duration: 5.0...
https://github.com/splintered-reality/py_trees/blob/devel/py_trees/composites.py#L778 ``` # clean up dangling (running) children for child in self.children: if child.status == common.Status.RUNNING: # this unfortunately knocks out it's running status for introspection # but logically is...
File "C:\Users\Darley\miniconda3\envs\antisubmarine\lib\site-packages\py_trees\display.py", line 661, in render_dot_tree writer(pathname) File "C:\Users\Darley\miniconda3\envs\antisubmarine\lib\site-packages\pydot\core.py", line 1660, in write f.write(s) UnicodeEncodeError: 'gbk' codec can't encode character '\u24c2' in position 289: illegal multibyte sequence
https://github.com/splintered-reality/py_trees/blob/0d5b39f2f6333c504406d8a63052c456c6bd1ce5/py_trees/decorators.py#L281 ```python else: # SUCCESS self.feedback_message = ( f"succeeded [status: {self.failures} failure from {self.num_failures}]" ) return common.Status.SUCCESS ``` This causes the Retry decorator to return SUCCESS when the child's status...
The Python type system considers `typing.List` to be mutable, and thus invariant on its child type. This doesn't let us pass `Behaviour` subclasses to composites through the `children` parameter, forcing...
Dear PyTrees-Team, in line 59 of timers.py (https://github.com/splintered-reality/py_trees/blob/devel/py_trees/timers.py#L59) the error message suggests, that the input can be of type float OR int, while the actual check only accepts type float....