Overcoming Pitfalls in Behavior Tree Design


Behavior trees are increasingly used to allow large software teams to collaborate on complex agent behaviors, but there are a few key choices in their implementation which can either make them much harder to architect than they need to be - or much more flexible, easy to extend, and easy to reuse. Anthony Francis got his start in AI implementing task architectures much like behavior trees, execpt before they were cool, and in this article he describes some of the tricks needed to apply behavior trees to robotic systems, including a few C++ template tricks that made the system much more extensible.