SlideShare una empresa de Scribd logo
1 de 27
Supervisors:
Panagiotou Konstantinos
Tsardoulias Emmanouil
Simeonidis Andreas
Automatic ROS2 systems
generation via model-driven
engineering (MDE) software
techniques
Brouzos Rafail A.E.M. 7945
Intelligent Systems and Software Engineering Labgroup (ISSEL)
Electrical & Computer Engineering Department,
Aristotle University of Thessaloniki, Greece
Thessaloniki, 22/10/2020
Contents
About the work
Concept
01
ROS 2, MDE, Tools
Theory
02
Services, Use Case, Structure of the Software
Methodology
03
Difficulties, Conclusions, Future Work, Find and Use Generos
Conclusion
05
Example of using Generos
Example
04
Brouzos Rafail
Concept: Generos
Imagine you would like to make a
simple obstacle avoidance Robotic
project….
Your system:
• 1 CPU
• 2 Sonars
• 2 Motors
Create ROS 2 systems:
• Without non-robotic code
• Without non-robotic skills
• Guaranteed
• Faster
• Easier
Your middleware:
• ROS 2
3
Automatic ROS2 systems generation via model-driven
engineering (MDE) software techniques
Brouzos Rafail
Concept: Obstacle Avoidance with 2 sonars
Create Model:
• 1 file
• 80 lines of code
• DSL code
Add functionality:
• 3 file
• 70 lines of code
• Python code
• Pure robotic code
Create ROS 2 system:
• 2 ROS 2 Packages
• 11 files
• 400 lines of code
• C++, Python, CMake,
XML
• Only 70 lines of robotic
code
Without Generos With Generos
4
Automatic ROS2 systems generation via model-driven
engineering (MDE) software techniques
Robot Operating System 2
ROS 2
Brouzos Rafail
Model – Driven Engineering
• More Abstraction layers
• Validation
• Domain Specific tools
• Easier implementing
• Cheaper implementing
Provides
• Replaces programming with modeling
• Replaces General Purpose tool with
Domain Specific tools
It does
• There isn’t time/funds to build concepts
• A domain is not that important/specific
Not when
• Domain specialists speak in their
languages
• Models keep more information than
programs
• Models are smaller and more readable
Because
MDE
6
Automatic ROS2 systems generation via model-driven
engineering (MDE) software techniques
Brouzos Rafail
DSL (Domain Specific Language)
A language made to build models
Metamodel
The rules and the
constraints of a domain in
general
Model
A specific instance of the
metamodel
MDE TERMS
M2M (Model to Model)
A transformation from a model to
another model
M2T (Model to Text)
A transformation from a model to code
7
Automatic ROS2 systems generation via model-driven
engineering (MDE) software techniques
Brouzos Rafail
Tools
Used to build the GRS DSL
TextX
Jinja2
Pyecore
Used to generate code
from Templates
Used to validate and to
build models
8
Automatic ROS2 systems generation via model-driven
engineering (MDE) software techniques
Brouzos Rafail
More Tools
• Eclipse (Eclipse Modeling Framework)
Used to make the ecore metamodel
• Pyecoregen
Used to generate python module of the metamodel (with ecore as input)
• Weasyprint
Used to export Documentation as PDF
• Matplotlib
Used for plotting the Communication Graph
• NetworkX
Used for building the Communication Graph
9
Automatic ROS2 systems generation via model-driven
engineering (MDE) software techniques
Brouzos Rafail
G E N E R O S
P R O V I D E S
• ROS 2 systems with unlimited packages at
once
• Easy QoS profile configuration
• Convenience on coding with a powerful easy-
to-learn DSL
• Instructions into the generated packages to
make the functionality additions a piece of cake
• High quality code and comments into the
packages
• High quality documentation into the packages
10
Automatic ROS2 systems generation via model-driven
engineering (MDE) software techniques
Brouzos Rafail
G E N E R O S
P R O V I D E S
• Communication Graph in every system
• Automatic Dependency Resolution
• Automatic Import Resolution
• Supports ROS 2 packages
• Generates and documents Custom Messages,
Services, Actions with zero effort
• Easy installation and run
And!
Complex ROS 2 Systems without getting
involved with ROS 2 things
11
Automatic ROS2 systems generation via model-driven
engineering (MDE) software techniques
Brouzos Rafail
Use
Case
Metamodel
51 Classes
15 Enums
13
Automatic ROS2 systems generation via model-driven
engineering (MDE) software techniques
Brouzos Rafail
Inside
Generos
Brouzos Rafail 15
G R S F I L E S
DSL for building models
• Based on YAML and JSON
• Serialization language for building models of ROS
2 systems
• A ROS 2 system as a set of objects
• Objects consist of components
• Comments start with //
• Objects are referenced from their name
Automatic ROS2 systems generation via model-driven
engineering (MDE) software techniques
Brouzos Rafail
E x a m p l e
O b s t a c l e A v o i d a n c e
Robot:
• 2 sonars
• 2 motors
• 1 cpu
Avoid Obstacles:
• Obtain sonar ranges
• Calculate Velocities
Nodes:
• 2 Sonars
• 1 Publisher (each sonar)
• 1 CPU
• 2 Subscribers
• 1 Publisher
Packages:
• “interfaces” : Message for ranges
• “obstacle_avoidance”: Node implementation
16
Automatic ROS2 systems generation via model-driven
engineering (MDE) software techniques
Brouzos Rafail
E x a m p l e
O b s t a c l e A v o i d a n c e
Generos Receives:
• GRS model of 80 lines
Generos Provides:
• 2 ROS 2 packages
• 15 code files (C++, Cmake, Python, XML, HTML)
• 2 PDF files (Printable package documentation)
• 1 PNG file (System Communication Graph)
User needs to:
• Write the GRS model
• Run Generos
• Add functionality into the callbacks of the generated nodes
(approximately 70 lines of Python robotic code)
• Build the ROS 2 system
• Run the executables
17
Automatic ROS2 systems generation via model-driven
engineering (MDE) software techniques
Brouzos Rafail
E x a m p l e
O b s t a c l e A v o i d a n c e
80 Lines of
GRS code
Generos
Total:
1870 Lines of code
18 files
18
Brouzos Rafail
E x a m p l e
O b s t a c l e A v o i d a n c e
Resolved:
• Imports
• Node Class
• Attributes
• Callbacks
• Main
TODO:
• Add functionality
inside callbacks
(following the
instructions)
cpu_node.py:
19
Automatic ROS2 systems generation via model-driven
engineering (MDE) software techniques
Brouzos Rafail
E x a m p l e
O b s t a c l e A v o i d a n c e
Package Documentation:
HTML / PDF: PNG:
System Documentation:
20
Automatic ROS2 systems generation via model-driven
engineering (MDE) software techniques
Brouzos Rafail
Difficulties
Eclipse
A complex
configuration, for a
complex tool
Plenty of tools
Learning, Trying,
Integrating
ROS 2
Unpredictable crashes
MDE
Limited Bibliography
21
Automatic ROS2 systems generation via model-driven
engineering (MDE) software techniques
Brouzos Rafail
Conclusions
22
Automatic ROS2 systems generation via model-driven
engineering (MDE) software techniques
Lower Cost
Robotic Software
Development could
require less funds
ROS 2 in Industry
ROS 2 and Robotics, combined with
MDE, could give more efficient solutions
in more applications and industry
MDE
More accessible
Robotic Software
Development could
require less skills
Faster
Robotic Software
Development could
require less time
Brouzos Rafail
Future Work
Support importing old projects
Generate ROS 2 Libraries
Imports
Add deployment into the model
Deployment
QoS configuration validations
Communication topology validations
Hardware validation
More Validation
Guide the user
Add functionality into the model
User Interface
Make Generos Cross-Platform
Send Generos to the Cloud
Operating System
Automatic ROS2 systems generation via model-driven
engineering (MDE) software techniques
23
Brouzos Rafail
I n s t a l l G e n e r o s
Install from Github
• Open a terminal in the installation
directory and run:
• Install ROS 2
• You are done!
24
Automatic ROS2 systems generation via model-driven
engineering (MDE) software techniques
Brouzos Rafail
R u n G e n e r o s
Run from bash script
Open a terminal in the working directory and run:
• "path-to-generos-installation": path to the installation directory of generos
• "path-to-GRS/model.grs“: path to the GRS file
• "path-to-output“: path to save the generated system
You are done! Your system is generated in:
path-to-output/workspace
Automatic ROS2 systems generation via model-driven
engineering (MDE) software techniques
25
Brouzos Rafail
F i n d G e n e r o s
Visit:
https://github.com/bronzeRaf/generos
• Instructions
• Explanation
• Examples
• Learn GRS
• All the repository is visible
26
Automatic ROS2 systems generation via model-driven
engineering (MDE) software techniques
Thank You
Questions? And to:
Eleftheria Eirini Kofidou
Apostolos Brouzos
Thanos Brouzos
Sylvana Michailidou
For their patience…
Special Thanks to:
Konstantinos Panayiotou
Emmanouil Tsardoulias
For their advice…

