<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://c4d.lias-lab.fr/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Raulgv</id>
	<title>COMP4DRONES - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://c4d.lias-lab.fr/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Raulgv"/>
	<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php/Special:Contributions/Raulgv"/>
	<updated>2026-04-07T01:07:06Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-25&amp;diff=853</id>
		<title>WP6-25</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-25&amp;diff=853"/>
		<updated>2023-02-17T10:08:39Z</updated>

		<summary type="html">&lt;p&gt;Raulgv: /* Detailed Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-25&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNICAN&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux Ubuntu 18.04, Eclipse EMF&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| System-of-Systems Modeling&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| Platform Independent Model, Platform Description Model, Functional code&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| XML system description &amp;amp; functional code&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| 5-6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
S3D (s3d.unican.es) is a model-driven, system design framework around a single UML/MARTE model [1]. The model is used as a centralized repository of all the information about the system which is relevant for the design. From the model, the specific information required to perform a certain simulation and performance analysis task (e.g. performance simulation of a solution in a design-space exploration) is extracted and the corresponding simulation model, synthesized. This Model-to-Model generation is performed by the mSSYN tool. The model is simulated by the VIPPE tool. It is worth mentioning that the M2M technology used to generate the simulation models automatically from the system model can be extended to synthesize the SW stack to be executed in each computational node. The corresponding synthesis tool is eSSYN (essyn.unican.es).&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-25_I_01.png]]&lt;br /&gt;
&lt;br /&gt;
==Contribution and Improvements==&lt;br /&gt;
&lt;br /&gt;
The fundamental S3D modeling methodology based on required-provided services has been extended in order to support components using ROS, a publish-subscribe communication middleware [2]. In this paper, Model-Driven Design (MDD) is proposed for modeling, simulation and performance analysis of SW intensive robot-based services. The work shows that robots can be integrated into a system engineering framework without affecting their modeling, design and development features. In order to seamlessly integrate these additional kinds of electro-mechanical components, a platform-based approach is proposed. The large number of different robots available makes it very difficult to reuse the same functional components from one project to another if the robots are changed. For certain kinds of robots with many similar functions, such as drones, a common list of methods can be defined so that the same code is valid for all of them simply by associating the functions with the appropriate code. An additional advantage of this common language is a significant reduction in the programming effort which can be reduced around 30%. The cost to be paid is a drop in simulation speed. In the use case of the paper, this reduction can be as high as 16% when a code intensive in ROS calls is used.&lt;br /&gt;
&lt;br /&gt;
Another interesting result is that if the MDD modeling methodology is general enough, no extension is needed in order to support ROS. Identifying which components make use of ROS is sufficient. In this case, the ROS infrastructure is automatically integrated in the system and used by those ports requiring it. A methodology for rough estimation of execution time of the ROS code has been proposed. Although the error can be as high as 45%, the impact is small as the ROS code will be only a fraction of the total executable. In any case, an improvement over not annotating any execution time for ROS is achieved and this improvement is higher when it is more needed, that is, when the percentage of ROS code is higher. The improvement can be as high as 83.5% with only 2.55% of ROS code.&lt;br /&gt;
&lt;br /&gt;
The proposed framework enables the seamless integration of robots into a MDD framework so that the whole service can be modelled, simulated and its performance analyzed, fully supporting essential stages of the V-Cycle as explained below.&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
S3D covers the modelling and automatic generation of the multi-level executable models used to validate and verify the system at the different abstraction levels. S3D supports the modelling activities at each stage of the V-Cycle for mechatronic systems as explained below:&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-26-D-01.png]]&lt;br /&gt;
&lt;br /&gt;
In all these stages, S3D supports reusability from previous projects as both functional and test-bench components can be imported from libraries:&lt;br /&gt;
&lt;br /&gt;
1. System Requirement Analysis. Based on Papyrus and the UML/MARTE standard, S3D can help in analysing and finally, specify the functional and non-functional requirements to be satisfied by the System (or System of Systems).&lt;br /&gt;
&lt;br /&gt;
2. System Design. Once the requirements have been specified, the system and its environment are fully specified in terms of the interface among them, the domain constraints (input rates, types and constraints among them) and the system functional and non-functional requirements (output rates, input/output delays, energy, etc.). As part of the System Design stage, partitioning of the system in the mechanical and the IT (digital) parts is performed. In S3D, the mechanical part will be incorporated to the Test-Bench (TB) of the (digital) system. As its functionality and performance is fully specified, the TB, including the model of the robots, can be developed.&lt;br /&gt;
&lt;br /&gt;
3. Mechanical Analysis and Design. The inclusion of the robots as TB components allows the analysis of their constraints and the design of the mechanical part (number and type of robots, design requirements to each one and among them, etc.).&lt;br /&gt;
&lt;br /&gt;
4. IT Analysis and Design. At this stage, the analysis and specification of the Platform-Description Model (PDM) can be performed. On the other side, the Platform-Independent Model can be specified.&lt;br /&gt;
&lt;br /&gt;
5&amp;amp;7. SW Analysis &amp;amp; Design and SW Detailed Design. During this stages, the hierarchical partitioning of the PIM in sub-systems and finally, components fully specified in their interfaces and functional and non-functional constraints, is decided.&lt;br /&gt;
&lt;br /&gt;
6. HW Analysis &amp;amp; Design. At this stage, the design of the initial Platform-Description Model (PDM), can be performed and an initial architecture of nodes and their internal HW architecture can be proposed. The final PDM will be decided later during architectural mapping as part of the System Integration &amp;amp; Verification stage.&lt;br /&gt;
&lt;br /&gt;
8. SW Development. The goal of this stage is to develop the code implementing the functional constraints. Papyrus supports both the Modelling and the Development Views and S3D links one with the other by annotating the components with their implementation files using the file’s paths as properties.&lt;br /&gt;
&lt;br /&gt;
9. SW Component Verification. S3D links each component with their Test-Benches so that the component can be verified both in the host (verification) and the target platform (testing) in case it has been decided already and it is available.&lt;br /&gt;
&lt;br /&gt;
In the rest of stages:&lt;br /&gt;
&lt;br /&gt;
10. SW Integration &amp;amp; Verification.&lt;br /&gt;
&lt;br /&gt;
11. HW Integration &amp;amp; Verification.&lt;br /&gt;
&lt;br /&gt;
12 Mechanical Integration &amp;amp; Verification.&lt;br /&gt;
&lt;br /&gt;
13. IT Integration &amp;amp; Verification.&lt;br /&gt;
&lt;br /&gt;
14. System Integration &amp;amp; Verification.&lt;br /&gt;
&lt;br /&gt;
15. System Acceptance Verification.&lt;br /&gt;
&lt;br /&gt;
S3D helps in supporting the improvement of the model through the different stages and the automatic generation of the executables models so that the functional and non-functional constraints can be verified. Architectural mapping, that is, the final mapping of functional components in the PIM to execution resources in the PDM is fixed during System Integration and Verification when an accurate simulation and performance analysis model including the actual code can be generated. This model can provide accurate metrics ensuring final satisfaction of the implementation decided after Design-Space Exploration of as many possibilities as required.&lt;br /&gt;
&lt;br /&gt;
== Interoperability with other C4D tools ==&lt;br /&gt;
S3D is based on fundamental Model-Driven, Component-Based computational concepts. As a consequence, it keeps interoperability with many other system modeling environments. The following picture shows the interoperability of S3D with other tools in the C4D design and Verification environment:&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-25_IO_01.png]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
[1] E. Villar, J. Merino, H. Posadas, R. Henia &amp;amp; L. Rioux: “Mega-modeling of complex, distributed, heterogeneous CPS systems”, Microprocessors and Microsystems, V.78, 2020.&lt;br /&gt;
&lt;br /&gt;
[2] J. Merino, R. Gomez, H. Posadas and E. Villar: &amp;quot;Modeling and Performance Estimation of Robotic Systems using ROS: Application to drone-based Services,&amp;quot; in proc. of the Forum on specification &amp;amp; Design Languages (FDL), IEEE, 2021.&lt;/div&gt;</summary>
		<author><name>Raulgv</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-26&amp;diff=852</id>
		<title>WP6-26</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-26&amp;diff=852"/>
		<updated>2023-02-17T10:05:52Z</updated>

		<summary type="html">&lt;p&gt;Raulgv: /* Detailed Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-26&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNICAN&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux Ubuntu 18.04&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| Timing/Energy Simulation&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| XML system description &amp;amp; functional code&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| Functional &amp;amp; performance simulation results&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| 5&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
SoSIM is a new System-of-Systems Simulation tool developed in Comp4Drones. Its background technology is VIPPE. From the Single-Source System Design (S3D) model, the specific information required to perform a certain simulation and performance analysis task (e.g. performance simulation of a solution in a design-space exploration) is extracted and the corresponding simulation model, synthesized. This Model-to-Model generation is performed by the mSSYN tool.&lt;br /&gt;
&lt;br /&gt;
In order to extend SoSIM to mechatronic systems, several improvements have been carried out. The basic infrastructure allowing to simulate multiple drones and combining different levels for the different system components including ROS was described in [1]. The architecture of the complete simulation environment is shown in Figure 1. The arrows represent the control flow in the simulator. Depending on the simulation level, some of the functional blocks may be inactive. So, at the functional level ROS is not used. Thus, neither the ROS core and the MAVROS block, nor the Sync.Clock ROS node are required. The functional drone simulator (now to be extended to several drones) interacts directly with the ROScpp components. This is kept even when the ROS core is included. The synchronization clock will also be needed. Only when any of the drones is modeled with a detailed autopilot and physics, the MAVROS block is added in order to support the communication with the drone through MAVLink.&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-26-I-01.png|frame|center|Figure 1 - VIPPE-ROS background simulation infrastructure]]&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
SoSIM covers the following states in the mechatronic V-Cycle of Figure 2:&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-26-D-01.png|frame|raight|Figure 2 - S3D-SoSIM V cycle coverage]]&lt;br /&gt;
&lt;br /&gt;
2. System Design&lt;br /&gt;
&lt;br /&gt;
3. Mechanical Analysis and Design&lt;br /&gt;
&lt;br /&gt;
4. IT Analysis and Design&lt;br /&gt;
&lt;br /&gt;
5. SW Analysis and Design&lt;br /&gt;
&lt;br /&gt;
6. HW Analysis and Design&lt;br /&gt;
&lt;br /&gt;
7. SW Detailed Design&lt;br /&gt;
&lt;br /&gt;
9. SW Component Verification&lt;br /&gt;
&lt;br /&gt;
10. SW Integration and Verification&lt;br /&gt;
&lt;br /&gt;
11. HW Integration and Verification&lt;br /&gt;
&lt;br /&gt;
12. Mechanic Integration and Verification&lt;br /&gt;
&lt;br /&gt;
13. IT Integration and Verification&lt;br /&gt;
&lt;br /&gt;
14. System Integration and Verification&lt;br /&gt;
&lt;br /&gt;
15. System Acceptance Verification&lt;br /&gt;
&lt;br /&gt;
The improvement provided by SoSIM comes from the fact that the use of virtual models of the system simplifies simulation-based DSE, which greatly reduces the time required to select the most appropriate solution [2]. However, as the information about the system and its components evolve along the design process, so should their models and, in general, the infrastructure required for their simulation. As a result, different simulation levels must be considered during the different steps of the design and verification process. Table 1 shows the four simulation levels considered for the functional components:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 1 - Abstraction levels for functional components simulation&lt;br /&gt;
!Level&lt;br /&gt;
!|Code&lt;br /&gt;
!|Timing/Energy&lt;br /&gt;
!|ROS MW&lt;br /&gt;
|-&lt;br /&gt;
|MN&lt;br /&gt;
|minimal&lt;br /&gt;
|no&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;|yes/no&lt;br /&gt;
|-&lt;br /&gt;
|MC&lt;br /&gt;
|minimal&lt;br /&gt;
|constant&lt;br /&gt;
|-&lt;br /&gt;
|FC&lt;br /&gt;
|full code&lt;br /&gt;
|constant&lt;br /&gt;
|-&lt;br /&gt;
|FD&lt;br /&gt;
|full code&lt;br /&gt;
|data dependent&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In MN (minimal/no), no model of time/energy is provided so that the code is supposed to be executed infinitely fast and without consuming any energy. In MC (minimal/constant) and FC (functional/constant), a constant time/energy is assumed each time the function is executed. These can be estimated or observed worst-case, mean-case or best case figures. In FC, the simulation time would be higher than in MC, as the actual code is executed. In the FD (functional/data dependent) model, both time and energy must be estimated over the actual code, using a state of the art technique, such as native simulation technology or binary translation.&lt;br /&gt;
&lt;br /&gt;
Additionally, not all the system components need to have the same level of detail in a single simulation. Different system components can require simulation at different abstraction levels, resulting in heterogeneous simulations, depending on the focus of each simulation. For example, components under development usually require the most accurate simulation level (FD) when verifying their correctness while library components may only require FC simulation.&lt;br /&gt;
&lt;br /&gt;
This multi-level capability is also applicable to the simulation infrastructure. For example, in robotic-based systems considered in this paper, at any of these levels it should be possible to include in the simulation the ROS infrastructure or not. The latter case would allow designers to focus on the functionality of the distributed, heterogeneous functionality. Once this is verified, the former would include the actual ROS infrastructure in order to confirm that the application functionality behaves correctly when the actual communication middleware (MW) is included.&lt;br /&gt;
&lt;br /&gt;
Regarding the simulation of the drones, four different models are considered. Let’s consider the command “move to X/Y/Z”. A minimal implementation will estimate the path and the movement time considering constant horizontal and vertical speed values, the power consumption, and will perform the movement in a single step (FN). In many cases, a more detailed model for the drone(s) is required. An autopilot and a physical simulator are needed.&lt;br /&gt;
&lt;br /&gt;
In this case, the full code (FC/FD) will generate all the signals to the motors required by the physical simulator to reach the final destination, including the estimation of all the intermediate positions, the actual time to reach them, the corresponding power consumption, angles and orientations.&lt;br /&gt;
&lt;br /&gt;
However, these two abstraction levels can be not enough for certain components. As commented above, S3D is based on a service-provided communication paradigm. However, ROS is mostly based on a client/subscriber approach. Thus, an approach based on services that performs the required operation in a single step, such as the one proposed above for the drone model, is not adequate, since publishers typically require a continuous flow of data. To solve this, and considering that the drone model is the most critical element in the simulation of drone-based systems, this work proposes a third, intermediate abstraction level for this component, capable of providing intermediate values to be published. Following the previous example, the command “move to X/Y/Z” will result in a continuous flow of approximate positions and orientations to be published. As a summary, the proposed drone model levels proposed are those shown in Table 2:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 2 - Abstraction levels for the drone simulators&lt;br /&gt;
!Level&lt;br /&gt;
!|Drones modeling&lt;br /&gt;
!|ROS MW&lt;br /&gt;
|-&lt;br /&gt;
|FY/FN&lt;br /&gt;
|Functional&lt;br /&gt;
|yes/no&lt;br /&gt;
|-&lt;br /&gt;
|AP&lt;br /&gt;
|Autopilot&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|MP&lt;br /&gt;
|Multi-Physics&lt;br /&gt;
|yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The simulation framework should support mixing functional and detailed simulation models for the drones in a multi-drone service. It should enable the system engineer to decide the best combination of abstraction levels in Tables 1 and 2. Supporting multi-level simulation requires that each component in the functional architecture is associated with models at several abstraction levels, each involving different accuracy/speed ratios.&lt;br /&gt;
&lt;br /&gt;
Finally, it is mandatory to consider that drone based-systems usually involve multiple drones, and these drones can even require different simulation levels, in order to achieve high accuracy in some of the drone models while maintaining enough speed for the whole simulation.&lt;br /&gt;
&lt;br /&gt;
The new verification tasks introduced in the V-Cycle of Figure 2 are the following:&lt;br /&gt;
&lt;br /&gt;
# '''Validation''': The goal of the System Design, Mechanical Analysis and Design, IT Analysis and Design, SW Analysis and Design, HW Analysis and Design and SW Detailed Design is to ensure that the hierarchical partitioning of the system in sub-systems and finally, mechanical and HW and SW components, keeps the functional and non-functional requirements stated at the beginning of the design process. As the domain restrictions such as inputs, outputs, rates and throughputs are usually defined in the system requirements analysis steps, the full test-bench can be developed. The test-benches developed at the system, subsystem and component levels during design validation can be reused for component, sub-system and final system verification. The system-level test-bench can be also largely re-used for DSE and HW/SW co-design. The test-benches may also help during component, sub-system and system testing when the test-bench or part of it is emulated via SW-in-the-Loop (SIL). In order to be able to verify the test-bench at such a high level, a minimal functionality implementing the fundamental features of the system, subsystems and/or the components in the final full system architecture, should be developed (MN). This initial code can also be combined with preliminary, predefined time/energy figures in order to enable a first performance analysis of the system (MC). Regarding the drone(s), a functional model (FN) is the most appropriate. This functional simulation is useful during system requirement analysis and system architectural design and partitioning. After this initial stage, the components to be reused are selected and the components to be developed from scratch are fully specified so that their development (i.e. programming) can start, in case of HW/SW components. In the case of robots (i.e. the drones), their modelling, simulation and design can start. Reusability does not affect only application components but also components in the test-bench (e.g. the drones in the context of this paper).&lt;br /&gt;
# '''Verification''': Once the complete code has been developed, SW Component Verification, SW Integration and Verification, HW Integration and Verification, IT Integration and Verification, Mechanic Integration and Verification and System Integration and Verification can be performed. By verification, functional and non-functional verification is meant. Simulating the full code allows functional verification and debugging. Performance analysis enables non-functional verification. Any error detected, would require code optimization, platform re-configuration, platform re-design or even, a new architectural mapping of functional components to HW resources. The advantage provided by the co-design approach is that these design decisions are made at the same stage and only in a few cases it is required to backtrack to a previous stage. Among the different valid solutions during this Design-Space Exploration (DSE), the most appropriate Pareto point is selected [3]. As drones are basically real-time systems, consideration of timing (and potentially, energy) is usually mandatory. However, timing analysis is not an easy and fast task. To solve it, two different levels are proposed. In the first one, the full code is simulated but annotated with constant figures for the time/energy it consumes (FC). In a second level, once the component is mapped to a computing resource, native simulation is used so that accurate figures for execution times and energy can be obtained (FD). Although this is not covered in the paper, more detailed models for the SW can be used as virtualization or even an ISS. These simulation technologies may provide higher accuracy than native simulation at a lower simulation speed. These verification steps finish when the virtual model is accepted in the System Acceptance Verification stage so that its implementation can start.&lt;br /&gt;
# '''Testing''' is the new name we give to the former “HW-in-the-loop” verification steps as they require a physical prototype of the components, sub-systems and, finally, the complete system. Those components with potential reusability will be stored in the ‘Library of Components’.&lt;br /&gt;
&lt;br /&gt;
Once the system is fully designed and accepted, the system can be produced and deployed in the field. Now, the system operation can be monitored and analysed so that it is possible to facilitate maintenance, reduce faults and minimize correction time, when needed.&lt;br /&gt;
&lt;br /&gt;
== Interoperability with other C4D tools ==&lt;br /&gt;
&lt;br /&gt;
From the S3D model, the Model to Model (M2M) tool mSSYN generates the simulation model to be executed by SoSIM. As S3D may contain models from other simulators, so S3D is linked to them. Figure 3 describes the interoperability between SoSim and other simulators:&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-26_IO_01.png|frame|center| Figure 3 - Interoperability of SoSim with other tools]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
[1] J . Merino, R. Gomez, H. Posadas &amp;amp; E. Villar: &amp;quot;Multilevel host-compiled simulation framework for ROS-based UAV services using ArduCopter&amp;quot;, proc. of the XXXVI Conference on Design of Circuits and Integrated Systems (DCIS), IEEE, 2021.&lt;br /&gt;
&lt;br /&gt;
[2] F. Herrera, J. Medina, E. Villar: &amp;quot;Modeling Hardware/Software Embedded Systems with UML/MARTE: A Single-Source Design approach&amp;quot;, in S. Ha and J. Teich (Eds): &amp;quot;Handbook of Hardware/Software Codesign&amp;quot;, Springer. 2017.&lt;br /&gt;
&lt;br /&gt;
[3] F. Herrera, H. Posadas, P. Peñil, E. Villar, F. Ferrero, R. Valencia and G. Palermo. “The COMPLEX methodology for UML/MARTE Modeling and design space exploration of embedded systems”, Journal of Systems Architecture, V.60, I.1, 2014.&lt;/div&gt;</summary>
		<author><name>Raulgv</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-26&amp;diff=851</id>
		<title>WP6-26</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-26&amp;diff=851"/>
		<updated>2023-02-17T10:04:32Z</updated>

		<summary type="html">&lt;p&gt;Raulgv: /* Detailed Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-26&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNICAN&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux Ubuntu 18.04&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| Timing/Energy Simulation&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| XML system description &amp;amp; functional code&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| Functional &amp;amp; performance simulation results&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| 5&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
SoSIM is a new System-of-Systems Simulation tool developed in Comp4Drones. Its background technology is VIPPE. From the Single-Source System Design (S3D) model, the specific information required to perform a certain simulation and performance analysis task (e.g. performance simulation of a solution in a design-space exploration) is extracted and the corresponding simulation model, synthesized. This Model-to-Model generation is performed by the mSSYN tool.&lt;br /&gt;
&lt;br /&gt;
In order to extend SoSIM to mechatronic systems, several improvements have been carried out. The basic infrastructure allowing to simulate multiple drones and combining different levels for the different system components including ROS was described in [1]. The architecture of the complete simulation environment is shown in Figure 1. The arrows represent the control flow in the simulator. Depending on the simulation level, some of the functional blocks may be inactive. So, at the functional level ROS is not used. Thus, neither the ROS core and the MAVROS block, nor the Sync.Clock ROS node are required. The functional drone simulator (now to be extended to several drones) interacts directly with the ROScpp components. This is kept even when the ROS core is included. The synchronization clock will also be needed. Only when any of the drones is modeled with a detailed autopilot and physics, the MAVROS block is added in order to support the communication with the drone through MAVLink.&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-26-I-01.png|frame|center|Figure 1 - VIPPE-ROS background simulation infrastructure]]&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
SoSIM covers the following states in the mechatronic V-Cycle of Figure 2:&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-26-D-01.png|frame|center|Figure 2 - S3D-SoSIM V cycle coverage]]&lt;br /&gt;
&lt;br /&gt;
2. System Design&lt;br /&gt;
&lt;br /&gt;
3. Mechanical Analysis and Design&lt;br /&gt;
&lt;br /&gt;
4. IT Analysis and Design&lt;br /&gt;
&lt;br /&gt;
5. SW Analysis and Design&lt;br /&gt;
&lt;br /&gt;
6. HW Analysis and Design&lt;br /&gt;
&lt;br /&gt;
7. SW Detailed Design&lt;br /&gt;
&lt;br /&gt;
9. SW Component Verification&lt;br /&gt;
&lt;br /&gt;
10. SW Integration and Verification&lt;br /&gt;
&lt;br /&gt;
11. HW Integration and Verification&lt;br /&gt;
&lt;br /&gt;
12. Mechanic Integration and Verification&lt;br /&gt;
&lt;br /&gt;
13. IT Integration and Verification&lt;br /&gt;
&lt;br /&gt;
14. System Integration and Verification&lt;br /&gt;
&lt;br /&gt;
15. System Acceptance Verification&lt;br /&gt;
&lt;br /&gt;
The improvement provided by SoSIM comes from the fact that the use of virtual models of the system simplifies simulation-based DSE, which greatly reduces the time required to select the most appropriate solution [2]. However, as the information about the system and its components evolve along the design process, so should their models and, in general, the infrastructure required for their simulation. As a result, different simulation levels must be considered during the different steps of the design and verification process. Table 1 shows the four simulation levels considered for the functional components:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 1 - Abstraction levels for functional components simulation&lt;br /&gt;
!Level&lt;br /&gt;
!|Code&lt;br /&gt;
!|Timing/Energy&lt;br /&gt;
!|ROS MW&lt;br /&gt;
|-&lt;br /&gt;
|MN&lt;br /&gt;
|minimal&lt;br /&gt;
|no&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;|yes/no&lt;br /&gt;
|-&lt;br /&gt;
|MC&lt;br /&gt;
|minimal&lt;br /&gt;
|constant&lt;br /&gt;
|-&lt;br /&gt;
|FC&lt;br /&gt;
|full code&lt;br /&gt;
|constant&lt;br /&gt;
|-&lt;br /&gt;
|FD&lt;br /&gt;
|full code&lt;br /&gt;
|data dependent&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In MN (minimal/no), no model of time/energy is provided so that the code is supposed to be executed infinitely fast and without consuming any energy. In MC (minimal/constant) and FC (functional/constant), a constant time/energy is assumed each time the function is executed. These can be estimated or observed worst-case, mean-case or best case figures. In FC, the simulation time would be higher than in MC, as the actual code is executed. In the FD (functional/data dependent) model, both time and energy must be estimated over the actual code, using a state of the art technique, such as native simulation technology or binary translation.&lt;br /&gt;
&lt;br /&gt;
Additionally, not all the system components need to have the same level of detail in a single simulation. Different system components can require simulation at different abstraction levels, resulting in heterogeneous simulations, depending on the focus of each simulation. For example, components under development usually require the most accurate simulation level (FD) when verifying their correctness while library components may only require FC simulation.&lt;br /&gt;
&lt;br /&gt;
This multi-level capability is also applicable to the simulation infrastructure. For example, in robotic-based systems considered in this paper, at any of these levels it should be possible to include in the simulation the ROS infrastructure or not. The latter case would allow designers to focus on the functionality of the distributed, heterogeneous functionality. Once this is verified, the former would include the actual ROS infrastructure in order to confirm that the application functionality behaves correctly when the actual communication middleware (MW) is included.&lt;br /&gt;
&lt;br /&gt;
Regarding the simulation of the drones, four different models are considered. Let’s consider the command “move to X/Y/Z”. A minimal implementation will estimate the path and the movement time considering constant horizontal and vertical speed values, the power consumption, and will perform the movement in a single step (FN). In many cases, a more detailed model for the drone(s) is required. An autopilot and a physical simulator are needed.&lt;br /&gt;
&lt;br /&gt;
In this case, the full code (FC/FD) will generate all the signals to the motors required by the physical simulator to reach the final destination, including the estimation of all the intermediate positions, the actual time to reach them, the corresponding power consumption, angles and orientations.&lt;br /&gt;
&lt;br /&gt;
However, these two abstraction levels can be not enough for certain components. As commented above, S3D is based on a service-provided communication paradigm. However, ROS is mostly based on a client/subscriber approach. Thus, an approach based on services that performs the required operation in a single step, such as the one proposed above for the drone model, is not adequate, since publishers typically require a continuous flow of data. To solve this, and considering that the drone model is the most critical element in the simulation of drone-based systems, this work proposes a third, intermediate abstraction level for this component, capable of providing intermediate values to be published. Following the previous example, the command “move to X/Y/Z” will result in a continuous flow of approximate positions and orientations to be published. As a summary, the proposed drone model levels proposed are those shown in Table 2:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 2 - Abstraction levels for the drone simulators&lt;br /&gt;
!Level&lt;br /&gt;
!|Drones modeling&lt;br /&gt;
!|ROS MW&lt;br /&gt;
|-&lt;br /&gt;
|FY/FN&lt;br /&gt;
|Functional&lt;br /&gt;
|yes/no&lt;br /&gt;
|-&lt;br /&gt;
|AP&lt;br /&gt;
|Autopilot&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|MP&lt;br /&gt;
|Multi-Physics&lt;br /&gt;
|yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The simulation framework should support mixing functional and detailed simulation models for the drones in a multi-drone service. It should enable the system engineer to decide the best combination of abstraction levels in Tables 1 and 2. Supporting multi-level simulation requires that each component in the functional architecture is associated with models at several abstraction levels, each involving different accuracy/speed ratios.&lt;br /&gt;
&lt;br /&gt;
Finally, it is mandatory to consider that drone based-systems usually involve multiple drones, and these drones can even require different simulation levels, in order to achieve high accuracy in some of the drone models while maintaining enough speed for the whole simulation.&lt;br /&gt;
&lt;br /&gt;
The new verification tasks introduced in the V-Cycle of Figure 2 are the following:&lt;br /&gt;
&lt;br /&gt;
# '''Validation''': The goal of the System Design, Mechanical Analysis and Design, IT Analysis and Design, SW Analysis and Design, HW Analysis and Design and SW Detailed Design is to ensure that the hierarchical partitioning of the system in sub-systems and finally, mechanical and HW and SW components, keeps the functional and non-functional requirements stated at the beginning of the design process. As the domain restrictions such as inputs, outputs, rates and throughputs are usually defined in the system requirements analysis steps, the full test-bench can be developed. The test-benches developed at the system, subsystem and component levels during design validation can be reused for component, sub-system and final system verification. The system-level test-bench can be also largely re-used for DSE and HW/SW co-design. The test-benches may also help during component, sub-system and system testing when the test-bench or part of it is emulated via SW-in-the-Loop (SIL). In order to be able to verify the test-bench at such a high level, a minimal functionality implementing the fundamental features of the system, subsystems and/or the components in the final full system architecture, should be developed (MN). This initial code can also be combined with preliminary, predefined time/energy figures in order to enable a first performance analysis of the system (MC). Regarding the drone(s), a functional model (FN) is the most appropriate. This functional simulation is useful during system requirement analysis and system architectural design and partitioning. After this initial stage, the components to be reused are selected and the components to be developed from scratch are fully specified so that their development (i.e. programming) can start, in case of HW/SW components. In the case of robots (i.e. the drones), their modelling, simulation and design can start. Reusability does not affect only application components but also components in the test-bench (e.g. the drones in the context of this paper).&lt;br /&gt;
# '''Verification''': Once the complete code has been developed, SW Component Verification, SW Integration and Verification, HW Integration and Verification, IT Integration and Verification, Mechanic Integration and Verification and System Integration and Verification can be performed. By verification, functional and non-functional verification is meant. Simulating the full code allows functional verification and debugging. Performance analysis enables non-functional verification. Any error detected, would require code optimization, platform re-configuration, platform re-design or even, a new architectural mapping of functional components to HW resources. The advantage provided by the co-design approach is that these design decisions are made at the same stage and only in a few cases it is required to backtrack to a previous stage. Among the different valid solutions during this Design-Space Exploration (DSE), the most appropriate Pareto point is selected [3]. As drones are basically real-time systems, consideration of timing (and potentially, energy) is usually mandatory. However, timing analysis is not an easy and fast task. To solve it, two different levels are proposed. In the first one, the full code is simulated but annotated with constant figures for the time/energy it consumes (FC). In a second level, once the component is mapped to a computing resource, native simulation is used so that accurate figures for execution times and energy can be obtained (FD). Although this is not covered in the paper, more detailed models for the SW can be used as virtualization or even an ISS. These simulation technologies may provide higher accuracy than native simulation at a lower simulation speed. These verification steps finish when the virtual model is accepted in the System Acceptance Verification stage so that its implementation can start.&lt;br /&gt;
# '''Testing''' is the new name we give to the former “HW-in-the-loop” verification steps as they require a physical prototype of the components, sub-systems and, finally, the complete system. Those components with potential reusability will be stored in the ‘Library of Components’.&lt;br /&gt;
&lt;br /&gt;
Once the system is fully designed and accepted, the system can be produced and deployed in the field. Now, the system operation can be monitored and analysed so that it is possible to facilitate maintenance, reduce faults and minimize correction time, when needed.&lt;br /&gt;
&lt;br /&gt;
== Interoperability with other C4D tools ==&lt;br /&gt;
&lt;br /&gt;
From the S3D model, the Model to Model (M2M) tool mSSYN generates the simulation model to be executed by SoSIM. As S3D may contain models from other simulators, so S3D is linked to them. Figure 3 describes the interoperability between SoSim and other simulators:&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-26_IO_01.png|frame|center| Figure 3 - Interoperability of SoSim with other tools]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
[1] J . Merino, R. Gomez, H. Posadas &amp;amp; E. Villar: &amp;quot;Multilevel host-compiled simulation framework for ROS-based UAV services using ArduCopter&amp;quot;, proc. of the XXXVI Conference on Design of Circuits and Integrated Systems (DCIS), IEEE, 2021.&lt;br /&gt;
&lt;br /&gt;
[2] F. Herrera, J. Medina, E. Villar: &amp;quot;Modeling Hardware/Software Embedded Systems with UML/MARTE: A Single-Source Design approach&amp;quot;, in S. Ha and J. Teich (Eds): &amp;quot;Handbook of Hardware/Software Codesign&amp;quot;, Springer. 2017.&lt;br /&gt;
&lt;br /&gt;
[3] F. Herrera, H. Posadas, P. Peñil, E. Villar, F. Ferrero, R. Valencia and G. Palermo. “The COMPLEX methodology for UML/MARTE Modeling and design space exploration of embedded systems”, Journal of Systems Architecture, V.60, I.1, 2014.&lt;/div&gt;</summary>
		<author><name>Raulgv</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-26&amp;diff=850</id>
		<title>WP6-26</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-26&amp;diff=850"/>
		<updated>2023-02-17T09:19:31Z</updated>

		<summary type="html">&lt;p&gt;Raulgv: /* Detailed Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-26&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNICAN&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux Ubuntu 18.04&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| Timing/Energy Simulation&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| XML system description &amp;amp; functional code&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| Functional &amp;amp; performance simulation results&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| 5&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
SoSIM is a new System-of-Systems Simulation tool developed in Comp4Drones. Its background technology is VIPPE. From the Single-Source System Design (S3D) model, the specific information required to perform a certain simulation and performance analysis task (e.g. performance simulation of a solution in a design-space exploration) is extracted and the corresponding simulation model, synthesized. This Model-to-Model generation is performed by the mSSYN tool.&lt;br /&gt;
&lt;br /&gt;
In order to extend SoSIM to mechatronic systems, several improvements have been carried out. The basic infrastructure allowing to simulate multiple drones and combining different levels for the different system components including ROS was described in [1]. The architecture of the complete simulation environment is shown in Figure 1. The arrows represent the control flow in the simulator. Depending on the simulation level, some of the functional blocks may be inactive. So, at the functional level ROS is not used. Thus, neither the ROS core and the MAVROS block, nor the Sync.Clock ROS node are required. The functional drone simulator (now to be extended to several drones) interacts directly with the ROScpp components. This is kept even when the ROS core is included. The synchronization clock will also be needed. Only when any of the drones is modeled with a detailed autopilot and physics, the MAVROS block is added in order to support the communication with the drone through MAVLink.&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-26-I-01.png|frame|center|Figure 1 - VIPPE-ROS background simulation infrastructure]]&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
SoSIM covers the following states in the mechatronic V-Cycle of Figure 2:&lt;br /&gt;
&lt;br /&gt;
2. System Design&lt;br /&gt;
&lt;br /&gt;
3. Mechanical Analysis and Design&lt;br /&gt;
&lt;br /&gt;
4. IT Analysis and Design&lt;br /&gt;
&lt;br /&gt;
5. SW Analysis and Design&lt;br /&gt;
&lt;br /&gt;
6. HW Analysis and Design&lt;br /&gt;
&lt;br /&gt;
7. SW Detailed Design&lt;br /&gt;
&lt;br /&gt;
9. SW Component Verification&lt;br /&gt;
&lt;br /&gt;
10. SW Integration and Verification&lt;br /&gt;
&lt;br /&gt;
11. HW Integration and Verification&lt;br /&gt;
&lt;br /&gt;
12. Mechanic Integration and Verification&lt;br /&gt;
&lt;br /&gt;
13. IT Integration and Verification&lt;br /&gt;
&lt;br /&gt;
14. System Integration and Verification&lt;br /&gt;
&lt;br /&gt;
15. System Acceptance Verification&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-26-D-01.png|frame|center|Figure 2 - S3D-SoSIM V cycle coverage]]&lt;br /&gt;
&lt;br /&gt;
The improvement provided by SoSIM comes from the fact that the use of virtual models of the system simplifies simulation-based DSE, which greatly reduces the time required to select the most appropriate solution [2]. However, as the information about the system and its components evolve along the design process, so should their models and, in general, the infrastructure required for their simulation. As a result, different simulation levels must be considered during the different steps of the design and verification process. Table 1 shows the four simulation levels considered for the functional components:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 1 - Abstraction levels for functional components simulation&lt;br /&gt;
!Level&lt;br /&gt;
!|Code&lt;br /&gt;
!|Timing/Energy&lt;br /&gt;
!|ROS MW&lt;br /&gt;
|-&lt;br /&gt;
|MN&lt;br /&gt;
|minimal&lt;br /&gt;
|no&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;|yes/no&lt;br /&gt;
|-&lt;br /&gt;
|MC&lt;br /&gt;
|minimal&lt;br /&gt;
|constant&lt;br /&gt;
|-&lt;br /&gt;
|FC&lt;br /&gt;
|full code&lt;br /&gt;
|constant&lt;br /&gt;
|-&lt;br /&gt;
|FD&lt;br /&gt;
|full code&lt;br /&gt;
|data dependent&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In MN (minimal/no), no model of time/energy is provided so that the code is supposed to be executed infinitely fast and without consuming any energy. In MC (minimal/constant) and FC (functional/constant), a constant time/energy is assumed each time the function is executed. These can be estimated or observed worst-case, mean-case or best case figures. In FC, the simulation time would be higher than in MC, as the actual code is executed. In the FD (functional/data dependent) model, both time and energy must be estimated over the actual code, using a state of the art technique, such as native simulation technology or binary translation.&lt;br /&gt;
&lt;br /&gt;
Additionally, not all the system components need to have the same level of detail in a single simulation. Different system components can require simulation at different abstraction levels, resulting in heterogeneous simulations, depending on the focus of each simulation. For example, components under development usually require the most accurate simulation level (FD) when verifying their correctness while library components may only require FC simulation.&lt;br /&gt;
&lt;br /&gt;
This multi-level capability is also applicable to the simulation infrastructure. For example, in robotic-based systems considered in this paper, at any of these levels it should be possible to include in the simulation the ROS infrastructure or not. The latter case would allow designers to focus on the functionality of the distributed, heterogeneous functionality. Once this is verified, the former would include the actual ROS infrastructure in order to confirm that the application functionality behaves correctly when the actual communication middleware (MW) is included.&lt;br /&gt;
&lt;br /&gt;
Regarding the simulation of the drones, four different models are considered. Let’s consider the command “move to X/Y/Z”. A minimal implementation will estimate the path and the movement time considering constant horizontal and vertical speed values, the power consumption, and will perform the movement in a single step (FN). In many cases, a more detailed model for the drone(s) is required. An autopilot and a physical simulator are needed.&lt;br /&gt;
&lt;br /&gt;
In this case, the full code (FC/FD) will generate all the signals to the motors required by the physical simulator to reach the final destination, including the estimation of all the intermediate positions, the actual time to reach them, the corresponding power consumption, angles and orientations.&lt;br /&gt;
&lt;br /&gt;
However, these two abstraction levels can be not enough for certain components. As commented above, S3D is based on a service-provided communication paradigm. However, ROS is mostly based on a client/subscriber approach. Thus, an approach based on services that performs the required operation in a single step, such as the one proposed above for the drone model, is not adequate, since publishers typically require a continuous flow of data. To solve this, and considering that the drone model is the most critical element in the simulation of drone-based systems, this work proposes a third, intermediate abstraction level for this component, capable of providing intermediate values to be published. Following the previous example, the command “move to X/Y/Z” will result in a continuous flow of approximate positions and orientations to be published. As a summary, the proposed drone model levels proposed are those shown in Table 2:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 2 - Abstraction levels for the drone simulators&lt;br /&gt;
!Level&lt;br /&gt;
!|Drones modeling&lt;br /&gt;
!|ROS MW&lt;br /&gt;
|-&lt;br /&gt;
|FY/FN&lt;br /&gt;
|Functional&lt;br /&gt;
|yes/no&lt;br /&gt;
|-&lt;br /&gt;
|AP&lt;br /&gt;
|Autopilot&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|MP&lt;br /&gt;
|Multi-Physics&lt;br /&gt;
|yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The simulation framework should support mixing functional and detailed simulation models for the drones in a multi-drone service. It should enable the system engineer to decide the best combination of abstraction levels in Tables 1 and 2. Supporting multi-level simulation requires that each component in the functional architecture is associated with models at several abstraction levels, each involving different accuracy/speed ratios.&lt;br /&gt;
&lt;br /&gt;
Finally, it is mandatory to consider that drone based-systems usually involve multiple drones, and these drones can even require different simulation levels, in order to achieve high accuracy in some of the drone models while maintaining enough speed for the whole simulation.&lt;br /&gt;
&lt;br /&gt;
The new verification tasks introduced in the V-Cycle of Figure 2 are the following:&lt;br /&gt;
&lt;br /&gt;
# '''Validation''': The goal of the System Design, Mechanical Analysis and Design, IT Analysis and Design, SW Analysis and Design, HW Analysis and Design and SW Detailed Design is to ensure that the hierarchical partitioning of the system in sub-systems and finally, mechanical and HW and SW components, keeps the functional and non-functional requirements stated at the beginning of the design process. As the domain restrictions such as inputs, outputs, rates and throughputs are usually defined in the system requirements analysis steps, the full test-bench can be developed. The test-benches developed at the system, subsystem and component levels during design validation can be reused for component, sub-system and final system verification. The system-level test-bench can be also largely re-used for DSE and HW/SW co-design. The test-benches may also help during component, sub-system and system testing when the test-bench or part of it is emulated via SW-in-the-Loop (SIL). In order to be able to verify the test-bench at such a high level, a minimal functionality implementing the fundamental features of the system, subsystems and/or the components in the final full system architecture, should be developed (MN). This initial code can also be combined with preliminary, predefined time/energy figures in order to enable a first performance analysis of the system (MC). Regarding the drone(s), a functional model (FN) is the most appropriate. This functional simulation is useful during system requirement analysis and system architectural design and partitioning. After this initial stage, the components to be reused are selected and the components to be developed from scratch are fully specified so that their development (i.e. programming) can start, in case of HW/SW components. In the case of robots (i.e. the drones), their modelling, simulation and design can start. Reusability does not affect only application components but also components in the test-bench (e.g. the drones in the context of this paper).&lt;br /&gt;
# '''Verification''': Once the complete code has been developed, SW Component Verification, SW Integration and Verification, HW Integration and Verification, IT Integration and Verification, Mechanic Integration and Verification and System Integration and Verification can be performed. By verification, functional and non-functional verification is meant. Simulating the full code allows functional verification and debugging. Performance analysis enables non-functional verification. Any error detected, would require code optimization, platform re-configuration, platform re-design or even, a new architectural mapping of functional components to HW resources. The advantage provided by the co-design approach is that these design decisions are made at the same stage and only in a few cases it is required to backtrack to a previous stage. Among the different valid solutions during this Design-Space Exploration (DSE), the most appropriate Pareto point is selected [3]. As drones are basically real-time systems, consideration of timing (and potentially, energy) is usually mandatory. However, timing analysis is not an easy and fast task. To solve it, two different levels are proposed. In the first one, the full code is simulated but annotated with constant figures for the time/energy it consumes (FC). In a second level, once the component is mapped to a computing resource, native simulation is used so that accurate figures for execution times and energy can be obtained (FD). Although this is not covered in the paper, more detailed models for the SW can be used as virtualization or even an ISS. These simulation technologies may provide higher accuracy than native simulation at a lower simulation speed. These verification steps finish when the virtual model is accepted in the System Acceptance Verification stage so that its implementation can start.&lt;br /&gt;
# '''Testing''' is the new name we give to the former “HW-in-the-loop” verification steps as they require a physical prototype of the components, sub-systems and, finally, the complete system. Those components with potential reusability will be stored in the ‘Library of Components’.&lt;br /&gt;
&lt;br /&gt;
Once the system is fully designed and accepted, the system can be produced and deployed in the field. Now, the system operation can be monitored and analysed so that it is possible to facilitate maintenance, reduce faults and minimize correction time, when needed.&lt;br /&gt;
&lt;br /&gt;
== Interoperability with other C4D tools ==&lt;br /&gt;
&lt;br /&gt;
From the S3D model, the Model to Model (M2M) tool mSSYN generates the simulation model to be executed by SoSIM. As S3D may contain models from other simulators, so S3D is linked to them. Figure 3 describes the interoperability between SoSim and other simulators:&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-26_IO_01.png|frame|center| Figure 3 - Interoperability of SoSim with other tools]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
[1] J . Merino, R. Gomez, H. Posadas &amp;amp; E. Villar: &amp;quot;Multilevel host-compiled simulation framework for ROS-based UAV services using ArduCopter&amp;quot;, proc. of the XXXVI Conference on Design of Circuits and Integrated Systems (DCIS), IEEE, 2021.&lt;br /&gt;
&lt;br /&gt;
[2] F. Herrera, J. Medina, E. Villar: &amp;quot;Modeling Hardware/Software Embedded Systems with UML/MARTE: A Single-Source Design approach&amp;quot;, in S. Ha and J. Teich (Eds): &amp;quot;Handbook of Hardware/Software Codesign&amp;quot;, Springer. 2017.&lt;br /&gt;
&lt;br /&gt;
[3] F. Herrera, H. Posadas, P. Peñil, E. Villar, F. Ferrero, R. Valencia and G. Palermo. “The COMPLEX methodology for UML/MARTE Modeling and design space exploration of embedded systems”, Journal of Systems Architecture, V.60, I.1, 2014.&lt;/div&gt;</summary>
		<author><name>Raulgv</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-25&amp;diff=849</id>
		<title>WP6-25</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-25&amp;diff=849"/>
		<updated>2023-02-17T09:08:57Z</updated>

		<summary type="html">&lt;p&gt;Raulgv: /* Detailed Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-25&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNICAN&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux Ubuntu 18.04, Eclipse EMF&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| System-of-Systems Modeling&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| Platform Independent Model, Platform Description Model, Functional code&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| XML system description &amp;amp; functional code&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| 5-6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
S3D (s3d.unican.es) is a model-driven, system design framework around a single UML/MARTE model [1]. The model is used as a centralized repository of all the information about the system which is relevant for the design. From the model, the specific information required to perform a certain simulation and performance analysis task (e.g. performance simulation of a solution in a design-space exploration) is extracted and the corresponding simulation model, synthesized. This Model-to-Model generation is performed by the mSSYN tool. The model is simulated by the VIPPE tool. It is worth mentioning that the M2M technology used to generate the simulation models automatically from the system model can be extended to synthesize the SW stack to be executed in each computational node. The corresponding synthesis tool is eSSYN (essyn.unican.es).&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-25_I_01.png]]&lt;br /&gt;
&lt;br /&gt;
==Contribution and Improvements==&lt;br /&gt;
&lt;br /&gt;
The fundamental S3D modeling methodology based on required-provided services has been extended in order to support components using ROS, a publish-subscribe communication middleware [2]. In this paper, Model-Driven Design (MDD) is proposed for modeling, simulation and performance analysis of SW intensive robot-based services. The work shows that robots can be integrated into a system engineering framework without affecting their modeling, design and development features. In order to seamlessly integrate these additional kinds of electro-mechanical components, a platform-based approach is proposed. The large number of different robots available makes it very difficult to reuse the same functional components from one project to another if the robots are changed. For certain kinds of robots with many similar functions, such as drones, a common list of methods can be defined so that the same code is valid for all of them simply by associating the functions with the appropriate code. An additional advantage of this common language is a significant reduction in the programming effort which can be reduced around 30%. The cost to be paid is a drop in simulation speed. In the use case of the paper, this reduction can be as high as 16% when a code intensive in ROS calls is used.&lt;br /&gt;
&lt;br /&gt;
Another interesting result is that if the MDD modeling methodology is general enough, no extension is needed in order to support ROS. Identifying which components make use of ROS is sufficient. In this case, the ROS infrastructure is automatically integrated in the system and used by those ports requiring it. A methodology for rough estimation of execution time of the ROS code has been proposed. Although the error can be as high as 45%, the impact is small as the ROS code will be only a fraction of the total executable. In any case, an improvement over not annotating any execution time for ROS is achieved and this improvement is higher when it is more needed, that is, when the percentage of ROS code is higher. The improvement can be as high as 83.5% with only 2.55% of ROS code.&lt;br /&gt;
&lt;br /&gt;
The proposed framework enables the seamless integration of robots into a MDD framework so that the whole service can be modelled, simulated and its performance analyzed, fully supporting essential stages of the V-Cycle as explained below.&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
S3D covers the modelling and automatic generation of the multi-level executable models used to validate and verify the system at the different abstraction levels. S3D supports the modelling activities at each stage of the V-Cycle for mechatronic systems as explained below:&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-26-D-01.png]]&lt;br /&gt;
&lt;br /&gt;
In all these stages, S3D supports reusability from previous projects as both functional and test-bench components can be imported from libraries:&lt;br /&gt;
&lt;br /&gt;
1. System Requirement Analysis. Based on Papyrus and the UML/MARTE standard, S3D can help in analysing and finally, specify the functional and non-functional requirements to be satisfied by the System (or System of Systems).&lt;br /&gt;
&lt;br /&gt;
2. System Design. Once the requirements have been specified, the system and its environment are fully specified in terms of the interface among them, the domain constraints (input rates, types and constraints among them) and the system functional and non-functional requirements (output rates, input/output delays, energy, etc.). As part of the System Design stage, partitioning of the system in the mechanical and the IT (digital) parts is performed. In S3D, the mechanical part will be incorporated to the Test-Bench (TB) of the (digital) system. As its functionality and performance is fully specified, the TB, including the model of the robots, can be developed.&lt;br /&gt;
&lt;br /&gt;
3. Mechanical Analysis and Design. The inclusion of the robots as TB components allows the analysis of their constraints and the design of the mechanical part (number and type of robots, design requirements to each one and among them, etc.).&lt;br /&gt;
&lt;br /&gt;
4. IT Analysis and Design. At this stage, the analysis and specification of the Platform-Description Model (PDM) can be performed. On the other side, the Platform-Independent Model can be specified.&lt;br /&gt;
&lt;br /&gt;
5&amp;amp;7. SW Analysis &amp;amp; Design and SW Detailed Design. During this stages, the hierarchical partitioning of the PIM in sub-systems and finally, components fully specified in their interfaces and functional and non-functional constraints, is decided.&lt;br /&gt;
&lt;br /&gt;
6. HW Analysis &amp;amp; Design. At this stage, the design of the initial Platform-Description Model (PDM), can be performed and an initial architecture of nodes and their internal HW architecture can be proposed. The final PDM will be decided later during architectural mapping as part of the System Integration &amp;amp; Verification stage.&lt;br /&gt;
&lt;br /&gt;
8. SW Development. The goal of this stage is to develop the code implementing the functional constraints. Papyrus supports both the Modelling and the Development Views and S3D links one with the other by annotating the components with their implementation files using the file’s paths as properties.&lt;br /&gt;
&lt;br /&gt;
9. SW Component Verification. S3D links each component with their Test-Benches so that the component can be verified both in the host (verification) and the target platform (testing) in case it has been decided already and it is available.&lt;br /&gt;
&lt;br /&gt;
10. In the rest of stages:&lt;br /&gt;
 1. SW Integration &amp;amp; Verification.&lt;br /&gt;
 2. HW Integration &amp;amp; Verification.&lt;br /&gt;
 3. IT Integration &amp;amp; Verification.&lt;br /&gt;
 4. Mechanical Integration &amp;amp; Verification.&lt;br /&gt;
 5. System Integration &amp;amp; Verification.&lt;br /&gt;
 6. System Acceptance Verification.&lt;br /&gt;
&lt;br /&gt;
S3D helps in supporting the improvement of the model through the different stages and the automatic generation of the executables models so that the functional and non-functional constraints can be verified. Architectural mapping, that is, the final mapping of functional components in the PIM to execution resources in the PDM is fixed during System Integration and Verification when an accurate simulation and performance analysis model including the actual code can be generated. This model can provide accurate metrics ensuring final satisfaction of the implementation decided after Design-Space Exploration of as many possibilities as required.&lt;br /&gt;
&lt;br /&gt;
== Interoperability with other C4D tools ==&lt;br /&gt;
S3D is based on fundamental Model-Driven, Component-Based computational concepts. As a consequence, it keeps interoperability with many other system modeling environments. The following picture shows the interoperability of S3D with other tools in the C4D design and Verification environment:&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-25_IO_01.png]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
[1] E. Villar, J. Merino, H. Posadas, R. Henia &amp;amp; L. Rioux: “Mega-modeling of complex, distributed, heterogeneous CPS systems”, Microprocessors and Microsystems, V.78, 2020.&lt;br /&gt;
&lt;br /&gt;
[2] J. Merino, R. Gomez, H. Posadas and E. Villar: &amp;quot;Modeling and Performance Estimation of Robotic Systems using ROS: Application to drone-based Services,&amp;quot; in proc. of the Forum on specification &amp;amp; Design Languages (FDL), IEEE, 2021.&lt;/div&gt;</summary>
		<author><name>Raulgv</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-26&amp;diff=848</id>
		<title>WP6-26</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-26&amp;diff=848"/>
		<updated>2023-02-17T08:48:33Z</updated>

		<summary type="html">&lt;p&gt;Raulgv: /* Detailed Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-26&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNICAN&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux Ubuntu 18.04&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| Timing/Energy Simulation&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| XML system description &amp;amp; functional code&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| Functional &amp;amp; performance simulation results&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| 5&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
SoSIM is a new System-of-Systems Simulation tool developed in Comp4Drones. Its background technology is VIPPE. From the Single-Source System Design (S3D) model, the specific information required to perform a certain simulation and performance analysis task (e.g. performance simulation of a solution in a design-space exploration) is extracted and the corresponding simulation model, synthesized. This Model-to-Model generation is performed by the mSSYN tool.&lt;br /&gt;
&lt;br /&gt;
In order to extend SoSIM to mechatronic systems, several improvements have been carried out. The basic infrastructure allowing to simulate multiple drones and combining different levels for the different system components including ROS was described in [1]. The architecture of the complete simulation environment is shown in Figure 1. The arrows represent the control flow in the simulator. Depending on the simulation level, some of the functional blocks may be inactive. So, at the functional level ROS is not used. Thus, neither the ROS core and the MAVROS block, nor the Sync.Clock ROS node are required. The functional drone simulator (now to be extended to several drones) interacts directly with the ROScpp components. This is kept even when the ROS core is included. The synchronization clock will also be needed. Only when any of the drones is modeled with a detailed autopilot and physics, the MAVROS block is added in order to support the communication with the drone through MAVLink.&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-26-I-01.png|frame|center|Figure 1 - VIPPE-ROS background simulation infrastructure]]&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
SoSIM covers the following states in the mechatronic V-Cycle of Figure 2:&lt;br /&gt;
&lt;br /&gt;
# System Design&lt;br /&gt;
# Mechanical Analysis and Design&lt;br /&gt;
# IT Analysis and Design&lt;br /&gt;
# SW Analysis and Design&lt;br /&gt;
# HW Analysis and Design&lt;br /&gt;
# SW Detailed Design&lt;br /&gt;
# SW Component Verification&lt;br /&gt;
# SW Integration and Verification&lt;br /&gt;
# HW Integration and Verification&lt;br /&gt;
# IT Integration and Verification&lt;br /&gt;
# Mechanic Integration and Verification&lt;br /&gt;
# System Integration and Verification&lt;br /&gt;
# System Acceptance Verification&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-26-D-01.png|frame|center|Figure 2 - S3D-SoSIM V cycle coverage]]&lt;br /&gt;
&lt;br /&gt;
The improvement provided by SoSIM comes from the fact that the use of virtual models of the system simplifies simulation-based DSE, which greatly reduces the time required to select the most appropriate solution [2]. However, as the information about the system and its components evolve along the design process, so should their models and, in general, the infrastructure required for their simulation. As a result, different simulation levels must be considered during the different steps of the design and verification process. Table 1 shows the four simulation levels considered for the functional components:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 1 - Abstraction levels for functional components simulation&lt;br /&gt;
!Level&lt;br /&gt;
!|Code&lt;br /&gt;
!|Timing/Energy&lt;br /&gt;
!|ROS MW&lt;br /&gt;
|-&lt;br /&gt;
|MN&lt;br /&gt;
|minimal&lt;br /&gt;
|no&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;|yes/no&lt;br /&gt;
|-&lt;br /&gt;
|MC&lt;br /&gt;
|minimal&lt;br /&gt;
|constant&lt;br /&gt;
|-&lt;br /&gt;
|FC&lt;br /&gt;
|full code&lt;br /&gt;
|constant&lt;br /&gt;
|-&lt;br /&gt;
|FD&lt;br /&gt;
|full code&lt;br /&gt;
|data dependent&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In MN (minimal/no), no model of time/energy is provided so that the code is supposed to be executed infinitely fast and without consuming any energy. In MC (minimal/constant) and FC (functional/constant), a constant time/energy is assumed each time the function is executed. These can be estimated or observed worst-case, mean-case or best case figures. In FC, the simulation time would be higher than in MC, as the actual code is executed. In the FD (functional/data dependent) model, both time and energy must be estimated over the actual code, using a state of the art technique, such as native simulation technology or binary translation.&lt;br /&gt;
&lt;br /&gt;
Additionally, not all the system components need to have the same level of detail in a single simulation. Different system components can require simulation at different abstraction levels, resulting in heterogeneous simulations, depending on the focus of each simulation. For example, components under development usually require the most accurate simulation level (FD) when verifying their correctness while library components may only require FC simulation.&lt;br /&gt;
&lt;br /&gt;
This multi-level capability is also applicable to the simulation infrastructure. For example, in robotic-based systems considered in this paper, at any of these levels it should be possible to include in the simulation the ROS infrastructure or not. The latter case would allow designers to focus on the functionality of the distributed, heterogeneous functionality. Once this is verified, the former would include the actual ROS infrastructure in order to confirm that the application functionality behaves correctly when the actual communication middleware (MW) is included.&lt;br /&gt;
&lt;br /&gt;
Regarding the simulation of the drones, four different models are considered. Let’s consider the command “move to X/Y/Z”. A minimal implementation will estimate the path and the movement time considering constant horizontal and vertical speed values, the power consumption, and will perform the movement in a single step (FN). In many cases, a more detailed model for the drone(s) is required. An autopilot and a physical simulator are needed.&lt;br /&gt;
&lt;br /&gt;
In this case, the full code (FC/FD) will generate all the signals to the motors required by the physical simulator to reach the final destination, including the estimation of all the intermediate positions, the actual time to reach them, the corresponding power consumption, angles and orientations.&lt;br /&gt;
&lt;br /&gt;
However, these two abstraction levels can be not enough for certain components. As commented above, S3D is based on a service-provided communication paradigm. However, ROS is mostly based on a client/subscriber approach. Thus, an approach based on services that performs the required operation in a single step, such as the one proposed above for the drone model, is not adequate, since publishers typically require a continuous flow of data. To solve this, and considering that the drone model is the most critical element in the simulation of drone-based systems, this work proposes a third, intermediate abstraction level for this component, capable of providing intermediate values to be published. Following the previous example, the command “move to X/Y/Z” will result in a continuous flow of approximate positions and orientations to be published. As a summary, the proposed drone model levels proposed are those shown in Table 2:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 2 - Abstraction levels for the drone simulators&lt;br /&gt;
!Level&lt;br /&gt;
!|Drones modeling&lt;br /&gt;
!|ROS MW&lt;br /&gt;
|-&lt;br /&gt;
|FY/FN&lt;br /&gt;
|Functional&lt;br /&gt;
|yes/no&lt;br /&gt;
|-&lt;br /&gt;
|AP&lt;br /&gt;
|Autopilot&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|MP&lt;br /&gt;
|Multi-Physics&lt;br /&gt;
|yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The simulation framework should support mixing functional and detailed simulation models for the drones in a multi-drone service. It should enable the system engineer to decide the best combination of abstraction levels in Tables 1 and 2. Supporting multi-level simulation requires that each component in the functional architecture is associated with models at several abstraction levels, each involving different accuracy/speed ratios.&lt;br /&gt;
&lt;br /&gt;
Finally, it is mandatory to consider that drone based-systems usually involve multiple drones, and these drones can even require different simulation levels, in order to achieve high accuracy in some of the drone models while maintaining enough speed for the whole simulation.&lt;br /&gt;
&lt;br /&gt;
The new verification tasks introduced in the V-Cycle of Figure 2 are the following:&lt;br /&gt;
&lt;br /&gt;
# '''Validation''': The goal of the System Design, Mechanical Analysis and Design, IT Analysis and Design, SW Analysis and Design, HW Analysis and Design and SW Detailed Design is to ensure that the hierarchical partitioning of the system in sub-systems and finally, mechanical and HW and SW components, keeps the functional and non-functional requirements stated at the beginning of the design process. As the domain restrictions such as inputs, outputs, rates and throughputs are usually defined in the system requirements analysis steps, the full test-bench can be developed. The test-benches developed at the system, subsystem and component levels during design validation can be reused for component, sub-system and final system verification. The system-level test-bench can be also largely re-used for DSE and HW/SW co-design. The test-benches may also help during component, sub-system and system testing when the test-bench or part of it is emulated via SW-in-the-Loop (SIL). In order to be able to verify the test-bench at such a high level, a minimal functionality implementing the fundamental features of the system, subsystems and/or the components in the final full system architecture, should be developed (MN). This initial code can also be combined with preliminary, predefined time/energy figures in order to enable a first performance analysis of the system (MC). Regarding the drone(s), a functional model (FN) is the most appropriate. This functional simulation is useful during system requirement analysis and system architectural design and partitioning. After this initial stage, the components to be reused are selected and the components to be developed from scratch are fully specified so that their development (i.e. programming) can start, in case of HW/SW components. In the case of robots (i.e. the drones), their modelling, simulation and design can start. Reusability does not affect only application components but also components in the test-bench (e.g. the drones in the context of this paper).&lt;br /&gt;
# '''Verification''': Once the complete code has been developed, SW Component Verification, SW Integration and Verification, HW Integration and Verification, IT Integration and Verification, Mechanic Integration and Verification and System Integration and Verification can be performed. By verification, functional and non-functional verification is meant. Simulating the full code allows functional verification and debugging. Performance analysis enables non-functional verification. Any error detected, would require code optimization, platform re-configuration, platform re-design or even, a new architectural mapping of functional components to HW resources. The advantage provided by the co-design approach is that these design decisions are made at the same stage and only in a few cases it is required to backtrack to a previous stage. Among the different valid solutions during this Design-Space Exploration (DSE), the most appropriate Pareto point is selected [3]. As drones are basically real-time systems, consideration of timing (and potentially, energy) is usually mandatory. However, timing analysis is not an easy and fast task. To solve it, two different levels are proposed. In the first one, the full code is simulated but annotated with constant figures for the time/energy it consumes (FC). In a second level, once the component is mapped to a computing resource, native simulation is used so that accurate figures for execution times and energy can be obtained (FD). Although this is not covered in the paper, more detailed models for the SW can be used as virtualization or even an ISS. These simulation technologies may provide higher accuracy than native simulation at a lower simulation speed. These verification steps finish when the virtual model is accepted in the System Acceptance Verification stage so that its implementation can start.&lt;br /&gt;
# '''Testing''' is the new name we give to the former “HW-in-the-loop” verification steps as they require a physical prototype of the components, sub-systems and, finally, the complete system. Those components with potential reusability will be stored in the ‘Library of Components’.&lt;br /&gt;
&lt;br /&gt;
Once the system is fully designed and accepted, the system can be produced and deployed in the field. Now, the system operation can be monitored and analysed so that it is possible to facilitate maintenance, reduce faults and minimize correction time, when needed.&lt;br /&gt;
&lt;br /&gt;
== Interoperability with other C4D tools ==&lt;br /&gt;
&lt;br /&gt;
From the S3D model, the Model to Model (M2M) tool mSSYN generates the simulation model to be executed by SoSIM. As S3D may contain models from other simulators, so S3D is linked to them. Figure 3 describes the interoperability between SoSim and other simulators:&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-26_IO_01.png|frame|center| Figure 3 - Interoperability of SoSim with other tools]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
[1] J . Merino, R. Gomez, H. Posadas &amp;amp; E. Villar: &amp;quot;Multilevel host-compiled simulation framework for ROS-based UAV services using ArduCopter&amp;quot;, proc. of the XXXVI Conference on Design of Circuits and Integrated Systems (DCIS), IEEE, 2021.&lt;br /&gt;
&lt;br /&gt;
[2] F. Herrera, J. Medina, E. Villar: &amp;quot;Modeling Hardware/Software Embedded Systems with UML/MARTE: A Single-Source Design approach&amp;quot;, in S. Ha and J. Teich (Eds): &amp;quot;Handbook of Hardware/Software Codesign&amp;quot;, Springer. 2017.&lt;br /&gt;
&lt;br /&gt;
[3] F. Herrera, H. Posadas, P. Peñil, E. Villar, F. Ferrero, R. Valencia and G. Palermo. “The COMPLEX methodology for UML/MARTE Modeling and design space exploration of embedded systems”, Journal of Systems Architecture, V.60, I.1, 2014.&lt;/div&gt;</summary>
		<author><name>Raulgv</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-25&amp;diff=847</id>
		<title>WP6-25</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-25&amp;diff=847"/>
		<updated>2023-01-16T11:45:29Z</updated>

		<summary type="html">&lt;p&gt;Raulgv: /* Detailed Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-25&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNICAN&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux Ubuntu 18.04, Eclipse EMF&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| System-of-Systems Modeling&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| Platform Independent Model, Platform Description Model, Functional code&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| XML system description &amp;amp; functional code&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| 5-6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
S3D (s3d.unican.es) is a model-driven, system design framework around a single UML/MARTE model [1]. The model is used as a centralized repository of all the information about the system which is relevant for the design. From the model, the specific information required to perform a certain simulation and performance analysis task (e.g. performance simulation of a solution in a design-space exploration) is extracted and the corresponding simulation model, synthesized. This Model-to-Model generation is performed by the mSSYN tool. The model is simulated by the VIPPE tool. It is worth mentioning that the M2M technology used to generate the simulation models automatically from the system model can be extended to synthesize the SW stack to be executed in each computational node. The corresponding synthesis tool is eSSYN (essyn.unican.es).&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-25_I_01.png]]&lt;br /&gt;
&lt;br /&gt;
==Contribution and Improvements==&lt;br /&gt;
&lt;br /&gt;
The fundamental S3D modeling methodology based on required-provided services has been extended in order to support components using ROS, a publish-subscribe communication middleware [2]. In this paper, Model-Driven Design (MDD) is proposed for modeling, simulation and performance analysis of SW intensive robot-based services. The work shows that robots can be integrated into a system engineering framework without affecting their modeling, design and development features. In order to seamlessly integrate these additional kinds of electro-mechanical components, a platform-based approach is proposed. The large number of different robots available makes it very difficult to reuse the same functional components from one project to another if the robots are changed. For certain kinds of robots with many similar functions, such as drones, a common list of methods can be defined so that the same code is valid for all of them simply by associating the functions with the appropriate code. An additional advantage of this common language is a significant reduction in the programming effort which can be reduced around 30%. The cost to be paid is a drop in simulation speed. In the use case of the paper, this reduction can be as high as 16% when a code intensive in ROS calls is used.&lt;br /&gt;
&lt;br /&gt;
Another interesting result is that if the MDD modeling methodology is general enough, no extension is needed in order to support ROS. Identifying which components make use of ROS is sufficient. In this case, the ROS infrastructure is automatically integrated in the system and used by those ports requiring it. A methodology for rough estimation of execution time of the ROS code has been proposed. Although the error can be as high as 45%, the impact is small as the ROS code will be only a fraction of the total executable. In any case, an improvement over not annotating any execution time for ROS is achieved and this improvement is higher when it is more needed, that is, when the percentage of ROS code is higher. The improvement can be as high as 83.5% with only 2.55% of ROS code.&lt;br /&gt;
&lt;br /&gt;
The proposed framework enables the seamless integration of robots into a MDD framework so that the whole service can be modelled, simulated and its performance analyzed, fully supporting essential stages of the V-Cycle as explained below.&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
S3D covers the modelling and automatic generation of the multi-level executable models used to validate and verify the system at the different abstraction levels. S3D supports the modelling activities at each stage of the V-Cycle for mechatronic systems as explained below:&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-26-D-01.png]]&lt;br /&gt;
&lt;br /&gt;
In all these stages, S3D supports reusability from previous projects as both functional and test-bench components can be imported from libraries:&lt;br /&gt;
&lt;br /&gt;
# System Requirement Analysis. Based on Papyrus and the UML/MARTE standard, S3D can help in analysing and finally, specify the functional and non-functional requirements to be satisfied by the System (or System of Systems),&lt;br /&gt;
# System Design. Once the requirements have been specified, the system and its environment are fully specified in terms of the interface among them, the domain constraints (input rates, types and constraints among them) and the system functional and non-functional requirements (output rates, input/output delays, energy, etc.). As part of the System Design stage, partitioning of the system in the mechanical and the IT (digital) parts is performed. In S3D, the mechanical part will be incorporated to the Test-Bench (TB) of the (digital) system. As its functionality and performance is fully specified, the TB, including the model of the robots, can be developed.&lt;br /&gt;
# Mechanical Analysis and Design. The inclusion of the robots as TB components allows the analysis of their constraints and the design of the mechanical part (number and type of robots, design requirements to each one and among them, etc.).&lt;br /&gt;
# IT Analysis and Design. At this stage, the analysis and specification of the Platform-Description Model (PDM) can be performed. On the other side, the Platform-Independent Model can be specified.&lt;br /&gt;
# HW Analysis &amp;amp; Design. At this stage, the design of the initial Platform-Description Model (PDM), can be performed and an initial architecture of nodes and their internal HW architecture can be proposed. The final PDM will be decided later during architectural mapping as part of the System Integration &amp;amp; Verification stage.&lt;br /&gt;
# SW Analysis &amp;amp; Design and SW Detailed Design. During this stages, the hierarchical partitioning of the PIM in sub-systems and finally, components fully specified in their interfaces and functional and non-functional constraints, is decided.&lt;br /&gt;
# SW Development. The goal of this stage is to develop the code implementing the functional constraints. Papyrus supports both the Modelling and the Development Views and S3D links one with the other by annotating the components with their implementation files using the file’s paths as properties.&lt;br /&gt;
# SW Component Verification. S3D links each component with their Test-Benches so that the component can be verified both in the host (verification) and the target platform (testing) in case it has been decided already and it is available.&lt;br /&gt;
# In the rest of stages:&lt;br /&gt;
## SW Integration &amp;amp; Verification.&lt;br /&gt;
## HW Integration &amp;amp; Verification.&lt;br /&gt;
## IT Integration &amp;amp; Verification.&lt;br /&gt;
## Mechanical Integration &amp;amp; Verification.&lt;br /&gt;
## System Integration &amp;amp; Verification.&lt;br /&gt;
## System Acceptance Verification.&lt;br /&gt;
&lt;br /&gt;
S3D helps in supporting the improvement of the model through the different stages and the automatic generation of the executables models so that the functional and non-functional constraints can be verified. Architectural mapping, that is, the final mapping of functional components in the PIM to execution resources in the PDM is fixed during System Integration and Verification when an accurate simulation and performance analysis model including the actual code can be generated. This model can provide accurate metrics ensuring final satisfaction of the implementation decided after Design-Space Exploration of as many possibilities as required.&lt;br /&gt;
&lt;br /&gt;
== Interoperability with other C4D tools ==&lt;br /&gt;
S3D is based on fundamental Model-Driven, Component-Based computational concepts. As a consequence, it keeps interoperability with many other system modeling environments. The following picture shows the interoperability of S3D with other tools in the C4D design and Verification environment:&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-25_IO_01.png]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
[1] E. Villar, J. Merino, H. Posadas, R. Henia &amp;amp; L. Rioux: “Mega-modeling of complex, distributed, heterogeneous CPS systems”, Microprocessors and Microsystems, V.78, 2020.&lt;br /&gt;
&lt;br /&gt;
[2] J. Merino, R. Gomez, H. Posadas and E. Villar: &amp;quot;Modeling and Performance Estimation of Robotic Systems using ROS: Application to drone-based Services,&amp;quot; in proc. of the Forum on specification &amp;amp; Design Languages (FDL), IEEE, 2021.&lt;/div&gt;</summary>
		<author><name>Raulgv</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-25&amp;diff=846</id>
		<title>WP6-25</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-25&amp;diff=846"/>
		<updated>2023-01-12T10:58:26Z</updated>

		<summary type="html">&lt;p&gt;Raulgv: /* Detailed Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-25&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNICAN&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux Ubuntu 18.04, Eclipse EMF&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| System-of-Systems Modeling&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| Platform Independent Model, Platform Description Model, Functional code&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| XML system description &amp;amp; functional code&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| 5-6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
S3D (s3d.unican.es) is a model-driven, system design framework around a single UML/MARTE model [1]. The model is used as a centralized repository of all the information about the system which is relevant for the design. From the model, the specific information required to perform a certain simulation and performance analysis task (e.g. performance simulation of a solution in a design-space exploration) is extracted and the corresponding simulation model, synthesized. This Model-to-Model generation is performed by the mSSYN tool. The model is simulated by the VIPPE tool. It is worth mentioning that the M2M technology used to generate the simulation models automatically from the system model can be extended to synthesize the SW stack to be executed in each computational node. The corresponding synthesis tool is eSSYN (essyn.unican.es).&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-25_I_01.png]]&lt;br /&gt;
&lt;br /&gt;
==Contribution and Improvements==&lt;br /&gt;
&lt;br /&gt;
The fundamental S3D modeling methodology based on required-provided services has been extended in order to support components using ROS, a publish-subscribe communication middleware [2]. In this paper, Model-Driven Design (MDD) is proposed for modeling, simulation and performance analysis of SW intensive robot-based services. The work shows that robots can be integrated into a system engineering framework without affecting their modeling, design and development features. In order to seamlessly integrate these additional kinds of electro-mechanical components, a platform-based approach is proposed. The large number of different robots available makes it very difficult to reuse the same functional components from one project to another if the robots are changed. For certain kinds of robots with many similar functions, such as drones, a common list of methods can be defined so that the same code is valid for all of them simply by associating the functions with the appropriate code. An additional advantage of this common language is a significant reduction in the programming effort which can be reduced around 30%. The cost to be paid is a drop in simulation speed. In the use case of the paper, this reduction can be as high as 16% when a code intensive in ROS calls is used.&lt;br /&gt;
&lt;br /&gt;
Another interesting result is that if the MDD modeling methodology is general enough, no extension is needed in order to support ROS. Identifying which components make use of ROS is sufficient. In this case, the ROS infrastructure is automatically integrated in the system and used by those ports requiring it. A methodology for rough estimation of execution time of the ROS code has been proposed. Although the error can be as high as 45%, the impact is small as the ROS code will be only a fraction of the total executable. In any case, an improvement over not annotating any execution time for ROS is achieved and this improvement is higher when it is more needed, that is, when the percentage of ROS code is higher. The improvement can be as high as 83.5% with only 2.55% of ROS code.&lt;br /&gt;
&lt;br /&gt;
The proposed framework enables the seamless integration of robots into a MDD framework so that the whole service can be modelled, simulated and its performance analyzed, fully supporting essential stages of the V-Cycle as explained below.&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
S3D covers the modelling and automatic generation of the multi-level executable models used to validate and verify the system at the different abstraction levels. S3D supports the modelling activities at each stage of the V-Cycle for mechatronic systems as explained below:&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-26-D-01.png]]&lt;br /&gt;
&lt;br /&gt;
In all these stages, S3D supports reusability from previous projects as both functional and test-bench components can be imported from libraries:&lt;br /&gt;
&lt;br /&gt;
# System Requirement Analysis. Based on Papyrus and the UML/MARTE standard, S3D can help in analysing and finally, specify the functional and non-functional requirements to be satisfied by the System (or System of Systems),&lt;br /&gt;
# System Design. Once the requirements have been specified, the system and its environment are fully specified in terms of the interface among them, the domain constraints (input rates, types and constraints among them) and the system functional and non-functional requirements (output rates, input/output delays, energy, etc.). As part of the System Design stage, partitioning of the system in the mechanical and the IT (digital) parts is performed. In S3D, the mechanical part will be incorporated to the Test-Bench (TB) of the (digital) system. As its functionality and performance is fully specified, the TB, including the model of the robots, can be developed.&lt;br /&gt;
# Mechanical Analysis and Design. The inclusion of the robots as TB components allows the analysis of their constraints and the design of the mechanical part (number and type of robots, design requirements to each one and among them, etc.).&lt;br /&gt;
# IT Analysis and Design. At this stage, the analysis and specification of the Platform-Description Model (PDM) can be performed. On the other side, the Platform-Independent Model can be specified.&lt;br /&gt;
# HW Analysis &amp;amp; Design. At this stage, the design of the initial Platform-Description Model (PDM), can be performed and an initial architecture of nodes and their internal HW architecture can be proposed. The final PDM will be decided later during architectural mapping as part of the System Integration &amp;amp; Verification stage.&lt;br /&gt;
# SW Analysis &amp;amp; Design and SW Detailed Design. During this stage, the hierarchical partitioning of the PIM in sub-systems and finally, components fully specified in their interfaces and functional and non-functional constraints, is decided.&lt;br /&gt;
# SW Development. The goal of this stage is to develop the code implementing the functional constraints. Papyrus supports both the Modelling and the Development Views and S3D links one with the other by annotating the components with their implementation files using the file’s paths as properties.&lt;br /&gt;
# SW Component Verification. S3D links each component with their Test-Benches so that the component can be verified both in the host (verification) and the target platform (testing) in case it has been decided already and it is available.&lt;br /&gt;
# In the rest of stages:&lt;br /&gt;
## SW Integration &amp;amp; Verification.&lt;br /&gt;
## HW Integration &amp;amp; Verification.&lt;br /&gt;
## IT Integration &amp;amp; Verification.&lt;br /&gt;
## Mechanical Integration &amp;amp; Verification.&lt;br /&gt;
## System Integration &amp;amp; Verification.&lt;br /&gt;
## System Acceptance Verification.&lt;br /&gt;
&lt;br /&gt;
S3D helps in supporting the improvement of the model through the different stages and the automatic generation of the executables models so that the functional and non-functional constraints can be verified. Architectural mapping, that is, the final mapping of functional components in the PIM to execution resources in the PDM is fixed during System Integration and Verification when an accurate simulation and performance analysis model including the actual code can be generated. This model can provide accurate metrics ensuring final satisfaction of the implementation decided after Design-Space Exploration of as many possibilities as required.&lt;br /&gt;
&lt;br /&gt;
== Interoperability with other C4D tools ==&lt;br /&gt;
S3D is based on fundamental Model-Driven, Component-Based computational concepts. As a consequence, it keeps interoperability with many other system modeling environments. The following picture shows the interoperability of S3D with other tools in the C4D design and Verification environment:&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-25_IO_01.png]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
[1] E. Villar, J. Merino, H. Posadas, R. Henia &amp;amp; L. Rioux: “Mega-modeling of complex, distributed, heterogeneous CPS systems”, Microprocessors and Microsystems, V.78, 2020.&lt;br /&gt;
&lt;br /&gt;
[2] J. Merino, R. Gomez, H. Posadas and E. Villar: &amp;quot;Modeling and Performance Estimation of Robotic Systems using ROS: Application to drone-based Services,&amp;quot; in proc. of the Forum on specification &amp;amp; Design Languages (FDL), IEEE, 2021.&lt;/div&gt;</summary>
		<author><name>Raulgv</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-26&amp;diff=845</id>
		<title>WP6-26</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-26&amp;diff=845"/>
		<updated>2023-01-12T10:57:41Z</updated>

		<summary type="html">&lt;p&gt;Raulgv: /* Detailed Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-26&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNICAN&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux Ubuntu 18.04&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| Timing/Energy Simulation&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| XML system description &amp;amp; functional code&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| Functional &amp;amp; performance simulation results&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| 5&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
SoSIM is a new System-of-Systems Simulation tool developed in Comp4Drones. Its background technology is VIPPE. From the Single-Source System Design (S3D) model, the specific information required to perform a certain simulation and performance analysis task (e.g. performance simulation of a solution in a design-space exploration) is extracted and the corresponding simulation model, synthesized. This Model-to-Model generation is performed by the mSSYN tool.&lt;br /&gt;
&lt;br /&gt;
In order to extend SoSIM to mechatronic systems, several improvements have been carried out. The basic infrastructure allowing to simulate multiple drones and combining different levels for the different system components including ROS was described in [1]. The architecture of the complete simulation environment is shown in Figure 1. The arrows represent the control flow in the simulator. Depending on the simulation level, some of the functional blocks may be inactive. So, at the functional level ROS is not used. Thus, neither the ROS core and the MAVROS block, nor the Sync.Clock ROS node are required. The functional drone simulator (now to be extended to several drones) interacts directly with the ROScpp components. This is kept even when the ROS core is included. The synchronization clock will also be needed. Only when any of the drones is modeled with a detailed autopilot and physics, the MAVROS block is added in order to support the communication with the drone through MAVLink.&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-26-I-01.png|frame|center|Figure 1 - VIPPE-ROS background simulation infrastructure]]&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
SoSIM covers the following states in the mechatronic V-Cycle of Figure 2:&lt;br /&gt;
&lt;br /&gt;
# System Design&lt;br /&gt;
# Mechanical Analysis and Design&lt;br /&gt;
# IT Analysis and Design&lt;br /&gt;
# SW Analysis and Design&lt;br /&gt;
# HW Analysis and Design&lt;br /&gt;
# SW Detailed Design&lt;br /&gt;
# SW Component Verification&lt;br /&gt;
# SW Integration and Verification&lt;br /&gt;
# HW Integration and Verification&lt;br /&gt;
# IT Integration and Verification&lt;br /&gt;
# Mechanic Integration and Verification&lt;br /&gt;
# System Integration and Verification&lt;br /&gt;
# System Acceptance Verification&lt;br /&gt;
&lt;br /&gt;
The improvement provided by SoSIM comes from the fact that the use of virtual models of the system simplifies simulation-based DSE, which greatly reduces the time required to select the most appropriate solution [2]. However, as the information about the system and its components evolve along the design process, so should their models and, in general, the infrastructure required for their simulation. As a result, different simulation levels must be considered during the different steps of the design and verification process. Table 1 shows the four simulation levels considered for the functional components:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 1 - Abstraction levels for functional components simulation&lt;br /&gt;
!Level&lt;br /&gt;
!|Code&lt;br /&gt;
!|Timing/Energy&lt;br /&gt;
!|ROS MW&lt;br /&gt;
|-&lt;br /&gt;
|MN&lt;br /&gt;
|minimal&lt;br /&gt;
|no&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;|yes/no&lt;br /&gt;
|-&lt;br /&gt;
|MC&lt;br /&gt;
|minimal&lt;br /&gt;
|constant&lt;br /&gt;
|-&lt;br /&gt;
|FC&lt;br /&gt;
|full code&lt;br /&gt;
|constant&lt;br /&gt;
|-&lt;br /&gt;
|FD&lt;br /&gt;
|full code&lt;br /&gt;
|data dependent&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In MN (minimal/no), no model of time/energy is provided so that the code is supposed to be executed infinitely fast and without consuming any energy. In MC (minimal/constant) and FC (functional/constant), a constant time/energy is assumed each time the function is executed. These can be estimated or observed worst-case, mean-case or best case figures. In FC, the simulation time would be higher than in MC, as the actual code is executed. In the FD (functional/data dependent) model, both time and energy must be estimated over the actual code, using a state of the art technique, such as native simulation technology or binary translation.&lt;br /&gt;
&lt;br /&gt;
Additionally, not all the system components need to have the same level of detail in a single simulation. Different system components can require simulation at different abstraction levels, resulting in heterogeneous simulations, depending on the focus of each simulation. For example, components under development usually require the most accurate simulation level (FD) when verifying their correctness while library components may only require FC simulation.&lt;br /&gt;
&lt;br /&gt;
This multi-level capability is also applicable to the simulation infrastructure. For example, in robotic-based systems considered in this paper, at any of these levels it should be possible to include in the simulation the ROS infrastructure or not. The latter case would allow designers to focus on the functionality of the distributed, heterogeneous functionality. Once this is verified, the former would include the actual ROS infrastructure in order to confirm that the application functionality behaves correctly when the actual communication middleware (MW) is included.&lt;br /&gt;
&lt;br /&gt;
Regarding the simulation of the drones, four different models are considered. Let’s consider the command “move to X/Y/Z”. A minimal implementation will estimate the path and the movement time considering constant horizontal and vertical speed values, the power consumption, and will perform the movement in a single step (FN). In many cases, a more detailed model for the drone(s) is required. An autopilot and a physical simulator are needed.&lt;br /&gt;
[[File:wp6-26-D-01.png|frame|center|Figure 2 - S3D-SoSIM V cycle coverage]]&lt;br /&gt;
&lt;br /&gt;
In this case, the full code (FC/FD) will generate all the signals to the motors required by the physical simulator to reach the final destination, including the estimation of all the intermediate positions, the actual time to reach them, the corresponding power consumption, angles and orientations.&lt;br /&gt;
&lt;br /&gt;
However, these two abstraction levels can be not enough for certain components. As commented above, S3D is based on a service-provided communication paradigm. However, ROS is mostly based on a client/subscriber approach. Thus, an approach based on services that performs the required operation in a single step, such as the one proposed above for the drone model, is not adequate, since publishers typically require a continuous flow of data. To solve this, and considering that the drone model is the most critical element in the simulation of drone-based systems, this work proposes a third, intermediate abstraction level for this component, capable of providing intermediate values to be published. Following the previous example, the command “move to X/Y/Z” will result in a continuous flow of approximate positions and orientations to be published. As a summary, the proposed drone model levels proposed are those shown in Table 2:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 2 - Abstraction levels for the drone simulators&lt;br /&gt;
!Level&lt;br /&gt;
!|Drones modeling&lt;br /&gt;
!|ROS MW&lt;br /&gt;
|-&lt;br /&gt;
|FY/FN&lt;br /&gt;
|Functional&lt;br /&gt;
|yes/no&lt;br /&gt;
|-&lt;br /&gt;
|AP&lt;br /&gt;
|Autopilot&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|MP&lt;br /&gt;
|Multi-Physics&lt;br /&gt;
|yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The simulation framework should support mixing functional and detailed simulation models for the drones in a multi-drone service. It should enable the system engineer to decide the best combination of abstraction levels in Tables 1 and 2. Supporting multi-level simulation requires that each component in the functional architecture is associated with models at several abstraction levels, each involving different accuracy/speed ratios.&lt;br /&gt;
&lt;br /&gt;
Finally, it is mandatory to consider that drone based-systems usually involve multiple drones, and these drones can even require different simulation levels, in order to achieve high accuracy in some of the drone models while maintaining enough speed for the whole simulation.&lt;br /&gt;
&lt;br /&gt;
The new verification tasks introduced in the V-Cycle of Figure 2 are the following:&lt;br /&gt;
&lt;br /&gt;
# '''Validation''': The goal of the System Design, Mechanical Analysis and Design, IT Analysis and Design, SW Analysis and Design, HW Analysis and Design and SW Detailed Design is to ensure that the hierarchical partitioning of the system in sub-systems and finally, mechanical and HW and SW components, keeps the functional and non-functional requirements stated at the beginning of the design process. As the domain restrictions such as inputs, outputs, rates and throughputs are usually defined in the system requirements analysis steps, the full test-bench can be developed. The test-benches developed at the system, subsystem and component levels during design validation can be reused for component, sub-system and final system verification. The system-level test-bench can be also largely re-used for DSE and HW/SW co-design. The test-benches may also help during component, sub-system and system testing when the test-bench or part of it is emulated via SW-in-the-Loop (SIL). In order to be able to verify the test-bench at such a high level, a minimal functionality implementing the fundamental features of the system, subsystems and/or the components in the final full system architecture, should be developed (MN). This initial code can also be combined with preliminary, predefined time/energy figures in order to enable a first performance analysis of the system (MC). Regarding the drone(s), a functional model (FN) is the most appropriate. This functional simulation is useful during system requirement analysis and system architectural design and partitioning. After this initial stage, the components to be reused are selected and the components to be developed from scratch are fully specified so that their development (i.e. programming) can start, in case of HW/SW components. In the case of robots (i.e. the drones), their modelling, simulation and design can start. Reusability does not affect only application components but also components in the test-bench (e.g. the drones in the context of this paper).&lt;br /&gt;
# '''Verification''': Once the complete code has been developed, SW Component Verification, SW Integration and Verification, HW Integration and Verification, IT Integration and Verification, Mechanic Integration and Verification and System Integration and Verification can be performed. By verification, functional and non-functional verification is meant. Simulating the full code allows functional verification and debugging. Performance analysis enables non-functional verification. Any error detected, would require code optimization, platform re-configuration, platform re-design or even, a new architectural mapping of functional components to HW resources. The advantage provided by the co-design approach is that these design decisions are made at the same stage and only in a few cases it is required to backtrack to a previous stage. Among the different valid solutions during this Design-Space Exploration (DSE), the most appropriate Pareto point is selected [3]. As drones are basically real-time systems, consideration of timing (and potentially, energy) is usually mandatory. However, timing analysis is not an easy and fast task. To solve it, two different levels are proposed. In the first one, the full code is simulated but annotated with constant figures for the time/energy it consumes (FC). In a second level, once the component is mapped to a computing resource, native simulation is used so that accurate figures for execution times and energy can be obtained (FD). Although this is not covered in the paper, more detailed models for the SW can be used as virtualization or even an ISS. These simulation technologies may provide higher accuracy than native simulation at a lower simulation speed. These verification steps finish when the virtual model is accepted in the System Acceptance Verification stage so that its implementation can start.&lt;br /&gt;
# '''Testing''' is the new name we give to the former “HW-in-the-loop” verification steps as they require a physical prototype of the components, sub-systems and, finally, the complete system. Those components with potential reusability will be stored in the ‘Library of Components’.&lt;br /&gt;
&lt;br /&gt;
Once the system is fully designed and accepted, the system can be produced and deployed in the field. Now, the system operation can be monitored and analysed so that it is possible to facilitate maintenance, reduce faults and minimize correction time, when needed.&lt;br /&gt;
&lt;br /&gt;
== Interoperability with other C4D tools ==&lt;br /&gt;
&lt;br /&gt;
From the S3D model, the Model to Model (M2M) tool mSSYN generates the simulation model to be executed by SoSIM. As S3D may contain models from other simulators, so S3D is linked to them. Figure 3 describes the interoperability between SoSim and other simulators:&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-26_IO_01.png|frame|center| Figure 3 - Interoperability of SoSim with other tools]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
[1] J . Merino, R. Gomez, H. Posadas &amp;amp; E. Villar: &amp;quot;Multilevel host-compiled simulation framework for ROS-based UAV services using ArduCopter&amp;quot;, proc. of the XXXVI Conference on Design of Circuits and Integrated Systems (DCIS), IEEE, 2021.&lt;br /&gt;
&lt;br /&gt;
[2] F. Herrera, J. Medina, E. Villar: &amp;quot;Modeling Hardware/Software Embedded Systems with UML/MARTE: A Single-Source Design approach&amp;quot;, in S. Ha and J. Teich (Eds): &amp;quot;Handbook of Hardware/Software Codesign&amp;quot;, Springer. 2017.&lt;br /&gt;
&lt;br /&gt;
[3] F. Herrera, H. Posadas, P. Peñil, E. Villar, F. Ferrero, R. Valencia and G. Palermo. “The COMPLEX methodology for UML/MARTE Modeling and design space exploration of embedded systems”, Journal of Systems Architecture, V.60, I.1, 2014.&lt;/div&gt;</summary>
		<author><name>Raulgv</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-26&amp;diff=844</id>
		<title>WP6-26</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-26&amp;diff=844"/>
		<updated>2023-01-12T08:27:21Z</updated>

		<summary type="html">&lt;p&gt;Raulgv: /* Detailed Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-26&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNICAN&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux Ubuntu 18.04&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| Timing/Energy Simulation&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| XML system description &amp;amp; functional code&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| Functional &amp;amp; performance simulation results&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| 5&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
SoSIM is a new System-of-Systems Simulation tool developed in Comp4Drones. Its background technology is VIPPE. From the Single-Source System Design (S3D) model, the specific information required to perform a certain simulation and performance analysis task (e.g. performance simulation of a solution in a design-space exploration) is extracted and the corresponding simulation model, synthesized. This Model-to-Model generation is performed by the mSSYN tool.&lt;br /&gt;
&lt;br /&gt;
In order to extend SoSIM to mechatronic systems, several improvements have been carried out. The basic infrastructure allowing to simulate multiple drones and combining different levels for the different system components including ROS was described in [1]. The architecture of the complete simulation environment is shown in Figure 1. The arrows represent the control flow in the simulator. Depending on the simulation level, some of the functional blocks may be inactive. So, at the functional level ROS is not used. Thus, neither the ROS core and the MAVROS block, nor the Sync.Clock ROS node are required. The functional drone simulator (now to be extended to several drones) interacts directly with the ROScpp components. This is kept even when the ROS core is included. The synchronization clock will also be needed. Only when any of the drones is modeled with a detailed autopilot and physics, the MAVROS block is added in order to support the communication with the drone through MAVLink.&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-26-I-01.png|frame|center|Figure 1 - VIPPE-ROS background simulation infrastructure]]&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
SoSIM covers the following states in the mechatronic V-Cycle of Figure 2:&lt;br /&gt;
&lt;br /&gt;
# System Design&lt;br /&gt;
# Mechanical Analysis and Design&lt;br /&gt;
# IT Analysis and Design&lt;br /&gt;
# SW Analysis and Design&lt;br /&gt;
# HW Analysis and Design&lt;br /&gt;
# SW Detailed Design&lt;br /&gt;
# SW Component Verification&lt;br /&gt;
# SW Integration and Verification&lt;br /&gt;
# HW Integration and Verification&lt;br /&gt;
# IT Integration and Verification&lt;br /&gt;
# Mechanic Integration and Verification&lt;br /&gt;
# System Integration and Verification&lt;br /&gt;
# System Acceptance Verification&lt;br /&gt;
&lt;br /&gt;
The improvement provided by SoSIM comes from the fact that the use of virtual models of the system simplifies simulation-based DSE, which greatly reduces the time required to select the most appropriate solution [2]. However, as the information about the system and its components evolve along the design process, so should their models and, in general, the infrastructure required for their simulation. As a result, different simulation levels must be considered during the different steps of the design and verification process. Table 1 shows the four simulation levels considered for the functional components:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 1 - Abstraction levels for functional components simulation&lt;br /&gt;
!Level&lt;br /&gt;
!|Code&lt;br /&gt;
!|Timing/Energy&lt;br /&gt;
!|ROS MW&lt;br /&gt;
|-&lt;br /&gt;
|MN&lt;br /&gt;
|minimal&lt;br /&gt;
|no&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;|yes/no&lt;br /&gt;
|-&lt;br /&gt;
|MC&lt;br /&gt;
|minimal&lt;br /&gt;
|constant&lt;br /&gt;
|-&lt;br /&gt;
|FC&lt;br /&gt;
|full code&lt;br /&gt;
|constant&lt;br /&gt;
|-&lt;br /&gt;
|FD&lt;br /&gt;
|full code&lt;br /&gt;
|data dependent&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In MN (minimal/no), no model of time/energy is provided so that the code is supposed to be executed infinitely fast and without consuming any energy. In MC (minimal/constant) and FC (functional/constant), a constant time/energy is assumed each time the function is executed. These can be estimated or observed worst-case, mean-case or best case figures. In FC, the simulation time would be higher than in MC, as the actual code is executed. In the FD (functional/data dependent) model, both time and energy must be estimated over the actual code, using a state of the art technique, such as native simulation technology or binary translation.&lt;br /&gt;
&lt;br /&gt;
Additionally, not all the system components need to have the same level of detail in a single simulation. Different system components can require simulation at different abstraction levels, resulting in heterogeneous simulations, depending on the focus of each simulation. For example, components under development usually require the most accurate simulation level (FD) when verifying their correctness while library components may only require FC simulation.&lt;br /&gt;
&lt;br /&gt;
This multi-level capability is also applicable to the simulation infrastructure. For example, in robotic-based systems considered in this paper, at any of these levels it should be possible to include in the simulation the ROS infrastructure or not. The latter case would allow designers to focus on the functionality of the distributed, heterogeneous functionality. Once this is verified, the former would include the actual ROS infrastructure in order to confirm that the application functionality behaves correctly when the actual communication middleware (MW) is included.&lt;br /&gt;
&lt;br /&gt;
Regarding the simulation of the drones, four different models are considered. Let’s consider the command “move to X/Y/Z”. A minimal implementation will estimate the path and the movement time considering constant horizontal and vertical speed values, the power consumption, and will perform the movement in a single step (FN). In many cases, a more detailed model for the drone(s) is required. An autopilot and a physical simulator are needed.&lt;br /&gt;
[[File:wp6-25_DD_01.png|frame|center|Figure 2 - S3D-SoSIM V cycle coverage]]&lt;br /&gt;
&lt;br /&gt;
In this case, the full code (FC/FD) will generate all the signals to the motors required by the physical simulator to reach the final destination, including the estimation of all the intermediate positions, the actual time to reach them, the corresponding power consumption, angles and orientations.&lt;br /&gt;
&lt;br /&gt;
However, these two abstraction levels can be not enough for certain components. As commented above, S3D is based on a service-provided communication paradigm. However, ROS is mostly based on a client/subscriber approach. Thus, an approach based on services that performs the required operation in a single step, such as the one proposed above for the drone model, is not adequate, since publishers typically require a continuous flow of data. To solve this, and considering that the drone model is the most critical element in the simulation of drone-based systems, this work proposes a third, intermediate abstraction level for this component, capable of providing intermediate values to be published. Following the previous example, the command “move to X/Y/Z” will result in a continuous flow of approximate positions and orientations to be published. As a summary, the proposed drone model levels proposed are those shown in Table 2:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 2 - Abstraction levels for the drone simulators&lt;br /&gt;
!Level&lt;br /&gt;
!|Drones modeling&lt;br /&gt;
!|ROS MW&lt;br /&gt;
|-&lt;br /&gt;
|FY/FN&lt;br /&gt;
|Functional&lt;br /&gt;
|yes/no&lt;br /&gt;
|-&lt;br /&gt;
|AP&lt;br /&gt;
|Autopilot&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|MP&lt;br /&gt;
|Multi-Physics&lt;br /&gt;
|yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The simulation framework should support mixing functional and detailed simulation models for the drones in a multi-drone service. It should enable the system engineer to decide the best combination of abstraction levels in Tables 1 and 2. Supporting multi-level simulation requires that each component in the functional architecture is associated with models at several abstraction levels, each involving different accuracy/speed ratios.&lt;br /&gt;
&lt;br /&gt;
Finally, it is mandatory to consider that drone based-systems usually involve multiple drones, and these drones can even require different simulation levels, in order to achieve high accuracy in some of the drone models while maintaining enough speed for the whole simulation.&lt;br /&gt;
&lt;br /&gt;
The new verification tasks introduced in the V-Cycle of Figure 2 are the following:&lt;br /&gt;
&lt;br /&gt;
# '''Validation''': The goal of the System Design, Mechanical Analysis and Design, IT Analysis and Design, SW Analysis and Design, HW Analysis and Design and SW Detailed Design is to ensure that the hierarchical partitioning of the system in sub-systems and finally, mechanical and HW and SW components, keeps the functional and non-functional requirements stated at the beginning of the design process. As the domain restrictions such as inputs, outputs, rates and throughputs are usually defined in the system requirements analysis steps, the full test-bench can be developed. The test-benches developed at the system, subsystem and component levels during design validation can be reused for component, sub-system and final system verification. The system-level test-bench can be also largely re-used for DSE and HW/SW co-design. The test-benches may also help during component, sub-system and system testing when the test-bench or part of it is emulated via SW-in-the-Loop (SIL). In order to be able to verify the test-bench at such a high level, a minimal functionality implementing the fundamental features of the system, subsystems and/or the components in the final full system architecture, should be developed (MN). This initial code can also be combined with preliminary, predefined time/energy figures in order to enable a first performance analysis of the system (MC). Regarding the drone(s), a functional model (FN) is the most appropriate. This functional simulation is useful during system requirement analysis and system architectural design and partitioning. After this initial stage, the components to be reused are selected and the components to be developed from scratch are fully specified so that their development (i.e. programming) can start, in case of HW/SW components. In the case of robots (i.e. the drones), their modelling, simulation and design can start. Reusability does not affect only application components but also components in the test-bench (e.g. the drones in the context of this paper).&lt;br /&gt;
# '''Verification''': Once the complete code has been developed, SW Component Verification, SW Integration and Verification, HW Integration and Verification, IT Integration and Verification, Mechanic Integration and Verification and System Integration and Verification can be performed. By verification, functional and non-functional verification is meant. Simulating the full code allows functional verification and debugging. Performance analysis enables non-functional verification. Any error detected, would require code optimization, platform re-configuration, platform re-design or even, a new architectural mapping of functional components to HW resources. The advantage provided by the co-design approach is that these design decisions are made at the same stage and only in a few cases it is required to backtrack to a previous stage. Among the different valid solutions during this Design-Space Exploration (DSE), the most appropriate Pareto point is selected [3]. As drones are basically real-time systems, consideration of timing (and potentially, energy) is usually mandatory. However, timing analysis is not an easy and fast task. To solve it, two different levels are proposed. In the first one, the full code is simulated but annotated with constant figures for the time/energy it consumes (FC). In a second level, once the component is mapped to a computing resource, native simulation is used so that accurate figures for execution times and energy can be obtained (FD). Although this is not covered in the paper, more detailed models for the SW can be used as virtualization or even an ISS. These simulation technologies may provide higher accuracy than native simulation at a lower simulation speed. These verification steps finish when the virtual model is accepted in the System Acceptance Verification stage so that its implementation can start.&lt;br /&gt;
# '''Testing''' is the new name we give to the former “HW-in-the-loop” verification steps as they require a physical prototype of the components, sub-systems and, finally, the complete system. Those components with potential reusability will be stored in the ‘Library of Components’.&lt;br /&gt;
&lt;br /&gt;
Once the system is fully designed and accepted, the system can be produced and deployed in the field. Now, the system operation can be monitored and analysed so that it is possible to facilitate maintenance, reduce faults and minimize correction time, when needed.&lt;br /&gt;
&lt;br /&gt;
== Interoperability with other C4D tools ==&lt;br /&gt;
&lt;br /&gt;
From the S3D model, the Model to Model (M2M) tool mSSYN generates the simulation model to be executed by SoSIM. As S3D may contain models from other simulators, so S3D is linked to them. Figure 3 describes the interoperability between SoSim and other simulators:&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-26_IO_01.png|frame|center| Figure 3 - Interoperability of SoSim with other tools]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
[1] J . Merino, R. Gomez, H. Posadas &amp;amp; E. Villar: &amp;quot;Multilevel host-compiled simulation framework for ROS-based UAV services using ArduCopter&amp;quot;, proc. of the XXXVI Conference on Design of Circuits and Integrated Systems (DCIS), IEEE, 2021.&lt;br /&gt;
&lt;br /&gt;
[2] F. Herrera, J. Medina, E. Villar: &amp;quot;Modeling Hardware/Software Embedded Systems with UML/MARTE: A Single-Source Design approach&amp;quot;, in S. Ha and J. Teich (Eds): &amp;quot;Handbook of Hardware/Software Codesign&amp;quot;, Springer. 2017.&lt;br /&gt;
&lt;br /&gt;
[3] F. Herrera, H. Posadas, P. Peñil, E. Villar, F. Ferrero, R. Valencia and G. Palermo. “The COMPLEX methodology for UML/MARTE Modeling and design space exploration of embedded systems”, Journal of Systems Architecture, V.60, I.1, 2014.&lt;/div&gt;</summary>
		<author><name>Raulgv</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-25&amp;diff=843</id>
		<title>WP6-25</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-25&amp;diff=843"/>
		<updated>2023-01-11T15:46:07Z</updated>

		<summary type="html">&lt;p&gt;Raulgv: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-25&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNICAN&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux Ubuntu 18.04, Eclipse EMF&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| System-of-Systems Modeling&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| Platform Independent Model, Platform Description Model, Functional code&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| XML system description &amp;amp; functional code&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| 5-6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
S3D (s3d.unican.es) is a model-driven, system design framework around a single UML/MARTE model [1]. The model is used as a centralized repository of all the information about the system which is relevant for the design. From the model, the specific information required to perform a certain simulation and performance analysis task (e.g. performance simulation of a solution in a design-space exploration) is extracted and the corresponding simulation model, synthesized. This Model-to-Model generation is performed by the mSSYN tool. The model is simulated by the VIPPE tool. It is worth mentioning that the M2M technology used to generate the simulation models automatically from the system model can be extended to synthesize the SW stack to be executed in each computational node. The corresponding synthesis tool is eSSYN (essyn.unican.es).&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-25_I_01.png]]&lt;br /&gt;
&lt;br /&gt;
==Contribution and Improvements==&lt;br /&gt;
&lt;br /&gt;
The fundamental S3D modeling methodology based on required-provided services has been extended in order to support components using ROS, a publish-subscribe communication middleware [2]. In this paper, Model-Driven Design (MDD) is proposed for modeling, simulation and performance analysis of SW intensive robot-based services. The work shows that robots can be integrated into a system engineering framework without affecting their modeling, design and development features. In order to seamlessly integrate these additional kinds of electro-mechanical components, a platform-based approach is proposed. The large number of different robots available makes it very difficult to reuse the same functional components from one project to another if the robots are changed. For certain kinds of robots with many similar functions, such as drones, a common list of methods can be defined so that the same code is valid for all of them simply by associating the functions with the appropriate code. An additional advantage of this common language is a significant reduction in the programming effort which can be reduced around 30%. The cost to be paid is a drop in simulation speed. In the use case of the paper, this reduction can be as high as 16% when a code intensive in ROS calls is used.&lt;br /&gt;
&lt;br /&gt;
Another interesting result is that if the MDD modeling methodology is general enough, no extension is needed in order to support ROS. Identifying which components make use of ROS is sufficient. In this case, the ROS infrastructure is automatically integrated in the system and used by those ports requiring it. A methodology for rough estimation of execution time of the ROS code has been proposed. Although the error can be as high as 45%, the impact is small as the ROS code will be only a fraction of the total executable. In any case, an improvement over not annotating any execution time for ROS is achieved and this improvement is higher when it is more needed, that is, when the percentage of ROS code is higher. The improvement can be as high as 83.5% with only 2.55% of ROS code.&lt;br /&gt;
&lt;br /&gt;
The proposed framework enables the seamless integration of robots into a MDD framework so that the whole service can be modelled, simulated and its performance analyzed, fully supporting essential stages of the V-Cycle as explained below.&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
S3D covers the modelling and automatic generation of the multi-level executable models used to validate and verify the system at the different abstraction levels. S3D supports the modelling activities at each stage of the V-Cycle for mechatronic systems as explained below:&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-25_DD_01.png]]&lt;br /&gt;
&lt;br /&gt;
In all these stages, S3D supports reusability from previous projects as both functional and test-bench components can be imported from libraries:&lt;br /&gt;
&lt;br /&gt;
# System Requirement Analysis. Based on Papyrus and the UML/MARTE standard, S3D can help in analysing and finally, specify the functional and non-functional requirements to be satisfied by the System (or System of Systems),&lt;br /&gt;
# System Design. Once the requirements have been specified, the system and its environment are fully specified in terms of the interface among them, the domain constraints (input rates, types and constraints among them) and the system functional and non-functional requirements (output rates, input/output delays, energy, etc.). As part of the System Design stage, partitioning of the system in the mechanical and the IT (digital) parts is performed. In S3D, the mechanical part will be incorporated to the Test-Bench (TB) of the (digital) system. As its functionality and performance is fully specified, the TB, including the model of the robots, can be developed.&lt;br /&gt;
# Mechanical Analysis and Design. The inclusion of the robots as TB components allows the analysis of their constraints and the design of the mechanical part (number and type of robots, design requirements to each one and among them, etc.).&lt;br /&gt;
# IT Analysis and Design. At this stage, the analysis and specification of the Platform-Description Model (PDM) can be performed. On the other side, the Platform-Independent Model can be specified.&lt;br /&gt;
# HW Analysis &amp;amp; Design. At this stage, the design of the initial Platform-Description Model (PDM), can be performed and an initial architecture of nodes and their internal HW architecture can be proposed. The final PDM will be decided later during architectural mapping as part of the System Integration &amp;amp; Verification stage.&lt;br /&gt;
# SW Analysis &amp;amp; Design and SW Detailed Design. During this stage, the hierarchical partitioning of the PIM in sub-systems and finally, components fully specified in their interfaces and functional and non-functional constraints, is decided.&lt;br /&gt;
# SW Development. The goal of this stage is to develop the code implementing the functional constraints. Papyrus supports both the Modelling and the Development Views and S3D links one with the other by annotating the components with their implementation files using the file’s paths as properties.&lt;br /&gt;
# SW Component Verification. S3D links each component with their Test-Benches so that the component can be verified both in the host (verification) and the target platform (testing) in case it has been decided already and it is available.&lt;br /&gt;
# In the rest of stages:&lt;br /&gt;
## SW Integration &amp;amp; Verification.&lt;br /&gt;
## HW Integration &amp;amp; Verification.&lt;br /&gt;
## IT Integration &amp;amp; Verification.&lt;br /&gt;
## Mechanical Integration &amp;amp; Verification.&lt;br /&gt;
## System Integration &amp;amp; Verification.&lt;br /&gt;
## System Acceptance Verification.&lt;br /&gt;
&lt;br /&gt;
S3D helps in supporting the improvement of the model through the different stages and the automatic generation of the executables models so that the functional and non-functional constraints can be verified. Architectural mapping, that is, the final mapping of functional components in the PIM to execution resources in the PDM is fixed during System Integration and Verification when an accurate simulation and performance analysis model including the actual code can be generated. This model can provide accurate metrics ensuring final satisfaction of the implementation decided after Design-Space Exploration of as many possibilities as required.&lt;br /&gt;
&lt;br /&gt;
== Interoperability with other C4D tools ==&lt;br /&gt;
S3D is based on fundamental Model-Driven, Component-Based computational concepts. As a consequence, it keeps interoperability with many other system modeling environments. The following picture shows the interoperability of S3D with other tools in the C4D design and Verification environment:&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-25_IO_01.png]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
[1] E. Villar, J. Merino, H. Posadas, R. Henia &amp;amp; L. Rioux: “Mega-modeling of complex, distributed, heterogeneous CPS systems”, Microprocessors and Microsystems, V.78, 2020.&lt;br /&gt;
&lt;br /&gt;
[2] J. Merino, R. Gomez, H. Posadas and E. Villar: &amp;quot;Modeling and Performance Estimation of Robotic Systems using ROS: Application to drone-based Services,&amp;quot; in proc. of the Forum on specification &amp;amp; Design Languages (FDL), IEEE, 2021.&lt;/div&gt;</summary>
		<author><name>Raulgv</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-26&amp;diff=842</id>
		<title>WP6-26</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-26&amp;diff=842"/>
		<updated>2023-01-11T15:45:44Z</updated>

		<summary type="html">&lt;p&gt;Raulgv: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-26&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNICAN&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux Ubuntu 18.04&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| Timing/Energy Simulation&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| XML system description &amp;amp; functional code&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| Functional &amp;amp; performance simulation results&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| 5&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
SoSIM is a new System-of-Systems Simulation tool developed in Comp4Drones. Its background technology is VIPPE. From the Single-Source System Design (S3D) model, the specific information required to perform a certain simulation and performance analysis task (e.g. performance simulation of a solution in a design-space exploration) is extracted and the corresponding simulation model, synthesized. This Model-to-Model generation is performed by the mSSYN tool.&lt;br /&gt;
&lt;br /&gt;
In order to extend SoSIM to mechatronic systems, several improvements have been carried out. The basic infrastructure allowing to simulate multiple drones and combining different levels for the different system components including ROS was described in [1]. The architecture of the complete simulation environment is shown in Figure 1. The arrows represent the control flow in the simulator. Depending on the simulation level, some of the functional blocks may be inactive. So, at the functional level ROS is not used. Thus, neither the ROS core and the MAVROS block, nor the Sync.Clock ROS node are required. The functional drone simulator (now to be extended to several drones) interacts directly with the ROScpp components. This is kept even when the ROS core is included. The synchronization clock will also be needed. Only when any of the drones is modeled with a detailed autopilot and physics, the MAVROS block is added in order to support the communication with the drone through MAVLink.&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-26-I-01.png|frame|center|Figure 1 - VIPPE-ROS background simulation infrastructure]]&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
SoSIM covers the following states in the mechatronic V-Cycle of Figure 2:&lt;br /&gt;
&lt;br /&gt;
# System Design&lt;br /&gt;
# Mechanical Analysis and Design&lt;br /&gt;
# IT Analysis and Design&lt;br /&gt;
# SW Analysis and Design&lt;br /&gt;
# HW Analysis and Design&lt;br /&gt;
# SW Detailed Design&lt;br /&gt;
# SW Component Verification&lt;br /&gt;
# SW Integration and Verification&lt;br /&gt;
# HW Integration and Verification&lt;br /&gt;
# IT Integration and Verification&lt;br /&gt;
# Mechanic Integration and Verification&lt;br /&gt;
# System Integration and Verification&lt;br /&gt;
# System Acceptance Verification&lt;br /&gt;
&lt;br /&gt;
The improvement provided by SoSIM comes from the fact that the use of virtual models of the system simplifies simulation-based DSE, which greatly reduces the time required to select the most appropriate solution [2]. However, as the information about the system and its components evolve along the design process, so should their models and, in general, the infrastructure required for their simulation. As a result, different simulation levels must be considered during the different steps of the design and verification process. Table 1 shows the four simulation levels considered for the functional components:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 1 - Abstraction levels for functional components simulation&lt;br /&gt;
!Level&lt;br /&gt;
!|Code&lt;br /&gt;
!|Timing/Energy&lt;br /&gt;
!|ROS MW&lt;br /&gt;
|-&lt;br /&gt;
|MN&lt;br /&gt;
|minimal&lt;br /&gt;
|no&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;|yes/no&lt;br /&gt;
|-&lt;br /&gt;
|MC&lt;br /&gt;
|minimal&lt;br /&gt;
|constant&lt;br /&gt;
|-&lt;br /&gt;
|FC&lt;br /&gt;
|full code&lt;br /&gt;
|constant&lt;br /&gt;
|-&lt;br /&gt;
|FD&lt;br /&gt;
|full code&lt;br /&gt;
|data dependent&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In MN (minimal/no), no model of time/energy is provided so that the code is supposed to be executed infinitely fast and without consuming any energy. In MC (minimal/constant) and FC (functional/constant), a constant time/energy is assumed each time the function is executed. These can be estimated or observed worst-case, mean-case or best case figures. In FC, the simulation time would be higher than in MC, as the actual code is executed. In the FD (functional/data dependent) model, both time and energy must be estimated over the actual code, using a state of the art technique, such as native simulation technology or binary translation.&lt;br /&gt;
&lt;br /&gt;
Additionally, not all the system components need to have the same level of detail in a single simulation. Different system components can require simulation at different abstraction levels, resulting in heterogeneous simulations, depending on the focus of each simulation. For example, components under development usually require the most accurate simulation level (FD) when verifying their correctness while library components may only require FC simulation.&lt;br /&gt;
&lt;br /&gt;
This multi-level capability is also applicable to the simulation infrastructure. For example, in robotic-based systems considered in this paper, at any of these levels it should be possible to include in the simulation the ROS infrastructure or not. The latter case would allow designers to focus on the functionality of the distributed, heterogeneous functionality. Once this is verified, the former would include the actual ROS infrastructure in order to confirm that the application functionality behaves correctly when the actual communication middleware (MW) is included.&lt;br /&gt;
&lt;br /&gt;
Regarding the simulation of the drones, four different models are considered. Let’s consider the command “move to X/Y/Z”. A minimal implementation will estimate the path and the movement time considering constant horizontal and vertical speed values, the power consumption, and will perform the movement in a single step (FN). In many cases, a more detailed model for the drone(s) is required. An autopilot and a physical simulator are needed.&lt;br /&gt;
[[File:wp6-26-D-01.png|frame|center|Figure 2 - S3D-SoSIM V cycle coverage]]&lt;br /&gt;
&lt;br /&gt;
In this case, the full code (FC/FD) will generate all the signals to the motors required by the physical simulator to reach the final destination, including the estimation of all the intermediate positions, the actual time to reach them, the corresponding power consumption, angles and orientations.&lt;br /&gt;
&lt;br /&gt;
However, these two abstraction levels can be not enough for certain components. As commented above, S3D is based on a service-provided communication paradigm. However, ROS is mostly based on a client/subscriber approach. Thus, an approach based on services that performs the required operation in a single step, such as the one proposed above for the drone model, is not adequate, since publishers typically require a continuous flow of data. To solve this, and considering that the drone model is the most critical element in the simulation of drone-based systems, this work proposes a third, intermediate abstraction level for this component, capable of providing intermediate values to be published. Following the previous example, the command “move to X/Y/Z” will result in a continuous flow of approximate positions and orientations to be published. As a summary, the proposed drone model levels proposed are those shown in Table 2:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 2 - Abstraction levels for the drone simulators&lt;br /&gt;
!Level&lt;br /&gt;
!|Drones modeling&lt;br /&gt;
!|ROS MW&lt;br /&gt;
|-&lt;br /&gt;
|FY/FN&lt;br /&gt;
|Functional&lt;br /&gt;
|yes/no&lt;br /&gt;
|-&lt;br /&gt;
|AP&lt;br /&gt;
|Autopilot&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|MP&lt;br /&gt;
|Multi-Physics&lt;br /&gt;
|yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The simulation framework should support mixing functional and detailed simulation models for the drones in a multi-drone service. It should enable the system engineer to decide the best combination of abstraction levels in Tables 1 and 2. Supporting multi-level simulation requires that each component in the functional architecture is associated with models at several abstraction levels, each involving different accuracy/speed ratios.&lt;br /&gt;
&lt;br /&gt;
Finally, it is mandatory to consider that drone based-systems usually involve multiple drones, and these drones can even require different simulation levels, in order to achieve high accuracy in some of the drone models while maintaining enough speed for the whole simulation.&lt;br /&gt;
&lt;br /&gt;
The new verification tasks introduced in the V-Cycle of Figure 2 are the following:&lt;br /&gt;
&lt;br /&gt;
# '''Validation''': The goal of the System Design, Mechanical Analysis and Design, IT Analysis and Design, SW Analysis and Design, HW Analysis and Design and SW Detailed Design is to ensure that the hierarchical partitioning of the system in sub-systems and finally, mechanical and HW and SW components, keeps the functional and non-functional requirements stated at the beginning of the design process. As the domain restrictions such as inputs, outputs, rates and throughputs are usually defined in the system requirements analysis steps, the full test-bench can be developed. The test-benches developed at the system, subsystem and component levels during design validation can be reused for component, sub-system and final system verification. The system-level test-bench can be also largely re-used for DSE and HW/SW co-design. The test-benches may also help during component, sub-system and system testing when the test-bench or part of it is emulated via SW-in-the-Loop (SIL). In order to be able to verify the test-bench at such a high level, a minimal functionality implementing the fundamental features of the system, subsystems and/or the components in the final full system architecture, should be developed (MN). This initial code can also be combined with preliminary, predefined time/energy figures in order to enable a first performance analysis of the system (MC). Regarding the drone(s), a functional model (FN) is the most appropriate. This functional simulation is useful during system requirement analysis and system architectural design and partitioning. After this initial stage, the components to be reused are selected and the components to be developed from scratch are fully specified so that their development (i.e. programming) can start, in case of HW/SW components. In the case of robots (i.e. the drones), their modelling, simulation and design can start. Reusability does not affect only application components but also components in the test-bench (e.g. the drones in the context of this paper).&lt;br /&gt;
# '''Verification''': Once the complete code has been developed, SW Component Verification, SW Integration and Verification, HW Integration and Verification, IT Integration and Verification, Mechanic Integration and Verification and System Integration and Verification can be performed. By verification, functional and non-functional verification is meant. Simulating the full code allows functional verification and debugging. Performance analysis enables non-functional verification. Any error detected, would require code optimization, platform re-configuration, platform re-design or even, a new architectural mapping of functional components to HW resources. The advantage provided by the co-design approach is that these design decisions are made at the same stage and only in a few cases it is required to backtrack to a previous stage. Among the different valid solutions during this Design-Space Exploration (DSE), the most appropriate Pareto point is selected [3]. As drones are basically real-time systems, consideration of timing (and potentially, energy) is usually mandatory. However, timing analysis is not an easy and fast task. To solve it, two different levels are proposed. In the first one, the full code is simulated but annotated with constant figures for the time/energy it consumes (FC). In a second level, once the component is mapped to a computing resource, native simulation is used so that accurate figures for execution times and energy can be obtained (FD). Although this is not covered in the paper, more detailed models for the SW can be used as virtualization or even an ISS. These simulation technologies may provide higher accuracy than native simulation at a lower simulation speed. These verification steps finish when the virtual model is accepted in the System Acceptance Verification stage so that its implementation can start.&lt;br /&gt;
# '''Testing''' is the new name we give to the former “HW-in-the-loop” verification steps as they require a physical prototype of the components, sub-systems and, finally, the complete system. Those components with potential reusability will be stored in the ‘Library of Components’.&lt;br /&gt;
&lt;br /&gt;
Once the system is fully designed and accepted, the system can be produced and deployed in the field. Now, the system operation can be monitored and analysed so that it is possible to facilitate maintenance, reduce faults and minimize correction time, when needed.&lt;br /&gt;
&lt;br /&gt;
== Interoperability with other C4D tools ==&lt;br /&gt;
&lt;br /&gt;
From the S3D model, the Model to Model (M2M) tool mSSYN generates the simulation model to be executed by SoSIM. As S3D may contain models from other simulators, so S3D is linked to them. Figure 3 describes the interoperability between SoSim and other simulators:&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-26_IO_01.png|frame|center| Figure 3 - Interoperability of SoSim with other tools]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
[1] J . Merino, R. Gomez, H. Posadas &amp;amp; E. Villar: &amp;quot;Multilevel host-compiled simulation framework for ROS-based UAV services using ArduCopter&amp;quot;, proc. of the XXXVI Conference on Design of Circuits and Integrated Systems (DCIS), IEEE, 2021.&lt;br /&gt;
&lt;br /&gt;
[2] F. Herrera, J. Medina, E. Villar: &amp;quot;Modeling Hardware/Software Embedded Systems with UML/MARTE: A Single-Source Design approach&amp;quot;, in S. Ha and J. Teich (Eds): &amp;quot;Handbook of Hardware/Software Codesign&amp;quot;, Springer. 2017.&lt;br /&gt;
&lt;br /&gt;
[3] F. Herrera, H. Posadas, P. Peñil, E. Villar, F. Ferrero, R. Valencia and G. Palermo. “The COMPLEX methodology for UML/MARTE Modeling and design space exploration of embedded systems”, Journal of Systems Architecture, V.60, I.1, 2014.&lt;/div&gt;</summary>
		<author><name>Raulgv</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-26&amp;diff=841</id>
		<title>WP6-26</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-26&amp;diff=841"/>
		<updated>2023-01-11T14:15:48Z</updated>

		<summary type="html">&lt;p&gt;Raulgv: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-26&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNICAN&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux Ubuntu 18.04 LTE&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| Timing/Energy Simulation&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| XML system description &amp;amp; functional code&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| Functional &amp;amp; performance simulation results&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| 5&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
SoSIM is a new System-of-Systems Simulation tool developed in Comp4Drones. Its background technology is VIPPE. From the Single-Source System Design (S3D) model, the specific information required to perform a certain simulation and performance analysis task (e.g. performance simulation of a solution in a design-space exploration) is extracted and the corresponding simulation model, synthesized. This Model-to-Model generation is performed by the mSSYN tool.&lt;br /&gt;
&lt;br /&gt;
In order to extend SoSIM to mechatronic systems, several improvements have been carried out. The basic infrastructure allowing to simulate multiple drones and combining different levels for the different system components including ROS was described in [1]. The architecture of the complete simulation environment is shown in Figure 1. The arrows represent the control flow in the simulator. Depending on the simulation level, some of the functional blocks may be inactive. So, at the functional level ROS is not used. Thus, neither the ROS core and the MAVROS block, nor the Sync.Clock ROS node are required. The functional drone simulator (now to be extended to several drones) interacts directly with the ROScpp components. This is kept even when the ROS core is included. The synchronization clock will also be needed. Only when any of the drones is modeled with a detailed autopilot and physics, the MAVROS block is added in order to support the communication with the drone through MAVLink.&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-26-I-01.png|frame|center|Figure 1 - VIPPE-ROS background simulation infrastructure]]&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
SoSIM covers the following states in the mechatronic V-Cycle of Figure 2:&lt;br /&gt;
&lt;br /&gt;
# System Design&lt;br /&gt;
# Mechanical Analysis and Design&lt;br /&gt;
# IT Analysis and Design&lt;br /&gt;
# SW Analysis and Design&lt;br /&gt;
# HW Analysis and Design&lt;br /&gt;
# SW Detailed Design&lt;br /&gt;
# SW Component Verification&lt;br /&gt;
# SW Integration and Verification&lt;br /&gt;
# HW Integration and Verification&lt;br /&gt;
# IT Integration and Verification&lt;br /&gt;
# Mechanic Integration and Verification&lt;br /&gt;
# System Integration and Verification&lt;br /&gt;
# System Acceptance Verification&lt;br /&gt;
&lt;br /&gt;
The improvement provided by SoSIM comes from the fact that the use of virtual models of the system simplifies simulation-based DSE, which greatly reduces the time required to select the most appropriate solution [2]. However, as the information about the system and its components evolve along the design process, so should their models and, in general, the infrastructure required for their simulation. As a result, different simulation levels must be considered during the different steps of the design and verification process. Table 1 shows the four simulation levels considered for the functional components:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 1 - Abstraction levels for functional components simulation&lt;br /&gt;
!Level&lt;br /&gt;
!|Code&lt;br /&gt;
!|Timing/Energy&lt;br /&gt;
!|ROS MW&lt;br /&gt;
|-&lt;br /&gt;
|MN&lt;br /&gt;
|minimal&lt;br /&gt;
|no&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;|yes/no&lt;br /&gt;
|-&lt;br /&gt;
|MC&lt;br /&gt;
|minimal&lt;br /&gt;
|constant&lt;br /&gt;
|-&lt;br /&gt;
|FC&lt;br /&gt;
|full code&lt;br /&gt;
|constant&lt;br /&gt;
|-&lt;br /&gt;
|FD&lt;br /&gt;
|full code&lt;br /&gt;
|data dependent&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In MN (minimal/no), no model of time/energy is provided so that the code is supposed to be executed infinitely fast and without consuming any energy. In MC (minimal/constant) and FC (functional/constant), a constant time/energy is assumed each time the function is executed. These can be estimated or observed worst-case, mean-case or best case figures. In FC, the simulation time would be higher than in MC, as the actual code is executed. In the FD (functional/data dependent) model, both time and energy must be estimated over the actual code, using a state of the art technique, such as native simulation technology or binary translation.&lt;br /&gt;
&lt;br /&gt;
Additionally, not all the system components need to have the same level of detail in a single simulation. Different system components can require simulation at different abstraction levels, resulting in heterogeneous simulations, depending on the focus of each simulation. For example, components under development usually require the most accurate simulation level (FD) when verifying their correctness while library components may only require FC simulation.&lt;br /&gt;
&lt;br /&gt;
This multi-level capability is also applicable to the simulation infrastructure. For example, in robotic-based systems considered in this paper, at any of these levels it should be possible to include in the simulation the ROS infrastructure or not. The latter case would allow designers to focus on the functionality of the distributed, heterogeneous functionality. Once this is verified, the former would include the actual ROS infrastructure in order to confirm that the application functionality behaves correctly when the actual communication middleware (MW) is included.&lt;br /&gt;
&lt;br /&gt;
Regarding the simulation of the drones, four different models are considered. Let’s consider the command “move to X/Y/Z”. A minimal implementation will estimate the path and the movement time considering constant horizontal and vertical speed values, the power consumption, and will perform the movement in a single step (FN). In many cases, a more detailed model for the drone(s) is required. An autopilot and a physical simulator are needed.&lt;br /&gt;
[[File:wp6-26-D-01.png|frame|center|Figure 2 - S3D-SoSIM V cycle coverage]]&lt;br /&gt;
&lt;br /&gt;
In this case, the full code (FC/FD) will generate all the signals to the motors required by the physical simulator to reach the final destination, including the estimation of all the intermediate positions, the actual time to reach them, the corresponding power consumption, angles and orientations.&lt;br /&gt;
&lt;br /&gt;
However, these two abstraction levels can be not enough for certain components. As commented above, S3D is based on a service-provided communication paradigm. However, ROS is mostly based on a client/subscriber approach. Thus, an approach based on services that performs the required operation in a single step, such as the one proposed above for the drone model, is not adequate, since publishers typically require a continuous flow of data. To solve this, and considering that the drone model is the most critical element in the simulation of drone-based systems, this work proposes a third, intermediate abstraction level for this component, capable of providing intermediate values to be published. Following the previous example, the command “move to X/Y/Z” will result in a continuous flow of approximate positions and orientations to be published. As a summary, the proposed drone model levels proposed are those shown in Table 2:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 2 - Abstraction levels for the drone simulators&lt;br /&gt;
!Level&lt;br /&gt;
!|Drones modeling&lt;br /&gt;
!|ROS MW&lt;br /&gt;
|-&lt;br /&gt;
|FY/FN&lt;br /&gt;
|Functional&lt;br /&gt;
|yes/no&lt;br /&gt;
|-&lt;br /&gt;
|AP&lt;br /&gt;
|Autopilot&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|MP&lt;br /&gt;
|Multi-Physics&lt;br /&gt;
|yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The simulation framework should support mixing functional and detailed simulation models for the drones in a multi-drone service. It should enable the system engineer to decide the best combination of abstraction levels in Tables 1 and 2. Supporting multi-level simulation requires that each component in the functional architecture is associated with models at several abstraction levels, each involving different accuracy/speed ratios.&lt;br /&gt;
&lt;br /&gt;
Finally, it is mandatory to consider that drone based-systems usually involve multiple drones, and these drones can even require different simulation levels, in order to achieve high accuracy in some of the drone models while maintaining enough speed for the whole simulation.&lt;br /&gt;
&lt;br /&gt;
The new verification tasks introduced in the V-Cycle of Figure 2 are the following:&lt;br /&gt;
&lt;br /&gt;
# '''Validation''': The goal of the System Design, Mechanical Analysis and Design, IT Analysis and Design, SW Analysis and Design, HW Analysis and Design and SW Detailed Design is to ensure that the hierarchical partitioning of the system in sub-systems and finally, mechanical and HW and SW components, keeps the functional and non-functional requirements stated at the beginning of the design process. As the domain restrictions such as inputs, outputs, rates and throughputs are usually defined in the system requirements analysis steps, the full test-bench can be developed. The test-benches developed at the system, subsystem and component levels during design validation can be reused for component, sub-system and final system verification. The system-level test-bench can be also largely re-used for DSE and HW/SW co-design. The test-benches may also help during component, sub-system and system testing when the test-bench or part of it is emulated via SW-in-the-Loop (SIL). In order to be able to verify the test-bench at such a high level, a minimal functionality implementing the fundamental features of the system, subsystems and/or the components in the final full system architecture, should be developed (MN). This initial code can also be combined with preliminary, predefined time/energy figures in order to enable a first performance analysis of the system (MC). Regarding the drone(s), a functional model (FN) is the most appropriate. This functional simulation is useful during system requirement analysis and system architectural design and partitioning. After this initial stage, the components to be reused are selected and the components to be developed from scratch are fully specified so that their development (i.e. programming) can start, in case of HW/SW components. In the case of robots (i.e. the drones), their modelling, simulation and design can start. Reusability does not affect only application components but also components in the test-bench (e.g. the drones in the context of this paper).&lt;br /&gt;
# '''Verification''': Once the complete code has been developed, SW Component Verification, SW Integration and Verification, HW Integration and Verification, IT Integration and Verification, Mechanic Integration and Verification and System Integration and Verification can be performed. By verification, functional and non-functional verification is meant. Simulating the full code allows functional verification and debugging. Performance analysis enables non-functional verification. Any error detected, would require code optimization, platform re-configuration, platform re-design or even, a new architectural mapping of functional components to HW resources. The advantage provided by the co-design approach is that these design decisions are made at the same stage and only in a few cases it is required to backtrack to a previous stage. Among the different valid solutions during this Design-Space Exploration (DSE), the most appropriate Pareto point is selected [3]. As drones are basically real-time systems, consideration of timing (and potentially, energy) is usually mandatory. However, timing analysis is not an easy and fast task. To solve it, two different levels are proposed. In the first one, the full code is simulated but annotated with constant figures for the time/energy it consumes (FC). In a second level, once the component is mapped to a computing resource, native simulation is used so that accurate figures for execution times and energy can be obtained (FD). Although this is not covered in the paper, more detailed models for the SW can be used as virtualization or even an ISS. These simulation technologies may provide higher accuracy than native simulation at a lower simulation speed. These verification steps finish when the virtual model is accepted in the System Acceptance Verification stage so that its implementation can start.&lt;br /&gt;
# '''Testing''' is the new name we give to the former “HW-in-the-loop” verification steps as they require a physical prototype of the components, sub-systems and, finally, the complete system. Those components with potential reusability will be stored in the ‘Library of Components’.&lt;br /&gt;
&lt;br /&gt;
Once the system is fully designed and accepted, the system can be produced and deployed in the field. Now, the system operation can be monitored and analysed so that it is possible to facilitate maintenance, reduce faults and minimize correction time, when needed.&lt;br /&gt;
&lt;br /&gt;
== Interoperability with other C4D tools ==&lt;br /&gt;
&lt;br /&gt;
From the S3D model, the Model to Model (M2M) tool mSSYN generates the simulation model to be executed by SoSIM. As S3D may contain models from other simulators, so S3D is linked to them. Figure 3 describes the interoperability between SoSim and other simulators:&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-26_IO_01.png|frame|center| Figure 3 - Interoperability of SoSim with other tools]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
[1] J . Merino, R. Gomez, H. Posadas &amp;amp; E. Villar: &amp;quot;Multilevel host-compiled simulation framework for ROS-based UAV services using ArduCopter&amp;quot;, proc. of the XXXVI Conference on Design of Circuits and Integrated Systems (DCIS), IEEE, 2021.&lt;br /&gt;
&lt;br /&gt;
[2] F. Herrera, J. Medina, E. Villar: &amp;quot;Modeling Hardware/Software Embedded Systems with UML/MARTE: A Single-Source Design approach&amp;quot;, in S. Ha and J. Teich (Eds): &amp;quot;Handbook of Hardware/Software Codesign&amp;quot;, Springer. 2017.&lt;br /&gt;
&lt;br /&gt;
[3] F. Herrera, H. Posadas, P. Peñil, E. Villar, F. Ferrero, R. Valencia and G. Palermo. “The COMPLEX methodology for UML/MARTE Modeling and design space exploration of embedded systems”, Journal of Systems Architecture, V.60, I.1, 2014.&lt;/div&gt;</summary>
		<author><name>Raulgv</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-25&amp;diff=840</id>
		<title>WP6-25</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-25&amp;diff=840"/>
		<updated>2023-01-11T14:15:34Z</updated>

		<summary type="html">&lt;p&gt;Raulgv: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-25&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNICAN&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux Ubuntu 18.04 LTE, Eclipse EMF&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| System-of-Systems Modeling&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| Platform Independent Model, Platform Description Model, Functional code&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| XML system description &amp;amp; functional code&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| 5-6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
S3D (s3d.unican.es) is a model-driven, system design framework around a single UML/MARTE model [1]. The model is used as a centralized repository of all the information about the system which is relevant for the design. From the model, the specific information required to perform a certain simulation and performance analysis task (e.g. performance simulation of a solution in a design-space exploration) is extracted and the corresponding simulation model, synthesized. This Model-to-Model generation is performed by the mSSYN tool. The model is simulated by the VIPPE tool. It is worth mentioning that the M2M technology used to generate the simulation models automatically from the system model can be extended to synthesize the SW stack to be executed in each computational node. The corresponding synthesis tool is eSSYN (essyn.unican.es).&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-25_I_01.png]]&lt;br /&gt;
&lt;br /&gt;
==Contribution and Improvements==&lt;br /&gt;
&lt;br /&gt;
The fundamental S3D modeling methodology based on required-provided services has been extended in order to support components using ROS, a publish-subscribe communication middleware [2]. In this paper, Model-Driven Design (MDD) is proposed for modeling, simulation and performance analysis of SW intensive robot-based services. The work shows that robots can be integrated into a system engineering framework without affecting their modeling, design and development features. In order to seamlessly integrate these additional kinds of electro-mechanical components, a platform-based approach is proposed. The large number of different robots available makes it very difficult to reuse the same functional components from one project to another if the robots are changed. For certain kinds of robots with many similar functions, such as drones, a common list of methods can be defined so that the same code is valid for all of them simply by associating the functions with the appropriate code. An additional advantage of this common language is a significant reduction in the programming effort which can be reduced around 30%. The cost to be paid is a drop in simulation speed. In the use case of the paper, this reduction can be as high as 16% when a code intensive in ROS calls is used.&lt;br /&gt;
&lt;br /&gt;
Another interesting result is that if the MDD modeling methodology is general enough, no extension is needed in order to support ROS. Identifying which components make use of ROS is sufficient. In this case, the ROS infrastructure is automatically integrated in the system and used by those ports requiring it. A methodology for rough estimation of execution time of the ROS code has been proposed. Although the error can be as high as 45%, the impact is small as the ROS code will be only a fraction of the total executable. In any case, an improvement over not annotating any execution time for ROS is achieved and this improvement is higher when it is more needed, that is, when the percentage of ROS code is higher. The improvement can be as high as 83.5% with only 2.55% of ROS code.&lt;br /&gt;
&lt;br /&gt;
The proposed framework enables the seamless integration of robots into a MDD framework so that the whole service can be modelled, simulated and its performance analyzed, fully supporting essential stages of the V-Cycle as explained below.&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
S3D covers the modelling and automatic generation of the multi-level executable models used to validate and verify the system at the different abstraction levels. S3D supports the modelling activities at each stage of the V-Cycle for mechatronic systems as explained below:&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-25_DD_01.png]]&lt;br /&gt;
&lt;br /&gt;
In all these stages, S3D supports reusability from previous projects as both functional and test-bench components can be imported from libraries:&lt;br /&gt;
&lt;br /&gt;
# System Requirement Analysis. Based on Papyrus and the UML/MARTE standard, S3D can help in analysing and finally, specify the functional and non-functional requirements to be satisfied by the System (or System of Systems),&lt;br /&gt;
# System Design. Once the requirements have been specified, the system and its environment are fully specified in terms of the interface among them, the domain constraints (input rates, types and constraints among them) and the system functional and non-functional requirements (output rates, input/output delays, energy, etc.). As part of the System Design stage, partitioning of the system in the mechanical and the IT (digital) parts is performed. In S3D, the mechanical part will be incorporated to the Test-Bench (TB) of the (digital) system. As its functionality and performance is fully specified, the TB, including the model of the robots, can be developed.&lt;br /&gt;
# Mechanical Analysis and Design. The inclusion of the robots as TB components allows the analysis of their constraints and the design of the mechanical part (number and type of robots, design requirements to each one and among them, etc.).&lt;br /&gt;
# IT Analysis and Design. At this stage, the analysis and specification of the Platform-Description Model (PDM) can be performed. On the other side, the Platform-Independent Model can be specified.&lt;br /&gt;
# HW Analysis &amp;amp; Design. At this stage, the design of the initial Platform-Description Model (PDM), can be performed and an initial architecture of nodes and their internal HW architecture can be proposed. The final PDM will be decided later during architectural mapping as part of the System Integration &amp;amp; Verification stage.&lt;br /&gt;
# SW Analysis &amp;amp; Design and SW Detailed Design. During this stage, the hierarchical partitioning of the PIM in sub-systems and finally, components fully specified in their interfaces and functional and non-functional constraints, is decided.&lt;br /&gt;
# SW Development. The goal of this stage is to develop the code implementing the functional constraints. Papyrus supports both the Modelling and the Development Views and S3D links one with the other by annotating the components with their implementation files using the file’s paths as properties.&lt;br /&gt;
# SW Component Verification. S3D links each component with their Test-Benches so that the component can be verified both in the host (verification) and the target platform (testing) in case it has been decided already and it is available.&lt;br /&gt;
# In the rest of stages:&lt;br /&gt;
## SW Integration &amp;amp; Verification.&lt;br /&gt;
## HW Integration &amp;amp; Verification.&lt;br /&gt;
## IT Integration &amp;amp; Verification.&lt;br /&gt;
## Mechanical Integration &amp;amp; Verification.&lt;br /&gt;
## System Integration &amp;amp; Verification.&lt;br /&gt;
## System Acceptance Verification.&lt;br /&gt;
&lt;br /&gt;
S3D helps in supporting the improvement of the model through the different stages and the automatic generation of the executables models so that the functional and non-functional constraints can be verified. Architectural mapping, that is, the final mapping of functional components in the PIM to execution resources in the PDM is fixed during System Integration and Verification when an accurate simulation and performance analysis model including the actual code can be generated. This model can provide accurate metrics ensuring final satisfaction of the implementation decided after Design-Space Exploration of as many possibilities as required.&lt;br /&gt;
&lt;br /&gt;
== Interoperability with other C4D tools ==&lt;br /&gt;
S3D is based on fundamental Model-Driven, Component-Based computational concepts. As a consequence, it keeps interoperability with many other system modeling environments. The following picture shows the interoperability of S3D with other tools in the C4D design and Verification environment:&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-25_IO_01.png]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
[1] E. Villar, J. Merino, H. Posadas, R. Henia &amp;amp; L. Rioux: “Mega-modeling of complex, distributed, heterogeneous CPS systems”, Microprocessors and Microsystems, V.78, 2020.&lt;br /&gt;
&lt;br /&gt;
[2] J. Merino, R. Gomez, H. Posadas and E. Villar: &amp;quot;Modeling and Performance Estimation of Robotic Systems using ROS: Application to drone-based Services,&amp;quot; in proc. of the Forum on specification &amp;amp; Design Languages (FDL), IEEE, 2021.&lt;/div&gt;</summary>
		<author><name>Raulgv</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-26&amp;diff=839</id>
		<title>WP6-26</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-26&amp;diff=839"/>
		<updated>2023-01-11T14:14:12Z</updated>

		<summary type="html">&lt;p&gt;Raulgv: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNICAN&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux Ubuntu 18.04 LTE&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| Timing/Energy Simulation&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| XML system description &amp;amp; functional code&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| Functional &amp;amp; performance simulation results&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| 5&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
SoSIM is a new System-of-Systems Simulation tool developed in Comp4Drones. Its background technology is VIPPE. From the Single-Source System Design (S3D) model, the specific information required to perform a certain simulation and performance analysis task (e.g. performance simulation of a solution in a design-space exploration) is extracted and the corresponding simulation model, synthesized. This Model-to-Model generation is performed by the mSSYN tool.&lt;br /&gt;
&lt;br /&gt;
In order to extend SoSIM to mechatronic systems, several improvements have been carried out. The basic infrastructure allowing to simulate multiple drones and combining different levels for the different system components including ROS was described in [1]. The architecture of the complete simulation environment is shown in Figure 1. The arrows represent the control flow in the simulator. Depending on the simulation level, some of the functional blocks may be inactive. So, at the functional level ROS is not used. Thus, neither the ROS core and the MAVROS block, nor the Sync.Clock ROS node are required. The functional drone simulator (now to be extended to several drones) interacts directly with the ROScpp components. This is kept even when the ROS core is included. The synchronization clock will also be needed. Only when any of the drones is modeled with a detailed autopilot and physics, the MAVROS block is added in order to support the communication with the drone through MAVLink.&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-26-I-01.png|frame|center|Figure 1 - VIPPE-ROS background simulation infrastructure]]&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
SoSIM covers the following states in the mechatronic V-Cycle of Figure 2:&lt;br /&gt;
&lt;br /&gt;
# System Design&lt;br /&gt;
# Mechanical Analysis and Design&lt;br /&gt;
# IT Analysis and Design&lt;br /&gt;
# SW Analysis and Design&lt;br /&gt;
# HW Analysis and Design&lt;br /&gt;
# SW Detailed Design&lt;br /&gt;
# SW Component Verification&lt;br /&gt;
# SW Integration and Verification&lt;br /&gt;
# HW Integration and Verification&lt;br /&gt;
# IT Integration and Verification&lt;br /&gt;
# Mechanic Integration and Verification&lt;br /&gt;
# System Integration and Verification&lt;br /&gt;
# System Acceptance Verification&lt;br /&gt;
&lt;br /&gt;
The improvement provided by SoSIM comes from the fact that the use of virtual models of the system simplifies simulation-based DSE, which greatly reduces the time required to select the most appropriate solution [2]. However, as the information about the system and its components evolve along the design process, so should their models and, in general, the infrastructure required for their simulation. As a result, different simulation levels must be considered during the different steps of the design and verification process. Table 1 shows the four simulation levels considered for the functional components:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 1 - Abstraction levels for functional components simulation&lt;br /&gt;
!Level&lt;br /&gt;
!|Code&lt;br /&gt;
!|Timing/Energy&lt;br /&gt;
!|ROS MW&lt;br /&gt;
|-&lt;br /&gt;
|MN&lt;br /&gt;
|minimal&lt;br /&gt;
|no&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;|yes/no&lt;br /&gt;
|-&lt;br /&gt;
|MC&lt;br /&gt;
|minimal&lt;br /&gt;
|constant&lt;br /&gt;
|-&lt;br /&gt;
|FC&lt;br /&gt;
|full code&lt;br /&gt;
|constant&lt;br /&gt;
|-&lt;br /&gt;
|FD&lt;br /&gt;
|full code&lt;br /&gt;
|data dependent&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In MN (minimal/no), no model of time/energy is provided so that the code is supposed to be executed infinitely fast and without consuming any energy. In MC (minimal/constant) and FC (functional/constant), a constant time/energy is assumed each time the function is executed. These can be estimated or observed worst-case, mean-case or best case figures. In FC, the simulation time would be higher than in MC, as the actual code is executed. In the FD (functional/data dependent) model, both time and energy must be estimated over the actual code, using a state of the art technique, such as native simulation technology or binary translation.&lt;br /&gt;
&lt;br /&gt;
Additionally, not all the system components need to have the same level of detail in a single simulation. Different system components can require simulation at different abstraction levels, resulting in heterogeneous simulations, depending on the focus of each simulation. For example, components under development usually require the most accurate simulation level (FD) when verifying their correctness while library components may only require FC simulation.&lt;br /&gt;
&lt;br /&gt;
This multi-level capability is also applicable to the simulation infrastructure. For example, in robotic-based systems considered in this paper, at any of these levels it should be possible to include in the simulation the ROS infrastructure or not. The latter case would allow designers to focus on the functionality of the distributed, heterogeneous functionality. Once this is verified, the former would include the actual ROS infrastructure in order to confirm that the application functionality behaves correctly when the actual communication middleware (MW) is included.&lt;br /&gt;
&lt;br /&gt;
Regarding the simulation of the drones, four different models are considered. Let’s consider the command “move to X/Y/Z”. A minimal implementation will estimate the path and the movement time considering constant horizontal and vertical speed values, the power consumption, and will perform the movement in a single step (FN). In many cases, a more detailed model for the drone(s) is required. An autopilot and a physical simulator are needed.&lt;br /&gt;
[[File:wp6-26-D-01.png|frame|center|Figure 2 - S3D-SoSIM V cycle coverage]]&lt;br /&gt;
&lt;br /&gt;
In this case, the full code (FC/FD) will generate all the signals to the motors required by the physical simulator to reach the final destination, including the estimation of all the intermediate positions, the actual time to reach them, the corresponding power consumption, angles and orientations.&lt;br /&gt;
&lt;br /&gt;
However, these two abstraction levels can be not enough for certain components. As commented above, S3D is based on a service-provided communication paradigm. However, ROS is mostly based on a client/subscriber approach. Thus, an approach based on services that performs the required operation in a single step, such as the one proposed above for the drone model, is not adequate, since publishers typically require a continuous flow of data. To solve this, and considering that the drone model is the most critical element in the simulation of drone-based systems, this work proposes a third, intermediate abstraction level for this component, capable of providing intermediate values to be published. Following the previous example, the command “move to X/Y/Z” will result in a continuous flow of approximate positions and orientations to be published. As a summary, the proposed drone model levels proposed are those shown in Table 2:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 2 - Abstraction levels for the drone simulators&lt;br /&gt;
!Level&lt;br /&gt;
!|Drones modeling&lt;br /&gt;
!|ROS MW&lt;br /&gt;
|-&lt;br /&gt;
|FY/FN&lt;br /&gt;
|Functional&lt;br /&gt;
|yes/no&lt;br /&gt;
|-&lt;br /&gt;
|AP&lt;br /&gt;
|Autopilot&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|MP&lt;br /&gt;
|Multi-Physics&lt;br /&gt;
|yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The simulation framework should support mixing functional and detailed simulation models for the drones in a multi-drone service. It should enable the system engineer to decide the best combination of abstraction levels in Tables 1 and 2. Supporting multi-level simulation requires that each component in the functional architecture is associated with models at several abstraction levels, each involving different accuracy/speed ratios.&lt;br /&gt;
&lt;br /&gt;
Finally, it is mandatory to consider that drone based-systems usually involve multiple drones, and these drones can even require different simulation levels, in order to achieve high accuracy in some of the drone models while maintaining enough speed for the whole simulation.&lt;br /&gt;
&lt;br /&gt;
The new verification tasks introduced in the V-Cycle of Figure 2 are the following:&lt;br /&gt;
&lt;br /&gt;
# '''Validation''': The goal of the System Design, Mechanical Analysis and Design, IT Analysis and Design, SW Analysis and Design, HW Analysis and Design and SW Detailed Design is to ensure that the hierarchical partitioning of the system in sub-systems and finally, mechanical and HW and SW components, keeps the functional and non-functional requirements stated at the beginning of the design process. As the domain restrictions such as inputs, outputs, rates and throughputs are usually defined in the system requirements analysis steps, the full test-bench can be developed. The test-benches developed at the system, subsystem and component levels during design validation can be reused for component, sub-system and final system verification. The system-level test-bench can be also largely re-used for DSE and HW/SW co-design. The test-benches may also help during component, sub-system and system testing when the test-bench or part of it is emulated via SW-in-the-Loop (SIL). In order to be able to verify the test-bench at such a high level, a minimal functionality implementing the fundamental features of the system, subsystems and/or the components in the final full system architecture, should be developed (MN). This initial code can also be combined with preliminary, predefined time/energy figures in order to enable a first performance analysis of the system (MC). Regarding the drone(s), a functional model (FN) is the most appropriate. This functional simulation is useful during system requirement analysis and system architectural design and partitioning. After this initial stage, the components to be reused are selected and the components to be developed from scratch are fully specified so that their development (i.e. programming) can start, in case of HW/SW components. In the case of robots (i.e. the drones), their modelling, simulation and design can start. Reusability does not affect only application components but also components in the test-bench (e.g. the drones in the context of this paper).&lt;br /&gt;
# '''Verification''': Once the complete code has been developed, SW Component Verification, SW Integration and Verification, HW Integration and Verification, IT Integration and Verification, Mechanic Integration and Verification and System Integration and Verification can be performed. By verification, functional and non-functional verification is meant. Simulating the full code allows functional verification and debugging. Performance analysis enables non-functional verification. Any error detected, would require code optimization, platform re-configuration, platform re-design or even, a new architectural mapping of functional components to HW resources. The advantage provided by the co-design approach is that these design decisions are made at the same stage and only in a few cases it is required to backtrack to a previous stage. Among the different valid solutions during this Design-Space Exploration (DSE), the most appropriate Pareto point is selected [3]. As drones are basically real-time systems, consideration of timing (and potentially, energy) is usually mandatory. However, timing analysis is not an easy and fast task. To solve it, two different levels are proposed. In the first one, the full code is simulated but annotated with constant figures for the time/energy it consumes (FC). In a second level, once the component is mapped to a computing resource, native simulation is used so that accurate figures for execution times and energy can be obtained (FD). Although this is not covered in the paper, more detailed models for the SW can be used as virtualization or even an ISS. These simulation technologies may provide higher accuracy than native simulation at a lower simulation speed. These verification steps finish when the virtual model is accepted in the System Acceptance Verification stage so that its implementation can start.&lt;br /&gt;
# '''Testing''' is the new name we give to the former “HW-in-the-loop” verification steps as they require a physical prototype of the components, sub-systems and, finally, the complete system. Those components with potential reusability will be stored in the ‘Library of Components’.&lt;br /&gt;
&lt;br /&gt;
Once the system is fully designed and accepted, the system can be produced and deployed in the field. Now, the system operation can be monitored and analysed so that it is possible to facilitate maintenance, reduce faults and minimize correction time, when needed.&lt;br /&gt;
&lt;br /&gt;
== Interoperability with other C4D tools ==&lt;br /&gt;
&lt;br /&gt;
From the S3D model, the Model to Model (M2M) tool mSSYN generates the simulation model to be executed by SoSIM. As S3D may contain models from other simulators, so S3D is linked to them. Figure 3 describes the interoperability between SoSim and other simulators:&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-26_IO_01.png|frame|center| Figure 3 - Interoperability of SoSim with other tools]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
[1] J . Merino, R. Gomez, H. Posadas &amp;amp; E. Villar: &amp;quot;Multilevel host-compiled simulation framework for ROS-based UAV services using ArduCopter&amp;quot;, proc. of the XXXVI Conference on Design of Circuits and Integrated Systems (DCIS), IEEE, 2021.&lt;br /&gt;
&lt;br /&gt;
[2] F. Herrera, J. Medina, E. Villar: &amp;quot;Modeling Hardware/Software Embedded Systems with UML/MARTE: A Single-Source Design approach&amp;quot;, in S. Ha and J. Teich (Eds): &amp;quot;Handbook of Hardware/Software Codesign&amp;quot;, Springer. 2017.&lt;br /&gt;
&lt;br /&gt;
[3] F. Herrera, H. Posadas, P. Peñil, E. Villar, F. Ferrero, R. Valencia and G. Palermo. “The COMPLEX methodology for UML/MARTE Modeling and design space exploration of embedded systems”, Journal of Systems Architecture, V.60, I.1, 2014.&lt;/div&gt;</summary>
		<author><name>Raulgv</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-26&amp;diff=838</id>
		<title>WP6-26</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-26&amp;diff=838"/>
		<updated>2023-01-11T14:08:37Z</updated>

		<summary type="html">&lt;p&gt;Raulgv: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNICAN&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux Ubuntu 18.04 LTE&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| Timing/Energy Simulation&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| Platform Independent Model, Platform Description Model, Functional code&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| Functional &amp;amp; performance simulation results&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| 5&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
SoSIM is a new System-of-Systems Simulation tool developed in Comp4Drones. Its background technology is VIPPE. From the Single-Source System Design (S3D) model, the specific information required to perform a certain simulation and performance analysis task (e.g. performance simulation of a solution in a design-space exploration) is extracted and the corresponding simulation model, synthesized. This Model-to-Model generation is performed by the mSSYN tool.&lt;br /&gt;
&lt;br /&gt;
In order to extend SoSIM to mechatronic systems, several improvements have been carried out. The basic infrastructure allowing to simulate multiple drones and combining different levels for the different system components including ROS was described in [1]. The architecture of the complete simulation environment is shown in Figure 1. The arrows represent the control flow in the simulator. Depending on the simulation level, some of the functional blocks may be inactive. So, at the functional level ROS is not used. Thus, neither the ROS core and the MAVROS block, nor the Sync.Clock ROS node are required. The functional drone simulator (now to be extended to several drones) interacts directly with the ROScpp components. This is kept even when the ROS core is included. The synchronization clock will also be needed. Only when any of the drones is modeled with a detailed autopilot and physics, the MAVROS block is added in order to support the communication with the drone through MAVLink.&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-26-I-01.png|frame|center|Figure 1 - VIPPE-ROS background simulation infrastructure]]&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
SoSIM covers the following states in the mechatronic V-Cycle of Figure 2:&lt;br /&gt;
&lt;br /&gt;
# System Design&lt;br /&gt;
# Mechanical Analysis and Design&lt;br /&gt;
# IT Analysis and Design&lt;br /&gt;
# SW Analysis and Design&lt;br /&gt;
# HW Analysis and Design&lt;br /&gt;
# SW Detailed Design&lt;br /&gt;
# SW Component Verification&lt;br /&gt;
# SW Integration and Verification&lt;br /&gt;
# HW Integration and Verification&lt;br /&gt;
# IT Integration and Verification&lt;br /&gt;
# Mechanic Integration and Verification&lt;br /&gt;
# System Integration and Verification&lt;br /&gt;
# System Acceptance Verification&lt;br /&gt;
&lt;br /&gt;
The improvement provided by SoSIM comes from the fact that the use of virtual models of the system simplifies simulation-based DSE, which greatly reduces the time required to select the most appropriate solution [2]. However, as the information about the system and its components evolve along the design process, so should their models and, in general, the infrastructure required for their simulation. As a result, different simulation levels must be considered during the different steps of the design and verification process. Table 1 shows the four simulation levels considered for the functional components:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 1 - Abstraction levels for functional components simulation&lt;br /&gt;
!Level&lt;br /&gt;
!|Code&lt;br /&gt;
!|Timing/Energy&lt;br /&gt;
!|ROS MW&lt;br /&gt;
|-&lt;br /&gt;
|MN&lt;br /&gt;
|minimal&lt;br /&gt;
|no&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;|yes/no&lt;br /&gt;
|-&lt;br /&gt;
|MC&lt;br /&gt;
|minimal&lt;br /&gt;
|constant&lt;br /&gt;
|-&lt;br /&gt;
|FC&lt;br /&gt;
|full code&lt;br /&gt;
|constant&lt;br /&gt;
|-&lt;br /&gt;
|FD&lt;br /&gt;
|full code&lt;br /&gt;
|data dependent&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In MN (minimal/no), no model of time/energy is provided so that the code is supposed to be executed infinitely fast and without consuming any energy. In MC (minimal/constant) and FC (functional/constant), a constant time/energy is assumed each time the function is executed. These can be estimated or observed worst-case, mean-case or best case figures. In FC, the simulation time would be higher than in MC, as the actual code is executed. In the FD (functional/data dependent) model, both time and energy must be estimated over the actual code, using a state of the art technique, such as native simulation technology or binary translation.&lt;br /&gt;
&lt;br /&gt;
Additionally, not all the system components need to have the same level of detail in a single simulation. Different system components can require simulation at different abstraction levels, resulting in heterogeneous simulations, depending on the focus of each simulation. For example, components under development usually require the most accurate simulation level (FD) when verifying their correctness while library components may only require FC simulation.&lt;br /&gt;
&lt;br /&gt;
This multi-level capability is also applicable to the simulation infrastructure. For example, in robotic-based systems considered in this paper, at any of these levels it should be possible to include in the simulation the ROS infrastructure or not. The latter case would allow designers to focus on the functionality of the distributed, heterogeneous functionality. Once this is verified, the former would include the actual ROS infrastructure in order to confirm that the application functionality behaves correctly when the actual communication middleware (MW) is included.&lt;br /&gt;
&lt;br /&gt;
Regarding the simulation of the drones, four different models are considered. Let’s consider the command “move to X/Y/Z”. A minimal implementation will estimate the path and the movement time considering constant horizontal and vertical speed values, the power consumption, and will perform the movement in a single step (FN). In many cases, a more detailed model for the drone(s) is required. An autopilot and a physical simulator are needed.&lt;br /&gt;
[[File:wp6-26-D-01.png|frame|center|Figure 2 - S3D-SoSIM V cycle coverage]]&lt;br /&gt;
&lt;br /&gt;
In this case, the full code (FC/FD) will generate all the signals to the motors required by the physical simulator to reach the final destination, including the estimation of all the intermediate positions, the actual time to reach them, the corresponding power consumption, angles and orientations.&lt;br /&gt;
&lt;br /&gt;
However, these two abstraction levels can be not enough for certain components. As commented above, S3D is based on a service-provided communication paradigm. However, ROS is mostly based on a client/subscriber approach. Thus, an approach based on services that performs the required operation in a single step, such as the one proposed above for the drone model, is not adequate, since publishers typically require a continuous flow of data. To solve this, and considering that the drone model is the most critical element in the simulation of drone-based systems, this work proposes a third, intermediate abstraction level for this component, capable of providing intermediate values to be published. Following the previous example, the command “move to X/Y/Z” will result in a continuous flow of approximate positions and orientations to be published. As a summary, the proposed drone model levels proposed are those shown in Table 2:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 2 - Abstraction levels for the drone simulators&lt;br /&gt;
!Level&lt;br /&gt;
!|Drones modeling&lt;br /&gt;
!|ROS MW&lt;br /&gt;
|-&lt;br /&gt;
|FY/FN&lt;br /&gt;
|Functional&lt;br /&gt;
|yes/no&lt;br /&gt;
|-&lt;br /&gt;
|AP&lt;br /&gt;
|Autopilot&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|MP&lt;br /&gt;
|Multi-Physics&lt;br /&gt;
|yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The simulation framework should support mixing functional and detailed simulation models for the drones in a multi-drone service. It should enable the system engineer to decide the best combination of abstraction levels in Tables 1 and 2. Supporting multi-level simulation requires that each component in the functional architecture is associated with models at several abstraction levels, each involving different accuracy/speed ratios.&lt;br /&gt;
&lt;br /&gt;
Finally, it is mandatory to consider that drone based-systems usually involve multiple drones, and these drones can even require different simulation levels, in order to achieve high accuracy in some of the drone models while maintaining enough speed for the whole simulation.&lt;br /&gt;
&lt;br /&gt;
The new verification tasks introduced in the V-Cycle of Figure 2 are the following:&lt;br /&gt;
&lt;br /&gt;
# '''Validation''': The goal of the System Design, Mechanical Analysis and Design, IT Analysis and Design, SW Analysis and Design, HW Analysis and Design and SW Detailed Design is to ensure that the hierarchical partitioning of the system in sub-systems and finally, mechanical and HW and SW components, keeps the functional and non-functional requirements stated at the beginning of the design process. As the domain restrictions such as inputs, outputs, rates and throughputs are usually defined in the system requirements analysis steps, the full test-bench can be developed. The test-benches developed at the system, subsystem and component levels during design validation can be reused for component, sub-system and final system verification. The system-level test-bench can be also largely re-used for DSE and HW/SW co-design. The test-benches may also help during component, sub-system and system testing when the test-bench or part of it is emulated via SW-in-the-Loop (SIL). In order to be able to verify the test-bench at such a high level, a minimal functionality implementing the fundamental features of the system, subsystems and/or the components in the final full system architecture, should be developed (MN). This initial code can also be combined with preliminary, predefined time/energy figures in order to enable a first performance analysis of the system (MC). Regarding the drone(s), a functional model (FN) is the most appropriate. This functional simulation is useful during system requirement analysis and system architectural design and partitioning. After this initial stage, the components to be reused are selected and the components to be developed from scratch are fully specified so that their development (i.e. programming) can start, in case of HW/SW components. In the case of robots (i.e. the drones), their modelling, simulation and design can start. Reusability does not affect only application components but also components in the test-bench (e.g. the drones in the context of this paper).&lt;br /&gt;
# '''Verification''': Once the complete code has been developed, SW Component Verification, SW Integration and Verification, HW Integration and Verification, IT Integration and Verification, Mechanic Integration and Verification and System Integration and Verification can be performed. By verification, functional and non-functional verification is meant. Simulating the full code allows functional verification and debugging. Performance analysis enables non-functional verification. Any error detected, would require code optimization, platform re-configuration, platform re-design or even, a new architectural mapping of functional components to HW resources. The advantage provided by the co-design approach is that these design decisions are made at the same stage and only in a few cases it is required to backtrack to a previous stage. Among the different valid solutions during this Design-Space Exploration (DSE), the most appropriate Pareto point is selected [3]. As drones are basically real-time systems, consideration of timing (and potentially, energy) is usually mandatory. However, timing analysis is not an easy and fast task. To solve it, two different levels are proposed. In the first one, the full code is simulated but annotated with constant figures for the time/energy it consumes (FC). In a second level, once the component is mapped to a computing resource, native simulation is used so that accurate figures for execution times and energy can be obtained (FD). Although this is not covered in the paper, more detailed models for the SW can be used as virtualization or even an ISS. These simulation technologies may provide higher accuracy than native simulation at a lower simulation speed. These verification steps finish when the virtual model is accepted in the System Acceptance Verification stage so that its implementation can start.&lt;br /&gt;
# '''Testing''' is the new name we give to the former “HW-in-the-loop” verification steps as they require a physical prototype of the components, sub-systems and, finally, the complete system. Those components with potential reusability will be stored in the ‘Library of Components’.&lt;br /&gt;
&lt;br /&gt;
Once the system is fully designed and accepted, the system can be produced and deployed in the field. Now, the system operation can be monitored and analysed so that it is possible to facilitate maintenance, reduce faults and minimize correction time, when needed.&lt;br /&gt;
&lt;br /&gt;
== Interoperability with other C4D tools ==&lt;br /&gt;
&lt;br /&gt;
From the S3D model, the Model to Model (M2M) tool mSSYN generates the simulation model to be executed by SoSIM. As S3D may contain models from other simulators, so S3D is linked to them. Figure 3 describes the interoperability between SoSim and other simulators:&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-26_IO_01.png|frame|center| Figure 3 - Interoperability of SoSim with other tools]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
[1] J . Merino, R. Gomez, H. Posadas &amp;amp; E. Villar: &amp;quot;Multilevel host-compiled simulation framework for ROS-based UAV services using ArduCopter&amp;quot;, proc. of the XXXVI Conference on Design of Circuits and Integrated Systems (DCIS), IEEE, 2021.&lt;br /&gt;
&lt;br /&gt;
[2] F. Herrera, J. Medina, E. Villar: &amp;quot;Modeling Hardware/Software Embedded Systems with UML/MARTE: A Single-Source Design approach&amp;quot;, in S. Ha and J. Teich (Eds): &amp;quot;Handbook of Hardware/Software Codesign&amp;quot;, Springer. 2017.&lt;br /&gt;
&lt;br /&gt;
[3] F. Herrera, H. Posadas, P. Peñil, E. Villar, F. Ferrero, R. Valencia and G. Palermo. “The COMPLEX methodology for UML/MARTE Modeling and design space exploration of embedded systems”, Journal of Systems Architecture, V.60, I.1, 2014.&lt;/div&gt;</summary>
		<author><name>Raulgv</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-26&amp;diff=837</id>
		<title>WP6-26</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-26&amp;diff=837"/>
		<updated>2023-01-11T14:06:58Z</updated>

		<summary type="html">&lt;p&gt;Raulgv: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNICAN&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux Ubuntu 18.04 LTE&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| Timing/Energy Simulation&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| Platform Independent Model, Platform Description Model, Functional code&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| Functional &amp;amp; performance simulation results&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
SoSIM is a new System-of-Systems Simulation tool developed in Comp4Drones. Its background technology is VIPPE. From the Single-Source System Design (S3D) model, the specific information required to perform a certain simulation and performance analysis task (e.g. performance simulation of a solution in a design-space exploration) is extracted and the corresponding simulation model, synthesized. This Model-to-Model generation is performed by the mSSYN tool.&lt;br /&gt;
&lt;br /&gt;
In order to extend SoSIM to mechatronic systems, several improvements have been carried out. The basic infrastructure allowing to simulate multiple drones and combining different levels for the different system components including ROS was described in [1]. The architecture of the complete simulation environment is shown in Figure 1. The arrows represent the control flow in the simulator. Depending on the simulation level, some of the functional blocks may be inactive. So, at the functional level ROS is not used. Thus, neither the ROS core and the MAVROS block, nor the Sync.Clock ROS node are required. The functional drone simulator (now to be extended to several drones) interacts directly with the ROScpp components. This is kept even when the ROS core is included. The synchronization clock will also be needed. Only when any of the drones is modeled with a detailed autopilot and physics, the MAVROS block is added in order to support the communication with the drone through MAVLink.&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-26-I-01.png|frame|center|Figure 1 - VIPPE-ROS background simulation infrastructure]]&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
SoSIM covers the following states in the mechatronic V-Cycle of Figure 2:&lt;br /&gt;
&lt;br /&gt;
# System Design&lt;br /&gt;
# Mechanical Analysis and Design&lt;br /&gt;
# IT Analysis and Design&lt;br /&gt;
# SW Analysis and Design&lt;br /&gt;
# HW Analysis and Design&lt;br /&gt;
# SW Detailed Design&lt;br /&gt;
# SW Component Verification&lt;br /&gt;
# SW Integration and Verification&lt;br /&gt;
# HW Integration and Verification&lt;br /&gt;
# IT Integration and Verification&lt;br /&gt;
# Mechanic Integration and Verification&lt;br /&gt;
# System Integration and Verification&lt;br /&gt;
# System Acceptance Verification&lt;br /&gt;
&lt;br /&gt;
The improvement provided by SoSIM comes from the fact that the use of virtual models of the system simplifies simulation-based DSE, which greatly reduces the time required to select the most appropriate solution [2]. However, as the information about the system and its components evolve along the design process, so should their models and, in general, the infrastructure required for their simulation. As a result, different simulation levels must be considered during the different steps of the design and verification process. Table 1 shows the four simulation levels considered for the functional components:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 1 - Abstraction levels for functional components simulation&lt;br /&gt;
!Level&lt;br /&gt;
!|Code&lt;br /&gt;
!|Timing/Energy&lt;br /&gt;
!|ROS MW&lt;br /&gt;
|-&lt;br /&gt;
|MN&lt;br /&gt;
|minimal&lt;br /&gt;
|no&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;|yes/no&lt;br /&gt;
|-&lt;br /&gt;
|MC&lt;br /&gt;
|minimal&lt;br /&gt;
|constant&lt;br /&gt;
|-&lt;br /&gt;
|FC&lt;br /&gt;
|full code&lt;br /&gt;
|constant&lt;br /&gt;
|-&lt;br /&gt;
|FD&lt;br /&gt;
|full code&lt;br /&gt;
|data dependent&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In MN (minimal/no), no model of time/energy is provided so that the code is supposed to be executed infinitely fast and without consuming any energy. In MC (minimal/constant) and FC (functional/constant), a constant time/energy is assumed each time the function is executed. These can be estimated or observed worst-case, mean-case or best case figures. In FC, the simulation time would be higher than in MC, as the actual code is executed. In the FD (functional/data dependent) model, both time and energy must be estimated over the actual code, using a state of the art technique, such as native simulation technology or binary translation.&lt;br /&gt;
&lt;br /&gt;
Additionally, not all the system components need to have the same level of detail in a single simulation. Different system components can require simulation at different abstraction levels, resulting in heterogeneous simulations, depending on the focus of each simulation. For example, components under development usually require the most accurate simulation level (FD) when verifying their correctness while library components may only require FC simulation.&lt;br /&gt;
&lt;br /&gt;
This multi-level capability is also applicable to the simulation infrastructure. For example, in robotic-based systems considered in this paper, at any of these levels it should be possible to include in the simulation the ROS infrastructure or not. The latter case would allow designers to focus on the functionality of the distributed, heterogeneous functionality. Once this is verified, the former would include the actual ROS infrastructure in order to confirm that the application functionality behaves correctly when the actual communication middleware (MW) is included.&lt;br /&gt;
&lt;br /&gt;
Regarding the simulation of the drones, four different models are considered. Let’s consider the command “move to X/Y/Z”. A minimal implementation will estimate the path and the movement time considering constant horizontal and vertical speed values, the power consumption, and will perform the movement in a single step (FN). In many cases, a more detailed model for the drone(s) is required. An autopilot and a physical simulator are needed.&lt;br /&gt;
[[File:wp6-26-D-01.png|frame|center|Figure 2 - S3D-SoSIM V cycle coverage]]&lt;br /&gt;
&lt;br /&gt;
In this case, the full code (FC/FD) will generate all the signals to the motors required by the physical simulator to reach the final destination, including the estimation of all the intermediate positions, the actual time to reach them, the corresponding power consumption, angles and orientations.&lt;br /&gt;
&lt;br /&gt;
However, these two abstraction levels can be not enough for certain components. As commented above, S3D is based on a service-provided communication paradigm. However, ROS is mostly based on a client/subscriber approach. Thus, an approach based on services that performs the required operation in a single step, such as the one proposed above for the drone model, is not adequate, since publishers typically require a continuous flow of data. To solve this, and considering that the drone model is the most critical element in the simulation of drone-based systems, this work proposes a third, intermediate abstraction level for this component, capable of providing intermediate values to be published. Following the previous example, the command “move to X/Y/Z” will result in a continuous flow of approximate positions and orientations to be published. As a summary, the proposed drone model levels proposed are those shown in Table 2:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 2 - Abstraction levels for the drone simulators&lt;br /&gt;
!Level&lt;br /&gt;
!|Drones modeling&lt;br /&gt;
!|ROS MW&lt;br /&gt;
|-&lt;br /&gt;
|FY/FN&lt;br /&gt;
|Functional&lt;br /&gt;
|yes/no&lt;br /&gt;
|-&lt;br /&gt;
|AP&lt;br /&gt;
|Autopilot&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|MP&lt;br /&gt;
|Multi-Physics&lt;br /&gt;
|yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The simulation framework should support mixing functional and detailed simulation models for the drones in a multi-drone service. It should enable the system engineer to decide the best combination of abstraction levels in Tables 1 and 2. Supporting multi-level simulation requires that each component in the functional architecture is associated with models at several abstraction levels, each involving different accuracy/speed ratios.&lt;br /&gt;
&lt;br /&gt;
Finally, it is mandatory to consider that drone based-systems usually involve multiple drones, and these drones can even require different simulation levels, in order to achieve high accuracy in some of the drone models while maintaining enough speed for the whole simulation.&lt;br /&gt;
&lt;br /&gt;
The new verification tasks introduced in the V-Cycle of Figure 2 are the following:&lt;br /&gt;
&lt;br /&gt;
# '''Validation''': The goal of the System Design, Mechanical Analysis and Design, IT Analysis and Design, SW Analysis and Design, HW Analysis and Design and SW Detailed Design is to ensure that the hierarchical partitioning of the system in sub-systems and finally, mechanical and HW and SW components, keeps the functional and non-functional requirements stated at the beginning of the design process. As the domain restrictions such as inputs, outputs, rates and throughputs are usually defined in the system requirements analysis steps, the full test-bench can be developed. The test-benches developed at the system, subsystem and component levels during design validation can be reused for component, sub-system and final system verification. The system-level test-bench can be also largely re-used for DSE and HW/SW co-design. The test-benches may also help during component, sub-system and system testing when the test-bench or part of it is emulated via SW-in-the-Loop (SIL). In order to be able to verify the test-bench at such a high level, a minimal functionality implementing the fundamental features of the system, subsystems and/or the components in the final full system architecture, should be developed (MN). This initial code can also be combined with preliminary, predefined time/energy figures in order to enable a first performance analysis of the system (MC). Regarding the drone(s), a functional model (FN) is the most appropriate. This functional simulation is useful during system requirement analysis and system architectural design and partitioning. After this initial stage, the components to be reused are selected and the components to be developed from scratch are fully specified so that their development (i.e. programming) can start, in case of HW/SW components. In the case of robots (i.e. the drones), their modelling, simulation and design can start. Reusability does not affect only application components but also components in the test-bench (e.g. the drones in the context of this paper).&lt;br /&gt;
# '''Verification''': Once the complete code has been developed, SW Component Verification, SW Integration and Verification, HW Integration and Verification, IT Integration and Verification, Mechanic Integration and Verification and System Integration and Verification can be performed. By verification, functional and non-functional verification is meant. Simulating the full code allows functional verification and debugging. Performance analysis enables non-functional verification. Any error detected, would require code optimization, platform re-configuration, platform re-design or even, a new architectural mapping of functional components to HW resources. The advantage provided by the co-design approach is that these design decisions are made at the same stage and only in a few cases it is required to backtrack to a previous stage. Among the different valid solutions during this Design-Space Exploration (DSE), the most appropriate Pareto point is selected [3]. As drones are basically real-time systems, consideration of timing (and potentially, energy) is usually mandatory. However, timing analysis is not an easy and fast task. To solve it, two different levels are proposed. In the first one, the full code is simulated but annotated with constant figures for the time/energy it consumes (FC). In a second level, once the component is mapped to a computing resource, native simulation is used so that accurate figures for execution times and energy can be obtained (FD). Although this is not covered in the paper, more detailed models for the SW can be used as virtualization or even an ISS. These simulation technologies may provide higher accuracy than native simulation at a lower simulation speed. These verification steps finish when the virtual model is accepted in the System Acceptance Verification stage so that its implementation can start.&lt;br /&gt;
# '''Testing''' is the new name we give to the former “HW-in-the-loop” verification steps as they require a physical prototype of the components, sub-systems and, finally, the complete system. Those components with potential reusability will be stored in the ‘Library of Components’.&lt;br /&gt;
&lt;br /&gt;
Once the system is fully designed and accepted, the system can be produced and deployed in the field. Now, the system operation can be monitored and analysed so that it is possible to facilitate maintenance, reduce faults and minimize correction time, when needed.&lt;br /&gt;
&lt;br /&gt;
== Interoperability with other C4D tools ==&lt;br /&gt;
&lt;br /&gt;
From the S3D model, the Model to Model (M2M) tool mSSYN generates the simulation model to be executed by SoSIM. As S3D may contain models from other simulators, so S3D is linked to them. Figure 3 describes the interoperability between SoSim and other simulators:&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-26_IO_01.png|frame|center| Figure 3 - Interoperability of SoSim with other tools]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
[1] J . Merino, R. Gomez, H. Posadas &amp;amp; E. Villar: &amp;quot;Multilevel host-compiled simulation framework for ROS-based UAV services using ArduCopter&amp;quot;, proc. of the XXXVI Conference on Design of Circuits and Integrated Systems (DCIS), IEEE, 2021.&lt;br /&gt;
&lt;br /&gt;
[2] F. Herrera, J. Medina, E. Villar: &amp;quot;Modeling Hardware/Software Embedded Systems with UML/MARTE: A Single-Source Design approach&amp;quot;, in S. Ha and J. Teich (Eds): &amp;quot;Handbook of Hardware/Software Codesign&amp;quot;, Springer. 2017.&lt;br /&gt;
&lt;br /&gt;
[3] F. Herrera, H. Posadas, P. Peñil, E. Villar, F. Ferrero, R. Valencia and G. Palermo. “The COMPLEX methodology for UML/MARTE Modeling and design space exploration of embedded systems”, Journal of Systems Architecture, V.60, I.1, 2014.&lt;/div&gt;</summary>
		<author><name>Raulgv</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=Component_repository&amp;diff=836</id>
		<title>Component repository</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=Component_repository&amp;diff=836"/>
		<updated>2023-01-11T13:59:25Z</updated>

		<summary type="html">&lt;p&gt;Raulgv: /* Components list */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This repository aims at providing common components usable in different application domains, in particular those covered by project use-cases.&lt;br /&gt;
&lt;br /&gt;
The requirements for using a components will be listed, as well as a documentation on how to use it. The component itself will be hosted by the partner who provides it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Components list==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|ID &lt;br /&gt;
|Contributor &lt;br /&gt;
|Title&lt;br /&gt;
|-&lt;br /&gt;
|[[WP3-01]]&lt;br /&gt;
|IKERLAN&lt;br /&gt;
|Safety function - Pre-Certified SOM&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-02]] &lt;br /&gt;
|EDI &lt;br /&gt;
|Modular SoC-based embedded reference architecture&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-03]]&lt;br /&gt;
|BUT	&lt;br /&gt;
|Sensor information algorithms&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-04]]	&lt;br /&gt;
|HIB	&lt;br /&gt;
|Computer Vision Components for drones&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-10]]	&lt;br /&gt;
|IFAT	&lt;br /&gt;
|Component for trusted communication establishment&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-13]]	&lt;br /&gt;
|ENAC	&lt;br /&gt;
|Paparazzi UAV&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-14_1]]	&lt;br /&gt;
|ENSMA	&lt;br /&gt;
|Collision avoidance and geo-fencing&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-14_2]]	&lt;br /&gt;
|ENSMA	&lt;br /&gt;
|Distributed control of multi-drone system&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-15_1]]	&lt;br /&gt;
|ACORDE	&lt;br /&gt;
|UWB based indoor positioning&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-15_2]]&lt;br /&gt;
|ACORDE	&lt;br /&gt;
|Multi-antenna GNSS/INS based navigation&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-16]]	&lt;br /&gt;
|SCALIAN	&lt;br /&gt;
|EZ_Chains Fleet Architecture&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-19_1]]	&lt;br /&gt;
|IMEC	&lt;br /&gt;
|Hyperspectral payload&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-19_2]]	&lt;br /&gt;
|IMEC	&lt;br /&gt;
|Hyperspectral image processing&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-20]]	&lt;br /&gt;
|MODIS	&lt;br /&gt;
|Multi-sensor positioning&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-22]]	&lt;br /&gt;
|UNIMORE	&lt;br /&gt;
|Onboard Compute Platform Desing Methodology&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-24]]	&lt;br /&gt;
|UNIVAQ	&lt;br /&gt;
|Efficient digital implementation of controllers&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-26]]	&lt;br /&gt;
|UWB	&lt;br /&gt;
|Droneport: an autonomous drone battery management system&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-28]]	&lt;br /&gt;
|UNISS	&lt;br /&gt;
|Accelerator Design Methodology for OOCP&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-36_1]]	&lt;br /&gt;
|UDANET	&lt;br /&gt;
|Smart and predictive energy management system&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-36_2]]&lt;br /&gt;
|UDANET	&lt;br /&gt;
|AI drone system modules&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-37]]	&lt;br /&gt;
|Aitek	&lt;br /&gt;
|Video and data analytics&lt;br /&gt;
|- &lt;br /&gt;
|[[WP4-2]]	&lt;br /&gt;
|SCALIAN	&lt;br /&gt;
|EZ_Land Precision landing&lt;br /&gt;
|- &lt;br /&gt;
|[[WP4-5]]	&lt;br /&gt;
|SCALIAN	&lt;br /&gt;
|AI detection for clearance&lt;br /&gt;
|- &lt;br /&gt;
|[[WP4-07]]	&lt;br /&gt;
|ROT&lt;br /&gt;
|Run-Time Safety Checker&lt;br /&gt;
|- &lt;br /&gt;
|[[WP4-10]]	&lt;br /&gt;
|ALM&lt;br /&gt;
|Cooperative Planner&lt;br /&gt;
|- &lt;br /&gt;
|[[WP4-14]]	&lt;br /&gt;
|ALM&lt;br /&gt;
|Map Enhancement Service&lt;br /&gt;
|- &lt;br /&gt;
|[[WP4-15]]	&lt;br /&gt;
|ALM&lt;br /&gt;
|Visual Analytics&lt;br /&gt;
|- &lt;br /&gt;
|[[WP4-16]]	&lt;br /&gt;
|ACORDE&lt;br /&gt;
|Enhanced Navigation Software&lt;br /&gt;
|- &lt;br /&gt;
|[[WP4-17]]	&lt;br /&gt;
|ACORDE&lt;br /&gt;
|Anchor&amp;amp;Tag firmware of the Indoor  Positioning System &lt;br /&gt;
|- &lt;br /&gt;
|[[WP4-18_A]]	&lt;br /&gt;
|TEKNE	&lt;br /&gt;
|Drone-Rover Transponder&lt;br /&gt;
|- &lt;br /&gt;
|[[WP4-20]]	&lt;br /&gt;
|ALM&lt;br /&gt;
|Attractor-based Navigation&lt;br /&gt;
|- &lt;br /&gt;
|[[WP4-22]]	&lt;br /&gt;
|ALM&lt;br /&gt;
|Shared Reference Frame&lt;br /&gt;
|- &lt;br /&gt;
|[[WP4-32]]	&lt;br /&gt;
|SHERPA&lt;br /&gt;
|Dynamic control development for navigation and precision landing&lt;br /&gt;
|-&lt;br /&gt;
|[[WP4-33]]	&lt;br /&gt;
|UNIVAQ	&lt;br /&gt;
|Autonomy, cooperation, and awareness&lt;br /&gt;
|-&lt;br /&gt;
|[[WP4-36]]	&lt;br /&gt;
|IMCS&lt;br /&gt;
|Autonomous Decision Making in Critical Situations&lt;br /&gt;
|-&lt;br /&gt;
|[[WP4-37]]	&lt;br /&gt;
|IMCS&lt;br /&gt;
|Algorithms for Runtime Safety Monitoring&lt;br /&gt;
|-  &lt;br /&gt;
|[[WP4-39]]	&lt;br /&gt;
|HIB&lt;br /&gt;
|Simulated data aggregator supporting intelligent decision in computer vision components&lt;br /&gt;
|- &lt;br /&gt;
|[[WP4-42]]	&lt;br /&gt;
|SCALIAN	&lt;br /&gt;
|AI Stabilization&lt;br /&gt;
|- &lt;br /&gt;
|[[WP5-02]]	&lt;br /&gt;
|IKERLAN&lt;br /&gt;
|Security Management Toolchain&lt;br /&gt;
|- &lt;br /&gt;
|[[WP5-03]]	&lt;br /&gt;
|SCALIAN	&lt;br /&gt;
|EZ_Com Safe fleet communication&lt;br /&gt;
|- &lt;br /&gt;
|[[WP5-08]]	&lt;br /&gt;
|ROT&lt;br /&gt;
|Lightweight Cryptography&lt;br /&gt;
|- &lt;br /&gt;
|[[WP5-09]]	&lt;br /&gt;
|ABI	&lt;br /&gt;
|Communication scheme for unified system management&lt;br /&gt;
|- &lt;br /&gt;
|[[WP5-05_A]]	&lt;br /&gt;
|TEKNE	&lt;br /&gt;
|LP-WAN for UAV identification and monitoring&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|[[WP5-11_ACO]]	&lt;br /&gt;
|ACORDE&lt;br /&gt;
|Navigation system with anti-jamming and anti-spoofing features&lt;br /&gt;
|- &lt;br /&gt;
|[[WP5-16-AIT]]	&lt;br /&gt;
|AIT&lt;br /&gt;
|Cryptographic algorithms adapted for drones&lt;br /&gt;
|- &lt;br /&gt;
|[[WP5-19_ACO]]	&lt;br /&gt;
|ACORDE&lt;br /&gt;
|Robust communication for an improved Indoor Positioning System&lt;br /&gt;
|- &lt;br /&gt;
|[[WP6-P4R]]	&lt;br /&gt;
|CEA	&lt;br /&gt;
|Model driven engineering&lt;br /&gt;
|- &lt;br /&gt;
|[[WP6-20]]&lt;br /&gt;
|ACORDE&lt;br /&gt;
|ESL embedded SW Design Environment (ESDE)&lt;br /&gt;
|- &lt;br /&gt;
|[[WP6-21]]	&lt;br /&gt;
|ACORDE&lt;br /&gt;
|Indoor Positioning System Modelling&amp;amp;Analysis Framework (IPS-MAF)&lt;br /&gt;
|- &lt;br /&gt;
|[[WP6-17]]	&lt;br /&gt;
|UNIVAQ&lt;br /&gt;
|HW/SW CO-DEsign of HEterogeneous Parallel dedicated SYstems (HEPSYCODE)&lt;br /&gt;
|- &lt;br /&gt;
|[[WP6-34]]	&lt;br /&gt;
|UNIVAQ&lt;br /&gt;
|HEPSYCODE SystemC SIMulator Version 2.0 (HEPSIM2)&lt;br /&gt;
|-&lt;br /&gt;
|[[WP6-25]]&lt;br /&gt;
|UNICAN&lt;br /&gt;
|S3D - Model-Driven Analysis and Design Framework&lt;br /&gt;
|-&lt;br /&gt;
|[[WP6-26]]&lt;br /&gt;
|UNICAN&lt;br /&gt;
|SoSIM - System-of-Systems Simulation &amp;amp; Performance Analysis&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Raulgv</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-26&amp;diff=835</id>
		<title>WP6-26</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-26&amp;diff=835"/>
		<updated>2023-01-11T13:40:09Z</updated>

		<summary type="html">&lt;p&gt;Raulgv: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNICAN&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux, C/C++ code&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| Timing/Energy Co-Simulation&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| Platform model&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| Functional and time performance validation&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
SoSIM is a new System-of-Systems Simulation tool developed in Comp4Drones. Its background technology is VIPPE. From the Single-Source System Design (S3D) model, the specific information required to perform a certain simulation and performance analysis task (e.g. performance simulation of a solution in a design-space exploration) is extracted and the corresponding simulation model, synthesized. This Model-to-Model generation is performed by the mSSYN tool.&lt;br /&gt;
&lt;br /&gt;
In order to extend SoSIM to mechatronic systems, several improvements have been carried out. The basic infrastructure allowing to simulate multiple drones and combining different levels for the different system components including ROS was described in [1]. The architecture of the complete simulation environment is shown in Figure 1. The arrows represent the control flow in the simulator. Depending on the simulation level, some of the functional blocks may be inactive. So, at the functional level ROS is not used. Thus, neither the ROS core and the MAVROS block, nor the Sync.Clock ROS node are required. The functional drone simulator (now to be extended to several drones) interacts directly with the ROScpp components. This is kept even when the ROS core is included. The synchronization clock will also be needed. Only when any of the drones is modeled with a detailed autopilot and physics, the MAVROS block is added in order to support the communication with the drone through MAVLink.&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-26-I-01.png|frame|center|Figure 1 - VIPPE-ROS background simulation infrastructure]]&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
SoSIM covers the following states in the mechatronic V-Cycle of Figure 2:&lt;br /&gt;
&lt;br /&gt;
# System Design&lt;br /&gt;
# Mechanical Analysis and Design&lt;br /&gt;
# IT Analysis and Design&lt;br /&gt;
# SW Analysis and Design&lt;br /&gt;
# HW Analysis and Design&lt;br /&gt;
# SW Detailed Design&lt;br /&gt;
# SW Component Verification&lt;br /&gt;
# SW Integration and Verification&lt;br /&gt;
# HW Integration and Verification&lt;br /&gt;
# IT Integration and Verification&lt;br /&gt;
# Mechanic Integration and Verification&lt;br /&gt;
# System Integration and Verification&lt;br /&gt;
# System Acceptance Verification&lt;br /&gt;
&lt;br /&gt;
The improvement provided by SoSIM comes from the fact that the use of virtual models of the system simplifies simulation-based DSE, which greatly reduces the time required to select the most appropriate solution [2]. However, as the information about the system and its components evolve along the design process, so should their models and, in general, the infrastructure required for their simulation. As a result, different simulation levels must be considered during the different steps of the design and verification process. Table 1 shows the four simulation levels considered for the functional components:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 1 - Abstraction levels for functional components simulation&lt;br /&gt;
!Level&lt;br /&gt;
!|Code&lt;br /&gt;
!|Timing/Energy&lt;br /&gt;
!|ROS MW&lt;br /&gt;
|-&lt;br /&gt;
|MN&lt;br /&gt;
|minimal&lt;br /&gt;
|no&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;|yes/no&lt;br /&gt;
|-&lt;br /&gt;
|MC&lt;br /&gt;
|minimal&lt;br /&gt;
|constant&lt;br /&gt;
|-&lt;br /&gt;
|FC&lt;br /&gt;
|full code&lt;br /&gt;
|constant&lt;br /&gt;
|-&lt;br /&gt;
|FD&lt;br /&gt;
|full code&lt;br /&gt;
|data dependent&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In MN (minimal/no), no model of time/energy is provided so that the code is supposed to be executed infinitely fast and without consuming any energy. In MC (minimal/constant) and FC (functional/constant), a constant time/energy is assumed each time the function is executed. These can be estimated or observed worst-case, mean-case or best case figures. In FC, the simulation time would be higher than in MC, as the actual code is executed. In the FD (functional/data dependent) model, both time and energy must be estimated over the actual code, using a state of the art technique, such as native simulation technology or binary translation.&lt;br /&gt;
&lt;br /&gt;
Additionally, not all the system components need to have the same level of detail in a single simulation. Different system components can require simulation at different abstraction levels, resulting in heterogeneous simulations, depending on the focus of each simulation. For example, components under development usually require the most accurate simulation level (FD) when verifying their correctness while library components may only require FC simulation.&lt;br /&gt;
&lt;br /&gt;
This multi-level capability is also applicable to the simulation infrastructure. For example, in robotic-based systems considered in this paper, at any of these levels it should be possible to include in the simulation the ROS infrastructure or not. The latter case would allow designers to focus on the functionality of the distributed, heterogeneous functionality. Once this is verified, the former would include the actual ROS infrastructure in order to confirm that the application functionality behaves correctly when the actual communication middleware (MW) is included.&lt;br /&gt;
&lt;br /&gt;
Regarding the simulation of the drones, four different models are considered. Let’s consider the command “move to X/Y/Z”. A minimal implementation will estimate the path and the movement time considering constant horizontal and vertical speed values, the power consumption, and will perform the movement in a single step (FN). In many cases, a more detailed model for the drone(s) is required. An autopilot and a physical simulator are needed.&lt;br /&gt;
[[File:wp6-26-D-01.png|frame|center|Figure 2 - S3D-SoSIM V cycle coverage]]&lt;br /&gt;
&lt;br /&gt;
In this case, the full code (FC/FD) will generate all the signals to the motors required by the physical simulator to reach the final destination, including the estimation of all the intermediate positions, the actual time to reach them, the corresponding power consumption, angles and orientations.&lt;br /&gt;
&lt;br /&gt;
However, these two abstraction levels can be not enough for certain components. As commented above, S3D is based on a service-provided communication paradigm. However, ROS is mostly based on a client/subscriber approach. Thus, an approach based on services that performs the required operation in a single step, such as the one proposed above for the drone model, is not adequate, since publishers typically require a continuous flow of data. To solve this, and considering that the drone model is the most critical element in the simulation of drone-based systems, this work proposes a third, intermediate abstraction level for this component, capable of providing intermediate values to be published. Following the previous example, the command “move to X/Y/Z” will result in a continuous flow of approximate positions and orientations to be published. As a summary, the proposed drone model levels proposed are those shown in Table 2:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 2 - Abstraction levels for the drone simulators&lt;br /&gt;
!Level&lt;br /&gt;
!|Drones modeling&lt;br /&gt;
!|ROS MW&lt;br /&gt;
|-&lt;br /&gt;
|FY/FN&lt;br /&gt;
|Functional&lt;br /&gt;
|yes/no&lt;br /&gt;
|-&lt;br /&gt;
|AP&lt;br /&gt;
|Autopilot&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|MP&lt;br /&gt;
|Multi-Physics&lt;br /&gt;
|yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The simulation framework should support mixing functional and detailed simulation models for the drones in a multi-drone service. It should enable the system engineer to decide the best combination of abstraction levels in Tables 1 and 2. Supporting multi-level simulation requires that each component in the functional architecture is associated with models at several abstraction levels, each involving different accuracy/speed ratios.&lt;br /&gt;
&lt;br /&gt;
Finally, it is mandatory to consider that drone based-systems usually involve multiple drones, and these drones can even require different simulation levels, in order to achieve high accuracy in some of the drone models while maintaining enough speed for the whole simulation.&lt;br /&gt;
&lt;br /&gt;
The new verification tasks introduced in the V-Cycle of Figure 2 are the following:&lt;br /&gt;
&lt;br /&gt;
# '''Validation''': The goal of the System Design, Mechanical Analysis and Design, IT Analysis and Design, SW Analysis and Design, HW Analysis and Design and SW Detailed Design is to ensure that the hierarchical partitioning of the system in sub-systems and finally, mechanical and HW and SW components, keeps the functional and non-functional requirements stated at the beginning of the design process. As the domain restrictions such as inputs, outputs, rates and throughputs are usually defined in the system requirements analysis steps, the full test-bench can be developed. The test-benches developed at the system, subsystem and component levels during design validation can be reused for component, sub-system and final system verification. The system-level test-bench can be also largely re-used for DSE and HW/SW co-design. The test-benches may also help during component, sub-system and system testing when the test-bench or part of it is emulated via SW-in-the-Loop (SIL). In order to be able to verify the test-bench at such a high level, a minimal functionality implementing the fundamental features of the system, subsystems and/or the components in the final full system architecture, should be developed (MN). This initial code can also be combined with preliminary, predefined time/energy figures in order to enable a first performance analysis of the system (MC). Regarding the drone(s), a functional model (FN) is the most appropriate. This functional simulation is useful during system requirement analysis and system architectural design and partitioning. After this initial stage, the components to be reused are selected and the components to be developed from scratch are fully specified so that their development (i.e. programming) can start, in case of HW/SW components. In the case of robots (i.e. the drones), their modelling, simulation and design can start. Reusability does not affect only application components but also components in the test-bench (e.g. the drones in the context of this paper).&lt;br /&gt;
# '''Verification''': Once the complete code has been developed, SW Component Verification, SW Integration and Verification, HW Integration and Verification, IT Integration and Verification, Mechanic Integration and Verification and System Integration and Verification can be performed. By verification, functional and non-functional verification is meant. Simulating the full code allows functional verification and debugging. Performance analysis enables non-functional verification. Any error detected, would require code optimization, platform re-configuration, platform re-design or even, a new architectural mapping of functional components to HW resources. The advantage provided by the co-design approach is that these design decisions are made at the same stage and only in a few cases it is required to backtrack to a previous stage. Among the different valid solutions during this Design-Space Exploration (DSE), the most appropriate Pareto point is selected [3]. As drones are basically real-time systems, consideration of timing (and potentially, energy) is usually mandatory. However, timing analysis is not an easy and fast task. To solve it, two different levels are proposed. In the first one, the full code is simulated but annotated with constant figures for the time/energy it consumes (FC). In a second level, once the component is mapped to a computing resource, native simulation is used so that accurate figures for execution times and energy can be obtained (FD). Although this is not covered in the paper, more detailed models for the SW can be used as virtualization or even an ISS. These simulation technologies may provide higher accuracy than native simulation at a lower simulation speed. These verification steps finish when the virtual model is accepted in the System Acceptance Verification stage so that its implementation can start.&lt;br /&gt;
# '''Testing''' is the new name we give to the former “HW-in-the-loop” verification steps as they require a physical prototype of the components, sub-systems and, finally, the complete system. Those components with potential reusability will be stored in the ‘Library of Components’.&lt;br /&gt;
&lt;br /&gt;
Once the system is fully designed and accepted, the system can be produced and deployed in the field. Now, the system operation can be monitored and analysed so that it is possible to facilitate maintenance, reduce faults and minimize correction time, when needed.&lt;br /&gt;
&lt;br /&gt;
== Interoperability with other C4D tools ==&lt;br /&gt;
&lt;br /&gt;
From the S3D model, the Model to Model (M2M) tool mSSYN generates the simulation model to be executed by SoSIM. As S3D may contain models from other simulators, so S3D is linked to them. Figure 3 describes the interoperability between SoSim and other simulators:&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-26_IO_01.png|frame|center| Figure 3 - Interoperability of SoSim with other tools]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
[1] J . Merino, R. Gomez, H. Posadas &amp;amp; E. Villar: &amp;quot;Multilevel host-compiled simulation framework for ROS-based UAV services using ArduCopter&amp;quot;, proc. of the XXXVI Conference on Design of Circuits and Integrated Systems (DCIS), IEEE, 2021.&lt;br /&gt;
&lt;br /&gt;
[2] F. Herrera, J. Medina, E. Villar: &amp;quot;Modeling Hardware/Software Embedded Systems with UML/MARTE: A Single-Source Design approach&amp;quot;, in S. Ha and J. Teich (Eds): &amp;quot;Handbook of Hardware/Software Codesign&amp;quot;, Springer. 2017.&lt;br /&gt;
&lt;br /&gt;
[3] F. Herrera, H. Posadas, P. Peñil, E. Villar, F. Ferrero, R. Valencia and G. Palermo. “The COMPLEX methodology for UML/MARTE Modeling and design space exploration of embedded systems”, Journal of Systems Architecture, V.60, I.1, 2014.&lt;/div&gt;</summary>
		<author><name>Raulgv</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-26&amp;diff=834</id>
		<title>WP6-26</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-26&amp;diff=834"/>
		<updated>2023-01-11T13:39:36Z</updated>

		<summary type="html">&lt;p&gt;Raulgv: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNICAN&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux, C/C++ code&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| Timing/Energy Co-Simulation&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| Platform model&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| Functional and time performance validation&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
SoSIM is a new System-of-Systems Simulation tool developed in Comp4Drones. Its background technology is VIPPE. From the Single-Source System Design (S3D) model, the specific information required to perform a certain simulation and performance analysis task (e.g. performance simulation of a solution in a design-space exploration) is extracted and the corresponding simulation model, synthesized. This Model-to-Model generation is performed by the mSSYN tool.&lt;br /&gt;
&lt;br /&gt;
In order to extend SoSIM to mechatronic systems, several improvements have been carried out. The basic infrastructure allowing to simulate multiple drones and combining different levels for the different system components including ROS was described in [1]. The architecture of the complete simulation environment is shown in Figure 1. The arrows represent the control flow in the simulator. Depending on the simulation level, some of the functional blocks may be inactive. So, at the functional level ROS is not used. Thus, neither the ROS core and the MAVROS block, nor the Sync.Clock ROS node are required. The functional drone simulator (now to be extended to several drones) interacts directly with the ROScpp components. This is kept even when the ROS core is included. The synchronization clock will also be needed. Only when any of the drones is modeled with a detailed autopilot and physics, the MAVROS block is added in order to support the communication with the drone through MAVLink.&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-26-I-01.png|frame|center|Figure 1 - VIPPE-ROS background simulation infrastructure]]&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
SoSIM covers the following states in the mechatronic V-Cycle of Figure 2:&lt;br /&gt;
&lt;br /&gt;
# System Design&lt;br /&gt;
# Mechanical Analysis and Design&lt;br /&gt;
# IT Analysis and Design&lt;br /&gt;
# SW Analysis and Design&lt;br /&gt;
# HW Analysis and Design&lt;br /&gt;
# SW Detailed Design&lt;br /&gt;
# SW Component Verification&lt;br /&gt;
# SW Integration and Verification&lt;br /&gt;
# HW Integration and Verification&lt;br /&gt;
# IT Integration and Verification&lt;br /&gt;
# Mechanic Integration and Verification&lt;br /&gt;
# System Integration and Verification&lt;br /&gt;
# System Acceptance Verification&lt;br /&gt;
&lt;br /&gt;
The improvement provided by SoSIM comes from the fact that the use of virtual models of the system simplifies simulation-based DSE, which greatly reduces the time required to select the most appropriate solution [2]. However, as the information about the system and its components evolve along the design process, so should their models and, in general, the infrastructure required for their simulation. As a result, different simulation levels must be considered during the different steps of the design and verification process. Table 1 shows the four simulation levels considered for the functional components:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 1 - Abstraction levels for functional components simulation&lt;br /&gt;
!Level&lt;br /&gt;
!|Code&lt;br /&gt;
!|Timing/Energy&lt;br /&gt;
!|ROS MW&lt;br /&gt;
|-&lt;br /&gt;
|MN&lt;br /&gt;
|minimal&lt;br /&gt;
|no&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;|yes/no&lt;br /&gt;
|-&lt;br /&gt;
|MC&lt;br /&gt;
|minimal&lt;br /&gt;
|constant&lt;br /&gt;
|-&lt;br /&gt;
|FC&lt;br /&gt;
|full code&lt;br /&gt;
|constant&lt;br /&gt;
|-&lt;br /&gt;
|FD&lt;br /&gt;
|full code&lt;br /&gt;
|data dependent&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In MN (minimal/no), no model of time/energy is provided so that the code is supposed to be executed infinitely fast and without consuming any energy. In MC (minimal/constant) and FC (functional/constant), a constant time/energy is assumed each time the function is executed. These can be estimated or observed worst-case, mean-case or best case figures. In FC, the simulation time would be higher than in MC, as the actual code is executed. In the FD (functional/data dependent) model, both time and energy must be estimated over the actual code, using a state of the art technique, such as native simulation technology or binary translation.&lt;br /&gt;
&lt;br /&gt;
Additionally, not all the system components need to have the same level of detail in a single simulation. Different system components can require simulation at different abstraction levels, resulting in heterogeneous simulations, depending on the focus of each simulation. For example, components under development usually require the most accurate simulation level (FD) when verifying their correctness while library components may only require FC simulation.&lt;br /&gt;
&lt;br /&gt;
This multi-level capability is also applicable to the simulation infrastructure. For example, in robotic-based systems considered in this paper, at any of these levels it should be possible to include in the simulation the ROS infrastructure or not. The latter case would allow designers to focus on the functionality of the distributed, heterogeneous functionality. Once this is verified, the former would include the actual ROS infrastructure in order to confirm that the application functionality behaves correctly when the actual communication middleware (MW) is included.&lt;br /&gt;
&lt;br /&gt;
Regarding the simulation of the drones, four different models are considered. Let’s consider the command “move to X/Y/Z”. A minimal implementation will estimate the path and the movement time considering constant horizontal and vertical speed values, the power consumption, and will perform the movement in a single step (FN). In many cases, a more detailed model for the drone(s) is required. An autopilot and a physical simulator are needed.&lt;br /&gt;
[[File:wp6-26-D-01.png|frame|center|Figure 2 - S3D-SoSIM V cycle coverage]]&lt;br /&gt;
&lt;br /&gt;
In this case, the full code (FC/FD) will generate all the signals to the motors required by the physical simulator to reach the final destination, including the estimation of all the intermediate positions, the actual time to reach them, the corresponding power consumption, angles and orientations.&lt;br /&gt;
&lt;br /&gt;
However, these two abstraction levels can be not enough for certain components. As commented above, S3D is based on a service-provided communication paradigm. However, ROS is mostly based on a client/subscriber approach. Thus, an approach based on services that performs the required operation in a single step, such as the one proposed above for the drone model, is not adequate, since publishers typically require a continuous flow of data. To solve this, and considering that the drone model is the most critical element in the simulation of drone-based systems, this work proposes a third, intermediate abstraction level for this component, capable of providing intermediate values to be published. Following the previous example, the command “move to X/Y/Z” will result in a continuous flow of approximate positions and orientations to be published. As a summary, the proposed drone model levels proposed are those shown in Table 2:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 2 - Abstraction levels for the drone simulators&lt;br /&gt;
!Level&lt;br /&gt;
!|Drones modeling&lt;br /&gt;
!|ROS MW&lt;br /&gt;
|-&lt;br /&gt;
|FY/FN&lt;br /&gt;
|Functional&lt;br /&gt;
|yes/no&lt;br /&gt;
|-&lt;br /&gt;
|AP&lt;br /&gt;
|Autopilot&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|MP&lt;br /&gt;
|Multi-Physics&lt;br /&gt;
|yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The simulation framework should support mixing functional and detailed simulation models for the drones in a multi-drone service. It should enable the system engineer to decide the best combination of abstraction levels in Tables 1 and 2. Supporting multi-level simulation requires that each component in the functional architecture is associated with models at several abstraction levels, each involving different accuracy/speed ratios.&lt;br /&gt;
&lt;br /&gt;
Finally, it is mandatory to consider that drone based-systems usually involve multiple drones, and these drones can even require different simulation levels, in order to achieve high accuracy in some of the drone models while maintaining enough speed for the whole simulation.&lt;br /&gt;
&lt;br /&gt;
The new verification tasks introduced in the V-Cycle of Figure 2 are the following:&lt;br /&gt;
&lt;br /&gt;
# '''Validation''': The goal of the System Design, Mechanical Analysis and Design, IT Analysis and Design, SW Analysis and Design, HW Analysis and Design and SW Detailed Design is to ensure that the hierarchical partitioning of the system in sub-systems and finally, mechanical and HW and SW components, keeps the functional and non-functional requirements stated at the beginning of the design process. As the domain restrictions such as inputs, outputs, rates and throughputs are usually defined in the system requirements analysis steps, the full test-bench can be developed. The test-benches developed at the system, subsystem and component levels during design validation can be reused for component, sub-system and final system verification. The system-level test-bench can be also largely re-used for DSE and HW/SW co-design. The test-benches may also help during component, sub-system and system testing when the test-bench or part of it is emulated via SW-in-the-Loop (SIL). In order to be able to verify the test-bench at such a high level, a minimal functionality implementing the fundamental features of the system, subsystems and/or the components in the final full system architecture, should be developed (MN). This initial code can also be combined with preliminary, predefined time/energy figures in order to enable a first performance analysis of the system (MC). Regarding the drone(s), a functional model (FN) is the most appropriate. This functional simulation is useful during system requirement analysis and system architectural design and partitioning. After this initial stage, the components to be reused are selected and the components to be developed from scratch are fully specified so that their development (i.e. programming) can start, in case of HW/SW components. In the case of robots (i.e. the drones), their modelling, simulation and design can start. Reusability does not affect only application components but also components in the test-bench (e.g. the drones in the context of this paper).&lt;br /&gt;
# '''Verification''': Once the complete code has been developed, SW Component Verification, SW Integration and Verification, HW Integration and Verification, IT Integration and Verification, Mechanic Integration and Verification and System Integration and Verification can be performed. By verification, functional and non-functional verification is meant. Simulating the full code allows functional verification and debugging. Performance analysis enables non-functional verification. Any error detected, would require code optimization, platform re-configuration, platform re-design or even, a new architectural mapping of functional components to HW resources. The advantage provided by the co-design approach is that these design decisions are made at the same stage and only in a few cases it is required to backtrack to a previous stage. Among the different valid solutions during this Design-Space Exploration (DSE), the most appropriate Pareto point is selected [3]. As drones are basically real-time systems, consideration of timing (and potentially, energy) is usually mandatory. However, timing analysis is not an easy and fast task. To solve it, two different levels are proposed. In the first one, the full code is simulated but annotated with constant figures for the time/energy it consumes (FC). In a second level, once the component is mapped to a computing resource, native simulation is used so that accurate figures for execution times and energy can be obtained (FD). Although this is not covered in the paper, more detailed models for the SW can be used as virtualization or even an ISS. These simulation technologies may provide higher accuracy than native simulation at a lower simulation speed. These verification steps finish when the virtual model is accepted in the System Acceptance Verification stage so that its implementation can start.&lt;br /&gt;
# '''Testing''' is the new name we give to the former “HW-in-the-loop” verification steps as they require a physical prototype of the components, sub-systems and, finally, the complete system. Those components with potential reusability will be stored in the ‘Library of Components’.&lt;br /&gt;
&lt;br /&gt;
Once the system is fully designed and accepted, the system can be produced and deployed in the field. Now, the system operation can be monitored and analysed so that it is possible to facilitate maintenance, reduce faults and minimize correction time, when needed.&lt;br /&gt;
&lt;br /&gt;
== Interoperability with other C4D tools ==&lt;br /&gt;
&lt;br /&gt;
From the S3D model, the Model to Model (M2M) tool mSSYN generates the simulation model to be executed by SoSIM. As S3D may contain models from other simulators, so S3D is linked to them. Figure 3 describes the interoperability between SoSim and other simulators:&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-26_IO_01.png|frame|center| Figure 3 - Interoperability of SoSim with other tools]]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
[1] J . Merino, R. Gomez, H. Posadas &amp;amp; E. Villar: &amp;quot;Multilevel host-compiled simulation framework for ROS-based UAV services using ArduCopter&amp;quot;, proc. of the XXXVI Conference on Design of Circuits and Integrated Systems (DCIS), IEEE, 2021.&lt;br /&gt;
&lt;br /&gt;
[2] F. Herrera, J. Medina, E. Villar: &amp;quot;Modeling Hardware/Software Embedded Systems with UML/MARTE: A Single-Source Design approach&amp;quot;, in S. Ha and J. Teich (Eds): &amp;quot;Handbook of Hardware/Software Codesign&amp;quot;, Springer. 2017.&lt;br /&gt;
&lt;br /&gt;
[3] F. Herrera, H. Posadas, P. Peñil, E. Villar, F. Ferrero, R. Valencia and G. Palermo. “The COMPLEX methodology for UML/MARTE Modeling and design space exploration of embedded systems”, Journal of Systems Architecture, V.60, I.1, 2014.&lt;/div&gt;</summary>
		<author><name>Raulgv</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-26&amp;diff=833</id>
		<title>WP6-26</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-26&amp;diff=833"/>
		<updated>2023-01-11T12:49:38Z</updated>

		<summary type="html">&lt;p&gt;Raulgv: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNICAN&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux, C/C++ code&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| Timing/Energy Co-Simulation&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| Platform model&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| Functional and time performance validation&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
SoSIM is a new System-of-Systems Simulation tool developed in Comp4Drones. Its background technology is VIPPE. From the Single-Source System Design (S3D) model, the specific information required to perform a certain simulation and performance analysis task (e.g. performance simulation of a solution in a design-space exploration) is extracted and the corresponding simulation model, synthesized. This Model-to-Model generation is performed by the mSSYN tool.&lt;br /&gt;
&lt;br /&gt;
In order to extend SoSIM to mechatronic systems, several improvements have been carried out. The basic infrastructure allowing to simulate multiple drones and combining different levels for the different system components including ROS was described in [1]. The architecture of the complete simulation environment is shown in Figure 1. The arrows represent the control flow in the simulator. Depending on the simulation level, some of the functional blocks may be inactive. So, at the functional level ROS is not used. Thus, neither the ROS core and the MAVROS block, nor the Sync.Clock ROS node are required. The functional drone simulator (now to be extended to several drones) interacts directly with the ROScpp components. This is kept even when the ROS core is included. The synchronization clock will also be needed. Only when any of the drones is modeled with a detailed autopilot and physics, the MAVROS block is added in order to support the communication with the drone through MAVLink.&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-26-I-01.png|frame|center|Figure 1 - VIPPE-ROS background simulation infrastructure]]&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
SoSIM covers the following states in the mechatronic V-Cycle of Figure 2:&lt;br /&gt;
&lt;br /&gt;
# System Design&lt;br /&gt;
# Mechanical Analysis and Design&lt;br /&gt;
# IT Analysis and Design&lt;br /&gt;
# SW Analysis and Design&lt;br /&gt;
# HW Analysis and Design&lt;br /&gt;
# SW Detailed Design&lt;br /&gt;
# SW Component Verification&lt;br /&gt;
# SW Integration and Verification&lt;br /&gt;
# HW Integration and Verification&lt;br /&gt;
# IT Integration and Verification&lt;br /&gt;
# Mechanic Integration and Verification&lt;br /&gt;
# System Integration and Verification&lt;br /&gt;
# System Acceptance Verification&lt;br /&gt;
&lt;br /&gt;
The improvement provided by SoSIM comes from the fact that the use of virtual models of the system simplifies simulation-based DSE, which greatly reduces the time required to select the most appropriate solution [2]. However, as the information about the system and its components evolve along the design process, so should their models and, in general, the infrastructure required for their simulation. As a result, different simulation levels must be considered during the different steps of the design and verification process. Table 1 shows the four simulation levels considered for the functional components:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 1 - Abstraction levels for functional components simulation&lt;br /&gt;
!Level&lt;br /&gt;
!|Code&lt;br /&gt;
!|Timing/Energy&lt;br /&gt;
!|ROS MW&lt;br /&gt;
|-&lt;br /&gt;
|MN&lt;br /&gt;
|minimal&lt;br /&gt;
|no&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;|yes/no&lt;br /&gt;
|-&lt;br /&gt;
|MC&lt;br /&gt;
|minimal&lt;br /&gt;
|constant&lt;br /&gt;
|-&lt;br /&gt;
|FC&lt;br /&gt;
|full code&lt;br /&gt;
|constant&lt;br /&gt;
|-&lt;br /&gt;
|FD&lt;br /&gt;
|full code&lt;br /&gt;
|data dependent&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In MN (minimal/no), no model of time/energy is provided so that the code is supposed to be executed infinitely fast and without consuming any energy. In MC (minimal/constant) and FC (functional/constant), a constant time/energy is assumed each time the function is executed. These can be estimated or observed worst-case, mean-case or best case figures. In FC, the simulation time would be higher than in MC, as the actual code is executed. In the FD (functional/data dependent) model, both time and energy must be estimated over the actual code, using a state of the art technique, such as native simulation technology or binary translation.&lt;br /&gt;
&lt;br /&gt;
Additionally, not all the system components need to have the same level of detail in a single simulation. Different system components can require simulation at different abstraction levels, resulting in heterogeneous simulations, depending on the focus of each simulation. For example, components under development usually require the most accurate simulation level (FD) when verifying their correctness while library components may only require FC simulation.&lt;br /&gt;
&lt;br /&gt;
This multi-level capability is also applicable to the simulation infrastructure. For example, in robotic-based systems considered in this paper, at any of these levels it should be possible to include in the simulation the ROS infrastructure or not. The latter case would allow designers to focus on the functionality of the distributed, heterogeneous functionality. Once this is verified, the former would include the actual ROS infrastructure in order to confirm that the application functionality behaves correctly when the actual communication middleware (MW) is included.&lt;br /&gt;
&lt;br /&gt;
Regarding the simulation of the drones, four different models are considered. Let’s consider the command “move to X/Y/Z”. A minimal implementation will estimate the path and the movement time considering constant horizontal and vertical speed values, the power consumption, and will perform the movement in a single step (FN). In many cases, a more detailed model for the drone(s) is required. An autopilot and a physical simulator are needed.&lt;br /&gt;
[[File:wp6-26-D-01.png|frame|center|Figure 2 - S3D-SoSIM V cycle coverage]]&lt;br /&gt;
&lt;br /&gt;
In this case, the full code (FC/FD) will generate all the signals to the motors required by the physical simulator to reach the final destination, including the estimation of all the intermediate positions, the actual time to reach them, the corresponding power consumption, angles and orientations.&lt;br /&gt;
&lt;br /&gt;
However, these two abstraction levels can be not enough for certain components. As commented above, S3D is based on a service-provided communication paradigm. However, ROS is mostly based on a client/subscriber approach. Thus, an approach based on services that performs the required operation in a single step, such as the one proposed above for the drone model, is not adequate, since publishers typically require a continuous flow of data. To solve this, and considering that the drone model is the most critical element in the simulation of drone-based systems, this work proposes a third, intermediate abstraction level for this component, capable of providing intermediate values to be published. Following the previous example, the command “move to X/Y/Z” will result in a continuous flow of approximate positions and orientations to be published. As a summary, the proposed drone model levels proposed are those shown in Table 2:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 2 - Abstraction levels for the drone simulators&lt;br /&gt;
!Level&lt;br /&gt;
!|Drones modeling&lt;br /&gt;
!|ROS MW&lt;br /&gt;
|-&lt;br /&gt;
|FY/FN&lt;br /&gt;
|Functional&lt;br /&gt;
|yes/no&lt;br /&gt;
|-&lt;br /&gt;
|AP&lt;br /&gt;
|Autopilot&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|MP&lt;br /&gt;
|Multi-Physics&lt;br /&gt;
|yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The simulation framework should support mixing functional and detailed simulation models for the drones in a multi-drone service. It should enable the system engineer to decide the best combination of abstraction levels in Tables 1 and 2. Supporting multi-level simulation requires that each component in the functional architecture is associated with models at several abstraction levels, each involving different accuracy/speed ratios.&lt;br /&gt;
&lt;br /&gt;
Finally, it is mandatory to consider that drone based-systems usually involve multiple drones, and these drones can even require different simulation levels, in order to achieve high accuracy in some of the drone models while maintaining enough speed for the whole simulation.&lt;br /&gt;
&lt;br /&gt;
The new verification tasks introduced in the V-Cycle of Figure 2 are the following:&lt;br /&gt;
&lt;br /&gt;
# '''Validation''': The goal of the System Design, Mechanical Analysis and Design, IT Analysis and Design, SW Analysis and Design, HW Analysis and Design and SW Detailed Design is to ensure that the hierarchical partitioning of the system in sub-systems and finally, mechanical and HW and SW components, keeps the functional and non-functional requirements stated at the beginning of the design process. As the domain restrictions such as inputs, outputs, rates and throughputs are usually defined in the system requirements analysis steps, the full test-bench can be developed. The test-benches developed at the system, subsystem and component levels during design validation can be reused for component, sub-system and final system verification. The system-level test-bench can be also largely re-used for DSE and HW/SW co-design. The test-benches may also help during component, sub-system and system testing when the test-bench or part of it is emulated via SW-in-the-Loop (SIL). In order to be able to verify the test-bench at such a high level, a minimal functionality implementing the fundamental features of the system, subsystems and/or the components in the final full system architecture, should be developed (MN). This initial code can also be combined with preliminary, predefined time/energy figures in order to enable a first performance analysis of the system (MC). Regarding the drone(s), a functional model (FN) is the most appropriate. This functional simulation is useful during system requirement analysis and system architectural design and partitioning. After this initial stage, the components to be reused are selected and the components to be developed from scratch are fully specified so that their development (i.e. programming) can start, in case of HW/SW components. In the case of robots (i.e. the drones), their modelling, simulation and design can start. Reusability does not affect only application components but also components in the test-bench (e.g. the drones in the context of this paper).&lt;br /&gt;
# '''Verification''': Once the complete code has been developed, SW Component Verification, SW Integration and Verification, HW Integration and Verification, IT Integration and Verification, Mechanic Integration and Verification and System Integration and Verification can be performed. By verification, functional and non-functional verification is meant. Simulating the full code allows functional verification and debugging. Performance analysis enables non-functional verification. Any error detected, would require code optimization, platform re-configuration, platform re-design or even, a new architectural mapping of functional components to HW resources. The advantage provided by the co-design approach is that these design decisions are made at the same stage and only in a few cases it is required to backtrack to a previous stage. Among the different valid solutions during this Design-Space Exploration (DSE), the most appropriate Pareto point is selected [3]. As drones are basically real-time systems, consideration of timing (and potentially, energy) is usually mandatory. However, timing analysis is not an easy and fast task. To solve it, two different levels are proposed. In the first one, the full code is simulated but annotated with constant figures for the time/energy it consumes (FC). In a second level, once the component is mapped to a computing resource, native simulation is used so that accurate figures for execution times and energy can be obtained (FD). Although this is not covered in the paper, more detailed models for the SW can be used as virtualization or even an ISS. These simulation technologies may provide higher accuracy than native simulation at a lower simulation speed. These verification steps finish when the virtual model is accepted in the System Acceptance Verification stage so that its implementation can start.&lt;br /&gt;
# '''Testing''' is the new name we give to the former “HW-in-the-loop” verification steps as they require a physical prototype of the components, sub-systems and, finally, the complete system. Those components with potential reusability will be stored in the ‘Library of Components’.&lt;br /&gt;
&lt;br /&gt;
Once the system is fully designed and accepted, the system can be produced and deployed in the field. Now, the system operation can be monitored and analysed so that it is possible to facilitate maintenance, reduce faults and minimize correction time, when needed.&lt;br /&gt;
&lt;br /&gt;
== Interoperability with other C4D tools ==&lt;br /&gt;
&lt;br /&gt;
From the S3D model, the Model to Model (M2M) tool mSSYN generates the simulation model to be executed by SoSIM. As S3D may contain models from other simulators, so S3D is linked to them. Figure 3 describes the interoperability between SoSim and other simulators:&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-26_IO_01.png|frame|center| Figure 3 - Interoperability of SoSim with other tools]]&lt;/div&gt;</summary>
		<author><name>Raulgv</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-25&amp;diff=832</id>
		<title>WP6-25</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-25&amp;diff=832"/>
		<updated>2023-01-11T09:56:42Z</updated>

		<summary type="html">&lt;p&gt;Raulgv: /* Detailed Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNICAN&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux, Eclipse EMF&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| Executable system level modeling, automated generation of embedded software, native execution based validation&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| Platform model&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| Code generation&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
S3D (s3d.unican.es) is a model-driven, system design framework around a single UML/MARTE model [1]. The model is used as a centralized repository of all the information about the system which is relevant for the design. From the model, the specific information required to perform a certain simulation and performance analysis task (e.g. performance simulation of a solution in a design-space exploration) is extracted and the corresponding simulation model, synthesized. This Model-to-Model generation is performed by the mSSYN tool. The model is simulated by the VIPPE tool. It is worth mentioning that the M2M technology used to generate the simulation models automatically from the system model can be extended to synthesize the SW stack to be executed in each computational node. The corresponding synthesis tool is eSSYN (essyn.unican.es).&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-25_I_01.png]]&lt;br /&gt;
&lt;br /&gt;
==Contribution and Improvements==&lt;br /&gt;
&lt;br /&gt;
The fundamental S3D modeling methodology based on required-provided services has been extended in order to support components using ROS, a publish-subscribe communication middleware [2]. In this paper, Model-Driven Design (MDD) is proposed for modeling, simulation and performance analysis of SW intensive robot-based services. The work shows that robots can be integrated into a system engineering framework without affecting their modeling, design and development features. In order to seamlessly integrate these additional kinds of electro-mechanical components, a platform-based approach is proposed. The large number of different robots available makes it very difficult to reuse the same functional components from one project to another if the robots are changed. For certain kinds of robots with many similar functions, such as drones, a common list of methods can be defined so that the same code is valid for all of them simply by associating the functions with the appropriate code. An additional advantage of this common language is a significant reduction in the programming effort which can be reduced around 30%. The cost to be paid is a drop in simulation speed. In the use case of the paper, this reduction can be as high as 16% when a code intensive in ROS calls is used.&lt;br /&gt;
&lt;br /&gt;
Another interesting result is that if the MDD modeling methodology is general enough, no extension is needed in order to support ROS. Identifying which components make use of ROS is sufficient. In this case, the ROS infrastructure is automatically integrated in the system and used by those ports requiring it. A methodology for rough estimation of execution time of the ROS code has been proposed. Although the error can be as high as 45%, the impact is small as the ROS code will be only a fraction of the total executable. In any case, an improvement over not annotating any execution time for ROS is achieved and this improvement is higher when it is more needed, that is, when the percentage of ROS code is higher. The improvement can be as high as 83.5% with only 2.55% of ROS code.&lt;br /&gt;
&lt;br /&gt;
The proposed framework enables the seamless integration of robots into a MDD framework so that the whole service can be modelled, simulated and its performance analyzed, fully supporting essential stages of the V-Cycle as explained below.&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
S3D covers the modelling and automatic generation of the multi-level executable models used to validate and verify the system at the different abstraction levels. S3D supports the modelling activities at each stage of the V-Cycle for mechatronic systems as explained below:&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-25_DD_01.png]]&lt;br /&gt;
&lt;br /&gt;
In all these stages, S3D supports reusability from previous projects as both functional and test-bench components can be imported from libraries:&lt;br /&gt;
&lt;br /&gt;
# System Requirement Analysis. Based on Papyrus and the UML/MARTE standard, S3D can help in analysing and finally, specify the functional and non-functional requirements to be satisfied by the System (or System of Systems),&lt;br /&gt;
# System Design. Once the requirements have been specified, the system and its environment are fully specified in terms of the interface among them, the domain constraints (input rates, types and constraints among them) and the system functional and non-functional requirements (output rates, input/output delays, energy, etc.). As part of the System Design stage, partitioning of the system in the mechanical and the IT (digital) parts is performed. In S3D, the mechanical part will be incorporated to the Test-Bench (TB) of the (digital) system. As its functionality and performance is fully specified, the TB, including the model of the robots, can be developed.&lt;br /&gt;
# Mechanical Analysis and Design. The inclusion of the robots as TB components allows the analysis of their constraints and the design of the mechanical part (number and type of robots, design requirements to each one and among them, etc.).&lt;br /&gt;
# IT Analysis and Design. At this stage, the analysis and specification of the Platform-Description Model (PDM) can be performed. On the other side, the Platform-Independent Model can be specified.&lt;br /&gt;
# HW Analysis &amp;amp; Design. At this stage, the design of the initial Platform-Description Model (PDM), can be performed and an initial architecture of nodes and their internal HW architecture can be proposed. The final PDM will be decided later during architectural mapping as part of the System Integration &amp;amp; Verification stage.&lt;br /&gt;
# SW Analysis &amp;amp; Design and SW Detailed Design. During this stage, the hierarchical partitioning of the PIM in sub-systems and finally, components fully specified in their interfaces and functional and non-functional constraints, is decided.&lt;br /&gt;
# SW Development. The goal of this stage is to develop the code implementing the functional constraints. Papyrus supports both the Modelling and the Development Views and S3D links one with the other by annotating the components with their implementation files using the file’s paths as properties.&lt;br /&gt;
# SW Component Verification. S3D links each component with their Test-Benches so that the component can be verified both in the host (verification) and the target platform (testing) in case it has been decided already and it is available.&lt;br /&gt;
# In the rest of stages:&lt;br /&gt;
## SW Integration &amp;amp; Verification.&lt;br /&gt;
## HW Integration &amp;amp; Verification.&lt;br /&gt;
## IT Integration &amp;amp; Verification.&lt;br /&gt;
## Mechanical Integration &amp;amp; Verification.&lt;br /&gt;
## System Integration &amp;amp; Verification.&lt;br /&gt;
## System Acceptance Verification.&lt;br /&gt;
&lt;br /&gt;
S3D helps in supporting the improvement of the model through the different stages and the automatic generation of the executables models so that the functional and non-functional constraints can be verified. Architectural mapping, that is, the final mapping of functional components in the PIM to execution resources in the PDM is fixed during System Integration and Verification when an accurate simulation and performance analysis model including the actual code can be generated. This model can provide accurate metrics ensuring final satisfaction of the implementation decided after Design-Space Exploration of as many possibilities as required.&lt;br /&gt;
&lt;br /&gt;
== Interoperability with other C4D tools ==&lt;br /&gt;
S3D is based on fundamental Model-Driven, Component-Based computational concepts. As a consequence, it keeps interoperability with many other system modeling environments. The following picture shows the interoperability of S3D with other tools in the C4D design and Verification environment:&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-25_IO_01.png]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
[1] E. Villar, J. Merino, H. Posadas, R. Henia &amp;amp; L. Rioux: “Mega-modeling of complex, distributed, heterogeneous CPS systems”, Microprocessors and Microsystems, V.78, 2020.&lt;br /&gt;
&lt;br /&gt;
[2] J. Merino, R. Gomez, H. Posadas and E. Villar: &amp;quot;Modeling and Performance Estimation of Robotic Systems using ROS: Application to drone-based Services,&amp;quot; in proc. of the Forum on specification &amp;amp; Design Languages (FDL), IEEE, 2021.&lt;/div&gt;</summary>
		<author><name>Raulgv</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=Component_repository&amp;diff=831</id>
		<title>Component repository</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=Component_repository&amp;diff=831"/>
		<updated>2023-01-11T09:56:00Z</updated>

		<summary type="html">&lt;p&gt;Raulgv: /* Components list */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This repository aims at providing common components usable in different application domains, in particular those covered by project use-cases.&lt;br /&gt;
&lt;br /&gt;
The requirements for using a components will be listed, as well as a documentation on how to use it. The component itself will be hosted by the partner who provides it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Components list==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|ID &lt;br /&gt;
|Contributor &lt;br /&gt;
|Title&lt;br /&gt;
|-&lt;br /&gt;
|[[WP3-01]]&lt;br /&gt;
|IKERLAN&lt;br /&gt;
|Safety function - Pre-Certified SOM&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-02]] &lt;br /&gt;
|EDI &lt;br /&gt;
|Modular SoC-based embedded reference architecture&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-03]]&lt;br /&gt;
|BUT	&lt;br /&gt;
|Sensor information algorithms&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-04]]	&lt;br /&gt;
|HIB	&lt;br /&gt;
|Computer Vision Components for drones&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-10]]	&lt;br /&gt;
|IFAT	&lt;br /&gt;
|Component for trusted communication establishment&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-13]]	&lt;br /&gt;
|ENAC	&lt;br /&gt;
|Paparazzi UAV&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-14_1]]	&lt;br /&gt;
|ENSMA	&lt;br /&gt;
|Collision avoidance and geo-fencing&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-14_2]]	&lt;br /&gt;
|ENSMA	&lt;br /&gt;
|Distributed control of multi-drone system&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-15_1]]	&lt;br /&gt;
|ACORDE	&lt;br /&gt;
|UWB based indoor positioning&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-15_2]]&lt;br /&gt;
|ACORDE	&lt;br /&gt;
|Multi-antenna GNSS/INS based navigation&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-16]]	&lt;br /&gt;
|SCALIAN	&lt;br /&gt;
|EZ_Chains Fleet Architecture&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-19_1]]	&lt;br /&gt;
|IMEC	&lt;br /&gt;
|Hyperspectral payload&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-19_2]]	&lt;br /&gt;
|IMEC	&lt;br /&gt;
|Hyperspectral image processing&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-20]]	&lt;br /&gt;
|MODIS	&lt;br /&gt;
|Multi-sensor positioning&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-22]]	&lt;br /&gt;
|UNIMORE	&lt;br /&gt;
|Onboard Compute Platform Desing Methodology&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-24]]	&lt;br /&gt;
|UNIVAQ	&lt;br /&gt;
|Efficient digital implementation of controllers&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-26]]	&lt;br /&gt;
|UWB	&lt;br /&gt;
|Droneport: an autonomous drone battery management system&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-28]]	&lt;br /&gt;
|UNISS	&lt;br /&gt;
|Accelerator Design Methodology for OOCP&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-36_1]]	&lt;br /&gt;
|UDANET	&lt;br /&gt;
|Smart and predictive energy management system&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-36_2]]&lt;br /&gt;
|UDANET	&lt;br /&gt;
|AI drone system modules&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-37]]	&lt;br /&gt;
|Aitek	&lt;br /&gt;
|Video and data analytics&lt;br /&gt;
|- &lt;br /&gt;
|[[WP4-2]]	&lt;br /&gt;
|SCALIAN	&lt;br /&gt;
|EZ_Land Precision landing&lt;br /&gt;
|- &lt;br /&gt;
|[[WP4-5]]	&lt;br /&gt;
|SCALIAN	&lt;br /&gt;
|AI detection for clearance&lt;br /&gt;
|- &lt;br /&gt;
|[[WP4-07]]	&lt;br /&gt;
|ROT&lt;br /&gt;
|Run-Time Safety Checker&lt;br /&gt;
|- &lt;br /&gt;
|[[WP4-10]]	&lt;br /&gt;
|ALM&lt;br /&gt;
|Cooperative Planner&lt;br /&gt;
|- &lt;br /&gt;
|[[WP4-14]]	&lt;br /&gt;
|ALM&lt;br /&gt;
|Map Enhancement Service&lt;br /&gt;
|- &lt;br /&gt;
|[[WP4-15]]	&lt;br /&gt;
|ALM&lt;br /&gt;
|Visual Analytics&lt;br /&gt;
|- &lt;br /&gt;
|[[WP4-16]]	&lt;br /&gt;
|ACORDE&lt;br /&gt;
|Enhanced Navigation Software&lt;br /&gt;
|- &lt;br /&gt;
|[[WP4-17]]	&lt;br /&gt;
|ACORDE&lt;br /&gt;
|Anchor&amp;amp;Tag firmware of the Indoor  Positioning System &lt;br /&gt;
|- &lt;br /&gt;
|[[WP4-18_A]]	&lt;br /&gt;
|TEKNE	&lt;br /&gt;
|Drone-Rover Transponder&lt;br /&gt;
|- &lt;br /&gt;
|[[WP4-20]]	&lt;br /&gt;
|ALM&lt;br /&gt;
|Attractor-based Navigation&lt;br /&gt;
|- &lt;br /&gt;
|[[WP4-22]]	&lt;br /&gt;
|ALM&lt;br /&gt;
|Shared Reference Frame&lt;br /&gt;
|- &lt;br /&gt;
|[[WP4-32]]	&lt;br /&gt;
|SHERPA&lt;br /&gt;
|Dynamic control development for navigation and precision landing&lt;br /&gt;
|-&lt;br /&gt;
|[[WP4-33]]	&lt;br /&gt;
|UNIVAQ	&lt;br /&gt;
|Autonomy, cooperation, and awareness&lt;br /&gt;
|-&lt;br /&gt;
|[[WP4-36]]	&lt;br /&gt;
|IMCS&lt;br /&gt;
|Autonomous Decision Making in Critical Situations&lt;br /&gt;
|-&lt;br /&gt;
|[[WP4-37]]	&lt;br /&gt;
|IMCS&lt;br /&gt;
|Algorithms for Runtime Safety Monitoring&lt;br /&gt;
|-  &lt;br /&gt;
|[[WP4-39]]	&lt;br /&gt;
|HIB&lt;br /&gt;
|Simulated data aggregator supporting intelligent decision in computer vision components&lt;br /&gt;
|- &lt;br /&gt;
|[[WP4-42]]	&lt;br /&gt;
|SCALIAN	&lt;br /&gt;
|AI Stabilization&lt;br /&gt;
|- &lt;br /&gt;
|[[WP5-02]]	&lt;br /&gt;
|IKERLAN&lt;br /&gt;
|Security Management Toolchain&lt;br /&gt;
|- &lt;br /&gt;
|[[WP5-03]]	&lt;br /&gt;
|SCALIAN	&lt;br /&gt;
|EZ_Com Safe fleet communication&lt;br /&gt;
|- &lt;br /&gt;
|[[WP5-08]]	&lt;br /&gt;
|ROT&lt;br /&gt;
|Lightweight Cryptography&lt;br /&gt;
|- &lt;br /&gt;
|[[WP5-09]]	&lt;br /&gt;
|ABI	&lt;br /&gt;
|Communication scheme for unified system management&lt;br /&gt;
|- &lt;br /&gt;
|[[WP5-05_A]]	&lt;br /&gt;
|TEKNE	&lt;br /&gt;
|LP-WAN for UAV identification and monitoring&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|[[WP5-11_ACO]]	&lt;br /&gt;
|ACORDE&lt;br /&gt;
|Navigation system with anti-jamming and anti-spoofing features&lt;br /&gt;
|- &lt;br /&gt;
|[[WP5-16-AIT]]	&lt;br /&gt;
|AIT&lt;br /&gt;
|Cryptographic algorithms adapted for drones&lt;br /&gt;
|- &lt;br /&gt;
|[[WP5-19_ACO]]	&lt;br /&gt;
|ACORDE&lt;br /&gt;
|Robust communication for an improved Indoor Positioning System&lt;br /&gt;
|- &lt;br /&gt;
|[[WP6-P4R]]	&lt;br /&gt;
|CEA	&lt;br /&gt;
|Model driven engineering&lt;br /&gt;
|- &lt;br /&gt;
|[[WP6-20]]&lt;br /&gt;
|ACORDE&lt;br /&gt;
|ESL embedded SW Design Environment (ESDE)&lt;br /&gt;
|- &lt;br /&gt;
|[[WP6-21]]	&lt;br /&gt;
|ACORDE&lt;br /&gt;
|Indoor Positioning System Modelling&amp;amp;Analysis Framework (IPS-MAF)&lt;br /&gt;
|- &lt;br /&gt;
|[[WP6-17]]	&lt;br /&gt;
|UNIVAQ&lt;br /&gt;
|HW/SW CO-DEsign of HEterogeneous Parallel dedicated SYstems (HEPSYCODE)&lt;br /&gt;
|- &lt;br /&gt;
|[[WP6-34]]	&lt;br /&gt;
|UNIVAQ&lt;br /&gt;
|HEPSYCODE SystemC SIMulator Version 2.0 (HEPSIM2)&lt;br /&gt;
|-&lt;br /&gt;
|[[WP6-25]]&lt;br /&gt;
|UNICAN&lt;br /&gt;
|S3D - Model-Driven Analysis and Design Framework&lt;br /&gt;
|-&lt;br /&gt;
|[[WP6-26]]&lt;br /&gt;
|UNICAN&lt;br /&gt;
|SoSIM&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Raulgv</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=File:Wp6-26_IO_01.png&amp;diff=830</id>
		<title>File:Wp6-26 IO 01.png</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=File:Wp6-26_IO_01.png&amp;diff=830"/>
		<updated>2023-01-11T09:53:09Z</updated>

		<summary type="html">&lt;p&gt;Raulgv: Raulgv uploaded a new version of File:Wp6-26 IO 01.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Interoperability of SoSim with other tools&lt;/div&gt;</summary>
		<author><name>Raulgv</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=File:Wp6-26_IO_01.png&amp;diff=829</id>
		<title>File:Wp6-26 IO 01.png</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=File:Wp6-26_IO_01.png&amp;diff=829"/>
		<updated>2023-01-11T09:52:13Z</updated>

		<summary type="html">&lt;p&gt;Raulgv: Raulgv reverted File:Wp6-26 IO 01.png to an old version&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Interoperability of SoSim with other tools&lt;/div&gt;</summary>
		<author><name>Raulgv</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=File:Wp6-26_IO_01.png&amp;diff=828</id>
		<title>File:Wp6-26 IO 01.png</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=File:Wp6-26_IO_01.png&amp;diff=828"/>
		<updated>2023-01-11T09:51:32Z</updated>

		<summary type="html">&lt;p&gt;Raulgv: Raulgv uploaded a new version of File:Wp6-26 IO 01.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Interoperability of SoSim with other tools&lt;/div&gt;</summary>
		<author><name>Raulgv</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=File:Wp6-26_IO_01.png&amp;diff=827</id>
		<title>File:Wp6-26 IO 01.png</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=File:Wp6-26_IO_01.png&amp;diff=827"/>
		<updated>2023-01-11T08:51:27Z</updated>

		<summary type="html">&lt;p&gt;Raulgv: Interoperability of SoSim with other tools&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Interoperability of SoSim with other tools&lt;/div&gt;</summary>
		<author><name>Raulgv</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-26&amp;diff=826</id>
		<title>WP6-26</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-26&amp;diff=826"/>
		<updated>2023-01-11T08:49:42Z</updated>

		<summary type="html">&lt;p&gt;Raulgv: /* Interoperability with other C4D tools */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNICAN&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux, C/C++ code&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| Timing/Energy Co-Simulation&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| Platform model&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| Functional and time performance validation&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
SoSIM is a new System-of-Systems Simulation tool developed in Comp4Drones. Its background technology is VIPPE. From the Single-Source System Design (S3D) model, the specific information required to perform a certain simulation and performance analysis task (e.g. performance simulation of a solution in a design-space exploration) is extracted and the corresponding simulation model, synthesized. This Model-to-Model generation is performed by the mSSYN tool.&lt;br /&gt;
&lt;br /&gt;
In order to extend SoSIM to mechatronic systems, several improvements have been carried out. The basic infrastructure allowing to simulate multiple drones and combining different levels for the different system components including ROS was described in [1]. The architecture of the complete simulation environment is shown in Figure 1. The arrows represent the control flow in the simulator. Depending on the simulation level, some of the functional blocks may be inactive. So, at the functional level ROS is not used. Thus, neither the ROS core and the MAVROS block, nor the Sync.Clock ROS node are required. The functional drone simulator (now to be extended to several drones) interacts directly with the ROScpp components. This is kept even when the ROS core is included. The synchronization clock will also be needed. Only when any of the drones is modeled with a detailed autopilot and physics, the MAVROS block is added in order to support the communication with the drone through MAVLink.&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-26-I-01.png|frame|center|Figure 1 - VIPPE-ROS background simulation infrastructure]]&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
SoSIM covers the following states in the mechatronic V-Cycle of Figure 2:&lt;br /&gt;
&lt;br /&gt;
# System Design&lt;br /&gt;
# Mechanical Analysis and Design&lt;br /&gt;
# IT Analysis and Design&lt;br /&gt;
# SW Analysis and Design&lt;br /&gt;
# HW Analysis and Design&lt;br /&gt;
# SW Detailed Design&lt;br /&gt;
# SW Component Verification&lt;br /&gt;
# SW Integration and Verification&lt;br /&gt;
# HW Integration and Verification&lt;br /&gt;
# IT Integration and Verification&lt;br /&gt;
# Mechanic Integration and Verification&lt;br /&gt;
# System Integration and Verification&lt;br /&gt;
# System Acceptance Verification&lt;br /&gt;
&lt;br /&gt;
The improvement provided by SoSIM comes from the fact that the use of virtual models of the system simplifies simulation-based DSE, which greatly reduces the time required to select the most appropriate solution [2]. However, as the information about the system and its components evolve along the design process, so should their models and, in general, the infrastructure required for their simulation. As a result, different simulation levels must be considered during the different steps of the design and verification process. Table 1 shows the four simulation levels considered for the functional components:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 1 - Abstraction levels for functional components simulation&lt;br /&gt;
!Level&lt;br /&gt;
!|Code&lt;br /&gt;
!|Timing/Energy&lt;br /&gt;
!|ROS MW&lt;br /&gt;
|-&lt;br /&gt;
|MN&lt;br /&gt;
|minimal&lt;br /&gt;
|no&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;|yes/no&lt;br /&gt;
|-&lt;br /&gt;
|MC&lt;br /&gt;
|minimal&lt;br /&gt;
|constant&lt;br /&gt;
|-&lt;br /&gt;
|FC&lt;br /&gt;
|full code&lt;br /&gt;
|constant&lt;br /&gt;
|-&lt;br /&gt;
|FD&lt;br /&gt;
|full code&lt;br /&gt;
|data dependent&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In MN (minimal/no), no model of time/energy is provided so that the code is supposed to be executed infinitely fast and without consuming any energy. In MC (minimal/constant) and FC (functional/constant), a constant time/energy is assumed each time the function is executed. These can be estimated or observed worst-case, mean-case or best case figures. In FC, the simulation time would be higher than in MC, as the actual code is executed. In the FD (functional/data dependent) model, both time and energy must be estimated over the actual code, using a state of the art technique, such as native simulation technology or binary translation.&lt;br /&gt;
&lt;br /&gt;
Additionally, not all the system components need to have the same level of detail in a single simulation. Different system components can require simulation at different abstraction levels, resulting in heterogeneous simulations, depending on the focus of each simulation. For example, components under development usually require the most accurate simulation level (FD) when verifying their correctness while library components may only require FC simulation.&lt;br /&gt;
&lt;br /&gt;
This multi-level capability is also applicable to the simulation infrastructure. For example, in robotic-based systems considered in this paper, at any of these levels it should be possible to include in the simulation the ROS infrastructure or not. The latter case would allow designers to focus on the functionality of the distributed, heterogeneous functionality. Once this is verified, the former would include the actual ROS infrastructure in order to confirm that the application functionality behaves correctly when the actual communication middleware (MW) is included.&lt;br /&gt;
&lt;br /&gt;
Regarding the simulation of the drones, four different models are considered. Let’s consider the command “move to X/Y/Z”. A minimal implementation will estimate the path and the movement time considering constant horizontal and vertical speed values, the power consumption, and will perform the movement in a single step (FN). In many cases, a more detailed model for the drone(s) is required. An autopilot and a physical simulator are needed.&lt;br /&gt;
[[File:wp6-26-D-01.png|frame|center|Figure 2 - S3D-SoSIM V cycle coverage]]&lt;br /&gt;
&lt;br /&gt;
In this case, the full code (FC/FD) will generate all the signals to the motors required by the physical simulator to reach the final destination, including the estimation of all the intermediate positions, the actual time to reach them, the corresponding power consumption, angles and orientations.&lt;br /&gt;
&lt;br /&gt;
However, these two abstraction levels can be not enough for certain components. As commented above, S3D is based on a service-provided communication paradigm. However, ROS is mostly based on a client/subscriber approach. Thus, an approach based on services that performs the required operation in a single step, such as the one proposed above for the drone model, is not adequate, since publishers typically require a continuous flow of data. To solve this, and considering that the drone model is the most critical element in the simulation of drone-based systems, this work proposes a third, intermediate abstraction level for this component, capable of providing intermediate values to be published. Following the previous example, the command “move to X/Y/Z” will result in a continuous flow of approximate positions and orientations to be published. As a summary, the proposed drone model levels proposed are those shown in Table 2:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 2 - Abstraction levels for the drone simulators&lt;br /&gt;
!Level&lt;br /&gt;
!|Drones modeling&lt;br /&gt;
!|ROS MW&lt;br /&gt;
|-&lt;br /&gt;
|FY/FN&lt;br /&gt;
|Functional&lt;br /&gt;
|yes/no&lt;br /&gt;
|-&lt;br /&gt;
|AP&lt;br /&gt;
|Autopilot&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|MP&lt;br /&gt;
|Multi-Physics&lt;br /&gt;
|yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The simulation framework should support mixing functional and detailed simulation models for the drones in a multi-drone service. It should enable the system engineer to decide the best combination of abstraction levels in Tables I and II. Supporting multi-level simulation requires that each component in the functional architecture is associated with models at several abstraction levels, each involving different accuracy/speed ratios.&lt;br /&gt;
&lt;br /&gt;
Finally, it is mandatory to consider that drone based-systems usually involve multiple drones, and these drones can even require different simulation levels, in order to achieve high accuracy in some of the drone models while maintaining enough speed for the whole simulation.&lt;br /&gt;
&lt;br /&gt;
The new verification tasks introduced in the V-Cycle of Figure 2 are the following:&lt;br /&gt;
&lt;br /&gt;
# '''Validation''': The goal of the System Design, Mechanical Analysis and Design, IT Analysis and Design, SW Analysis and Design, HW Analysis and Design and SW Detailed Design is to ensure that the hierarchical partitioning of the system in sub-systems and finally, mechanical and HW and SW components, keeps the functional and non-functional requirements stated at the beginning of the design process. As the domain restrictions such as inputs, outputs, rates and throughputs are usually defined in the system requirements analysis steps, the full test-bench can be developed. The test-benches developed at the system, subsystem and component levels during design validation can be reused for component, sub-system and final system verification. The system-level test-bench can be also largely re-used for DSE and HW/SW co-design. The test-benches may also help during component, sub-system and system testing when the test-bench or part of it is emulated via SW-in-the-Loop (SIL). In order to be able to verify the test-bench at such a high level, a minimal functionality implementing the fundamental features of the system, subsystems and/or the components in the final full system architecture, should be developed (MN). This initial code can also be combined with preliminary, predefined time/energy figures in order to enable a first performance analysis of the system (MC). Regarding the drone(s), a functional model (FN) is the most appropriate. This functional simulation is useful during system requirement analysis and system architectural design and partitioning. After this initial stage, the components to be reused are selected and the components to be developed from scratch are fully specified so that their development (i.e. programming) can start, in case of HW/SW components. In the case of robots (i.e. the drones), their modelling, simulation and design can start. Reusability does not affect only application components but also components in the test-bench (e.g. the drones in the context of this paper).&lt;br /&gt;
# '''Verification''': Once the complete code has been developed, SW Component Verification, SW Integration and Verification, HW Integration and Verification, IT Integration and Verification, Mechanic Integration and Verification and System Integration and Verification can be performed. By verification, functional and non-functional verification is meant. Simulating the full code allows functional verification and debugging. Performance analysis enables non-functional verification. Any error detected, would require code optimization, platform re-configuration, platform re-design or even, a new architectural mapping of functional components to HW resources. The advantage provided by the co-design approach is that these design decisions are made at the same stage and only in a few cases it is required to backtrack to a previous stage. Among the different valid solutions during this Design-Space Exploration (DSE), the most appropriate Pareto point is selected [3]. As drones are basically real-time systems, consideration of timing (and potentially, energy) is usually mandatory. However, timing analysis is not an easy and fast task. To solve it, two different levels are proposed. In the first one, the full code is simulated but annotated with constant figures for the time/energy it consumes (FC). In a second level, once the component is mapped to a computing resource, native simulation is used so that accurate figures for execution times and energy can be obtained (FD). Although this is not covered in the paper, more detailed models for the SW can be used as virtualization or even an ISS. These simulation technologies may provide higher accuracy than native simulation at a lower simulation speed. These verification steps finish when the virtual model is accepted in the System Acceptance Verification stage so that its implementation can start.&lt;br /&gt;
# '''Testing''' is the new name we give to the former “HW-in-the-loop” verification steps as they require a physical prototype of the components, sub-systems and, finally, the complete system. Those components with potential reusability will be stored in the ‘Library of Components’.&lt;br /&gt;
&lt;br /&gt;
Once the system is fully designed and accepted, the system can be produced and deployed in the field. Now, the system operation can be monitored and analysed so that it is possible to facilitate maintenance, reduce faults and minimize correction time, when needed.&lt;br /&gt;
&lt;br /&gt;
== Interoperability with other C4D tools ==&lt;br /&gt;
&lt;br /&gt;
From the S3D model, the Model to Model (M2M) tool mSSYN generates the simulation model to be executed by SoSIM. As S3D may contain models from other simulators, so S3D is linked to them. Figure 3 describes the interoperability between SoSim and other simulators:&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-26_IO_01.png|frame|center| Figure 3 - Interoperability of SoSim with other tools]]&lt;/div&gt;</summary>
		<author><name>Raulgv</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-26&amp;diff=825</id>
		<title>WP6-26</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-26&amp;diff=825"/>
		<updated>2023-01-11T08:47:10Z</updated>

		<summary type="html">&lt;p&gt;Raulgv: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNICAN&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux, C/C++ code&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| Timing/Energy Co-Simulation&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| Platform model&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| Functional and time performance validation&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
SoSIM is a new System-of-Systems Simulation tool developed in Comp4Drones. Its background technology is VIPPE. From the Single-Source System Design (S3D) model, the specific information required to perform a certain simulation and performance analysis task (e.g. performance simulation of a solution in a design-space exploration) is extracted and the corresponding simulation model, synthesized. This Model-to-Model generation is performed by the mSSYN tool.&lt;br /&gt;
&lt;br /&gt;
In order to extend SoSIM to mechatronic systems, several improvements have been carried out. The basic infrastructure allowing to simulate multiple drones and combining different levels for the different system components including ROS was described in [1]. The architecture of the complete simulation environment is shown in Figure 1. The arrows represent the control flow in the simulator. Depending on the simulation level, some of the functional blocks may be inactive. So, at the functional level ROS is not used. Thus, neither the ROS core and the MAVROS block, nor the Sync.Clock ROS node are required. The functional drone simulator (now to be extended to several drones) interacts directly with the ROScpp components. This is kept even when the ROS core is included. The synchronization clock will also be needed. Only when any of the drones is modeled with a detailed autopilot and physics, the MAVROS block is added in order to support the communication with the drone through MAVLink.&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-26-I-01.png|frame|center|Figure 1 - VIPPE-ROS background simulation infrastructure]]&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
SoSIM covers the following states in the mechatronic V-Cycle of Figure 2:&lt;br /&gt;
&lt;br /&gt;
# System Design&lt;br /&gt;
# Mechanical Analysis and Design&lt;br /&gt;
# IT Analysis and Design&lt;br /&gt;
# SW Analysis and Design&lt;br /&gt;
# HW Analysis and Design&lt;br /&gt;
# SW Detailed Design&lt;br /&gt;
# SW Component Verification&lt;br /&gt;
# SW Integration and Verification&lt;br /&gt;
# HW Integration and Verification&lt;br /&gt;
# IT Integration and Verification&lt;br /&gt;
# Mechanic Integration and Verification&lt;br /&gt;
# System Integration and Verification&lt;br /&gt;
# System Acceptance Verification&lt;br /&gt;
&lt;br /&gt;
The improvement provided by SoSIM comes from the fact that the use of virtual models of the system simplifies simulation-based DSE, which greatly reduces the time required to select the most appropriate solution [2]. However, as the information about the system and its components evolve along the design process, so should their models and, in general, the infrastructure required for their simulation. As a result, different simulation levels must be considered during the different steps of the design and verification process. Table 1 shows the four simulation levels considered for the functional components:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 1 - Abstraction levels for functional components simulation&lt;br /&gt;
!Level&lt;br /&gt;
!|Code&lt;br /&gt;
!|Timing/Energy&lt;br /&gt;
!|ROS MW&lt;br /&gt;
|-&lt;br /&gt;
|MN&lt;br /&gt;
|minimal&lt;br /&gt;
|no&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;|yes/no&lt;br /&gt;
|-&lt;br /&gt;
|MC&lt;br /&gt;
|minimal&lt;br /&gt;
|constant&lt;br /&gt;
|-&lt;br /&gt;
|FC&lt;br /&gt;
|full code&lt;br /&gt;
|constant&lt;br /&gt;
|-&lt;br /&gt;
|FD&lt;br /&gt;
|full code&lt;br /&gt;
|data dependent&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In MN (minimal/no), no model of time/energy is provided so that the code is supposed to be executed infinitely fast and without consuming any energy. In MC (minimal/constant) and FC (functional/constant), a constant time/energy is assumed each time the function is executed. These can be estimated or observed worst-case, mean-case or best case figures. In FC, the simulation time would be higher than in MC, as the actual code is executed. In the FD (functional/data dependent) model, both time and energy must be estimated over the actual code, using a state of the art technique, such as native simulation technology or binary translation.&lt;br /&gt;
&lt;br /&gt;
Additionally, not all the system components need to have the same level of detail in a single simulation. Different system components can require simulation at different abstraction levels, resulting in heterogeneous simulations, depending on the focus of each simulation. For example, components under development usually require the most accurate simulation level (FD) when verifying their correctness while library components may only require FC simulation.&lt;br /&gt;
&lt;br /&gt;
This multi-level capability is also applicable to the simulation infrastructure. For example, in robotic-based systems considered in this paper, at any of these levels it should be possible to include in the simulation the ROS infrastructure or not. The latter case would allow designers to focus on the functionality of the distributed, heterogeneous functionality. Once this is verified, the former would include the actual ROS infrastructure in order to confirm that the application functionality behaves correctly when the actual communication middleware (MW) is included.&lt;br /&gt;
&lt;br /&gt;
Regarding the simulation of the drones, four different models are considered. Let’s consider the command “move to X/Y/Z”. A minimal implementation will estimate the path and the movement time considering constant horizontal and vertical speed values, the power consumption, and will perform the movement in a single step (FN). In many cases, a more detailed model for the drone(s) is required. An autopilot and a physical simulator are needed.&lt;br /&gt;
[[File:wp6-26-D-01.png|frame|center|Figure 2 - S3D-SoSIM V cycle coverage]]&lt;br /&gt;
&lt;br /&gt;
In this case, the full code (FC/FD) will generate all the signals to the motors required by the physical simulator to reach the final destination, including the estimation of all the intermediate positions, the actual time to reach them, the corresponding power consumption, angles and orientations.&lt;br /&gt;
&lt;br /&gt;
However, these two abstraction levels can be not enough for certain components. As commented above, S3D is based on a service-provided communication paradigm. However, ROS is mostly based on a client/subscriber approach. Thus, an approach based on services that performs the required operation in a single step, such as the one proposed above for the drone model, is not adequate, since publishers typically require a continuous flow of data. To solve this, and considering that the drone model is the most critical element in the simulation of drone-based systems, this work proposes a third, intermediate abstraction level for this component, capable of providing intermediate values to be published. Following the previous example, the command “move to X/Y/Z” will result in a continuous flow of approximate positions and orientations to be published. As a summary, the proposed drone model levels proposed are those shown in Table 2:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 2 - Abstraction levels for the drone simulators&lt;br /&gt;
!Level&lt;br /&gt;
!|Drones modeling&lt;br /&gt;
!|ROS MW&lt;br /&gt;
|-&lt;br /&gt;
|FY/FN&lt;br /&gt;
|Functional&lt;br /&gt;
|yes/no&lt;br /&gt;
|-&lt;br /&gt;
|AP&lt;br /&gt;
|Autopilot&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|MP&lt;br /&gt;
|Multi-Physics&lt;br /&gt;
|yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The simulation framework should support mixing functional and detailed simulation models for the drones in a multi-drone service. It should enable the system engineer to decide the best combination of abstraction levels in Tables I and II. Supporting multi-level simulation requires that each component in the functional architecture is associated with models at several abstraction levels, each involving different accuracy/speed ratios.&lt;br /&gt;
&lt;br /&gt;
Finally, it is mandatory to consider that drone based-systems usually involve multiple drones, and these drones can even require different simulation levels, in order to achieve high accuracy in some of the drone models while maintaining enough speed for the whole simulation.&lt;br /&gt;
&lt;br /&gt;
The new verification tasks introduced in the V-Cycle of Figure 2 are the following:&lt;br /&gt;
&lt;br /&gt;
# '''Validation''': The goal of the System Design, Mechanical Analysis and Design, IT Analysis and Design, SW Analysis and Design, HW Analysis and Design and SW Detailed Design is to ensure that the hierarchical partitioning of the system in sub-systems and finally, mechanical and HW and SW components, keeps the functional and non-functional requirements stated at the beginning of the design process. As the domain restrictions such as inputs, outputs, rates and throughputs are usually defined in the system requirements analysis steps, the full test-bench can be developed. The test-benches developed at the system, subsystem and component levels during design validation can be reused for component, sub-system and final system verification. The system-level test-bench can be also largely re-used for DSE and HW/SW co-design. The test-benches may also help during component, sub-system and system testing when the test-bench or part of it is emulated via SW-in-the-Loop (SIL). In order to be able to verify the test-bench at such a high level, a minimal functionality implementing the fundamental features of the system, subsystems and/or the components in the final full system architecture, should be developed (MN). This initial code can also be combined with preliminary, predefined time/energy figures in order to enable a first performance analysis of the system (MC). Regarding the drone(s), a functional model (FN) is the most appropriate. This functional simulation is useful during system requirement analysis and system architectural design and partitioning. After this initial stage, the components to be reused are selected and the components to be developed from scratch are fully specified so that their development (i.e. programming) can start, in case of HW/SW components. In the case of robots (i.e. the drones), their modelling, simulation and design can start. Reusability does not affect only application components but also components in the test-bench (e.g. the drones in the context of this paper).&lt;br /&gt;
# '''Verification''': Once the complete code has been developed, SW Component Verification, SW Integration and Verification, HW Integration and Verification, IT Integration and Verification, Mechanic Integration and Verification and System Integration and Verification can be performed. By verification, functional and non-functional verification is meant. Simulating the full code allows functional verification and debugging. Performance analysis enables non-functional verification. Any error detected, would require code optimization, platform re-configuration, platform re-design or even, a new architectural mapping of functional components to HW resources. The advantage provided by the co-design approach is that these design decisions are made at the same stage and only in a few cases it is required to backtrack to a previous stage. Among the different valid solutions during this Design-Space Exploration (DSE), the most appropriate Pareto point is selected [3]. As drones are basically real-time systems, consideration of timing (and potentially, energy) is usually mandatory. However, timing analysis is not an easy and fast task. To solve it, two different levels are proposed. In the first one, the full code is simulated but annotated with constant figures for the time/energy it consumes (FC). In a second level, once the component is mapped to a computing resource, native simulation is used so that accurate figures for execution times and energy can be obtained (FD). Although this is not covered in the paper, more detailed models for the SW can be used as virtualization or even an ISS. These simulation technologies may provide higher accuracy than native simulation at a lower simulation speed. These verification steps finish when the virtual model is accepted in the System Acceptance Verification stage so that its implementation can start.&lt;br /&gt;
# '''Testing''' is the new name we give to the former “HW-in-the-loop” verification steps as they require a physical prototype of the components, sub-systems and, finally, the complete system. Those components with potential reusability will be stored in the ‘Library of Components’.&lt;br /&gt;
&lt;br /&gt;
Once the system is fully designed and accepted, the system can be produced and deployed in the field. Now, the system operation can be monitored and analysed so that it is possible to facilitate maintenance, reduce faults and minimize correction time, when needed.&lt;br /&gt;
&lt;br /&gt;
== Interoperability with other C4D tools ==&lt;/div&gt;</summary>
		<author><name>Raulgv</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-26&amp;diff=824</id>
		<title>WP6-26</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-26&amp;diff=824"/>
		<updated>2023-01-11T08:44:31Z</updated>

		<summary type="html">&lt;p&gt;Raulgv: /* Detailed Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNICAN&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux, C/C++ code&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| Timing/Energy Co-Simulation&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| Platform model&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| Functional and time performance validation&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
SoSIM is a new System-of-Systems Simulation tool developed in Comp4Drones. Its background technology is VIPPE. From the Single-Source System Design (S3D) model, the specific information required to perform a certain simulation and performance analysis task (e.g. performance simulation of a solution in a design-space exploration) is extracted and the corresponding simulation model, synthesized. This Model-to-Model generation is performed by the mSSYN tool.&lt;br /&gt;
&lt;br /&gt;
In order to extend SoSIM to mechatronic systems, several improvements have been carried out. The basic infrastructure allowing to simulate multiple drones and combining different levels for the different system components including ROS was described in [1]. The architecture of the complete simulation environment is shown in Figure 1. The arrows represent the control flow in the simulator. Depending on the simulation level, some of the functional blocks may be inactive. So, at the functional level ROS is not used. Thus, neither the ROS core and the MAVROS block, nor the Sync.Clock ROS node are required. The functional drone simulator (now to be extended to several drones) interacts directly with the ROScpp components. This is kept even when the ROS core is included. The synchronization clock will also be needed. Only when any of the drones is modeled with a detailed autopilot and physics, the MAVROS block is added in order to support the communication with the drone through MAVLink.&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-26-I-01.png|frame|center|Figure 1 - VIPPE-ROS background simulation infrastructure]]&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
SoSIM covers the following states in the mechatronic V-Cycle of Figure 2:&lt;br /&gt;
&lt;br /&gt;
# System Design&lt;br /&gt;
# Mechanical Analysis and Design&lt;br /&gt;
# IT Analysis and Design&lt;br /&gt;
# SW Analysis and Design&lt;br /&gt;
# HW Analysis and Design&lt;br /&gt;
# SW Detailed Design&lt;br /&gt;
# SW Component Verification&lt;br /&gt;
# SW Integration and Verification&lt;br /&gt;
# HW Integration and Verification&lt;br /&gt;
# IT Integration and Verification&lt;br /&gt;
# Mechanic Integration and Verification&lt;br /&gt;
# System Integration and Verification&lt;br /&gt;
# System Acceptance Verification&lt;br /&gt;
&lt;br /&gt;
The improvement provided by SoSIM comes from the fact that the use of virtual models of the system simplifies simulation-based DSE, which greatly reduces the time required to select the most appropriate solution [2]. However, as the information about the system and its components evolve along the design process, so should their models and, in general, the infrastructure required for their simulation. As a result, different simulation levels must be considered during the different steps of the design and verification process. Table 1 shows the four simulation levels considered for the functional components:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 1 - Abstraction levels for functional components simulation&lt;br /&gt;
!Level&lt;br /&gt;
!|Code&lt;br /&gt;
!|Timing/Energy&lt;br /&gt;
!|ROS MW&lt;br /&gt;
|-&lt;br /&gt;
|MN&lt;br /&gt;
|minimal&lt;br /&gt;
|no&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;|yes/no&lt;br /&gt;
|-&lt;br /&gt;
|MC&lt;br /&gt;
|minimal&lt;br /&gt;
|constant&lt;br /&gt;
|-&lt;br /&gt;
|FC&lt;br /&gt;
|full code&lt;br /&gt;
|constant&lt;br /&gt;
|-&lt;br /&gt;
|FD&lt;br /&gt;
|full code&lt;br /&gt;
|data dependent&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In MN (minimal/no), no model of time/energy is provided so that the code is supposed to be executed infinitely fast and without consuming any energy. In MC (minimal/constant) and FC (functional/constant), a constant time/energy is assumed each time the function is executed. These can be estimated or observed worst-case, mean-case or best case figures. In FC, the simulation time would be higher than in MC, as the actual code is executed. In the FD (functional/data dependent) model, both time and energy must be estimated over the actual code, using a state of the art technique, such as native simulation technology or binary translation.&lt;br /&gt;
&lt;br /&gt;
Additionally, not all the system components need to have the same level of detail in a single simulation. Different system components can require simulation at different abstraction levels, resulting in heterogeneous simulations, depending on the focus of each simulation. For example, components under development usually require the most accurate simulation level (FD) when verifying their correctness while library components may only require FC simulation.&lt;br /&gt;
&lt;br /&gt;
This multi-level capability is also applicable to the simulation infrastructure. For example, in robotic-based systems considered in this paper, at any of these levels it should be possible to include in the simulation the ROS infrastructure or not. The latter case would allow designers to focus on the functionality of the distributed, heterogeneous functionality. Once this is verified, the former would include the actual ROS infrastructure in order to confirm that the application functionality behaves correctly when the actual communication middleware (MW) is included.&lt;br /&gt;
&lt;br /&gt;
Regarding the simulation of the drones, four different models are considered. Let’s consider the command “move to X/Y/Z”. A minimal implementation will estimate the path and the movement time considering constant horizontal and vertical speed values, the power consumption, and will perform the movement in a single step (FN). In many cases, a more detailed model for the drone(s) is required. An autopilot and a physical simulator are needed.&lt;br /&gt;
[[File:wp6-26-D-01.png|frame|center|Figure 2 - S3D-SoSIM V cycle coverage]]&lt;br /&gt;
&lt;br /&gt;
In this case, the full code (FC/FD) will generate all the signals to the motors required by the physical simulator to reach the final destination, including the estimation of all the intermediate positions, the actual time to reach them, the corresponding power consumption, angles and orientations.&lt;br /&gt;
&lt;br /&gt;
However, these two abstraction levels can be not enough for certain components. As commented above, S3D is based on a service-provided communication paradigm. However, ROS is mostly based on a client/subscriber approach. Thus, an approach based on services that performs the required operation in a single step, such as the one proposed above for the drone model, is not adequate, since publishers typically require a continuous flow of data. To solve this, and considering that the drone model is the most critical element in the simulation of drone-based systems, this work proposes a third, intermediate abstraction level for this component, capable of providing intermediate values to be published. Following the previous example, the command “move to X/Y/Z” will result in a continuous flow of approximate positions and orientations to be published. As a summary, the proposed drone model levels proposed are those shown in Table 2:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 2 - Abstraction levels for the drone simulators&lt;br /&gt;
!Level&lt;br /&gt;
!|Drones modeling&lt;br /&gt;
!|ROS MW&lt;br /&gt;
|-&lt;br /&gt;
|FY/FN&lt;br /&gt;
|Functional&lt;br /&gt;
|yes/no&lt;br /&gt;
|-&lt;br /&gt;
|AP&lt;br /&gt;
|Autopilot&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|MP&lt;br /&gt;
|Multi-Physics&lt;br /&gt;
|yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The simulation framework should support mixing functional and detailed simulation models for the drones in a multi-drone service. It should enable the system engineer to decide the best combination of abstraction levels in Tables I and II. Supporting multi-level simulation requires that each component in the functional architecture is associated with models at several abstraction levels, each involving different accuracy/speed ratios.&lt;br /&gt;
&lt;br /&gt;
Finally, it is mandatory to consider that drone based-systems usually involve multiple drones, and these drones can even require different simulation levels, in order to achieve high accuracy in some of the drone models while maintaining enough speed for the whole simulation.&lt;br /&gt;
&lt;br /&gt;
The new verification tasks introduced in the V-Cycle of Figure 2 are the following:&lt;br /&gt;
&lt;br /&gt;
# '''Validation''': The goal of the System Design, Mechanical Analysis and Design, IT Analysis and Design, SW Analysis and Design, HW Analysis and Design and SW Detailed Design is to ensure that the hierarchical partitioning of the system in sub-systems and finally, mechanical and HW and SW components, keeps the functional and non-functional requirements stated at the beginning of the design process. As the domain restrictions such as inputs, outputs, rates and throughputs are usually defined in the system requirements analysis steps, the full test-bench can be developed. The test-benches developed at the system, subsystem and component levels during design validation can be reused for component, sub-system and final system verification. The system-level test-bench can be also largely re-used for DSE and HW/SW co-design. The test-benches may also help during component, sub-system and system testing when the test-bench or part of it is emulated via SW-in-the-Loop (SIL). In order to be able to verify the test-bench at such a high level, a minimal functionality implementing the fundamental features of the system, subsystems and/or the components in the final full system architecture, should be developed (MN). This initial code can also be combined with preliminary, predefined time/energy figures in order to enable a first performance analysis of the system (MC). Regarding the drone(s), a functional model (FN) is the most appropriate. This functional simulation is useful during system requirement analysis and system architectural design and partitioning. After this initial stage, the components to be reused are selected and the components to be developed from scratch are fully specified so that their development (i.e. programming) can start, in case of HW/SW components. In the case of robots (i.e. the drones), their modelling, simulation and design can start. Reusability does not affect only application components but also components in the test-bench (e.g. the drones in the context of this paper).&lt;br /&gt;
# '''Verification''': Once the complete code has been developed, SW Component Verification, SW Integration and Verification, HW Integration and Verification, IT Integration and Verification, Mechanic Integration and Verification and System Integration and Verification can be performed. By verification, functional and non-functional verification is meant. Simulating the full code allows functional verification and debugging. Performance analysis enables non-functional verification. Any error detected, would require code optimization, platform re-configuration, platform re-design or even, a new architectural mapping of functional components to HW resources. The advantage provided by the co-design approach is that these design decisions are made at the same stage and only in a few cases it is required to backtrack to a previous stage. Among the different valid solutions during this Design-Space Exploration (DSE), the most appropriate Pareto point is selected [3]. As drones are basically real-time systems, consideration of timing (and potentially, energy) is usually mandatory. However, timing analysis is not an easy and fast task. To solve it, two different levels are proposed. In the first one, the full code is simulated but annotated with constant figures for the time/energy it consumes (FC). In a second level, once the component is mapped to a computing resource, native simulation is used so that accurate figures for execution times and energy can be obtained (FD). Although this is not covered in the paper, more detailed models for the SW can be used as virtualization or even an ISS. These simulation technologies may provide higher accuracy than native simulation at a lower simulation speed. These verification steps finish when the virtual model is accepted in the System Acceptance Verification stage so that its implementation can start.&lt;br /&gt;
# '''Testing''' is the new name we give to the former “HW-in-the-loop” verification steps as they require a physical prototype of the components, sub-systems and, finally, the complete system. Those components with potential reusability will be stored in the ‘Library of Components’.&lt;br /&gt;
&lt;br /&gt;
Once the system is fully designed and accepted, the system can be produced and deployed in the field. Now, the system operation can be monitored and analysed so that it is possible to facilitate maintenance, reduce faults and minimize correction time, when needed.&lt;/div&gt;</summary>
		<author><name>Raulgv</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-26&amp;diff=823</id>
		<title>WP6-26</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-26&amp;diff=823"/>
		<updated>2023-01-10T16:14:50Z</updated>

		<summary type="html">&lt;p&gt;Raulgv: /* Detailed Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNICAN&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux, C/C++ code&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| Timing/Energy Co-Simulation&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| Platform model&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| Functional and time performance validation&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
SoSIM is a new System-of-Systems Simulation tool developed in Comp4Drones. Its background technology is VIPPE. From the Single-Source System Design (S3D) model, the specific information required to perform a certain simulation and performance analysis task (e.g. performance simulation of a solution in a design-space exploration) is extracted and the corresponding simulation model, synthesized. This Model-to-Model generation is performed by the mSSYN tool.&lt;br /&gt;
&lt;br /&gt;
In order to extend SoSIM to mechatronic systems, several improvements have been carried out. The basic infrastructure allowing to simulate multiple drones and combining different levels for the different system components including ROS was described in [1]. The architecture of the complete simulation environment is shown in Figure 1. The arrows represent the control flow in the simulator. Depending on the simulation level, some of the functional blocks may be inactive. So, at the functional level ROS is not used. Thus, neither the ROS core and the MAVROS block, nor the Sync.Clock ROS node are required. The functional drone simulator (now to be extended to several drones) interacts directly with the ROScpp components. This is kept even when the ROS core is included. The synchronization clock will also be needed. Only when any of the drones is modeled with a detailed autopilot and physics, the MAVROS block is added in order to support the communication with the drone through MAVLink.&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-26-I-01.png|frame|center|Figure 1 - VIPPE-ROS background simulation infrastructure]]&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
SoSIM covers the following states in the mechatronic V-Cycle of Figure 2:&lt;br /&gt;
&lt;br /&gt;
# System Design&lt;br /&gt;
# Mechanical Analysis and Design&lt;br /&gt;
# IT Analysis and Design&lt;br /&gt;
# SW Analysis and Design&lt;br /&gt;
# HW Analysis and Design&lt;br /&gt;
# SW Detailed Design&lt;br /&gt;
# SW Component Verification&lt;br /&gt;
# SW Integration and Verification&lt;br /&gt;
# HW Integration and Verification&lt;br /&gt;
# IT Integration and Verification&lt;br /&gt;
# Mechanic Integration and Verification&lt;br /&gt;
# System Integration and Verification&lt;br /&gt;
# System Acceptance Verification&lt;br /&gt;
&lt;br /&gt;
The improvement provided by SoSIM comes from the fact that the use of virtual models of the system simplifies simulation-based DSE, which greatly reduces the time required to select the most appropriate solution [2]. However, as the information about the system and its components evolve along the design process, so should their models and, in general, the infrastructure required for their simulation. As a result, different simulation levels must be considered during the different steps of the design and verification process. Table 1 shows the four simulation levels considered for the functional components:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 1 - Abstraction levels for functional components simulation&lt;br /&gt;
!Level&lt;br /&gt;
!|Code&lt;br /&gt;
!|Timing/Energy&lt;br /&gt;
!|ROS MW&lt;br /&gt;
|-&lt;br /&gt;
|MN&lt;br /&gt;
|minimal&lt;br /&gt;
|no&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;|yes/no&lt;br /&gt;
|-&lt;br /&gt;
|MC&lt;br /&gt;
|minimal&lt;br /&gt;
|constant&lt;br /&gt;
|-&lt;br /&gt;
|FC&lt;br /&gt;
|full code&lt;br /&gt;
|constant&lt;br /&gt;
|-&lt;br /&gt;
|FD&lt;br /&gt;
|full code&lt;br /&gt;
|data dependent&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In MN (minimal/no), no model of time/energy is provided so that the code is supposed to be executed infinitely fast and without consuming any energy. In MC (minimal/constant) and FC (functional/constant), a constant time/energy is assumed each time the function is executed. These can be estimated or observed worst-case, mean-case or best case figures. In FC, the simulation time would be higher than in MC, as the actual code is executed. In the FD (functional/data dependent) model, both time and energy must be estimated over the actual code, using a state of the art technique, such as native simulation technology or binary translation.&lt;br /&gt;
&lt;br /&gt;
Additionally, not all the system components need to have the same level of detail in a single simulation. Different system components can require simulation at different abstraction levels, resulting in heterogeneous simulations, depending on the focus of each simulation. For example, components under development usually require the most accurate simulation level (FD) when verifying their correctness while library components may only require FC simulation.&lt;br /&gt;
&lt;br /&gt;
This multi-level capability is also applicable to the simulation infrastructure. For example, in robotic-based systems considered in this paper, at any of these levels it should be possible to include in the simulation the ROS infrastructure or not. The latter case would allow designers to focus on the functionality of the distributed, heterogeneous functionality. Once this is verified, the former would include the actual ROS infrastructure in order to confirm that the application functionality behaves correctly when the actual communication middleware (MW) is included.&lt;br /&gt;
&lt;br /&gt;
Regarding the simulation of the drones, four different models are considered. Let’s consider the command “move to X/Y/Z”. A minimal implementation will estimate the path and the movement time considering constant horizontal and vertical speed values, the power consumption, and will perform the movement in a single step (FN). In many cases, a more detailed model for the drone(s) is required. An autopilot and a physical simulator are needed.&lt;br /&gt;
[[File:wp6-26-D-01.png|frame|center|Figure 2 - S3D-SoSIM V cycle coverage]]&lt;br /&gt;
&lt;br /&gt;
In this case, the full code (FC/FD) will generate all the signals to the motors required by the physical simulator to reach the final destination, including the estimation of all the intermediate positions, the actual time to reach them, the corresponding power consumption, angles and orientations.&lt;br /&gt;
&lt;br /&gt;
However, these two abstraction levels can be not enough for certain components. As commented above, S3D is based on a service-provided communication paradigm. However, ROS is mostly based on a client/subscriber approach. Thus, an approach based on services that performs the required operation in a single step, such as the one proposed above for the drone model, is not adequate, since publishers typically require a continuous flow of data. To solve this, and considering that the drone model is the most critical element in the simulation of drone-based systems, this work proposes a third, intermediate abstraction level for this component, capable of providing intermediate values to be published. Following the previous example, the command “move to X/Y/Z” will result in a continuous flow of approximate positions and orientations to be published. As a summary, the proposed drone model levels proposed are those shown in Table 2:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 2 - Abstraction levels for the drone simulators&lt;br /&gt;
!Level&lt;br /&gt;
!|Drones modeling&lt;br /&gt;
!|ROS MW&lt;br /&gt;
|-&lt;br /&gt;
|FY/FN&lt;br /&gt;
|Functional&lt;br /&gt;
|yes/no&lt;br /&gt;
|-&lt;br /&gt;
|AP&lt;br /&gt;
|Autopilot&lt;br /&gt;
|yes&lt;br /&gt;
|-&lt;br /&gt;
|MP&lt;br /&gt;
|Multi-Physics&lt;br /&gt;
|yes&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Raulgv</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-26&amp;diff=822</id>
		<title>WP6-26</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-26&amp;diff=822"/>
		<updated>2023-01-10T16:11:11Z</updated>

		<summary type="html">&lt;p&gt;Raulgv: /* Detailed Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNICAN&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux, C/C++ code&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| Timing/Energy Co-Simulation&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| Platform model&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| Functional and time performance validation&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
SoSIM is a new System-of-Systems Simulation tool developed in Comp4Drones. Its background technology is VIPPE. From the Single-Source System Design (S3D) model, the specific information required to perform a certain simulation and performance analysis task (e.g. performance simulation of a solution in a design-space exploration) is extracted and the corresponding simulation model, synthesized. This Model-to-Model generation is performed by the mSSYN tool.&lt;br /&gt;
&lt;br /&gt;
In order to extend SoSIM to mechatronic systems, several improvements have been carried out. The basic infrastructure allowing to simulate multiple drones and combining different levels for the different system components including ROS was described in [1]. The architecture of the complete simulation environment is shown in Figure 1. The arrows represent the control flow in the simulator. Depending on the simulation level, some of the functional blocks may be inactive. So, at the functional level ROS is not used. Thus, neither the ROS core and the MAVROS block, nor the Sync.Clock ROS node are required. The functional drone simulator (now to be extended to several drones) interacts directly with the ROScpp components. This is kept even when the ROS core is included. The synchronization clock will also be needed. Only when any of the drones is modeled with a detailed autopilot and physics, the MAVROS block is added in order to support the communication with the drone through MAVLink.&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-26-I-01.png|frame|center|Figure 1 - VIPPE-ROS background simulation infrastructure]]&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
SoSIM covers the following states in the mechatronic V-Cycle of Figure 2:&lt;br /&gt;
&lt;br /&gt;
# System Design&lt;br /&gt;
# Mechanical Analysis and Design&lt;br /&gt;
# IT Analysis and Design&lt;br /&gt;
# SW Analysis and Design&lt;br /&gt;
# HW Analysis and Design&lt;br /&gt;
# SW Detailed Design&lt;br /&gt;
# SW Component Verification&lt;br /&gt;
# SW Integration and Verification&lt;br /&gt;
# HW Integration and Verification&lt;br /&gt;
# IT Integration and Verification&lt;br /&gt;
# Mechanic Integration and Verification&lt;br /&gt;
# System Integration and Verification&lt;br /&gt;
# System Acceptance Verification&lt;br /&gt;
&lt;br /&gt;
The improvement provided by SoSIM comes from the fact that the use of virtual models of the system simplifies simulation-based DSE, which greatly reduces the time required to select the most appropriate solution [2]. However, as the information about the system and its components evolve along the design process, so should their models and, in general, the infrastructure required for their simulation. As a result, different simulation levels must be considered during the different steps of the design and verification process. Table 1 shows the four simulation levels considered for the functional components:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Level&lt;br /&gt;
!|Code&lt;br /&gt;
!|Timing/Energy&lt;br /&gt;
!|ROS MW&lt;br /&gt;
|-&lt;br /&gt;
|MN&lt;br /&gt;
|minimal&lt;br /&gt;
|no&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;|yes/no&lt;br /&gt;
|-&lt;br /&gt;
|MC&lt;br /&gt;
|minimal&lt;br /&gt;
|constant&lt;br /&gt;
|-&lt;br /&gt;
|FC&lt;br /&gt;
|full code&lt;br /&gt;
|constant&lt;br /&gt;
|-&lt;br /&gt;
|FD&lt;br /&gt;
|full code&lt;br /&gt;
|data dependent&lt;br /&gt;
|+Table 1 - Abstraction levels for functional components simulation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In MN (minimal/no), no model of time/energy is provided so that the code is supposed to be executed infinitely fast and without consuming any energy. In MC (minimal/constant) and FC (functional/constant), a constant time/energy is assumed each time the function is executed. These can be estimated or observed worst-case, mean-case or best case figures. In FC, the simulation time would be higher than in MC, as the actual code is executed. In the FD (functional/data dependent) model, both time and energy must be estimated over the actual code, using a state of the art technique, such as native simulation technology or binary translation.&lt;br /&gt;
&lt;br /&gt;
Additionally, not all the system components need to have the same level of detail in a single simulation. Different system components can require simulation at different abstraction levels, resulting in heterogeneous simulations, depending on the focus of each simulation. For example, components under development usually require the most accurate simulation level (FD) when verifying their correctness while library components may only require FC simulation.&lt;br /&gt;
&lt;br /&gt;
This multi-level capability is also applicable to the simulation infrastructure. For example, in robotic-based systems considered in this paper, at any of these levels it should be possible to include in the simulation the ROS infrastructure or not. The latter case would allow designers to focus on the functionality of the distributed, heterogeneous functionality. Once this is verified, the former would include the actual ROS infrastructure in order to confirm that the application functionality behaves correctly when the actual communication middleware (MW) is included.&lt;br /&gt;
&lt;br /&gt;
Regarding the simulation of the drones, four different models are considered. Let’s consider the command “move to X/Y/Z”. A minimal implementation will estimate the path and the movement time considering constant horizontal and vertical speed values, the power consumption, and will perform the movement in a single step (FN). In many cases, a more detailed model for the drone(s) is required. An autopilot and a physical simulator are needed.&lt;br /&gt;
[[File:wp6-26-D-01.png|frame|center|Figure 2 - S3D-SoSIM V cycle coverage]]&lt;/div&gt;</summary>
		<author><name>Raulgv</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=File:Wp6-26-D-01.png&amp;diff=821</id>
		<title>File:Wp6-26-D-01.png</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=File:Wp6-26-D-01.png&amp;diff=821"/>
		<updated>2023-01-10T16:06:16Z</updated>

		<summary type="html">&lt;p&gt;Raulgv: S3D-SoSIM V cycle coverage&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
S3D-SoSIM V cycle coverage&lt;/div&gt;</summary>
		<author><name>Raulgv</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-26&amp;diff=820</id>
		<title>WP6-26</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-26&amp;diff=820"/>
		<updated>2023-01-10T16:05:16Z</updated>

		<summary type="html">&lt;p&gt;Raulgv: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNICAN&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux, C/C++ code&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| Timing/Energy Co-Simulation&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| Platform model&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| Functional and time performance validation&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
SoSIM is a new System-of-Systems Simulation tool developed in Comp4Drones. Its background technology is VIPPE. From the Single-Source System Design (S3D) model, the specific information required to perform a certain simulation and performance analysis task (e.g. performance simulation of a solution in a design-space exploration) is extracted and the corresponding simulation model, synthesized. This Model-to-Model generation is performed by the mSSYN tool.&lt;br /&gt;
&lt;br /&gt;
In order to extend SoSIM to mechatronic systems, several improvements have been carried out. The basic infrastructure allowing to simulate multiple drones and combining different levels for the different system components including ROS was described in [1]. The architecture of the complete simulation environment is shown in Figure 1. The arrows represent the control flow in the simulator. Depending on the simulation level, some of the functional blocks may be inactive. So, at the functional level ROS is not used. Thus, neither the ROS core and the MAVROS block, nor the Sync.Clock ROS node are required. The functional drone simulator (now to be extended to several drones) interacts directly with the ROScpp components. This is kept even when the ROS core is included. The synchronization clock will also be needed. Only when any of the drones is modeled with a detailed autopilot and physics, the MAVROS block is added in order to support the communication with the drone through MAVLink.&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-26-I-01.png|frame|center|Figure 1 - VIPPE-ROS background simulation infrastructure]]&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
SoSIM covers the following states in the mechatronic V-Cycle of Figure 2:&lt;br /&gt;
&lt;br /&gt;
# System Design&lt;br /&gt;
# Mechanical Analysis and Design&lt;br /&gt;
# IT Analysis and Design&lt;br /&gt;
# SW Analysis and Design&lt;br /&gt;
# HW Analysis and Design&lt;br /&gt;
# SW Detailed Design&lt;br /&gt;
# SW Component Verification&lt;br /&gt;
# SW Integration and Verification&lt;br /&gt;
# HW Integration and Verification&lt;br /&gt;
# IT Integration and Verification&lt;br /&gt;
# Mechanic Integration and Verification&lt;br /&gt;
# System Integration and Verification&lt;br /&gt;
# System Acceptance Verification&lt;br /&gt;
&lt;br /&gt;
The improvement provided by SoSIM comes from the fact that the use of virtual models of the system simplifies simulation-based DSE, which greatly reduces the time required to select the most appropriate solution [2]. However, as the information about the system and its components evolve along the design process, so should their models and, in general, the infrastructure required for their simulation. As a result, different simulation levels must be considered during the different steps of the design and verification process. Table 1 shows the four simulation levels considered for the functional components:&lt;br /&gt;
&lt;br /&gt;
Table 1 - Abstraction levels for functional components simulation&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Level&lt;br /&gt;
!|Code&lt;br /&gt;
!|Timing/Energy&lt;br /&gt;
!|ROS MW&lt;br /&gt;
|-&lt;br /&gt;
|MN&lt;br /&gt;
|minimal&lt;br /&gt;
|no&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;|yes/no&lt;br /&gt;
|-&lt;br /&gt;
|MC&lt;br /&gt;
|minimal&lt;br /&gt;
|constant&lt;br /&gt;
|-&lt;br /&gt;
|FC&lt;br /&gt;
|full code&lt;br /&gt;
|constant&lt;br /&gt;
|-&lt;br /&gt;
|FD&lt;br /&gt;
|full code&lt;br /&gt;
|data dependent&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In MN (minimal/no), no model of time/energy is provided so that the code is supposed to be executed infinitely fast and without consuming any energy. In MC (minimal/constant) and FC (functional/constant), a constant time/energy is assumed each time the function is executed. These can be estimated or observed worst-case, mean-case or best case figures. In FC, the simulation time would be higher than in MC, as the actual code is executed. In the FD (functional/data dependent) model, both time and energy must be estimated over the actual code, using a state of the art technique, such as native simulation technology or binary translation.&lt;br /&gt;
&lt;br /&gt;
Additionally, not all the system components need to have the same level of detail in a single simulation. Different system components can require simulation at different abstraction levels, resulting in heterogeneous simulations, depending on the focus of each simulation. For example, components under development usually require the most accurate simulation level (FD) when verifying their correctness while library components may only require FC simulation.&lt;br /&gt;
&lt;br /&gt;
This multi-level capability is also applicable to the simulation infrastructure. For example, in robotic-based systems considered in this paper, at any of these levels it should be possible to include in the simulation the ROS infrastructure or not. The latter case would allow designers to focus on the functionality of the distributed, heterogeneous functionality. Once this is verified, the former would include the actual ROS infrastructure in order to confirm that the application functionality behaves correctly when the actual communication middleware (MW) is included.&lt;br /&gt;
&lt;br /&gt;
Regarding the simulation of the drones, four different models are considered. Let’s consider the command “move to X/Y/Z”. A minimal implementation will estimate the path and the movement time considering constant horizontal and vertical speed values, the power consumption, and will perform the movement in a single step (FN). In many cases, a more detailed model for the drone(s) is required. An autopilot and a physical simulator are needed.&lt;br /&gt;
[[File:wp6-26-D-01.png|frame|center|Figure 2 - S3D-SoSIM V cycle coverage]]&lt;/div&gt;</summary>
		<author><name>Raulgv</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-26&amp;diff=819</id>
		<title>WP6-26</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-26&amp;diff=819"/>
		<updated>2023-01-10T16:04:10Z</updated>

		<summary type="html">&lt;p&gt;Raulgv: /* Detailed Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNICAN&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux, C/C++ code&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| Timing/Energy Co-Simulation&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| Platform model&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| Functional and time performance validation&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
SoSIM is a new System-of-Systems Simulation tool developed in Comp4Drones. Its background technology is VIPPE. From the Single-Source System Design (S3D) model, the specific information required to perform a certain simulation and performance analysis task (e.g. performance simulation of a solution in a design-space exploration) is extracted and the corresponding simulation model, synthesized. This Model-to-Model generation is performed by the mSSYN tool.&lt;br /&gt;
&lt;br /&gt;
In order to extend SoSIM to mechatronic systems, several improvements have been carried out. The basic infrastructure allowing to simulate multiple drones and combining different levels for the different system components including ROS was described in [1]. The architecture of the complete simulation environment is shown in Figure 1. The arrows represent the control flow in the simulator. Depending on the simulation level, some of the functional blocks may be inactive. So, at the functional level ROS is not used. Thus, neither the ROS core and the MAVROS block, nor the Sync.Clock ROS node are required. The functional drone simulator (now to be extended to several drones) interacts directly with the ROScpp components. This is kept even when the ROS core is included. The synchronization clock will also be needed. Only when any of the drones is modeled with a detailed autopilot and physics, the MAVROS block is added in order to support the communication with the drone through MAVLink.&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-26-I-01.png|frame|center|Figure 1 - VIPPE-ROS background simulation infrastructure]]&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
SoSIM covers the following states in the mechatronic V-Cycle of Figure 2:&lt;br /&gt;
&lt;br /&gt;
# System Design&lt;br /&gt;
# Mechanical Analysis and Design&lt;br /&gt;
# IT Analysis and Design&lt;br /&gt;
# SW Analysis and Design&lt;br /&gt;
# HW Analysis and Design&lt;br /&gt;
# SW Detailed Design&lt;br /&gt;
# SW Component Verification&lt;br /&gt;
# SW Integration and Verification&lt;br /&gt;
# HW Integration and Verification&lt;br /&gt;
# IT Integration and Verification&lt;br /&gt;
# Mechanic Integration and Verification&lt;br /&gt;
# System Integration and Verification&lt;br /&gt;
# System Acceptance Verification&lt;br /&gt;
&lt;br /&gt;
The improvement provided by SoSIM comes from the fact that the use of virtual models of the system simplifies simulation-based DSE, which greatly reduces the time required to select the most appropriate solution [2]. However, as the information about the system and its components evolve along the design process, so should their models and, in general, the infrastructure required for their simulation. As a result, different simulation levels must be considered during the different steps of the design and verification process. Table 1 shows the four simulation levels considered for the functional components:&lt;br /&gt;
&lt;br /&gt;
Table 1 - Abstraction levels for functional components simulation&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Level&lt;br /&gt;
!|Code&lt;br /&gt;
!|Timing/Energy&lt;br /&gt;
!|ROS MW&lt;br /&gt;
|-&lt;br /&gt;
|MN&lt;br /&gt;
|minimal&lt;br /&gt;
|no&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;|yes/no&lt;br /&gt;
|-&lt;br /&gt;
|MC&lt;br /&gt;
|minimal&lt;br /&gt;
|constant&lt;br /&gt;
|-&lt;br /&gt;
|FC&lt;br /&gt;
|full code&lt;br /&gt;
|constant&lt;br /&gt;
|-&lt;br /&gt;
|FD&lt;br /&gt;
|full code&lt;br /&gt;
|data dependent&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In MN (minimal/no), no model of time/energy is provided so that the code is supposed to be executed infinitely fast and without consuming any energy. In MC (minimal/constant) and FC (functional/constant), a constant time/energy is assumed each time the function is executed. These can be estimated or observed worst-case, mean-case or best case figures. In FC, the simulation time would be higher than in MC, as the actual code is executed. In the FD (functional/data dependent) model, both time and energy must be estimated over the actual code, using a state of the art technique, such as native simulation technology or binary translation.&lt;br /&gt;
&lt;br /&gt;
Additionally, not all the system components need to have the same level of detail in a single simulation. Different system components can require simulation at different abstraction levels, resulting in heterogeneous simulations, depending on the focus of each simulation. For example, components under development usually require the most accurate simulation level (FD) when verifying their correctness while library components may only require FC simulation.&lt;br /&gt;
&lt;br /&gt;
This multi-level capability is also applicable to the simulation infrastructure. For example, in robotic-based systems considered in this paper, at any of these levels it should be possible to include in the simulation the ROS infrastructure or not. The latter case would allow designers to focus on the functionality of the distributed, heterogeneous functionality. Once this is verified, the former would include the actual ROS infrastructure in order to confirm that the application functionality behaves correctly when the actual communication middleware (MW) is included.&lt;br /&gt;
&lt;br /&gt;
Regarding the simulation of the drones, four different models are considered. Let’s consider the command “move to X/Y/Z”. A minimal implementation will estimate the path and the movement time considering constant horizontal and vertical speed values, the power consumption, and will perform the movement in a single step (FN). In many cases, a more detailed model for the drone(s) is required. An autopilot and a physical simulator are needed.&lt;/div&gt;</summary>
		<author><name>Raulgv</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-26&amp;diff=818</id>
		<title>WP6-26</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-26&amp;diff=818"/>
		<updated>2023-01-10T16:03:22Z</updated>

		<summary type="html">&lt;p&gt;Raulgv: /* Detailed Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNICAN&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux, C/C++ code&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| Timing/Energy Co-Simulation&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| Platform model&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| Functional and time performance validation&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
SoSIM is a new System-of-Systems Simulation tool developed in Comp4Drones. Its background technology is VIPPE. From the Single-Source System Design (S3D) model, the specific information required to perform a certain simulation and performance analysis task (e.g. performance simulation of a solution in a design-space exploration) is extracted and the corresponding simulation model, synthesized. This Model-to-Model generation is performed by the mSSYN tool.&lt;br /&gt;
&lt;br /&gt;
In order to extend SoSIM to mechatronic systems, several improvements have been carried out. The basic infrastructure allowing to simulate multiple drones and combining different levels for the different system components including ROS was described in [1]. The architecture of the complete simulation environment is shown in Figure 1. The arrows represent the control flow in the simulator. Depending on the simulation level, some of the functional blocks may be inactive. So, at the functional level ROS is not used. Thus, neither the ROS core and the MAVROS block, nor the Sync.Clock ROS node are required. The functional drone simulator (now to be extended to several drones) interacts directly with the ROScpp components. This is kept even when the ROS core is included. The synchronization clock will also be needed. Only when any of the drones is modeled with a detailed autopilot and physics, the MAVROS block is added in order to support the communication with the drone through MAVLink.&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-26-I-01.png|frame|center|Figure 1 - VIPPE-ROS background simulation infrastructure]]&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
SoSIM covers the following states in the mechatronic V-Cycle of Figure 2:&lt;br /&gt;
&lt;br /&gt;
# System Design&lt;br /&gt;
# Mechanical Analysis and Design&lt;br /&gt;
# IT Analysis and Design&lt;br /&gt;
# SW Analysis and Design&lt;br /&gt;
# HW Analysis and Design&lt;br /&gt;
# SW Detailed Design&lt;br /&gt;
# SW Component Verification&lt;br /&gt;
# SW Integration and Verification&lt;br /&gt;
# HW Integration and Verification&lt;br /&gt;
# IT Integration and Verification&lt;br /&gt;
# Mechanic Integration and Verification&lt;br /&gt;
# System Integration and Verification&lt;br /&gt;
# System Acceptance Verification&lt;br /&gt;
&lt;br /&gt;
The improvement provided by SoSIM comes from the fact that the use of virtual models of the system simplifies simulation-based DSE, which greatly reduces the time required to select the most appropriate solution [2]. However, as the information about the system and its components evolve along the design process, so should their models and, in general, the infrastructure required for their simulation. As a result, different simulation levels must be considered during the different steps of the design and verification process. Table 1 shows the four simulation levels considered for the functional components:&lt;br /&gt;
&lt;br /&gt;
Table 1 - Abstraction levels for functional components simulation&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Level&lt;br /&gt;
!|Code&lt;br /&gt;
!|Timing/Energy&lt;br /&gt;
!|ROS MW&lt;br /&gt;
|-&lt;br /&gt;
|MN&lt;br /&gt;
|minimal&lt;br /&gt;
|no&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;|yes/no&lt;br /&gt;
|-&lt;br /&gt;
|MC&lt;br /&gt;
|minimal&lt;br /&gt;
|constant&lt;br /&gt;
|-&lt;br /&gt;
|FC&lt;br /&gt;
|full code&lt;br /&gt;
|constant&lt;br /&gt;
|-&lt;br /&gt;
|FD&lt;br /&gt;
|full code&lt;br /&gt;
|data dependent&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Raulgv</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-26&amp;diff=817</id>
		<title>WP6-26</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-26&amp;diff=817"/>
		<updated>2023-01-10T15:45:11Z</updated>

		<summary type="html">&lt;p&gt;Raulgv: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNICAN&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux, C/C++ code&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| Timing/Energy Co-Simulation&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| Platform model&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| Functional and time performance validation&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
SoSIM is a new System-of-Systems Simulation tool developed in Comp4Drones. Its background technology is VIPPE. From the Single-Source System Design (S3D) model, the specific information required to perform a certain simulation and performance analysis task (e.g. performance simulation of a solution in a design-space exploration) is extracted and the corresponding simulation model, synthesized. This Model-to-Model generation is performed by the mSSYN tool.&lt;br /&gt;
&lt;br /&gt;
In order to extend SoSIM to mechatronic systems, several improvements have been carried out. The basic infrastructure allowing to simulate multiple drones and combining different levels for the different system components including ROS was described in [1]. The architecture of the complete simulation environment is shown in Figure 1. The arrows represent the control flow in the simulator. Depending on the simulation level, some of the functional blocks may be inactive. So, at the functional level ROS is not used. Thus, neither the ROS core and the MAVROS block, nor the Sync.Clock ROS node are required. The functional drone simulator (now to be extended to several drones) interacts directly with the ROScpp components. This is kept even when the ROS core is included. The synchronization clock will also be needed. Only when any of the drones is modeled with a detailed autopilot and physics, the MAVROS block is added in order to support the communication with the drone through MAVLink.&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-26-I-01.png|frame|center|Figure 1 - VIPPE-ROS background simulation infrastructure]]&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
SoSIM covers the following states in the mechatronic V-Cycle of Figure 2:&lt;br /&gt;
&lt;br /&gt;
# System Design&lt;br /&gt;
# Mechanical Analysis and Design&lt;br /&gt;
# IT Analysis and Design&lt;br /&gt;
# SW Analysis and Design&lt;br /&gt;
# HW Analysis and Design&lt;br /&gt;
# SW Detailed Design&lt;br /&gt;
# SW Component Verification&lt;br /&gt;
# SW Integration and Verification&lt;br /&gt;
# HW Integration and Verification&lt;br /&gt;
# IT Integration and Verification&lt;br /&gt;
# Mechanic Integration and Verification&lt;br /&gt;
# System Integration and Verification&lt;br /&gt;
# System Acceptance Verification&lt;br /&gt;
&lt;br /&gt;
The improvement provided by SoSIM comes from the fact that the use of virtual models of the system simplifies simulation-based DSE, which greatly reduces the time required to select the most appropriate solution [2]. However, as the information about the system and its components evolve along the design process, so should their models and, in general, the infrastructure required for their simulation. As a result, different simulation levels must be considered during the different steps of the design and verification process. Table 1 shows the four simulation levels considered for the functional components:&lt;br /&gt;
&lt;br /&gt;
Table 1 - Abstraction levels for functional components simulation&lt;/div&gt;</summary>
		<author><name>Raulgv</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=File:Wp6-26-I-01.png&amp;diff=816</id>
		<title>File:Wp6-26-I-01.png</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=File:Wp6-26-I-01.png&amp;diff=816"/>
		<updated>2023-01-10T15:42:21Z</updated>

		<summary type="html">&lt;p&gt;Raulgv: VIPPE-ROS background simulation infrastructure&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
VIPPE-ROS background simulation infrastructure&lt;/div&gt;</summary>
		<author><name>Raulgv</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-26&amp;diff=815</id>
		<title>WP6-26</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-26&amp;diff=815"/>
		<updated>2023-01-10T15:41:46Z</updated>

		<summary type="html">&lt;p&gt;Raulgv: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNICAN&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux, C/C++ code&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| Timing/Energy Co-Simulation&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| Platform model&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| Functional and time performance validation&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
SoSIM is a new System-of-Systems Simulation tool developed in Comp4Drones. Its background technology is VIPPE. From the Single-Source System Design (S3D) model, the specific information required to perform a certain simulation and performance analysis task (e.g. performance simulation of a solution in a design-space exploration) is extracted and the corresponding simulation model, synthesized. This Model-to-Model generation is performed by the mSSYN tool.&lt;br /&gt;
&lt;br /&gt;
In order to extend SoSIM to mechatronic systems, several improvements have been carried out. The basic infrastructure allowing to simulate multiple drones and combining different levels for the different system components including ROS was described in [1]. The architecture of the complete simulation environment is shown in Figure 1. The arrows represent the control flow in the simulator. Depending on the simulation level, some of the functional blocks may be inactive. So, at the functional level ROS is not used. Thus, neither the ROS core and the MAVROS block, nor the Sync.Clock ROS node are required. The functional drone simulator (now to be extended to several drones) interacts directly with the ROScpp components. This is kept even when the ROS core is included. The synchronization clock will also be needed. Only when any of the drones is modeled with a detailed autopilot and physics, the MAVROS block is added in order to support the communication with the drone through MAVLink.&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-26-I-01.png]]&lt;/div&gt;</summary>
		<author><name>Raulgv</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-26&amp;diff=814</id>
		<title>WP6-26</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-26&amp;diff=814"/>
		<updated>2023-01-10T15:39:49Z</updated>

		<summary type="html">&lt;p&gt;Raulgv: Created page with &amp;quot;== Introduction == {|class=&amp;quot;wikitable&amp;quot; |  ID|| WP6- |- |   Contributor	|| UNICAN |- |   Levels	|| Tool, Platform |- |   Require	|| Linux, C/C++ code |- |   Provide	|| Timing/Energy Co-Simulation |- |   Input	|| Platform model |- |   Output	|| Functional and time performance validation |- |   C4D tooling		|| n.a. |- |   TRL		||  |}&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNICAN&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux, C/C++ code&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| Timing/Energy Co-Simulation&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| Platform model&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| Functional and time performance validation&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| &lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Raulgv</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-25&amp;diff=813</id>
		<title>WP6-25</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-25&amp;diff=813"/>
		<updated>2023-01-10T15:33:10Z</updated>

		<summary type="html">&lt;p&gt;Raulgv: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNICAN&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux, Eclipse EMF&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| Executable system level modeling, automated generation of embedded software, native execution based validation&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| Platform model&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| Code generation&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
S3D (s3d.unican.es) is a model-driven, system design framework around a single UML/MARTE model [1]. The model is used as a centralized repository of all the information about the system which is relevant for the design. From the model, the specific information required to perform a certain simulation and performance analysis task (e.g. performance simulation of a solution in a design-space exploration) is extracted and the corresponding simulation model, synthesized. This Model-to-Model generation is performed by the mSSYN tool. The model is simulated by the VIPPE tool. It is worth mentioning that the M2M technology used to generate the simulation models automatically from the system model can be extended to synthesize the SW stack to be executed in each computational node. The corresponding synthesis tool is eSSYN (essyn.unican.es).&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-25_I_01.png]]&lt;br /&gt;
&lt;br /&gt;
==Contribution and Improvements==&lt;br /&gt;
&lt;br /&gt;
The fundamental S3D modeling methodology based on required-provided services has been extended in order to support components using ROS, a publish-subscribe communication middleware [2]. In this paper, Model-Driven Design (MDD) is proposed for modeling, simulation and performance analysis of SW intensive robot-based services. The work shows that robots can be integrated into a system engineering framework without affecting their modeling, design and development features. In order to seamlessly integrate these additional kinds of electro-mechanical components, a platform-based approach is proposed. The large number of different robots available makes it very difficult to reuse the same functional components from one project to another if the robots are changed. For certain kinds of robots with many similar functions, such as drones, a common list of methods can be defined so that the same code is valid for all of them simply by associating the functions with the appropriate code. An additional advantage of this common language is a significant reduction in the programming effort which can be reduced around 30%. The cost to be paid is a drop in simulation speed. In the use case of the paper, this reduction can be as high as 16% when a code intensive in ROS calls is used.&lt;br /&gt;
&lt;br /&gt;
Another interesting result is that if the MDD modeling methodology is general enough, no extension is needed in order to support ROS. Identifying which components make use of ROS is sufficient. In this case, the ROS infrastructure is automatically integrated in the system and used by those ports requiring it. A methodology for rough estimation of execution time of the ROS code has been proposed. Although the error can be as high as 45%, the impact is small as the ROS code will be only a fraction of the total executable. In any case, an improvement over not annotating any execution time for ROS is achieved and this improvement is higher when it is more needed, that is, when the percentage of ROS code is higher. The improvement can be as high as 83.5% with only 2.55% of ROS code.&lt;br /&gt;
&lt;br /&gt;
The proposed framework enables the seamless integration of robots into a MDD framework so that the whole service can be modelled, simulated and its performance analyzed, fully supporting essential stages of the V-Cycle as explained below.&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
S3D covers the modelling and automatic generation of the multi-level executable models used to validate and verify the system at the different abstraction levels. S3D supports the modelling activities at each stage of the V-Cycle for mechatronic systems as explained below:&lt;br /&gt;
[[File:wp6-25_DD_01.png]]&lt;br /&gt;
&lt;br /&gt;
In all these stages, S3D supports reusability from previous projects as both functional and test-bench components can be imported from libraries:&lt;br /&gt;
&lt;br /&gt;
# System Requirement Analysis. Based on Papyrus and the UML/MARTE standard, S3D can help in analysing and finally, specify the functional and non-functional requirements to be satisfied by the System (or System of Systems),&lt;br /&gt;
# System Design. Once the requirements have been specified, the system and its environment are fully specified in terms of the interface among them, the domain constraints (input rates, types and constraints among them) and the system functional and non-functional requirements (output rates, input/output delays, energy, etc.). As part of the System Design stage, partitioning of the system in the mechanical and the IT (digital) parts is performed. In S3D, the mechanical part will be incorporated to the Test-Bench (TB) of the (digital) system. As its functionality and performance is fully specified, the TB, including the model of the robots, can be developed.&lt;br /&gt;
# Mechanical Analysis and Design. The inclusion of the robots as TB components allows the analysis of their constraints and the design of the mechanical part (number and type of robots, design requirements to each one and among them, etc.).&lt;br /&gt;
# IT Analysis and Design. At this stage, the analysis and specification of the Platform-Description Model (PDM) can be performed. On the other side, the Platform-Independent Model can be specified.&lt;br /&gt;
# HW Analysis &amp;amp; Design. At this stage, the design of the initial Platform-Description Model (PDM), can be performed and an initial architecture of nodes and their internal HW architecture can be proposed. The final PDM will be decided later during architectural mapping as part of the System Integration &amp;amp; Verification stage.&lt;br /&gt;
# SW Analysis &amp;amp; Design and SW Detailed Design. During this stage, the hierarchical partitioning of the PIM in sub-systems and finally, components fully specified in their interfaces and functional and non-functional constraints, is decided.&lt;br /&gt;
# SW Development. The goal of this stage is to develop the code implementing the functional constraints. Papyrus supports both the Modelling and the Development Views and S3D links one with the other by annotating the components with their implementation files using the file’s paths as properties.&lt;br /&gt;
# SW Component Verification. S3D links each component with their Test-Benches so that the component can be verified both in the host (verification) and the target platform (testing) in case it has been decided already and it is available.&lt;br /&gt;
# In the rest of stages:&lt;br /&gt;
## SW Integration &amp;amp; Verification.&lt;br /&gt;
## HW Integration &amp;amp; Verification.&lt;br /&gt;
## IT Integration &amp;amp; Verification.&lt;br /&gt;
## Mechanical Integration &amp;amp; Verification.&lt;br /&gt;
## System Integration &amp;amp; Verification.&lt;br /&gt;
## System Acceptance Verification.&lt;br /&gt;
&lt;br /&gt;
S3D helps in supporting the improvement of the model through the different stages and the automatic generation of the executables models so that the functional and non-functional constraints can be verified. Architectural mapping, that is, the final mapping of functional components in the PIM to execution resources in the PDM is fixed during System Integration and Verification when an accurate simulation and performance analysis model including the actual code can be generated. This model can provide accurate metrics ensuring final satisfaction of the implementation decided after Design-Space Exploration of as many possibilities as required.&lt;br /&gt;
&lt;br /&gt;
== Interoperability with other C4D tools ==&lt;br /&gt;
S3D is based on fundamental Model-Driven, Component-Based computational concepts. As a consequence, it keeps interoperability with many other system modeling environments. The following picture shows the interoperability of S3D with other tools in the C4D design and Verification environment:&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-25_IO_01.png]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
[1] E. Villar, J. Merino, H. Posadas, R. Henia &amp;amp; L. Rioux: “Mega-modeling of complex, distributed, heterogeneous CPS systems”, Microprocessors and Microsystems, V.78, 2020.&lt;br /&gt;
&lt;br /&gt;
[2] J. Merino, R. Gomez, H. Posadas and E. Villar: &amp;quot;Modeling and Performance Estimation of Robotic Systems using ROS: Application to drone-based Services,&amp;quot; in proc. of the Forum on specification &amp;amp; Design Languages (FDL), IEEE, 2021.&lt;/div&gt;</summary>
		<author><name>Raulgv</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=Component_repository&amp;diff=812</id>
		<title>Component repository</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=Component_repository&amp;diff=812"/>
		<updated>2023-01-10T14:54:24Z</updated>

		<summary type="html">&lt;p&gt;Raulgv: /* Components list */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This repository aims at providing common components usable in different application domains, in particular those covered by project use-cases.&lt;br /&gt;
&lt;br /&gt;
The requirements for using a components will be listed, as well as a documentation on how to use it. The component itself will be hosted by the partner who provides it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Components list==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|ID &lt;br /&gt;
|Contributor &lt;br /&gt;
|Title&lt;br /&gt;
|-&lt;br /&gt;
|[[WP3-01]]&lt;br /&gt;
|IKERLAN&lt;br /&gt;
|Safety function - Pre-Certified SOM&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-02]] &lt;br /&gt;
|EDI &lt;br /&gt;
|Modular SoC-based embedded reference architecture&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-03]]&lt;br /&gt;
|BUT	&lt;br /&gt;
|Sensor information algorithms&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-04]]	&lt;br /&gt;
|HIB	&lt;br /&gt;
|Computer Vision Components for drones&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-10]]	&lt;br /&gt;
|IFAT	&lt;br /&gt;
|Component for trusted communication establishment&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-13]]	&lt;br /&gt;
|ENAC	&lt;br /&gt;
|Paparazzi UAV&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-14_1]]	&lt;br /&gt;
|ENSMA	&lt;br /&gt;
|Collision avoidance and geo-fencing&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-14_2]]	&lt;br /&gt;
|ENSMA	&lt;br /&gt;
|Distributed control of multi-drone system&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-15_1]]	&lt;br /&gt;
|ACORDE	&lt;br /&gt;
|UWB based indoor positioning&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-15_2]]&lt;br /&gt;
|ACORDE	&lt;br /&gt;
|Multi-antenna GNSS/INS based navigation&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-16]]	&lt;br /&gt;
|SCALIAN	&lt;br /&gt;
|EZ_Chains Fleet Architecture&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-19_1]]	&lt;br /&gt;
|IMEC	&lt;br /&gt;
|Hyperspectral payload&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-19_2]]	&lt;br /&gt;
|IMEC	&lt;br /&gt;
|Hyperspectral image processing&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-20]]	&lt;br /&gt;
|MODIS	&lt;br /&gt;
|Multi-sensor positioning&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-22]]	&lt;br /&gt;
|UNIMORE	&lt;br /&gt;
|Onboard Compute Platform Desing Methodology&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-24]]	&lt;br /&gt;
|UNIVAQ	&lt;br /&gt;
|Efficient digital implementation of controllers&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-26]]	&lt;br /&gt;
|UWB	&lt;br /&gt;
|Droneport: an autonomous drone battery management system&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-28]]	&lt;br /&gt;
|UNISS	&lt;br /&gt;
|Accelerator Design Methodology for OOCP&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-36_1]]	&lt;br /&gt;
|UDANET	&lt;br /&gt;
|Smart and predictive energy management system&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-36_2]]&lt;br /&gt;
|UDANET	&lt;br /&gt;
|AI drone system modules&lt;br /&gt;
|- &lt;br /&gt;
|[[WP3-37]]	&lt;br /&gt;
|Aitek	&lt;br /&gt;
|Video and data analytics&lt;br /&gt;
|- &lt;br /&gt;
|[[WP4-2]]	&lt;br /&gt;
|SCALIAN	&lt;br /&gt;
|EZ_Land Precision landing&lt;br /&gt;
|- &lt;br /&gt;
|[[WP4-5]]	&lt;br /&gt;
|SCALIAN	&lt;br /&gt;
|AI detection for clearance&lt;br /&gt;
|- &lt;br /&gt;
|[[WP4-07]]	&lt;br /&gt;
|ROT&lt;br /&gt;
|Run-Time Safety Checker&lt;br /&gt;
|- &lt;br /&gt;
|[[WP4-10]]	&lt;br /&gt;
|ALM&lt;br /&gt;
|Cooperative Planner&lt;br /&gt;
|- &lt;br /&gt;
|[[WP4-14]]	&lt;br /&gt;
|ALM&lt;br /&gt;
|Map Enhancement Service&lt;br /&gt;
|- &lt;br /&gt;
|[[WP4-15]]	&lt;br /&gt;
|ALM&lt;br /&gt;
|Visual Analytics&lt;br /&gt;
|- &lt;br /&gt;
|[[WP4-16]]	&lt;br /&gt;
|ACORDE&lt;br /&gt;
|Enhanced Navigation Software&lt;br /&gt;
|- &lt;br /&gt;
|[[WP4-17]]	&lt;br /&gt;
|ACORDE&lt;br /&gt;
|Anchor&amp;amp;Tag firmware of the Indoor  Positioning System &lt;br /&gt;
|- &lt;br /&gt;
|[[WP4-18_A]]	&lt;br /&gt;
|TEKNE	&lt;br /&gt;
|Drone-Rover Transponder&lt;br /&gt;
|- &lt;br /&gt;
|[[WP4-20]]	&lt;br /&gt;
|ALM&lt;br /&gt;
|Attractor-based Navigation&lt;br /&gt;
|- &lt;br /&gt;
|[[WP4-22]]	&lt;br /&gt;
|ALM&lt;br /&gt;
|Shared Reference Frame&lt;br /&gt;
|- &lt;br /&gt;
|[[WP4-32]]	&lt;br /&gt;
|SHERPA&lt;br /&gt;
|Dynamic control development for navigation and precision landing&lt;br /&gt;
|-&lt;br /&gt;
|[[WP4-33]]	&lt;br /&gt;
|UNIVAQ	&lt;br /&gt;
|Autonomy, cooperation, and awareness&lt;br /&gt;
|-&lt;br /&gt;
|[[WP4-36]]	&lt;br /&gt;
|IMCS&lt;br /&gt;
|Autonomous Decision Making in Critical Situations&lt;br /&gt;
|-&lt;br /&gt;
|[[WP4-37]]	&lt;br /&gt;
|IMCS&lt;br /&gt;
|Algorithms for Runtime Safety Monitoring&lt;br /&gt;
|-  &lt;br /&gt;
|[[WP4-39]]	&lt;br /&gt;
|HIB&lt;br /&gt;
|Simulated data aggregator supporting intelligent decision in computer vision components&lt;br /&gt;
|- &lt;br /&gt;
|[[WP4-42]]	&lt;br /&gt;
|SCALIAN	&lt;br /&gt;
|AI Stabilization&lt;br /&gt;
|- &lt;br /&gt;
|[[WP5-02]]	&lt;br /&gt;
|IKERLAN&lt;br /&gt;
|Security Management Toolchain&lt;br /&gt;
|- &lt;br /&gt;
|[[WP5-03]]	&lt;br /&gt;
|SCALIAN	&lt;br /&gt;
|EZ_Com Safe fleet communication&lt;br /&gt;
|- &lt;br /&gt;
|[[WP5-08]]	&lt;br /&gt;
|ROT&lt;br /&gt;
|Lightweight Cryptography&lt;br /&gt;
|- &lt;br /&gt;
|[[WP5-09]]	&lt;br /&gt;
|ABI	&lt;br /&gt;
|Communication scheme for unified system management&lt;br /&gt;
|- &lt;br /&gt;
|[[WP5-05_A]]	&lt;br /&gt;
|TEKNE	&lt;br /&gt;
|LP-WAN for UAV identification and monitoring&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|[[WP5-11_ACO]]	&lt;br /&gt;
|ACORDE&lt;br /&gt;
|Navigation system with anti-jamming and anti-spoofing features&lt;br /&gt;
|- &lt;br /&gt;
|[[WP5-16-AIT]]	&lt;br /&gt;
|AIT&lt;br /&gt;
|Cryptographic algorithms adapted for drones&lt;br /&gt;
|- &lt;br /&gt;
|[[WP5-19_ACO]]	&lt;br /&gt;
|ACORDE&lt;br /&gt;
|Robust communication for an improved Indoor Positioning System&lt;br /&gt;
|- &lt;br /&gt;
|[[WP6-P4R]]	&lt;br /&gt;
|CEA	&lt;br /&gt;
|Model driven engineering&lt;br /&gt;
|- &lt;br /&gt;
|[[WP6-20]]&lt;br /&gt;
|ACORDE&lt;br /&gt;
|ESL embedded SW Design Environment (ESDE)&lt;br /&gt;
|- &lt;br /&gt;
|[[WP6-21]]	&lt;br /&gt;
|ACORDE&lt;br /&gt;
|Indoor Positioning System Modelling&amp;amp;Analysis Framework (IPS-MAF)&lt;br /&gt;
|- &lt;br /&gt;
|[[WP6-17]]	&lt;br /&gt;
|UNIVAQ&lt;br /&gt;
|HW/SW CO-DEsign of HEterogeneous Parallel dedicated SYstems (HEPSYCODE)&lt;br /&gt;
|- &lt;br /&gt;
|[[WP6-34]]	&lt;br /&gt;
|UNIVAQ&lt;br /&gt;
|HEPSYCODE SystemC SIMulator Version 2.0 (HEPSIM2)&lt;br /&gt;
|-&lt;br /&gt;
|[[WP6-25]]&lt;br /&gt;
|UNICAN&lt;br /&gt;
|S3D - Model-Driven Analysis and Design Framework&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Raulgv</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-25&amp;diff=811</id>
		<title>WP6-25</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-25&amp;diff=811"/>
		<updated>2023-01-10T13:14:36Z</updated>

		<summary type="html">&lt;p&gt;Raulgv: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-HEPSIM2&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNICAN&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux, Eclipse EMF&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| Executable system level modeling, automated generation of embedded software, native execution based validation&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| Platform model&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| Code generation&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
S3D (s3d.unican.es) is a model-driven, system design framework around a single UML/MARTE model [1]. The model is used as a centralized repository of all the information about the system which is relevant for the design. From the model, the specific information required to perform a certain simulation and performance analysis task (e.g. performance simulation of a solution in a design-space exploration) is extracted and the corresponding simulation model, synthesized. This Model-to-Model generation is performed by the mSSYN tool. The model is simulated by the VIPPE tool. It is worth mentioning that the M2M technology used to generate the simulation models automatically from the system model can be extended to synthesize the SW stack to be executed in each computational node. The corresponding synthesis tool is eSSYN (essyn.unican.es).&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-25_I_01.png]]&lt;br /&gt;
&lt;br /&gt;
==Contribution and Improvements==&lt;br /&gt;
&lt;br /&gt;
The fundamental S3D modeling methodology based on required-provided services has been extended in order to support components using ROS, a publish-subscribe communication middleware [2]. In this paper, Model-Driven Design (MDD) is proposed for modeling, simulation and performance analysis of SW intensive robot-based services. The work shows that robots can be integrated into a system engineering framework without affecting their modeling, design and development features. In order to seamlessly integrate these additional kinds of electro-mechanical components, a platform-based approach is proposed. The large number of different robots available makes it very difficult to reuse the same functional components from one project to another if the robots are changed. For certain kinds of robots with many similar functions, such as drones, a common list of methods can be defined so that the same code is valid for all of them simply by associating the functions with the appropriate code. An additional advantage of this common language is a significant reduction in the programming effort which can be reduced around 30%. The cost to be paid is a drop in simulation speed. In the use case of the paper, this reduction can be as high as 16% when a code intensive in ROS calls is used.&lt;br /&gt;
&lt;br /&gt;
Another interesting result is that if the MDD modeling methodology is general enough, no extension is needed in order to support ROS. Identifying which components make use of ROS is sufficient. In this case, the ROS infrastructure is automatically integrated in the system and used by those ports requiring it. A methodology for rough estimation of execution time of the ROS code has been proposed. Although the error can be as high as 45%, the impact is small as the ROS code will be only a fraction of the total executable. In any case, an improvement over not annotating any execution time for ROS is achieved and this improvement is higher when it is more needed, that is, when the percentage of ROS code is higher. The improvement can be as high as 83.5% with only 2.55% of ROS code.&lt;br /&gt;
&lt;br /&gt;
The proposed framework enables the seamless integration of robots into a MDD framework so that the whole service can be modelled, simulated and its performance analyzed, fully supporting essential stages of the V-Cycle as explained below.&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
S3D covers the modelling and automatic generation of the multi-level executable models used to validate and verify the system at the different abstraction levels. S3D supports the modelling activities at each stage of the V-Cycle for mechatronic systems as explained below:&lt;br /&gt;
[[File:wp6-25_DD_01.png]]&lt;br /&gt;
&lt;br /&gt;
In all these stages, S3D supports reusability from previous projects as both functional and test-bench components can be imported from libraries:&lt;br /&gt;
&lt;br /&gt;
# System Requirement Analysis. Based on Papyrus and the UML/MARTE standard, S3D can help in analysing and finally, specify the functional and non-functional requirements to be satisfied by the System (or System of Systems),&lt;br /&gt;
# System Design. Once the requirements have been specified, the system and its environment are fully specified in terms of the interface among them, the domain constraints (input rates, types and constraints among them) and the system functional and non-functional requirements (output rates, input/output delays, energy, etc.). As part of the System Design stage, partitioning of the system in the mechanical and the IT (digital) parts is performed. In S3D, the mechanical part will be incorporated to the Test-Bench (TB) of the (digital) system. As its functionality and performance is fully specified, the TB, including the model of the robots, can be developed.&lt;br /&gt;
# Mechanical Analysis and Design. The inclusion of the robots as TB components allows the analysis of their constraints and the design of the mechanical part (number and type of robots, design requirements to each one and among them, etc.).&lt;br /&gt;
# IT Analysis and Design. At this stage, the analysis and specification of the Platform-Description Model (PDM) can be performed. On the other side, the Platform-Independent Model can be specified.&lt;br /&gt;
# HW Analysis &amp;amp; Design. At this stage, the design of the initial Platform-Description Model (PDM), can be performed and an initial architecture of nodes and their internal HW architecture can be proposed. The final PDM will be decided later during architectural mapping as part of the System Integration &amp;amp; Verification stage.&lt;br /&gt;
# SW Analysis &amp;amp; Design and SW Detailed Design. During this stage, the hierarchical partitioning of the PIM in sub-systems and finally, components fully specified in their interfaces and functional and non-functional constraints, is decided.&lt;br /&gt;
# SW Development. The goal of this stage is to develop the code implementing the functional constraints. Papyrus supports both the Modelling and the Development Views and S3D links one with the other by annotating the components with their implementation files using the file’s paths as properties.&lt;br /&gt;
# SW Component Verification. S3D links each component with their Test-Benches so that the component can be verified both in the host (verification) and the target platform (testing) in case it has been decided already and it is available.&lt;br /&gt;
# In the rest of stages:&lt;br /&gt;
## SW Integration &amp;amp; Verification.&lt;br /&gt;
## HW Integration &amp;amp; Verification.&lt;br /&gt;
## IT Integration &amp;amp; Verification.&lt;br /&gt;
## Mechanical Integration &amp;amp; Verification.&lt;br /&gt;
## System Integration &amp;amp; Verification.&lt;br /&gt;
## System Acceptance Verification.&lt;br /&gt;
&lt;br /&gt;
S3D helps in supporting the improvement of the model through the different stages and the automatic generation of the executables models so that the functional and non-functional constraints can be verified. Architectural mapping, that is, the final mapping of functional components in the PIM to execution resources in the PDM is fixed during System Integration and Verification when an accurate simulation and performance analysis model including the actual code can be generated. This model can provide accurate metrics ensuring final satisfaction of the implementation decided after Design-Space Exploration of as many possibilities as required.&lt;br /&gt;
&lt;br /&gt;
== Interoperability with other C4D tools ==&lt;br /&gt;
S3D is based on fundamental Model-Driven, Component-Based computational concepts. As a consequence, it keeps interoperability with many other system modeling environments. The following picture shows the interoperability of S3D with other tools in the C4D design and Verification environment:&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-25_IO_01.png]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
[1] E. Villar, J. Merino, H. Posadas, R. Henia &amp;amp; L. Rioux: “Mega-modeling of complex, distributed, heterogeneous CPS systems”, Microprocessors and Microsystems, V.78, 2020.&lt;br /&gt;
&lt;br /&gt;
[2] J. Merino, R. Gomez, H. Posadas and E. Villar: &amp;quot;Modeling and Performance Estimation of Robotic Systems using ROS: Application to drone-based Services,&amp;quot; in proc. of the Forum on specification &amp;amp; Design Languages (FDL), IEEE, 2021.&lt;/div&gt;</summary>
		<author><name>Raulgv</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=File:Wp6-25_IO_01.png&amp;diff=810</id>
		<title>File:Wp6-25 IO 01.png</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=File:Wp6-25_IO_01.png&amp;diff=810"/>
		<updated>2023-01-10T13:12:42Z</updated>

		<summary type="html">&lt;p&gt;Raulgv: Raulgv uploaded a new version of File:Wp6-25 IO 01.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Raulgv</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-25&amp;diff=809</id>
		<title>WP6-25</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-25&amp;diff=809"/>
		<updated>2023-01-10T13:05:06Z</updated>

		<summary type="html">&lt;p&gt;Raulgv: /* Interoperability with other C4D tools */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-HEPSIM2&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNICAN&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux, Eclipse EMF&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| Executable system level modeling, automated generation of embedded software, native execution based validation&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| Platform model&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| Code generation&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
S3D (s3d.unican.es) is a model-driven, system design framework around a single UML/MARTE model [1]. The model is used as a centralized repository of all the information about the system which is relevant for the design. From the model, the specific information required to perform a certain simulation and performance analysis task (e.g. performance simulation of a solution in a design-space exploration) is extracted and the corresponding simulation model, synthesized. This Model-to-Model generation is performed by the mSSYN tool. The model is simulated by the VIPPE tool. It is worth mentioning that the M2M technology used to generate the simulation models automatically from the system model can be extended to synthesize the SW stack to be executed in each computational node. The corresponding synthesis tool is eSSYN (essyn.unican.es).&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-25_I_01.png]]&lt;br /&gt;
&lt;br /&gt;
==Contribution and Improvements==&lt;br /&gt;
&lt;br /&gt;
The fundamental S3D modeling methodology based on required-provided services has been extended in order to support components using ROS, a publish-subscribe communication middleware [2]. In this paper, Model-Driven Design (MDD) is proposed for modeling, simulation and performance analysis of SW intensive robot-based services. The work shows that robots can be integrated into a system engineering framework without affecting their modeling, design and development features. In order to seamlessly integrate these additional kinds of electro-mechanical components, a platform-based approach is proposed. The large number of different robots available makes it very difficult to reuse the same functional components from one project to another if the robots are changed. For certain kinds of robots with many similar functions, such as drones, a common list of methods can be defined so that the same code is valid for all of them simply by associating the functions with the appropriate code. An additional advantage of this common language is a significant reduction in the programming effort which can be reduced around 30%. The cost to be paid is a drop in simulation speed. In the use case of the paper, this reduction can be as high as 16% when a code intensive in ROS calls is used.&lt;br /&gt;
&lt;br /&gt;
Another interesting result is that if the MDD modeling methodology is general enough, no extension is needed in order to support ROS. Identifying which components make use of ROS is sufficient. In this case, the ROS infrastructure is automatically integrated in the system and used by those ports requiring it. A methodology for rough estimation of execution time of the ROS code has been proposed. Although the error can be as high as 45%, the impact is small as the ROS code will be only a fraction of the total executable. In any case, an improvement over not annotating any execution time for ROS is achieved and this improvement is higher when it is more needed, that is, when the percentage of ROS code is higher. The improvement can be as high as 83.5% with only 2.55% of ROS code.&lt;br /&gt;
&lt;br /&gt;
The proposed framework enables the seamless integration of robots into a MDD framework so that the whole service can be modelled, simulated and its performance analyzed, fully supporting essential stages of the V-Cycle as explained below.&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
S3D covers the modelling and automatic generation of the multi-level executable models used to validate and verify the system at the different abstraction levels. S3D supports the modelling activities at each stage of the V-Cycle for mechatronic systems as explained below:&lt;br /&gt;
[[File:wp6-25_DD_01.png]]&lt;br /&gt;
&lt;br /&gt;
In all these stages, S3D supports reusability from previous projects as both functional and test-bench components can be imported from libraries:&lt;br /&gt;
&lt;br /&gt;
# System Requirement Analysis. Based on Papyrus and the UML/MARTE standard, S3D can help in analysing and finally, specify the functional and non-functional requirements to be satisfied by the System (or System of Systems),&lt;br /&gt;
# System Design. Once the requirements have been specified, the system and its environment are fully specified in terms of the interface among them, the domain constraints (input rates, types and constraints among them) and the system functional and non-functional requirements (output rates, input/output delays, energy, etc.). As part of the System Design stage, partitioning of the system in the mechanical and the IT (digital) parts is performed. In S3D, the mechanical part will be incorporated to the Test-Bench (TB) of the (digital) system. As its functionality and performance is fully specified, the TB, including the model of the robots, can be developed.&lt;br /&gt;
# Mechanical Analysis and Design. The inclusion of the robots as TB components allows the analysis of their constraints and the design of the mechanical part (number and type of robots, design requirements to each one and among them, etc.).&lt;br /&gt;
# IT Analysis and Design. At this stage, the analysis and specification of the Platform-Description Model (PDM) can be performed. On the other side, the Platform-Independent Model can be specified.&lt;br /&gt;
# HW Analysis &amp;amp; Design. At this stage, the design of the initial Platform-Description Model (PDM), can be performed and an initial architecture of nodes and their internal HW architecture can be proposed. The final PDM will be decided later during architectural mapping as part of the System Integration &amp;amp; Verification stage.&lt;br /&gt;
# SW Analysis &amp;amp; Design and SW Detailed Design. During this stage, the hierarchical partitioning of the PIM in sub-systems and finally, components fully specified in their interfaces and functional and non-functional constraints, is decided.&lt;br /&gt;
# SW Development. The goal of this stage is to develop the code implementing the functional constraints. Papyrus supports both the Modelling and the Development Views and S3D links one with the other by annotating the components with their implementation files using the file’s paths as properties.&lt;br /&gt;
# SW Component Verification. S3D links each component with their Test-Benches so that the component can be verified both in the host (verification) and the target platform (testing) in case it has been decided already and it is available.&lt;br /&gt;
# In the rest of stages:&lt;br /&gt;
## SW Integration &amp;amp; Verification.&lt;br /&gt;
## HW Integration &amp;amp; Verification.&lt;br /&gt;
## IT Integration &amp;amp; Verification.&lt;br /&gt;
## Mechanical Integration &amp;amp; Verification.&lt;br /&gt;
## System Integration &amp;amp; Verification.&lt;br /&gt;
## System Acceptance Verification.&lt;br /&gt;
&lt;br /&gt;
S3D helps in supporting the improvement of the model through the different stages and the automatic generation of the executables models so that the functional and non-functional constraints can be verified. Architectural mapping, that is, the final mapping of functional components in the PIM to execution resources in the PDM is fixed during System Integration and Verification when an accurate simulation and performance analysis model including the actual code can be generated. This model can provide accurate metrics ensuring final satisfaction of the implementation decided after Design-Space Exploration of as many possibilities as required.&lt;br /&gt;
&lt;br /&gt;
== Interoperability with other C4D tools ==&lt;br /&gt;
S3D is based on fundamental Model-Driven, Component-Based computational concepts. As a consequence, it keeps interoperability with many other system modeling environments. The following picture shows the interoperability of S3D with other tools in the C4D design and Verification environment:&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-25_IO_01.png]]&lt;/div&gt;</summary>
		<author><name>Raulgv</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=File:Wp6-25_IO_01.png&amp;diff=808</id>
		<title>File:Wp6-25 IO 01.png</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=File:Wp6-25_IO_01.png&amp;diff=808"/>
		<updated>2023-01-10T13:04:43Z</updated>

		<summary type="html">&lt;p&gt;Raulgv: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Raulgv</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-25&amp;diff=807</id>
		<title>WP6-25</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-25&amp;diff=807"/>
		<updated>2023-01-10T13:04:27Z</updated>

		<summary type="html">&lt;p&gt;Raulgv: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-HEPSIM2&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNICAN&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux, Eclipse EMF&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| Executable system level modeling, automated generation of embedded software, native execution based validation&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| Platform model&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| Code generation&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
S3D (s3d.unican.es) is a model-driven, system design framework around a single UML/MARTE model [1]. The model is used as a centralized repository of all the information about the system which is relevant for the design. From the model, the specific information required to perform a certain simulation and performance analysis task (e.g. performance simulation of a solution in a design-space exploration) is extracted and the corresponding simulation model, synthesized. This Model-to-Model generation is performed by the mSSYN tool. The model is simulated by the VIPPE tool. It is worth mentioning that the M2M technology used to generate the simulation models automatically from the system model can be extended to synthesize the SW stack to be executed in each computational node. The corresponding synthesis tool is eSSYN (essyn.unican.es).&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-25_I_01.png]]&lt;br /&gt;
&lt;br /&gt;
==Contribution and Improvements==&lt;br /&gt;
&lt;br /&gt;
The fundamental S3D modeling methodology based on required-provided services has been extended in order to support components using ROS, a publish-subscribe communication middleware [2]. In this paper, Model-Driven Design (MDD) is proposed for modeling, simulation and performance analysis of SW intensive robot-based services. The work shows that robots can be integrated into a system engineering framework without affecting their modeling, design and development features. In order to seamlessly integrate these additional kinds of electro-mechanical components, a platform-based approach is proposed. The large number of different robots available makes it very difficult to reuse the same functional components from one project to another if the robots are changed. For certain kinds of robots with many similar functions, such as drones, a common list of methods can be defined so that the same code is valid for all of them simply by associating the functions with the appropriate code. An additional advantage of this common language is a significant reduction in the programming effort which can be reduced around 30%. The cost to be paid is a drop in simulation speed. In the use case of the paper, this reduction can be as high as 16% when a code intensive in ROS calls is used.&lt;br /&gt;
&lt;br /&gt;
Another interesting result is that if the MDD modeling methodology is general enough, no extension is needed in order to support ROS. Identifying which components make use of ROS is sufficient. In this case, the ROS infrastructure is automatically integrated in the system and used by those ports requiring it. A methodology for rough estimation of execution time of the ROS code has been proposed. Although the error can be as high as 45%, the impact is small as the ROS code will be only a fraction of the total executable. In any case, an improvement over not annotating any execution time for ROS is achieved and this improvement is higher when it is more needed, that is, when the percentage of ROS code is higher. The improvement can be as high as 83.5% with only 2.55% of ROS code.&lt;br /&gt;
&lt;br /&gt;
The proposed framework enables the seamless integration of robots into a MDD framework so that the whole service can be modelled, simulated and its performance analyzed, fully supporting essential stages of the V-Cycle as explained below.&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
S3D covers the modelling and automatic generation of the multi-level executable models used to validate and verify the system at the different abstraction levels. S3D supports the modelling activities at each stage of the V-Cycle for mechatronic systems as explained below:&lt;br /&gt;
[[File:wp6-25_DD_01.png]]&lt;br /&gt;
&lt;br /&gt;
In all these stages, S3D supports reusability from previous projects as both functional and test-bench components can be imported from libraries:&lt;br /&gt;
&lt;br /&gt;
# System Requirement Analysis. Based on Papyrus and the UML/MARTE standard, S3D can help in analysing and finally, specify the functional and non-functional requirements to be satisfied by the System (or System of Systems),&lt;br /&gt;
# System Design. Once the requirements have been specified, the system and its environment are fully specified in terms of the interface among them, the domain constraints (input rates, types and constraints among them) and the system functional and non-functional requirements (output rates, input/output delays, energy, etc.). As part of the System Design stage, partitioning of the system in the mechanical and the IT (digital) parts is performed. In S3D, the mechanical part will be incorporated to the Test-Bench (TB) of the (digital) system. As its functionality and performance is fully specified, the TB, including the model of the robots, can be developed.&lt;br /&gt;
# Mechanical Analysis and Design. The inclusion of the robots as TB components allows the analysis of their constraints and the design of the mechanical part (number and type of robots, design requirements to each one and among them, etc.).&lt;br /&gt;
# IT Analysis and Design. At this stage, the analysis and specification of the Platform-Description Model (PDM) can be performed. On the other side, the Platform-Independent Model can be specified.&lt;br /&gt;
# HW Analysis &amp;amp; Design. At this stage, the design of the initial Platform-Description Model (PDM), can be performed and an initial architecture of nodes and their internal HW architecture can be proposed. The final PDM will be decided later during architectural mapping as part of the System Integration &amp;amp; Verification stage.&lt;br /&gt;
# SW Analysis &amp;amp; Design and SW Detailed Design. During this stage, the hierarchical partitioning of the PIM in sub-systems and finally, components fully specified in their interfaces and functional and non-functional constraints, is decided.&lt;br /&gt;
# SW Development. The goal of this stage is to develop the code implementing the functional constraints. Papyrus supports both the Modelling and the Development Views and S3D links one with the other by annotating the components with their implementation files using the file’s paths as properties.&lt;br /&gt;
# SW Component Verification. S3D links each component with their Test-Benches so that the component can be verified both in the host (verification) and the target platform (testing) in case it has been decided already and it is available.&lt;br /&gt;
# In the rest of stages:&lt;br /&gt;
## SW Integration &amp;amp; Verification.&lt;br /&gt;
## HW Integration &amp;amp; Verification.&lt;br /&gt;
## IT Integration &amp;amp; Verification.&lt;br /&gt;
## Mechanical Integration &amp;amp; Verification.&lt;br /&gt;
## System Integration &amp;amp; Verification.&lt;br /&gt;
## System Acceptance Verification.&lt;br /&gt;
&lt;br /&gt;
S3D helps in supporting the improvement of the model through the different stages and the automatic generation of the executables models so that the functional and non-functional constraints can be verified. Architectural mapping, that is, the final mapping of functional components in the PIM to execution resources in the PDM is fixed during System Integration and Verification when an accurate simulation and performance analysis model including the actual code can be generated. This model can provide accurate metrics ensuring final satisfaction of the implementation decided after Design-Space Exploration of as many possibilities as required.&lt;br /&gt;
&lt;br /&gt;
== Interoperability with other C4D tools ==&lt;br /&gt;
S3D is based on fundamental Model-Driven, Component-Based computational concepts. As a consequence, it keeps interoperability with many other system modeling environments. The following picture shows the interoperability of S3D with other tools in the C4D design and Verification environment:&lt;br /&gt;
[[File:wp6-25_IO_01.png]]&lt;/div&gt;</summary>
		<author><name>Raulgv</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-25&amp;diff=806</id>
		<title>WP6-25</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-25&amp;diff=806"/>
		<updated>2023-01-10T13:02:13Z</updated>

		<summary type="html">&lt;p&gt;Raulgv: /* Detailed Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-HEPSIM2&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNICAN&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux, Eclipse EMF&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| Executable system level modeling, automated generation of embedded software, native execution based validation&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| Platform model&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| Code generation&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
S3D (s3d.unican.es) is a model-driven, system design framework around a single UML/MARTE model [1]. The model is used as a centralized repository of all the information about the system which is relevant for the design. From the model, the specific information required to perform a certain simulation and performance analysis task (e.g. performance simulation of a solution in a design-space exploration) is extracted and the corresponding simulation model, synthesized. This Model-to-Model generation is performed by the mSSYN tool. The model is simulated by the VIPPE tool. It is worth mentioning that the M2M technology used to generate the simulation models automatically from the system model can be extended to synthesize the SW stack to be executed in each computational node. The corresponding synthesis tool is eSSYN (essyn.unican.es).&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-25_I_01.png]]&lt;br /&gt;
&lt;br /&gt;
==Contribution and Improvements==&lt;br /&gt;
&lt;br /&gt;
The fundamental S3D modeling methodology based on required-provided services has been extended in order to support components using ROS, a publish-subscribe communication middleware [2]. In this paper, Model-Driven Design (MDD) is proposed for modeling, simulation and performance analysis of SW intensive robot-based services. The work shows that robots can be integrated into a system engineering framework without affecting their modeling, design and development features. In order to seamlessly integrate these additional kinds of electro-mechanical components, a platform-based approach is proposed. The large number of different robots available makes it very difficult to reuse the same functional components from one project to another if the robots are changed. For certain kinds of robots with many similar functions, such as drones, a common list of methods can be defined so that the same code is valid for all of them simply by associating the functions with the appropriate code. An additional advantage of this common language is a significant reduction in the programming effort which can be reduced around 30%. The cost to be paid is a drop in simulation speed. In the use case of the paper, this reduction can be as high as 16% when a code intensive in ROS calls is used.&lt;br /&gt;
&lt;br /&gt;
Another interesting result is that if the MDD modeling methodology is general enough, no extension is needed in order to support ROS. Identifying which components make use of ROS is sufficient. In this case, the ROS infrastructure is automatically integrated in the system and used by those ports requiring it. A methodology for rough estimation of execution time of the ROS code has been proposed. Although the error can be as high as 45%, the impact is small as the ROS code will be only a fraction of the total executable. In any case, an improvement over not annotating any execution time for ROS is achieved and this improvement is higher when it is more needed, that is, when the percentage of ROS code is higher. The improvement can be as high as 83.5% with only 2.55% of ROS code.&lt;br /&gt;
&lt;br /&gt;
The proposed framework enables the seamless integration of robots into a MDD framework so that the whole service can be modelled, simulated and its performance analyzed, fully supporting essential stages of the V-Cycle as explained below.&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
S3D covers the modelling and automatic generation of the multi-level executable models used to validate and verify the system at the different abstraction levels. S3D supports the modelling activities at each stage of the V-Cycle for mechatronic systems as explained below:&lt;br /&gt;
[[File:wp6-25_DD_01.png]]&lt;br /&gt;
&lt;br /&gt;
In all these stages, S3D supports reusability from previous projects as both functional and test-bench components can be imported from libraries:&lt;br /&gt;
&lt;br /&gt;
# System Requirement Analysis. Based on Papyrus and the UML/MARTE standard, S3D can help in analysing and finally, specify the functional and non-functional requirements to be satisfied by the System (or System of Systems),&lt;br /&gt;
# System Design. Once the requirements have been specified, the system and its environment are fully specified in terms of the interface among them, the domain constraints (input rates, types and constraints among them) and the system functional and non-functional requirements (output rates, input/output delays, energy, etc.). As part of the System Design stage, partitioning of the system in the mechanical and the IT (digital) parts is performed. In S3D, the mechanical part will be incorporated to the Test-Bench (TB) of the (digital) system. As its functionality and performance is fully specified, the TB, including the model of the robots, can be developed.&lt;br /&gt;
# Mechanical Analysis and Design. The inclusion of the robots as TB components allows the analysis of their constraints and the design of the mechanical part (number and type of robots, design requirements to each one and among them, etc.).&lt;br /&gt;
# IT Analysis and Design. At this stage, the analysis and specification of the Platform-Description Model (PDM) can be performed. On the other side, the Platform-Independent Model can be specified.&lt;br /&gt;
# HW Analysis &amp;amp; Design. At this stage, the design of the initial Platform-Description Model (PDM), can be performed and an initial architecture of nodes and their internal HW architecture can be proposed. The final PDM will be decided later during architectural mapping as part of the System Integration &amp;amp; Verification stage.&lt;br /&gt;
# SW Analysis &amp;amp; Design and SW Detailed Design. During this stage, the hierarchical partitioning of the PIM in sub-systems and finally, components fully specified in their interfaces and functional and non-functional constraints, is decided.&lt;br /&gt;
# SW Development. The goal of this stage is to develop the code implementing the functional constraints. Papyrus supports both the Modelling and the Development Views and S3D links one with the other by annotating the components with their implementation files using the file’s paths as properties.&lt;br /&gt;
# SW Component Verification. S3D links each component with their Test-Benches so that the component can be verified both in the host (verification) and the target platform (testing) in case it has been decided already and it is available.&lt;br /&gt;
# In the rest of stages:&lt;br /&gt;
## SW Integration &amp;amp; Verification.&lt;br /&gt;
## HW Integration &amp;amp; Verification.&lt;br /&gt;
## IT Integration &amp;amp; Verification.&lt;br /&gt;
## Mechanical Integration &amp;amp; Verification.&lt;br /&gt;
## System Integration &amp;amp; Verification.&lt;br /&gt;
## System Acceptance Verification.&lt;br /&gt;
&lt;br /&gt;
S3D helps in supporting the improvement of the model through the different stages and the automatic generation of the executables models so that the functional and non-functional constraints can be verified. Architectural mapping, that is, the final mapping of functional components in the PIM to execution resources in the PDM is fixed during System Integration and Verification when an accurate simulation and performance analysis model including the actual code can be generated. This model can provide accurate metrics ensuring final satisfaction of the implementation decided after Design-Space Exploration of as many possibilities as required.&lt;/div&gt;</summary>
		<author><name>Raulgv</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=WP6-25&amp;diff=805</id>
		<title>WP6-25</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=WP6-25&amp;diff=805"/>
		<updated>2023-01-10T12:49:19Z</updated>

		<summary type="html">&lt;p&gt;Raulgv: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|  ID|| WP6-HEPSIM2&lt;br /&gt;
|-&lt;br /&gt;
|   Contributor	|| UNICAN&lt;br /&gt;
|-&lt;br /&gt;
|   Levels	|| Tool, Platform&lt;br /&gt;
|-&lt;br /&gt;
|   Require	|| Linux, Eclipse EMF&lt;br /&gt;
|-&lt;br /&gt;
|   Provide	|| Executable system level modeling, automated generation of embedded software, native execution based validation&lt;br /&gt;
|-&lt;br /&gt;
|   Input	|| Platform model&lt;br /&gt;
|-&lt;br /&gt;
|   Output	|| Code generation&lt;br /&gt;
|-&lt;br /&gt;
|   C4D tooling		|| n.a.&lt;br /&gt;
|-&lt;br /&gt;
|   TRL		|| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
S3D (s3d.unican.es) is a model-driven, system design framework around a single UML/MARTE model [1]. The model is used as a centralized repository of all the information about the system which is relevant for the design. From the model, the specific information required to perform a certain simulation and performance analysis task (e.g. performance simulation of a solution in a design-space exploration) is extracted and the corresponding simulation model, synthesized. This Model-to-Model generation is performed by the mSSYN tool. The model is simulated by the VIPPE tool. It is worth mentioning that the M2M technology used to generate the simulation models automatically from the system model can be extended to synthesize the SW stack to be executed in each computational node. The corresponding synthesis tool is eSSYN (essyn.unican.es).&lt;br /&gt;
&lt;br /&gt;
[[File:wp6-25_I_01.png]]&lt;br /&gt;
&lt;br /&gt;
==Contribution and Improvements==&lt;br /&gt;
&lt;br /&gt;
The fundamental S3D modeling methodology based on required-provided services has been extended in order to support components using ROS, a publish-subscribe communication middleware [2]. In this paper, Model-Driven Design (MDD) is proposed for modeling, simulation and performance analysis of SW intensive robot-based services. The work shows that robots can be integrated into a system engineering framework without affecting their modeling, design and development features. In order to seamlessly integrate these additional kinds of electro-mechanical components, a platform-based approach is proposed. The large number of different robots available makes it very difficult to reuse the same functional components from one project to another if the robots are changed. For certain kinds of robots with many similar functions, such as drones, a common list of methods can be defined so that the same code is valid for all of them simply by associating the functions with the appropriate code. An additional advantage of this common language is a significant reduction in the programming effort which can be reduced around 30%. The cost to be paid is a drop in simulation speed. In the use case of the paper, this reduction can be as high as 16% when a code intensive in ROS calls is used.&lt;br /&gt;
&lt;br /&gt;
Another interesting result is that if the MDD modeling methodology is general enough, no extension is needed in order to support ROS. Identifying which components make use of ROS is sufficient. In this case, the ROS infrastructure is automatically integrated in the system and used by those ports requiring it. A methodology for rough estimation of execution time of the ROS code has been proposed. Although the error can be as high as 45%, the impact is small as the ROS code will be only a fraction of the total executable. In any case, an improvement over not annotating any execution time for ROS is achieved and this improvement is higher when it is more needed, that is, when the percentage of ROS code is higher. The improvement can be as high as 83.5% with only 2.55% of ROS code.&lt;br /&gt;
&lt;br /&gt;
The proposed framework enables the seamless integration of robots into a MDD framework so that the whole service can be modelled, simulated and its performance analyzed, fully supporting essential stages of the V-Cycle as explained below.&lt;br /&gt;
&lt;br /&gt;
== Detailed Description ==&lt;br /&gt;
&lt;br /&gt;
S3D covers the modelling and automatic generation of the multi-level executable models used to validate and verify the system at the different abstraction levels. S3D supports the modelling activities at each stage of the V-Cycle for mechatronic systems as explained below:&lt;br /&gt;
[[File:wp6-25_DD_01.png]]&lt;br /&gt;
&lt;br /&gt;
In all these stages, S3D supports reusability from previous projects as both functional and test-bench components can be imported from libraries:&lt;br /&gt;
&lt;br /&gt;
1. System Requirement Analysis. Based on Papyrus and the UML/MARTE standard, S3D can help in analysing and finally, specify the functional and non-functional requirements to be satisfied by the System (or System of Systems),&lt;br /&gt;
2. System Design. Once the requirements have been specified, the system and its environment are fully specified in terms of the interface among them, the domain constraints (input rates, types and constraints among them) and the system functional and non-functional requirements (output rates, input/output delays, energy, etc.). As part of the System Design stage, partitioning of the system in the mechanical and the IT (digital) parts is performed. In S3D, the mechanical part will be incorporated to the Test-Bench (TB) of the (digital) system. As its functionality and performance is fully specified, the TB, including the model of the robots, can be developed.&lt;br /&gt;
3. Mechanical Analysis and Design. The inclusion of the robots as TB components allows the analysis of their constraints and the design of the mechanical part (number and type of robots, design requirements to each one and among them, etc.).&lt;br /&gt;
4. IT Analysis and Design. At this stage, the analysis and specification of the Platform-Description Model (PDM) can be performed. On the other side, the Platform-Independent Model can be specified.&lt;br /&gt;
5. HW Analysis &amp;amp; Design. At this stage, the design of the initial Platform-Description Model (PDM), can be performed and an initial architecture of nodes and their internal HW architecture can be proposed. The final PDM will be decided later during architectural mapping as part of the System Integration &amp;amp; Verification stage.&lt;br /&gt;
6. SW Analysis &amp;amp; Design and SW Detailed Design. During this stage, the hierarchical partitioning of the PIM in sub-systems and finally, components fully specified in their interfaces and functional and non-functional constraints, is decided.&lt;br /&gt;
7. SW Development. The goal of this stage is to develop the code implementing the functional constraints. Papyrus supports both the Modelling and the Development Views and S3D links one with the other by annotating the components with their implementation files using the file’s paths as properties.&lt;br /&gt;
8. SW Component Verification. S3D links each component with their Test-Benches so that the component can be verified both in the host (verification) and the target platform (testing) in case it has been decided already and it is available.&lt;br /&gt;
9. In the rest of stages:&lt;br /&gt;
&lt;br /&gt;
a. SW Integration &amp;amp; Verification.&lt;br /&gt;
b. HW Integration &amp;amp; Verification.&lt;br /&gt;
c. IT Integration &amp;amp; Verification.&lt;br /&gt;
d. Mechanical Integration &amp;amp; Verification.&lt;br /&gt;
e. System Integration &amp;amp; Verification.&lt;br /&gt;
f. System Acceptance Verification.&lt;br /&gt;
&lt;br /&gt;
S3D helps in supporting the improvement of the model through the different stages and the automatic generation of the executables models so that the functional and non-functional constraints can be verified. Architectural mapping, that is, the final mapping of functional components in the PIM to execution resources in the PDM is fixed during System Integration and Verification when an accurate simulation and performance analysis model including the actual code can be generated. This model can provide accurate metrics ensuring final satisfaction of the implementation decided after Design-Space Exploration of as many possibilities as required.&lt;/div&gt;</summary>
		<author><name>Raulgv</name></author>
	</entry>
	<entry>
		<id>https://c4d.lias-lab.fr/index.php?title=File:Wp6-25_DD_01.png&amp;diff=804</id>
		<title>File:Wp6-25 DD 01.png</title>
		<link rel="alternate" type="text/html" href="https://c4d.lias-lab.fr/index.php?title=File:Wp6-25_DD_01.png&amp;diff=804"/>
		<updated>2023-01-10T12:48:36Z</updated>

		<summary type="html">&lt;p&gt;Raulgv: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Raulgv</name></author>
	</entry>
</feed>