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.
- 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.
- BehaviorTree.CPP 4.0. What is new and roadmap - Davide Faconti, Picknik @ ROScon 2022 (slides).
- System Modes - model-based run-time state management of large systems - Ralph Lange, Bosch Research @ ROScon 2022 (slides).
- SMACC2, an open-source, event-driven, asynchronous, behavioral state machine library for ROS2 applications written in C++ - Brett Aldrich, ROBOSOFT AI @ ROScon 2021.
- PackML2: State Machine Based System Programming, Monitoring and Control in ROS2 - Dejanira Araiza-Illan, ROS-Industrial Consortium Asia Pacific @ ROScon 2019 (slides).
- JdeRobot VisualStates: Visual tool for generating automata based robot behaviors - Okan Asik, JdeRobot @ ROScon 2018 Lightning Talks (repo).
- Optimized Execution of PDDL Plans using Behavior Trees - Francisco Martín et. al.
- State Machines for Complex Robot Behavior - With Brett Aldrich, author of SMACC2.
- Simulation of Robot using Behavior Tree - MOOD2BE, part of Robmosys.