In this presentation, latest results of our research activity in the ESCEL Comp4Drones project is presented. The application of S3D to the modeling and performance analysis of drone-based services is described
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Villar presentation.pdf
1. June 8, 2022
Eugenio Villar
University of Cantabria
Modeling, Design and
Implementation of drone-based
Services
2. June 8, 2022
Agenda
▪ Introduction
▪ Model-Driven Design of CPSoS
▪ Drone-based Services
▪ Design Verification and Performance Analysis
▪ Experimental Results
▪ Conclusions
▪ Demos
▪ Slides can be found at:
▪ https://www.slideshare.net/EugenioVillar/
2
3. June 8, 2022
N2 B
N1
M A
Introduction
▪ Model-Driven Design (MDD)
▪ High-abstraction level
▪ Mature SW engineering methodology
▪ UML
▪ Standard, any (user-defined) MoC, any language
▪ Natural way to capture system architecture
3
▪ Semantic lacks
▪ Domain-specific profiles
▪ MetaMorph
▪ OpenSource, any (user-defined) MoC, language agnostic
4. June 8, 2022
Introduction
▪ Model-Driven Design (MDD)
▪ Abstraction of the platform
▪ SW development on APIs
▪ MWs, VMs, OSs….
▪ Simulation is not always an issue
▪ SiL & HiL Verification
▪ Performance is not key
4
M2C
PCs Servers DCs HPCs
Mobiles
IoT
compilation
MWs VMs OSs
Python Java C++ GO Swift…
5. June 8, 2022
Introduction
▪ State-of-the-Art in Simulation-Based MDD
▪ Matlab-Simulink
▪ Proprietary
▪ only one MoC, M language
▪ Application to UAVs
▪ Autopilot + Physics
▪ ROS toolbox
▪ AMeSIM/ANSyS
▪ Proprietary, only one MoC
▪ CoFluent
▪ Proprietary
▪ a few MoCs, C/C++ language
▪ Ptolemy II
▪ Academic, any MoC, C/C++ inside a Java block
▪ HEPSYCODE
▪ Academic, several MoCs, SystemC
▪ …
5
M2C
MWs VMs OSs
Python Java C++ GO Swift…
6. June 8, 2022
Introduction
▪ Embedded System Design (ESD) & Electronic System-Level Design (ESL)
▪ Model of the platform
▪ At different abstraction levels
▪ Platform-based HW/SW co-design
▪ Simulation is key
▪ At different abstraction levels
▪ Performance is key
▪ Cyber-Physical interaction
▪ Real-Time Systems
6
P&R
C++ SystemC VHDL/Verilog…
SoC
FPGAs
Boards
NoC
HW accel.
I/O Busses
GPUs
CPUs
MWs VMs OSs
HLS/RTL
synthesis
compilation
7. June 8, 2022
Introduction
▪ Services provided on computing platforms of many kind
▪ Programming the Internet of Everything
▪ In close interaction with the physical world => CPSoS-IoT
▪ Full abstraction of the computing platform is no longer possible
7
8. June 8, 2022
Introduction
▪ Gap between MDD & ESD/ESL
▪ S3D: Single-Source System Design
▪ Linking MDD with ESD/ESL
▪ Simulating the PSM
▪ At different abstraction levels
▪ Estimating performance
▪ Depending on the HW Platform
▪ Automatic generation of the executable models
▪ Design-Space Exploration
Python Java C++ GO Swift…
SoC
FPGAs
Boards
NoC
HW accel.
I/O Busses
GPUs
CPUs
MWs VMs OSs
??
Design
Gap
8
11. June 8, 2022
Introduction
▪ S3D: Design-Space Exploration
▪ Linking MDD with ESL
Python Java C++ GO Swift…
SoC
FPGAs
Boards
NoC
HW accel.
I/O Busses
GPUs
CPUs
MWs VMs OSs
11
12. June 8, 2022
Introduction
▪ S3D: Programming the Internet of Everything
▪ Services provided on heterogeneous computing platforms of many kind
▪ Impact on functional and non-functional properties of the execution platform
HW
Synthesis
SW
Synthesis
(RT)OS,
Runtime,…
Corba, TCP/IP,
MPI, MCAPI,…
ForTran,
Python, Java,
HTML5,
C/C++,…
Concerns
Performance,
safety, cost,
security, size,
…
Schedulability
Analysis
Simulation
Verification
Performance
Analysis
Design-Space
Exploration
Optimization
Service
UML
CPSoS DSL
UML
CPSoS DSL
12
13. June 8, 2022
Model-Driven Design of Cyber-Physical SoS
▪ Traditional V-Cycle for Mechatronic Systems
▪ Design & Analyze
▪ Develop (Platform-Dependent)
▪ Verify
13
14. June 8, 2022
Model-Driven Design of Cyber-Physical SoS
▪ New Validation/Verification V-Cycle
▪ Reusability
▪ Simulation-based Analysis & Design
▪ Design-Space Exploration
▪ Performance Analysis
▪ Architectural mapping
14
15. June 8, 2022
Model-Driven Design of Cyber-Physical SoS
▪ System Design & Validation
▪ System Interface
▪ Domain & System Requirements
▪ Functional Specification
▪ Input/Output Rates and Delays
▪ Test-Bench Development
▪ Minimal Functionality
▪ System Validation
15
16. June 8, 2022
▪ CPS: Digital Behavior in a Physical World
▪ System Model (Specification)
▪ The implementation is as good as
similar to the model
▪ Environment Model
▪ The model is as good as similar to reality
▪ Close-loop behavior can be extremely difficult to model
Model-Driven Design of Cyber-Physical SoS
16
17. June 8, 2022
Model-Driven Design of Cyber-Physical SoS
▪ Mechanical & HW/SW Design & Validation
▪ Sub-System & Component Interface
▪ Sub-System & Component Requirements
▪ Input/Output Rates and Delays
▪ Minimal Sub-System & Component Functionality => System Validation
▪ Reusability
18. June 8, 2022
Model-Driven Design of Cyber-Physical SoS
▪ ROS
▪ De-facto standard for robot applications
▪ ROS Infrastructure
▪ ROS nodes
▪ Processes that perform a certain computation
▪ ROS Master (Core)
▪ Nodes registration
▪ Communication manager
18
Client-Server (RPC) Publish-Suscriber
19. June 8, 2022
Model-Driven Design of Cyber-Physical SoS
▪ Platform-Based Design
▪ POSIX API
▪ ROS API
19
20. June 8, 2022
VIPPE Scheduler
Host Execution Platform
Ubuntu 18.04
Intel i5-34700 x86-64
Process 1 Process 2 Process 3
Model-Driven Design of Cyber-Physical SoS
▪ Platform-Based Simulation
▪ POSIX API
▪ ROS API
20
21. June 8, 2022
Model-Driven Design of Cyber-Physical SoS
▪ Drone-Independent ROS Interface
▪ Extensible to robots with similar functionality
21
22. June 8, 2022
Model-Driven Design of Cyber-Physical SoS
▪ Drone-Independent ROS Interface
▪ Reusable ROS code
▪ Code length reduction
▪ Decrease in simulation speed
22
Reduction in program length
Drone Drone-specific code (LoCs) CoDIn (LoCs) Reduction (%)
Ardupilot 343
233
32.07
Px4 357 34.73
Reduction in simulation speed
Drone Drone-specific code (s/s) CoDIn (s/s) Reduction (%)
Ardupilot 1.9 1,85 2,6
23. June 8, 2022
▪ S3D components in a drone-based service
▪ C++ components
▪ ROScpp components
▪ Drone and robot models
Design Verification & Performance Analysis
C++
ROScpp
Drone
models
23
24. June 8, 2022
▪ Multi-Level Simulation & Performance Analysis
▪ C++ and ROScpp components
▪ Simulation of ROScpp components without the (slow) ROS infrastructure
▪ Functional ROS
▪ Direct links among publishers and subscribers
Design Verification & Performance Analysis
Abstraction Levels for C++ & ROS cpp components
Level Code Timing/Energy ROS infrastructure
MN Minimal No
Yes/No
MC Minimal Constant
FC Full code Constant
FD Full code Data-dependent
24
25. June 8, 2022
▪ Native Simulation: Flaxibility + accuracy
…
Overflow = 0;
s = 1L;
for (i = 0; i < L_subfr; i++) {
Carry = 0;
s = L_macNs(s, xn[i], y1[i]);
if (Overflow != 0) {
break; }}
if (Overflow == 0) {
exp_xy = norm_l(s);
if (exp_xy<=0)
xy = round(L_shr (s, -exp_xy));
else
xy = round(L_shl (s, exp_xy)); }
mutex_lock(mutex_name);
…
Global variable
int Sim_Time = 0;
Sim_Time += TB();
Sim_Time += TB();
Sim_Time += TB();
Sim_Time += TB();
Sim_Time += TB();
Sim_Time += TB();
wait included
TB() is a function of
# of binary instructions
type of instructions
# of cache misses
frequency
…
even
data dependencies
Sim_Time += TSYS();
TSYS() is a function of
preemptions
conflicts in the bus…
Design Verification & Performance Analysis
25
26. June 8, 2022
Native Simulation
▪ Performance Analysis of ROScpp components
▪ Native simulation of C++ code
▪ Constant time/energy for ROS method calls
▪ Dependent on the CPU
▪ Dependent on the number of nodes and subscribers
▪ Part to be assigned to the component
Design Verification & Performance Analysis
26
27. June 8, 2022
▪ Performance Analysis of ROScpp components
▪ Time/energy for ROS method calls at the component
Design Verification & Performance Analysis
27
28. June 8, 2022
▪ Performance Analysis of ROScpp components
▪ Time/energy for ROS method calls at ROScore
Design Verification & Performance Analysis
28
29. June 8, 2022
▪ Performance Analysis
▪ Estimation Error
Design Verification & Performance Analysis
29
Frequency
(MHz) Estimated Time (ms) Measured Time (ms) Estimation Error (%)
Intel
1600 485.87 582.58 16.60
3000 318.62 461.46 30.95
ARM
600 521.46 904.95 42.38
1500 233.96 398.26 41.25
30. June 8, 2022
▪ Performance Analysis
▪ Error reduction
▪ Improvement increases as the ROS percentage increases
Design Verification & Performance Analysis
30
Frequency
(MHz)
Total Application
time (ms)
%ROS
code
Impact of ROS
estimation error (%)
Impact of no
estimation Improvement
Intel
1600 22,875 2.55 0.42 2.55 83.5%
3000 22,018 2.10 0.65 2.10 69.0%
ARM
600 213,446 0.42 0.18 0.42 57.1%
1500 87,688 0.45 0.19 0.45 57.8%
31. June 8, 2022
▪ Multi-Level Simulation & Performance Analysis
▪ Drone models
Design Verification & Performance Analysis
Abstraction Levels for drone models
Level Drone model Physical model ROS infrastructure
FN Functional No No
FY Functional No Yes
AY Autopilot Yes Yes
AM Autopilot Electro-Mechanical Yes
31
32. June 8, 2022
▪ Drone and robot models
▪ Components in the S3D ‘ModelLibrary’
▪ Instantiation in the ‘VerificationView’
▪ Selection for synthesis of the executable model
Design Verification & Performance Analysis
32
34. June 8, 2022
▪ Multi-Level Simulation & Performance Analysis
▪ Simulation Infrastructure
▪ General architecture
▪ Real-Time (RT) simulation- simulation time = simulated time (SnT = SdT)
▪ As Fast As Possible (AFAP) simulation (SnT as greater as possible than SdT)
Design Verification & Performance Analysis
34
35. June 8, 2022
▪ Multi-Level Simulation & Performance Analysis
▪ Simulation Infrastructure
▪ Functional drone modeling
▪ Without ROS (FN)
▪ Any C++ and ROScpp models (MN + MC + FC + FD)
Design Verification & Performance Analysis
35
36. June 8, 2022
▪ Multi-Level Simulation & Performance Analysis
▪ Simulation Infrastructure
▪ Functional drone modeling
▪ With ROS (FY)
▪ Any C++ and ROScpp models (MN + MC + FC + FD)
Design Verification & Performance Analysis
36
37. June 8, 2022
▪ Multi-Level Simulation & Performance Analysis
▪ Simulation Infrastructure
▪ Realistic drone modeling (Autopilot + Physics)
▪ With ROS (AY + AM)
▪ Any C++ and ROScpp models (MN + MC + FC + FD)
▪ With or without 3D Graphics
Design Verification & Performance Analysis
37
38. June 8, 2022
▪ Multi-Level Simulation
▪ Impact of an increasing number of host CPUs (8 drones)
Simulation Results
38
39. June 8, 2022
▪ Multi-Level Simulation
▪ Impact of an increasing number or realistic vs functional drones
Simulation Results
150
80
39
40. June 8, 2022
Simulation Results
▪ Multi-Level Simulation & Performance Analysis
▪ Impact of an increasing number of realistic drones
40
41. June 8, 2022
▪ Real-Time Simulation in seconds
▪ Impact of an increasing number of realistic drones
Simulation Results
41
42. June 8, 2022
Simulation Results
▪ Real-Time Simulation in % of CPU usage
▪ Impact of an increasing number of realistic drones
42
43. June 8, 2022
Conclusions
▪ Services based on CPS demand new design methods and tools
▪ e.g. Drone-based Services
▪ Close interaction between the physical world and the digital electronics
▪ Model-Driven System Design is a powerful candidate
▪ HiL & SiL are not enough
▪ Model in the loop (MiL) is required
▪ Extension of the classical V-Cycle
▪ Multi-Level Simulation is key in designing drone-based services
▪ As Fast As Possible vs Real-Time
▪ Drones are just pieces inside a complex, distributed functionality
▪ S3D is a valid approach towards MDD of drone-based services
43
44. June 8, 2022
Acknowledgement
▪ Last Research Results from many people
▪ Hector Posadas
▪ Javier Merino
▪ Raul Gonzalez
▪ Jose Maria Gandara
▪ … and the rest of the Microelectronics Engineering Group
44