Más contenido relacionado

Similar a Automatic ROS2 systems generation via model-driven engineering (MDE) software techniques

ROS - An open source platform for robotics software developers (lecture).pdf
ROS - An open source platform for robotics software developers (lecture).pdfROS - An open source platform for robotics software developers (lecture).pdf
ROS - An open source platform for robotics software developers (lecture).pdfAmine Bendahmane
 
Fast RTPS: Programming with the Default Middleware for Robotics Adopted in ROS2
Fast RTPS: Programming with the Default Middleware for Robotics Adopted in ROS2Fast RTPS: Programming with the Default Middleware for Robotics Adopted in ROS2
Fast RTPS: Programming with the Default Middleware for Robotics Adopted in ROS2Jaime Martin Losa
 
【1110ROS社群開講】ROS 2與DDS應用於工業領域_王健豪
【1110ROS社群開講】ROS 2與DDS應用於工業領域_王健豪【1110ROS社群開講】ROS 2與DDS應用於工業領域_王健豪
【1110ROS社群開講】ROS 2與DDS應用於工業領域_王健豪MAKERPRO.cc
 
cReComp : Automated Design Tool for ROS-Compliant FPGA Component
cReComp : Automated Design Tool  for ROS-Compliant FPGA Component cReComp : Automated Design Tool  for ROS-Compliant FPGA Component
cReComp : Automated Design Tool for ROS-Compliant FPGA Component Kazushi Yamashina
 
