The final, formatted version of the article will be published soon.
ORIGINAL RESEARCH article
Front. Robot. AI
Sec. Computational Intelligence in Robotics
Volume 11 - 2024 |
doi: 10.3389/frobt.2024.1363443
EzSkiROS: Enhancing Robot Skill Composition with Embedded DSL for Early Error Detection
Provisionally accepted- 1 Lund University, Lund, Sweden
- 2 Chalmers University of Technology, Göteborg, Vastra Gotaland County, Sweden
When developing general-purpose robot software components, we often lack complete knowledge of the specific contexts in which they will be executed. This limits our ability to make predictions, including our ability to detect program bugs statically. Since running a robot is an expensive task, finding errors at runtime can prolong the debugging loop or even cause safety hazards. In this paper, we propose an approach to help developers catch these errors as soon as we have some context (typically at pre-launch time) with minimal additional effort.We use embedded Domain-Specific Language (DSL) techniques to enforce early checks. We describe design patterns suitable for robot programming and show how to use these design patterns for DSL embedding in Python, using two case studies on an open-source robot skill platform SkiROS2, designed for the composition of robot skills. These two case studies help us understand how to use DSL embedding on two abstraction levels: the high-level skill description that focuses on what the robot can do and under what circumstances, and the lower-level decision making and execution flow of tasks. Using our DSL EzSkiROS, we show how our design patterns enable robotics software platforms to detect bugs in the high-level contracts between the robot's capabilities and the robot's understanding of the world. We also apply the same techniques to detect bugs in the lower-level implementation code, such as writing behavior trees to control the robot's behavior based on its capabilities. We perform consistency checks during the code deployment phase, significantly earlier than the typical runtime checks. This enhances overall safety by identifying potential issues with the skill execution before they can impact robot behavior.An initial study with SkiROS2 developers shows that our DSL-based approach is useful for finding bugs early and thus improving the maintainability of code.
Keywords: embedded DSLs, robot skills, skill-based control platforms, Behavior Trees, DSL design patterns
Received: 30 Dec 2023; Accepted: 20 Sep 2024.
Copyright: © 2024 Rizwan, Reichenbach, Caldas, Mayr and Krueger. This is an open-access article distributed under the terms of the Creative Commons Attribution License (CC BY). The use, distribution or reproduction in other forums is permitted, provided the original author(s) or licensor are credited and that the original publication in this journal is cited, in accordance with accepted academic practice. No use, distribution or reproduction is permitted which does not comply with these terms.
* Correspondence:
Momina Rizwan, Lund University, Lund, Sweden
Christoph Reichenbach, Lund University, Lund, Sweden
Disclaimer: All claims expressed in this article are solely those of the authors and do not necessarily represent those of their affiliated organizations, or those of the publisher, the editors and the reviewers. Any product that may be evaluated in this article or claim that may be made by its manufacturer is not guaranteed or endorsed by the publisher.