Robot Operating System (ROS) Introspective Implementation of High-Level Task Controllers


In this work, we describe a streamlined process for transforming high-level task specifications into executing programs created with the Robot Operating System (ROS). We leverage both the recent advances in automatic synthesis of correct-by-construction controllers from high-level specifications and the vast availability and functionality of ROS packages. We show how the subscribe-publish paradigm of ROS fits well with the input-output framework of correct-by-construction controllers. With this framework, we automatically detect undesirable behaviors and failures related to the mapping between a correct-by-construction controller and
ROS nodes and we automatically provide feedback to the user in the form of suggested changes to the specification when possible faults are detected. We demonstrate our approach with examples involving both single-robot and multi-robot scenarios.