FIWARE Wednesday Webinars - The Use of DDS Middleware in Robotics (Part 2)
FIWARE Wednesday Webinars - The Use of DDS Middleware in Robotics (Part 2)FIWARE Wednesday Webinars - The Use of DDS Middleware in Robotics (Part 2)
FIWARE Wednesday Webinars - The Use of DDS Middleware in Robotics (Part 2)FIWARE
 
NET core 2 e i fratelli
NET core 2 e i fratelliNET core 2 e i fratelli
NET core 2 e i fratelliAndrea Tosato
 
micro-ROS goes easy: Developing professional applications using Eclipse based...
micro-ROS goes easy: Developing professional applications using Eclipse based...micro-ROS goes easy: Developing professional applications using Eclipse based...
micro-ROS goes easy: Developing professional applications using Eclipse based...eProsima
 
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoTInria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoTStéphanie Roger
 
Utilisation de la plateforme virtuelle QEMU/SystemC pour l'IoT
Utilisation de la plateforme virtuelle QEMU/SystemC pour l'IoTUtilisation de la plateforme virtuelle QEMU/SystemC pour l'IoT
Utilisation de la plateforme virtuelle QEMU/SystemC pour l'IoTPôle Systematic Paris-Region
 
Cyclone DDS Unleashed: ROS & Cyclone DDS.pdf
Cyclone DDS Unleashed: ROS & Cyclone DDS.pdfCyclone DDS Unleashed: ROS & Cyclone DDS.pdf
Cyclone DDS Unleashed: ROS & Cyclone DDS.pdfZettaScaleTechnology
 
Fel Flyer F11
Fel Flyer F11Fel Flyer F11
Fel Flyer F11chitlesh
 
FIWARE Robotics: ROS2 & micro-ROS
FIWARE Robotics: ROS2 & micro-ROSFIWARE Robotics: ROS2 & micro-ROS
FIWARE Robotics: ROS2 & micro-ROSJaime Martin Losa
 
FIWARE Global Summit - Fast RTPS: Programming with the Default middleware for...
FIWARE Global Summit - Fast RTPS: Programming with the Default middleware for...FIWARE Global Summit - Fast RTPS: Programming with the Default middleware for...
FIWARE Global Summit - Fast RTPS: Programming with the Default middleware for...FIWARE
 
FEL Flyer F12
FEL Flyer F12FEL Flyer F12
FEL Flyer F12chitlesh
 
Computing Without Computers - Oct08
Computing Without Computers - Oct08Computing Without Computers - Oct08
Computing Without Computers - Oct08Ian Page
 

