FeatX: Controlled Robot Configuration with Flexible Feature Binding
Jude Gyimah, Henriette Knopp, Thorsten Berger, Patrizio Pelliccione
AI summary
Problem
Robotic systems require flexible configuration and runtime reconfiguration to adapt to changing environments and hardware, but existing mechanisms are fragmented, lack expressiveness for dependencies, and fail to consistently enforce binding times and modes, leading to misconfigurations and unsafe behavior.
Approach
FeatX extends traditional feature models with a domain-specific language to centrally declare features, dependencies, and allowed binding times and modes, paired with a configurator tool that validates and enforces correct configuration and reconfiguration.
Key results
- A DSL extending feature models to specify features, dependencies, and binding modalities
- Formal syntax and semantics for the DSL and configurator enforcement logic
- A ROS2-integrated prototype via ros2cli supporting configuration and reconfiguration
- Evaluation on realistic reconfiguration scenarios including a Gazebo-simulated warehouse case study
Why it matters
Provides roboticists and developers with a centralized, formally defined method to safely manage complex feature dependencies and dynamic binding, preventing system failures during robot configuration and reconfiguration.
Abstract
Robotic systems often need to be configured for different dynamic execution environments, hardware, or non-functional properties, such as energy consumption. Configuration options, a.k.a. features, can be used to enable, disable, and calibrate different parts of the system, ranging from whole subsystems over components to lines of code. While configuration mechanisms are abundant in robotics, they are limited in expressiveness, and the configuration files are often distributed over the codebase in different artifacts, challenging the consistent declaration and enforcement of dependencies. In addition, robotic systems require flexibility, since features need to be activated or changed at different times in the lifecycle of the system, which can cause intricate dependencies, especially when they depend on other static or dynamic features. To prevent misconfiguration and undefined behavior, such configuration spaces need to be properly declared and managed. We present FeatX, a model-based configuration technique. It uses and extends feature models, but accounts for the specific needs in robotics. Specifically, it allows declaring features, their dependencies, as well as the allowed binding times and binding modes, while the configurator enforces correct configuration and reconfiguration, considering intricate semantics of such models. We designed the syntax and semantics of the FeatX language and implemented them in the configurator. Our prototype is implemented for ROS2 with a command-line interface (ros2cli). We evaluated it upon realistic (re-)configuration scenarios.