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. For an introduction to robot deliberation, refer to Ingrand and Ghallab (2017).
- CoSTAR Stack - A collaborative system for task automation and recognition.
- MERLIN2 - PDDL planning and execution framework, using Python and state machines.
- MoveIt Task Constructor - MoveIt add-on package that performs skeleton-based task and motion planning.
- PlanSys2 - PDDL planning and execution framework, using C++ and behavior trees.
- SkiROS2 - Skill-based platform with behavior trees, PDDL task-planning and knowledge integration.
- UP4ROS2 - ROS 2 wrapper for the AIPlan4EU Unified Planning library.
- BehaviorTree.ROS2 - ROS 2 wrapper for BehaviorTree.CPP, an implementation of behavior trees in C++.
- BT Studio - A web IDE for development of behavior trees. Uses PyTrees internally, but leverages the XML representation in BehaviorTree.CPP to define trees.
- FlexBE - State machine implementation with web-based GUI.
- PyTrees ROS - ROS 2 wrapper for the PyTrees behavior tree library.
- ros_bt_py - ROS 2 and Python based library for behavior trees, with a ReactJS based web GUI.
- SMACC2 - State machine implementation in C++.
- YASMIN - State machine implementation for C++ and Python.
- MoveIt Pro - ROS 2 based commercial software that uses BehaviorTree.CPP and MoveIt.
- NEXUS - A ROS 2 framework for orchestrating industrial robotic lines and cells.
- pyrobosim - ROS 2 enabled 2D mobile robot simulator for behavior prototyping.
- rmf_task - Composable task definitions and multi-robot task allocation (MRTA) planner in C++.
- 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.
- Hands-On with ROS 2 Deliberation Technologies - Workshop presented at ROSCon 2024, organized by the ROS Deliberation Community Group.
- 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.