Similar a Automatic ROS2 systems generation via model-driven engineering (MDE) software techniques (20)

ROS - An open source platform for robotics software developers (lecture).pdf
ROS - An open source platform for robotics software developers (lecture).pdfROS - An open source platform for robotics software developers (lecture).pdf
ROS - An open source platform for robotics software developers (lecture).pdf
 
Documentation
DocumentationDocumentation
Documentation
 
Updated_resume
Updated_resumeUpdated_resume
Updated_resume
 
Fast RTPS: Programming with the Default Middleware for Robotics Adopted in ROS2
Fast RTPS: Programming with the Default Middleware for Robotics Adopted in ROS2Fast RTPS: Programming with the Default Middleware for Robotics Adopted in ROS2
Fast RTPS: Programming with the Default Middleware for Robotics Adopted in ROS2
 
K vector embedded_linux_workshop
K vector embedded_linux_workshopK vector embedded_linux_workshop
K vector embedded_linux_workshop
 
【1110ROS社群開講】ROS 2與DDS應用於工業領域_王健豪
【1110ROS社群開講】ROS 2與DDS應用於工業領域_王健豪【1110ROS社群開講】ROS 2與DDS應用於工業領域_王健豪
【1110ROS社群開講】ROS 2與DDS應用於工業領域_王健豪
 
cReComp : Automated Design Tool for ROS-Compliant FPGA Component
cReComp : Automated Design Tool  for ROS-Compliant FPGA Component cReComp : Automated Design Tool  for ROS-Compliant FPGA Component
cReComp : Automated Design Tool for ROS-Compliant FPGA Component
 
FIWARE Wednesday Webinars - The Use of DDS Middleware in Robotics (Part 2)
FIWARE Wednesday Webinars - The Use of DDS Middleware in Robotics (Part 2)FIWARE Wednesday Webinars - The Use of DDS Middleware in Robotics (Part 2)
FIWARE Wednesday Webinars - The Use of DDS Middleware in Robotics (Part 2)
 
NET core 2 e i fratelli
NET core 2 e i fratelliNET core 2 e i fratelli
NET core 2 e i fratelli
 
micro-ROS goes easy: Developing professional applications using Eclipse based...
micro-ROS goes easy: Developing professional applications using Eclipse based...micro-ROS goes easy: Developing professional applications using Eclipse based...
micro-ROS goes easy: Developing professional applications using Eclipse based...
 
REDA services
REDA servicesREDA services
REDA services
 
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoTInria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
 
Utilisation de la plateforme virtuelle QEMU/SystemC pour l'IoT
Utilisation de la plateforme virtuelle QEMU/SystemC pour l'IoTUtilisation de la plateforme virtuelle QEMU/SystemC pour l'IoT
Utilisation de la plateforme virtuelle QEMU/SystemC pour l'IoT
 
Cyclone DDS Unleashed: ROS & Cyclone DDS.pdf
Cyclone DDS Unleashed: ROS & Cyclone DDS.pdfCyclone DDS Unleashed: ROS & Cyclone DDS.pdf
Cyclone DDS Unleashed: ROS & Cyclone DDS.pdf
 
Fel Flyer F11
Fel Flyer F11Fel Flyer F11
Fel Flyer F11
 
FIWARE Robotics: ROS2 & micro-ROS
FIWARE Robotics: ROS2 & micro-ROSFIWARE Robotics: ROS2 & micro-ROS
FIWARE Robotics: ROS2 & micro-ROS
 
FIWARE Global Summit - Fast RTPS: Programming with the Default middleware for...
FIWARE Global Summit - Fast RTPS: Programming with the Default middleware for...FIWARE Global Summit - Fast RTPS: Programming with the Default middleware for...
FIWARE Global Summit - Fast RTPS: Programming with the Default middleware for...
 
Fast RTPS
Fast RTPSFast RTPS
Fast RTPS
 
FEL Flyer F12
FEL Flyer F12FEL Flyer F12
FEL Flyer F12
 
Computing Without Computers - Oct08
Computing Without Computers - Oct08Computing Without Computers - Oct08
Computing Without Computers - Oct08
 

Más de ISSEL

Implementation of a platform for assessing indoor spaces regarding their frie...
Implementation of a platform for assessing indoor spaces regarding their frie...Implementation of a platform for assessing indoor spaces regarding their frie...
Implementation of a platform for assessing indoor spaces regarding their frie...ISSEL
 
