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++.
- CoSTAR Stack - A collaborative system for task automation and recognition.
- 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.
- NEXUS - A ROS 2 framework for orchestrating industrial robotic lines and cells.
- PlanSys2 - PDDL Planner.
- SkiROS2 - Skill-based platform with behavior trees, PDDL task-planning and knowledge integration.
- rmf_task - Composable task definitions and multi-robot task allocation (MRTA) planner in C++.
- 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.
- UP4ROS2 - ROS 2 wrapper for the AIPlan4EU Unified Planning library.
- 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.
- How custom tasks are defined, assigned, and executed in Open-RMF - M. Grey & Yadunund Vijay, Open Robotics @ ROSCon 2022 (slides)
- JdeRobot VisualStates: Visual tool for generating automata based robot behaviors - Okan Asik, JdeRobot @ ROScon 2018 Lightning Talks (repo).
- NEXUS: A ROS 2 framework for orchestrating industrial robotic lines and cells - Dejanira Araiza-Illan, Johnson & Johnson @ ROSCon 2023 (slides).
- 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).
- CoSTAR: Instructing collaborative robots with behavior trees and vision - Chris Paxton et al.
- Extended behavior trees for quick definition of flexible robotic tasks - Francesco Rovida et al.
- KnowRob: A knowledge processing infrastructure for cognition-enabled robots - Moritz Tenorth et al.
- Optimized Execution of PDDL Plans using Behavior Trees - Francisco Martín et al.
- Robotic Systems Architectures and Programming in the Handbook of robotics - David Kortenkamp, Bruno Siciliano et al.
- SkiROS—A Skill-Based Robot Control Platform on Top of ROS - Francesco Rovida et al. (SkiROS is superseeded by SkiROS2)
- 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.
- CoSTAR: Instructing Collaborative Robots with Behavior Trees and Vision - CoSTAR demos like sanding, pick & place and robot instruction.
- Dual-arm Piston Insertion - Piston insertion with kinesthetic teaching, vision, task adaption & knowledge integration.
- Robot Household Marathon: EASE Generative Models of Everyday Activity - Setting a table with a PR2.
- 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.