Please look at https://gitlab.inria.fr/glose/flight-controller-language-demonstrator for all the software sources, model example and this document sources. The version used while producing this document is available at https://gitlab.inria.fr/glose/flight-controller-language-demonstrator/-/tags/2020-04. |
This document presents the demonstrator illustrating the technologies involved in the WP2 of the GLOSE project and the associated use case language.
The demonstrator provides generals guidelines about how to use GEMOC technologies in order to design and implement a modeling language and its corresponding modeling environment.
The modeling environment provided by the demonstrator covers several concerns such as:
-
Model edition (including textual and graphical edition)
-
Model execution (including model debugging).
The document: DP1.1: Modeling environment for Flight Control Management, focuses on how to develop and use a modeling environment. The document DP1.2: Simulation and Compilation Environment for Flight Control Management focuses on model execution, model debugging, model animation, and compilation. The document DP2.1: Execution and Simulation Environment for Flight Control Management with concurrent execution extends DP1.2 with concurrency concerns. This document DP3.1: Source model for the case studies presents example Flight Control Language models.
The demonstrator is illustrated on a realistic language: a language for designing drone flight controllers.
As explained in https://download.eclipse.org/gemoc/docs/nightly/index.html , building the modeling environment for a language involves two mains roles: language engineers and modelers.
-
Language engineers design executable DSLs using metalanguages and implement modeling environments.
-
Modelers are the users of the resulting modeling environment. They build models using the modeling language,and they analyze and execute them using the other tools of the environment.
The GEMOC Studio used to develop the demonstrator offers dedicated workspaces and tooling for each of these roles that are referenced as GEMOC Language workbench for the tools for language engineers and GEMOC Modeling Workbench for the tools for modelers.
1. Deliverables
Deliverables of this demonstrator are produced as a set of videos, a git repository and a summary document. As they contribute to a global demonstration, they are presented globally instead of trying to strictly map to the D.1.1, D1.2, D2.1, D3.1 structure.
1.1. Videos
The videos of the demonstrator are split as follow:
-
Video Part 1. Building Editors, (for DP1.1 and DP3.1)
-
Video Part 2. Specifying Behavior, (for DP1.2)
-
Video Part 3. Animation/Debugging, (for DP1.2)
-
Video Part 4. Advanced Behavior with Concurrency, (for DP2.1)
-
Video Part 5. Model-specific Views, (complement for DP1.2)
1.1.1. Download links
- Video Part 1. Building Editors
- Video Part 2. Specifying Behavior
- Video Part 3. Animation/Debugging
- Video Part 4. Advanced Behavior with Concurrency
- Video Part 5. Model-specific Views
1.2. Git repository
See https://gitlab.inria.fr/glose/flight-controller-language-demonstrator#user-content-repository-content for a list of all major folders in the git repository, an overview of their content and use in the deliverables.
1.2.1. Download link
The tagged repository used for writing this document is available at the following url:
latest version is available at https://gitlab.inria.fr/glose/flight-controller-language-demonstrator |
2. Deliverable items specifically done for D3.1
This section identifies the parts relative to this deliverable D3.1 in the Videos and the git repository
The Video Part 1. Building Editors was specifically designed to explain the syntax and some use case model examples. Howver, all the other videos use these models.
The following folders in the git repository contains the code used for D3.1
.
├── model_examples
│ │ # model examples and test models (for DP3.1 but also used in
│ │ # several of the videos of the other DP)
│ ├── bare-unity
│ ├── dummy-quadcopter-simulator
│ ├── fr.inria.glose.miniquadcopter_01.flightcontroller
│ ├── fr.inria.glose.miniquadcoptercontroller.demo_v0
│ │ # example used in the video Part 5.
│ ├── medium-fcl
│ ├── minimal-fcl
│ ├── minimal-fcl-with-delayed-loop
│ ├── miniquadcopter
│ │ # main example used in all the videos
│ ├── miniquadcopter_k3
│ ├── miniquadcopter_k3_debug_moccml
│ ├── miniquadcopter_no-fmu_ale
│ ├── miniquadcopter_no-fmu_k3
│ ├── miniquadcopter_unity_no-fmu_k3
│ ├── smallest-fcl-model
│ ├── small-fcl
│ │ # example used in the video Part 1.
│ ├── test-quad-bare-fmu
│ │ # example used in the video Part 5.