Autonomous car position calculation with particle filters using traffic data ...
Autonomous car position calculation with particle filters using traffic data ...Autonomous car position calculation with particle filters using traffic data ...
Autonomous car position calculation with particle filters using traffic data ...ISSEL
 
Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...
Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...
Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...ISSEL
 
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...ISSEL
 
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...ISSEL
 
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής Νοημοσύνης
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής ΝοημοσύνηςΑνάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής Νοημοσύνης
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής ΝοημοσύνηςISSEL
 
Ανάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptx
Ανάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptxΑνάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptx
Ανάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptxISSEL
 
Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...
Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...
Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...ISSEL
 
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...ISSEL
 
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...ISSEL
 
Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...
Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...
Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...ISSEL
 
Δημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας Ισχυρισμών
Δημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας ΙσχυρισμώνΔημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας Ισχυρισμών
Δημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας ΙσχυρισμώνISSEL
 
Εξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµατα
Εξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµαταΕξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµατα
Εξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµαταISSEL
 
Ανάπτυξη Μηχανισμών Αυτοματοποίησης των διαδικασιών κατασκευής συστημάτων λο...
Ανάπτυξη Μηχανισμών Αυτοματοποίησης των  διαδικασιών κατασκευής συστημάτων λο...Ανάπτυξη Μηχανισμών Αυτοματοποίησης των  διαδικασιών κατασκευής συστημάτων λο...
Ανάπτυξη Μηχανισμών Αυτοματοποίησης των διαδικασιών κατασκευής συστημάτων λο...ISSEL
 
ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...
ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...
ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...ISSEL
 
Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...
Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...
Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...ISSEL
 
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικού
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικούΕξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικού
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικούISSEL
 
Ανάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία Εφαρµογής
Ανάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία ΕφαρµογήςΑνάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία Εφαρµογής
Ανάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία ΕφαρµογήςISSEL
 
Camera-based localization of annotated objects in indoor environments
Camera-based localization of annotated objects in indoor environmentsCamera-based localization of annotated objects in indoor environments
Camera-based localization of annotated objects in indoor environmentsISSEL
 
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...ISSEL
 

Más de ISSEL (20)

Implementation of a platform for assessing indoor spaces regarding their frie...
Implementation of a platform for assessing indoor spaces regarding their frie...Implementation of a platform for assessing indoor spaces regarding their frie...
Implementation of a platform for assessing indoor spaces regarding their frie...
 
Autonomous car position calculation with particle filters using traffic data ...
Autonomous car position calculation with particle filters using traffic data ...Autonomous car position calculation with particle filters using traffic data ...
Autonomous car position calculation with particle filters using traffic data ...
 
Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...
Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...
Ανίχνευση αντικειµένων από λίγα δείγµατα µε χρήση γραφηµάτων και τεχνικών ΜΕΤ...
 
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...
Ανάπτυξη Εφαρµογής Προφίλ Μηχανικών Λογισµικού από ∆εδοµένα Αποθετηρίων Λογισ...
 
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...
Ανάπτυξη ∆υναµικού και Προσωποποιηµένου Συστήµατος Ερωταπαντήσεων µε Πηγή το ...
 
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής Νοημοσύνης
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής ΝοημοσύνηςΑνάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής Νοημοσύνης
Ανάπτυξη Φίλτρων Ανεπιθύμητων Μηνυμάτων με Χρήση Τεχνικών Τεχνητής Νοημοσύνης
 
Ανάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptx
Ανάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptxΑνάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptx
Ανάπτυξη Ελληνικών Μοντέλων Εντοπισμού Ρητορικής Μίσους.pptx
 
Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...
Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...
Σχεδιασμός και υλοποίηση πλήρους και αυτοματοποιημένου εργαλείου ελέγχων ασφά...
 
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...
Εφαρµογή Τεχνικών Μηχανικής Μάθησης για την Ανάλυση Αλλαγών Κώδικα µε στόχο τ...
 
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...
Ανάπτυξη συστήματος ιεραρχικής ομαδοποίησης και διαχείρισης κειμένων για αποκ...
 
Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...
Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...
Ανάπτυξη γραφικής διεπαφής σε σύστημα προσομοίωσης ηλεκτρονικών αγορών με στό...
 
Δημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας Ισχυρισμών
Δημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας ΙσχυρισμώνΔημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας Ισχυρισμών
Δημιουργία Ολοκληρωμένου Συστήματος Επαλήθευσης Ορθότητας Ισχυρισμών
 
Εξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµατα
Εξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµαταΕξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµατα
Εξόρυξη δεδοµένων για τη δυναµική ενσωµάτωση γνώσης σε πολυπρακτορικά συστήµατα
 
Ανάπτυξη Μηχανισμών Αυτοματοποίησης των διαδικασιών κατασκευής συστημάτων λο...
Ανάπτυξη Μηχανισμών Αυτοματοποίησης των  διαδικασιών κατασκευής συστημάτων λο...Ανάπτυξη Μηχανισμών Αυτοματοποίησης των  διαδικασιών κατασκευής συστημάτων λο...
Ανάπτυξη Μηχανισμών Αυτοματοποίησης των διαδικασιών κατασκευής συστημάτων λο...
 
ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...
ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...
ΕΥΦΥΗΣ ΜΕΘΟΔΟΛΟΓΙΑ ΑΠΟΤΙΜΗΣΗΣ ΤΟΥ ΒΑΘΜΟΥ ΔΙΑΤΗΡΗΣΙΜΟΤΗΤΑΣ ΕΡΓΩΝ ΛΟΓΙΣΜΙΚΟΥ ΜΕ...
 
Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...
Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...
Μηχανισμοί αυτοματοποίησης διαδικασιών σχεδίασης, υλοποίησης και ανάπτυξης λο...
 
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικού
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικούΕξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικού
Εξόρυξη δεδομένων τεχνολογίας λογισμικού για επαναχρησιμοποίηση λογισμικού
 
Ανάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία Εφαρµογής
Ανάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία ΕφαρµογήςΑνάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία Εφαρµογής
Ανάλυση ∆εδοµένων ΄Εργων Λογισµικού για Ανάπτυξη σε Νέα Πεδία Εφαρµογής
 
Camera-based localization of annotated objects in indoor environments
Camera-based localization of annotated objects in indoor environmentsCamera-based localization of annotated objects in indoor environments
Camera-based localization of annotated objects in indoor environments
 
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
Εντοπισμός θέσης επισημασμένου αντικειμένου σε εσωτερικό χώρο με χρήση πολλαπ...
 

Último

Risk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdfRisk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdfROCENODodongVILLACER
 
Correctly Loading Incremental Data at Scale
Correctly Loading Incremental Data at ScaleCorrectly Loading Incremental Data at Scale
Correctly Loading Incremental Data at ScaleAlluxio, Inc.
 
Application of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptxApplication of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptx959SahilShah
 
computer application and construction management
computer application and construction managementcomputer application and construction management
computer application and construction managementMariconPadriquez1
 
Introduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptxIntroduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptxk795866
 
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEINFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEroselinkalist12
 
Introduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHIntroduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHC Sai Kiran
 
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)dollysharma2066
 
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxwendy cai
 
Comparative Analysis of Text Summarization Techniques
Comparative Analysis of Text Summarization TechniquesComparative Analysis of Text Summarization Techniques
Comparative Analysis of Text Summarization Techniquesugginaramesh
 
Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...VICTOR MAESTRE RAMIREZ
 
Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...121011101441
 
main PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidmain PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidNikhilNagaraju
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024hassan khalil
 
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...srsj9000
 
Arduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptArduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptSAURABHKUMAR892774
 
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfCCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfAsst.prof M.Gokilavani
 

Último (20)

Risk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdfRisk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdf
 
Correctly Loading Incremental Data at Scale
Correctly Loading Incremental Data at ScaleCorrectly Loading Incremental Data at Scale
Correctly Loading Incremental Data at Scale
 
Application of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptxApplication of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptx
 
computer application and construction management
computer application and construction managementcomputer application and construction management
computer application and construction management
 
Introduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptxIntroduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptx
 
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEINFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
 
Introduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHIntroduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECH
 
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
 
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptx
 
Comparative Analysis of Text Summarization Techniques
Comparative Analysis of Text Summarization TechniquesComparative Analysis of Text Summarization Techniques
Comparative Analysis of Text Summarization Techniques
 
Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...
 
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
 
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
 
Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...
 
main PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidmain PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfid
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024
 
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
 
Arduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptArduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.ppt
 
