Behavior Trees for ROS2 Course - C++

Learn to use Behavior Trees in ROS2.

Behavior Trees for ROS2 course

Course Summary

Understand the concept of the Behavior Trees framework. Learn how to use the Behavior Trees framework in practice and how to apply them with ROS2.

What you will learn

The course is dedicated to robot enthusiasts and all the others who would like to stay abreast of current robotics development. During the course, you are going to learn about: 1. Behaviour Trees as a new abstraction layer in the software robotics stack. 2. Learn about the mechanisms and design principles of the Behavior Trees framework. 3. You will receive practical skills to use BehaviorTree.CPP framework together with ROS2 (architect the robot behavior). 4. You will learn the advanced mechanisms of BehaviorTree.CPP framework (stochastic behavior) and automated planning.

Course Overview

Introduction to the Course

This unit is an introduction to the Behavior Trees in ROS2 course. You will have a quick preview of the contents to be covered in the course and a practical demo.

Introduction to Behavior Trees

In this unit of the course, you are going to understand the Behavior Tree concept and simplified software architecture which can be accommodated into the ROS2 framework. You are going also to discuss the fundamental mechanisms of BTs.

Design principles of Behavior Trees

This unit will provide you a deep understanding of BT architecture and the mechanisms that allow architecting the logical connections of robot behaviors.

Integration of Behavior Trees with ROS2

In this unit, we are going to dive into the BehaviorTree.CPP library as a framework that allows the integration of Behavior Trees with ROS2.

Stochastic behavior trees and automated planning

This unit introduces the probabilistic behavior of nodes and gives you a general overview of how to incorporate automated planning (architecture changes) into Behavior Trees.

Final Project

Final challenge of the course, that will test everything you've learned during the course.


Markus Buchholz

PhD in Robotics and M.Sc in Electronics and Computer Science and in Economics. His main passion is programming (C++, Python) the Autonomous Systems by use of AI, Deep Learning and Reinforcement Learning.

Markus Buchholz

Robots used

TurtleBot 3 robot

TurtleBot 3 robot

Learning Path


Main Links