A curated list of awesome tools, libraries and resources for deliberation in ROS 2.
Deliberation is the topmost layer in a robotics architecture sometimes also called mission or planning layer. It aims at controlling the robots behavior towards its extended goal or function. This includes pre-programmed state machines, automated symbolic planning as well as behavioral reaction to unforeseen situations happening at runtime.
- BehaviorTree.cpp - Implementation of behavior trees in C++.
- FlexBE - State machine implementation with web-based GUI.
- MERLIN2 - PDDL Planner.
- MoveIt Studio - ROS 2 based commercial software that uses behavior trees and MoveIt / MoveIt Task Constructor.
- MoveIt Task Constructor - MoveIt add-on package that performs skeleton-based task and motion planning.
- PlanSys2 - PDDL Planner.
- SkiROS2 - Skill-based framework executing PDDL plans as behavior trees.
- SMACC2 - State machine implementation in C++.
- YASMIN - State machine implementation for C++ and Python.
- PDDLStream - Python based package for integrated task and motion planning (TAMP).
- pyrobosim - ROS 2 enabled 2D mobile robot simulator for behavior prototyping.
- BehaviorTree.CPP 4.0. What is new and roadmap - Davide Faconti, Picknik @ ROScon 2022 (slides).
- Behavior Trees for Home Service Robotics Tasks - Sebastian Castro, PickNik Robotics @ Behavior Trees in Robotics Seminar.
- JdeRobot VisualStates: Visual tool for generating automata based robot behaviors - Okan Asik, JdeRobot @ ROScon 2018 Lightning Talks (repo).
- PackML2: State Machine Based System Programming, Monitoring and Control in ROS2 - Dejanira Araiza-Illan, ROS-Industrial Consortium Asia Pacific @ ROScon 2019 (slides).
- SMACC2, an open-source, event-driven, asynchronous, behavioral state machine library for ROS2 applications written in C++ - Brett Aldrich, ROBOSOFT AI @ ROScon 2021.
- System Modes - model-based run-time state management of large systems - Ralph Lange, Bosch Research @ ROScon 2022 (slides).
- Optimized Execution of PDDL Plans using Behavior Trees - Francisco MartĂn et. al.
- Integrated Task and Motion Planning in Robotics - Sebastian Castro, 2022.
- Introduction to Behavior Trees - Sebastian Castro, 2021.
- Task Planning in Robotics - Sebastian Castro, 2022.
- Can One Person Make Two Powerful Tools for the Robotics Community? - With Davide Faconti, author of BehaviorTree.CPP.
- ROS Plan - RDP 047 with Gerard Canal and Michael Cashmore.
- State Machines for Complex Robot Behavior - With Brett Aldrich, author of SMACC2.
- Towards Assured Robot Autonomy with ROS - RDP 100 with Patrick Musau.
- Simulation of Robot using Behavior Tree - MOOD2BE, part of Robmosys.
- TurtleBot 3 Behavior Demos - Examples of behavior trees for navigation actions in C++ and Python.