From 91fec9061eb40e6a89ad1acb03b3b7cf84907e97 Mon Sep 17 00:00:00 2001 From: Piotr Spieker Date: Tue, 11 Feb 2025 16:26:00 +0100 Subject: [PATCH] DRAFT: Add comparison to behavior trees --- README.md | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/README.md b/README.md index 7f869c4..99f444e 100644 --- a/README.md +++ b/README.md @@ -37,6 +37,41 @@ +
+🤨 How does it compare to Behavior Trees? + +Behavior Trees (BTs) are great for a variety of applications and strive with a vivid community! +Kudos to [Petter Ögren's](https://www.kth.se/profile/petter/) crew, [Michele Colledanchise](https://miccol.github.io/behaviortrees/) and [Davide Faconti](https://github.com/facontidavide) 🖖 + +But, Arbitration Graphs bring great value, especially for safety critical applications like self-driving cars and mobile robots in general – by strictly coupling preconditions to behaviors and tightly integrating behavior verification. +A bit more in detail: + +- **Return Type / Interfaces** + BT nodes return execution status, while behavior components in arbitration graphs return commands. + While the former adds more flexibility to each node's actuator interfaces, + the latter focuses on a control theory motivated interface ${f(\boldsymbol{x}) \to \boldsymbol{u}}$ + allowing the command to be verified by each arbitrator before executing it in a down-stream module. +- **Preconditions** + In BTs, preconditions are implemented by condition nodes distributed throughout the tree. + In contrast, arbitration graphs require behavior components to define their own preconditions. + This tight coupling makes robustness and safety less dependent on the node arrangement. +- **Safety** + BTs rely on each node to decide on its success or failure, + which can lead to safety and reliability issues if not carefully managed. + Arbitration graphs, as enhanced in this paper, integrate safety into the selection mechanism, + using node-independent verifiers. + This functional decomposition reduces the burden on behavior engineers and + allows an easy integration of unsafe, e.g.\ learning-based, behavior components. + +| | Behavior Trees | Arbitration Graphs | +| ----------------- | ------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **Interfaces** | Nodes return execution status.
⏵ more flexibility w.r.t. a node's actuator interfaces | Behavior components & arbitrators return commands.
⏵ control theory motivated interface ${f(\boldsymbol{x}) \to \boldsymbol{u}}$
⏵ command can be verified by each arbitrator | +| **Preconditions** | Implemented by condition nodes distributed throughout the tree.
⏵ easy to reuse preconditions for multiple behaviors | Require behavior components to define their own preconditions.
⏵ tight coupling of preconditions to behaviors
⏵ robustness and safety less dependent on node arrangement | +| **Safety** | Each node decides on its success or failure.
⏵ can lead to safety and reliability issues, if not carefully managed. | Integrate safety into the selection mechanism, using node-independent verifiers.
⏵ reduces the burden on behavior engineers
⏵ allows an easy integration of unsafe behavior components (ML, probabilistic, …) | + +
+ + ## Demo We provide a demo of this library using Pac-Man as an example application.