The main purpose of this effort is to combine the advantages of ROS and Model-Driven-Engineering techniques. This repository holds a family of metamodels defined as ecore models that together with its java and Xtext and Xtend grammar implementations facilitates the use of a set of tools and graphical plug-ins to create models from ROS code, compose and validate the composition of models, autogenerate deployment artifacts and check the use of standard specifications.
Technical Maintainer: ipa-nhg (Nadia Hammoudeh Garcia, Fraunhofer IPA) - [email protected]
- Eclipse Tooling update site: the update site
Related repositories:
- Python implementation for the static code analyzers and docker containers setups for different ROS distros: ros-model-extractors
- Language server for the RosModels (web-based models editor): theia-ros-model
- Python parsers (packed as a ROS package) for the ROS and ROSsystem models: ros_model_parser
- Web interface to automatically extract models from public source code: model extractor
- Source code for the web interface (extract models for non-public available ROS packages): ros-model-cloud
- Runtime monitoring pipeline rosgraph_monitor
Publications:
- Paper: Bootstrapping MDE Development from ROS Manual Code - Part 1: Metamodeling IRC19 paper
- Paper: Bootstrapping MDE Development from ROS Manual Code - Part 2: Model Generation Models paper
- Journal Paper: Bootstrapping MDE development from ROS manual code - Part 2: Model generation and leveraging models at runtime and SoSym paper
-
Create a model from your code:
-
Combine components to form a ROS System
-
Features
- Compare your model with a Specification
- Introspection at design time
- Models combination
- Interoperability with other frameworks:
The ros-model-experiments repository holds some examples of models auto-generated using the tooling and its facilities.