3. Problem
• CPSs are intimately tied to the real world
– Multiple environment dimensions at hand
– Continuously changing environment
• The software must adapt
• Missing design and
programming support
10. Design Concepts
• Context represents a single environmental
situation
• Context group as collection of environmental
situations sharing the same characteristics
Context group
Context Context
19. Evaluation: Run-time Overhead
0
5
10
15
20
25
30
Wildlife tracking Adaptive stack Smart-home
MCUcycles
Context transition overhead
Function call overhead
MCU Overhead
Memory Overhead
0
0.5
1
1.5
2
2.5
3
Wildlife tracking Adaptive stack Smart-home
%
Binary overhead
RAM overhead
Turning an LED on is
8 MCU cycles Max 2.5%!
20. Conclusions and Ongoing Work
• Context as a CPS programming concept:
– Language independent design
– Programming support: ConesC, IDE, Model-checker
• Key results:
– Easier to maintain and to understand
– Verification against environment evolutions
– Negligible performance overhead
• Current work:
– Extending on micro & nano aerial drones
21. Other Activities @POLIMI
• Programming Systems for Coordinating Drones
• Example:
– L. Mottola et al. “Team-level
programming of drone sensor
networks”, in ACM SENSYS 2014
– Real-deployment for aerial
photogrammetry in
archaeological sites
(Aquileia, Italy)
– Currently being extended to
indoor scenarios for tiny devices
“Domus
dei putti
danzanti”
youtu.be/PPDGO-jc0It
22. Other Activities @POLIMI
• Integration and
remote control
– Mission-level
service-oriented
interfaces (REST)
– Remote-control service
oriented interfaces (CoAP)
• Flight control loops
– Reactive programming techniques
– Testing and verification
Atteched to collars of animals, what makes them mobile as drones. They are buttery operated as well, and, with respect to drones, situations are changed even fastly then in this example.
nesC is component-based language, endeed, but there are too much dimentions, changing independently and the functionaluty is relies on these dimentions
Enable it on the r-c platforms, limited multythreading and no memory protection… as in high langs
We claim that our design concepts inspired by COP can significantly simplify the software developing process for WSN. It is worth noticing, that these concepts are language independent and can be implemented in any of them.
Layered function call
The team-level programming model provides a middle ground between programming individual devices and swarm programming, enabling the specification of coordinated actions based on global states (unlike swarm programming), but still without resorting to individual addressing (like when programming individual devices)
We built abstractions and prototypes allowing the integration of aerail drones into larger processes, also using graphical interfaces. The picture shows an example of a composition of individual processing blocks that instruct the drone to take pictures in a given area and then post-process the pictures looking for a certain pattern as well as uploading them on Flickr.