ROSpec: A Domain-Specific Language for ROS-Based Robot Software
Paulo Canelas, Bradley R. Schmerl, Alcides Fonseca, Christopher Steven Timperley
Abstract
Component-based robot software frameworks, such as the Robot Operating System (ROS), allow developers to quickly compose and execute systems by focusing on configuring and integrating reusable, off-the-shelf components. However, these components often lack documentation on how to configure and integrate them correctly. Even when documentation exists, its natural language specifications are not enforced, resulting in misconfigurations that lead to unpredictable and potentially dangerous robot behaviors. In this work, we introduce ROSpec, a ROS-tailored domain-specific language designed to specify and verify component configurations and their integration. ROSpec’s design is grounded in ROS domain concepts and informed by a prior empirical study on misconfigurations, allowing the language to provide a usable and expressive way of specifying and detecting misconfigurations. At a high level, ROSpec verifies the correctness of argument and component configurations, ensures the correct integration of components by checking their communication properties, and checks if configurations respect the assumptions and constraints of their deployment context. We demonstrate ROSpec’s ability to specify and verify components by modeling a medium-sized warehouse robot with 19 components, and by manually analyzing, categorizing, and implementing partial specifications for components from a dataset of 182 misconfiguration questions extracted from a robotics Q&A platform.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext eb3723c9-a879-4f52-a42c-07952f12f606Cited by top-tier papers1
Ask how each one uses itBuilds on13
- Grammar Prompting for Domain-Specific Language Generation with Large Language ModelsBailin Wang, Zi Wang, Xuezhi Wang, Yuan Cao et al.NeurIPS 2023 · 138 citations
- Robotics software engineering: a perspective from the service robotics domainSergio García, Daniel Strüber, Davide Brugali, Thorsten Berger et al.FSE 2020 · 76 citations
- Test-case prioritization for configuration testingRunxiang Cheng, Lingming Zhang, Darko Marinov, Tianyin XuISSTA 2021 · 34 citations
- Static detection of silent misconfigurations with deep interaction analysisJialu Zhang, Ruzica Piskac, Ennan Zhai, Tianyin XuOOPSLA 2021 · 30 citations
- Flux: Liquid Types for RustNico Lehmann, Adam T. Geller, Niki Vazou, Ranjit JhalaPLDI 2023 · 29 citations
Related papers
- Understanding Misconfigurations in ROS: An Empirical Study and Current ApproachesPaulo Canelas, Bradley R. Schmerl, Alcides Fonseca, Christopher Steven TimperleyISSTA 2024 · 2 citations
- ROSCallBaX: Statically Detecting Inconsistencies in Callback Function Setup of Robotic SystemsSayali Kate, Yifei Gao, Shiwei Feng, Xiangyu ZhangFSE 2025 · 2 citations
- Koord: a language for programming and verifying distributed robotics applicationRitwika Ghosh, Chiao Hsieh, Sasa Misailovic, Sayan MitraOOPSLA 2020 · 17 citations
- ROSInfer: Statically Inferring Behavioral Component Models for ROS-based Robotics SystemsTobias Dürschmid, Christopher Steven Timperley, David Garlan, Claire Le GouesICSE 2024 · 3 citations
- RoboFuzz: fuzzing robotic systems over robot operating system (ROS) for finding correctness bugsSeulbae Kim, Taesoo KimFSE 2022 · 32 citations
