Behavior Tree Ticks, Status, and Control Flow¶
Source: Robotics_Book behavior-tree introduction chapter
Why This Matters¶
Behavior trees get easier to debug once you stop treating them as static XML and start treating them as a repeated tick-and-response loop. Most confusion about Nav2 trees comes from not understanding how RUNNING, SUCCESS, and FAILURE propagate through the tree over time.
Distilled Takeaways¶
- A behavior tree runs by repeatedly ticking the root node, not by executing the XML once.
- Each node should respond quickly with a status, even when the real-world action it represents takes longer.
- Control and decorator nodes matter because they decide how child status values shape the next tick.
- Leaf-node behavior only makes sense when you understand the control flow around it.
Practical Value¶
- Read BT logs as state transitions, not just as printed messages.
- Treat
RUNNINGas the normal representation of ongoing work, not as an error or half-failure. - Debug surprising tree behavior by tracing which node keeps getting ticked and why.
- Use this mental model before modifying retry, fallback, or recovery structure in Nav2.
Corroborating References¶
When to Read the Original Source¶
Go to the original chapter when you want a slower walkthrough of BT vocabulary, a concrete tick-by-tick example, and the intuition for why fast status returns are central to responsive robot behavior.