Design and analysis of solar grass cutter.pdf
Design and analysis of solar grass cutter.pdfDesign and analysis of solar grass cutter.pdf
Design and analysis of solar grass cutter.pdf
 
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfCCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
 

Automatic ROS2 systems generation via model-driven engineering (MDE) software techniques

  • 1. Supervisors: Panagiotou Konstantinos Tsardoulias Emmanouil Simeonidis Andreas Automatic ROS2 systems generation via model-driven engineering (MDE) software techniques Brouzos Rafail A.E.M. 7945 Intelligent Systems and Software Engineering Labgroup (ISSEL) Electrical & Computer Engineering Department, Aristotle University of Thessaloniki, Greece Thessaloniki, 22/10/2020
  • 2. Contents About the work Concept 01 ROS 2, MDE, Tools Theory 02 Services, Use Case, Structure of the Software Methodology 03 Difficulties, Conclusions, Future Work, Find and Use Generos Conclusion 05 Example of using Generos Example 04
  • 3. Brouzos Rafail Concept: Generos Imagine you would like to make a simple obstacle avoidance Robotic project…. Your system: • 1 CPU • 2 Sonars • 2 Motors Create ROS 2 systems: • Without non-robotic code • Without non-robotic skills • Guaranteed • Faster • Easier Your middleware: • ROS 2 3 Automatic ROS2 systems generation via model-driven engineering (MDE) software techniques
  • 4. Brouzos Rafail Concept: Obstacle Avoidance with 2 sonars Create Model: • 1 file • 80 lines of code • DSL code Add functionality: • 3 file • 70 lines of code • Python code • Pure robotic code Create ROS 2 system: • 2 ROS 2 Packages • 11 files • 400 lines of code • C++, Python, CMake, XML • Only 70 lines of robotic code Without Generos With Generos 4 Automatic ROS2 systems generation via model-driven engineering (MDE) software techniques
  • 6. Brouzos Rafail Model – Driven Engineering • More Abstraction layers • Validation • Domain Specific tools • Easier implementing • Cheaper implementing Provides • Replaces programming with modeling • Replaces General Purpose tool with Domain Specific tools It does • There isn’t time/funds to build concepts • A domain is not that important/specific Not when • Domain specialists speak in their languages • Models keep more information than programs • Models are smaller and more readable Because MDE 6 Automatic ROS2 systems generation via model-driven engineering (MDE) software techniques
  • 7. Brouzos Rafail DSL (Domain Specific Language) A language made to build models Metamodel The rules and the constraints of a domain in general Model A specific instance of the metamodel MDE TERMS M2M (Model to Model) A transformation from a model to another model M2T (Model to Text) A transformation from a model to code 7 Automatic ROS2 systems generation via model-driven engineering (MDE) software techniques
  • 8. Brouzos Rafail Tools Used to build the GRS DSL TextX Jinja2 Pyecore Used to generate code from Templates Used to validate and to build models 8 Automatic ROS2 systems generation via model-driven engineering (MDE) software techniques
  • 9. Brouzos Rafail More Tools • Eclipse (Eclipse Modeling Framework) Used to make the ecore metamodel • Pyecoregen Used to generate python module of the metamodel (with ecore as input) • Weasyprint Used to export Documentation as PDF • Matplotlib Used for plotting the Communication Graph • NetworkX Used for building the Communication Graph 9 Automatic ROS2 systems generation via model-driven engineering (MDE) software techniques
  • 10. Brouzos Rafail G E N E R O S P R O V I D E S • ROS 2 systems with unlimited packages at once • Easy QoS profile configuration • Convenience on coding with a powerful easy- to-learn DSL • Instructions into the generated packages to make the functionality additions a piece of cake • High quality code and comments into the packages • High quality documentation into the packages 10 Automatic ROS2 systems generation via model-driven engineering (MDE) software techniques
  • 11. Brouzos Rafail G E N E R O S P R O V I D E S • Communication Graph in every system • Automatic Dependency Resolution • Automatic Import Resolution • Supports ROS 2 packages • Generates and documents Custom Messages, Services, Actions with zero effort • Easy installation and run And! Complex ROS 2 Systems without getting involved with ROS 2 things 11 Automatic ROS2 systems generation via model-driven engineering (MDE) software techniques
  • 13. Metamodel 51 Classes 15 Enums 13 Automatic ROS2 systems generation via model-driven engineering (MDE) software techniques
  • 15. Brouzos Rafail 15 G R S F I L E S DSL for building models • Based on YAML and JSON • Serialization language for building models of ROS 2 systems • A ROS 2 system as a set of objects • Objects consist of components • Comments start with // • Objects are referenced from their name Automatic ROS2 systems generation via model-driven engineering (MDE) software techniques
  • 16. Brouzos Rafail E x a m p l e O b s t a c l e A v o i d a n c e Robot: • 2 sonars • 2 motors • 1 cpu Avoid Obstacles: • Obtain sonar ranges • Calculate Velocities Nodes: • 2 Sonars • 1 Publisher (each sonar) • 1 CPU • 2 Subscribers • 1 Publisher Packages: • “interfaces” : Message for ranges • “obstacle_avoidance”: Node implementation 16 Automatic ROS2 systems generation via model-driven engineering (MDE) software techniques
  • 17. Brouzos Rafail E x a m p l e O b s t a c l e A v o i d a n c e Generos Receives: • GRS model of 80 lines Generos Provides: • 2 ROS 2 packages • 15 code files (C++, Cmake, Python, XML, HTML) • 2 PDF files (Printable package documentation) • 1 PNG file (System Communication Graph) User needs to: • Write the GRS model • Run Generos • Add functionality into the callbacks of the generated nodes (approximately 70 lines of Python robotic code) • Build the ROS 2 system • Run the executables 17 Automatic ROS2 systems generation via model-driven engineering (MDE) software techniques
  • 18. Brouzos Rafail E x a m p l e O b s t a c l e A v o i d a n c e 80 Lines of GRS code Generos Total: 1870 Lines of code 18 files 18
  • 19. Brouzos Rafail E x a m p l e O b s t a c l e A v o i d a n c e Resolved: • Imports • Node Class • Attributes • Callbacks • Main TODO: • Add functionality inside callbacks (following the instructions) cpu_node.py: 19 Automatic ROS2 systems generation via model-driven engineering (MDE) software techniques
  • 20. Brouzos Rafail E x a m p l e O b s t a c l e A v o i d a n c e Package Documentation: HTML / PDF: PNG: System Documentation: 20 Automatic ROS2 systems generation via model-driven engineering (MDE) software techniques
  • 21. Brouzos Rafail Difficulties Eclipse A complex configuration, for a complex tool Plenty of tools Learning, Trying, Integrating ROS 2 Unpredictable crashes MDE Limited Bibliography 21 Automatic ROS2 systems generation via model-driven engineering (MDE) software techniques
  • 22. Brouzos Rafail Conclusions 22 Automatic ROS2 systems generation via model-driven engineering (MDE) software techniques Lower Cost Robotic Software Development could require less funds ROS 2 in Industry ROS 2 and Robotics, combined with MDE, could give more efficient solutions in more applications and industry MDE More accessible Robotic Software Development could require less skills Faster Robotic Software Development could require less time
  • 23. Brouzos Rafail Future Work Support importing old projects Generate ROS 2 Libraries Imports Add deployment into the model Deployment QoS configuration validations Communication topology validations Hardware validation More Validation Guide the user Add functionality into the model User Interface Make Generos Cross-Platform Send Generos to the Cloud Operating System Automatic ROS2 systems generation via model-driven engineering (MDE) software techniques 23
  • 24. Brouzos Rafail I n s t a l l G e n e r o s Install from Github • Open a terminal in the installation directory and run: • Install ROS 2 • You are done! 24 Automatic ROS2 systems generation via model-driven engineering (MDE) software techniques
  • 25. Brouzos Rafail R u n G e n e r o s Run from bash script Open a terminal in the working directory and run: • "path-to-generos-installation": path to the installation directory of generos • "path-to-GRS/model.grs“: path to the GRS file • "path-to-output“: path to save the generated system You are done! Your system is generated in: path-to-output/workspace Automatic ROS2 systems generation via model-driven engineering (MDE) software techniques 25
  • 26. Brouzos Rafail F i n d G e n e r o s Visit: https://github.com/bronzeRaf/generos • Instructions • Explanation • Examples • Learn GRS • All the repository is visible 26 Automatic ROS2 systems generation via model-driven engineering (MDE) software techniques
  • 27. Thank You Questions? And to: Eleftheria Eirini Kofidou Apostolos Brouzos Thanos Brouzos Sylvana Michailidou For their patience… Special Thanks to: Konstantinos Panayiotou Emmanouil Tsardoulias For their advice…