BeTFSM logo
 
Behavior Trees & Finite State Machines for Robotics

Introduction

BeTFSM is a library for "ticking" statemachines and behavior trees. In this unified framework, discrete tasks can be specified with the modularity of behavior trees and at the lower-level precise interaction can be specified using state machines. It targets discrete coordination of robotic systems at both high- and low level.

It consists of multiple packages:

  • betfsm contains the core library, only dependent on python packages, e.g. the implementation of a set of state machines and behavior tree nodes, such as Sequence, Fallback, Repeat, ConcurrentSequence, ...
  • betfsm_ros contains facilities to use BeTFSM on ROS2, e.g. managing timing using ROS2, calling services, calling actions, ...
  • betfsm_crospi contains facilities to use BeTFSM with cROSpi, e.g. communicating with cROSpi over ROS2, managing the lifecycle of a task, sending over parameters to a cROSpi task, ...

In this documentation, you will find the following:

The source of BeTFSM can be found at the following github side.

Published under the GNU LESSER GENERAL PUBLIC LICENSE Version 3, 29 June 2007.

(c) 2024-2026, Erwin Aertbeliën, contributions of Federico Ulloa Rios and Santiago Iregui Rincon

KU Leuven, Department of Mechanical Engineering, ROB-Group. The ROB Group is part of core labs M&A and MPRO of Flanders Make.