Behavior Trees for ROS2 — Part 1: Unlocking Advanced Robotic Decision-Making and Control

Jegathesan Shanmugam
10 min readMay 14, 2023

In the complex and fascinating world of robotics, Behavior Trees (BTs) have emerged as an integral part of decision-making processes. They provide a structured, modular, and efficient approach to programming a robot’s behavior. With roots in the video game industry where they were used to control non-player characters, BTs have found a home in robotics, where they excel at managing a myriad of tasks and conditions.

Robotic software like Nav2, used for robot navigation, and MoveIt, a manipulation framework, employ Behavior Trees to handle complex actions and conditions.

In this post, we’re going to explore Behavior Trees to understand them thoroughly. We’ll begin by breaking down the basic parts of Behavior Trees and gaining a clear understanding of how they work. Then, we’ll step into the practical realm, writing code to create and use Behavior Trees, independent of any specific platform or framework.

But we won’t stop there. Once we’ve mastered the basics, we’ll take it a step further by integrating our Behavior Trees with ROS2 (Robot Operating System 2), a flexible framework for writing robot software. This will demonstrate how Behavior Trees can be utilized in a real-world robotics context, enhancing the decision-making capabilities of our…

--

--

Jegathesan Shanmugam

Talks about #robotics, #computervision, and #embeddedsystems