SlideShare a Scribd company logo
1 of 20
Download to read offline
Integrating Cloud Services in Behaviour Programming for Autonomous Robots

Integrating Cloud Services in Behaviour
Programming for Autonomous Robots
Fabrizio Messina, Giuseppe Pappalardo, Corrado Santoro

ARSLAB - Autonomous and Robotic Systems Laboratory
Dipartimento di Matematica e Informatica
Universit` di Catania, Italy
a
{messina, pappalardo, santoro}@dmi.unict.it

C-SmartCPS @ ICA3PP 2013 - Vietri sul Mare, 20 Dicembre 2013
Integrating Cloud Services in Behaviour Programming for Autonomous Robots

Outline

1 Motivation

2 PROFETA

Basic Entities
Sensors and Actions
Execution Semantics

3 CLEPTA

Architecture
ASync Sensors and
Actions
A Simple Case-Study
4 Conclusions
Integrating Cloud Services in Behaviour Programming for Autonomous Robots
Motivation

Motivation (I)
Robots are autonomous systems living in a pysical
environment.
We expect to have home robots in the next few years.
Computing platforms for home robots could not possess the
adequate amount of computing power — i.e. CPU Power
and/or Storage capacity — to perform certain
computation-intensive tasks, e.g.:
Speech to text, text to speech
Speaker recognition
NLP processing
Image processing
Pattern recognition (in general)
...
Integrating Cloud Services in Behaviour Programming for Autonomous Robots
Motivation

Motivation (II)

But nowadays home environments are “on the net”
And “computation intensive” tasks could be performed
“in the cloud”
Hence the necessity to include, in robot programming
environment/platforms, a proper support for
Cloud Computing
Integrating Cloud Services in Behaviour Programming for Autonomous Robots
PROFETA
Basic Entities

PROFETA Basics
PROFETA (Python RObotic Framework for dEsigning
sTrAtegies) is Python tool for programming autonomous
systems (agents or robots) using the Belief-Desire-Intention
(BDI) model.
Designed at ARSLAB @ UNICT in 2010 and available at
http://github.com/corradosantoro/profeta
PROFETA provides a declarative language as a dialect of
AgentSpeak(L).
PROFETA is an “all-in-one” environment supporting both
imperative (algorithmical part) and declarative (behavioural
part) programming models.
Integrating Cloud Services in Behaviour Programming for Autonomous Robots
PROFETA
Basic Entities

PROFETA Basics

PROFETA provides
A set of classes to represent basic BDI entities, i.e.
Beliefs ⇒ Knowledge
Goals ⇒ States to be achieved
Actions ⇒ Things to do to reach the Goals

A declarative language—dialect of AgentSpeak(L)—to express
agent’s behaviour
An engine executing that behaviour
A Knowledge base storing the beliefs
Integrating Cloud Services in Behaviour Programming for Autonomous Robots
PROFETA
Basic Entities

PROFETA Declarative Syntax
A PROFETA behaviour is a set of rules in the form
Event / Condition >> set of Action
where:
Event can be: belief assert or retract, goal achievement
request, goal failure.
Condition refers to a certain state of the knowledge base.
Action can be: belief assert or retract, goal achievement
request, Python expressions, user defined atomic action.

Example:
+object_at("X","Y") / object_got("no") >>
[ move_to("X", "Y"), pick_object() ]

Such expressions are managed thanks to operator
overloading
Integrating Cloud Services in Behaviour Programming for Autonomous Robots
PROFETA
Sensors and Actions

Interface with environment: Actions

In order to interact with the environment, two abstractions
are provided:
Actions
Sensors

An action is defined as a subclass of Action.
The execute() method has to implement the computation
which concretely performs the action.
The associated computation is executed atomically.
Integrating Cloud Services in Behaviour Programming for Autonomous Robots
PROFETA
Sensors and Actions

Sensors
A Sensor class is provided with the objective of allowing the
programmer to write the proper code to “sense” the
environment and generate the proper beliefs.
The programmer has to:
subclass Sensor
override the sense() method
inform the Engine that a new sensor has been added in the
program.

Method sense() may return
None, nothing has been sensed
+bel(...), something has been sensed, a belief is added to
the KB and the “add event” is generated.
bel(...), something has been sensed, a belief is added to
the KB but the “add event” is NOT generated.
Integrating Cloud Services in Behaviour Programming for Autonomous Robots
PROFETA
Execution Semantics

PROFETA (Informal) Execution Semantics

PROFETA Main Loop Execution:
1

Scan sensors and, for each of them, call the sense() method
and analyse the return value.

2

If the return value is an event, e.g.+bel(...), find the
relevant rule, verify the condition part and then put the rule in
execution.

3

Executes all the actions of the selected rule and then go to 1.

4

Go to 1.

Execution is strictly synchronous!
Integrating Cloud Services in Behaviour Programming for Autonomous Robots
PROFETA
Execution Semantics

PROFETA and the Cloud
A simple robot which responds to voice commands by using TTS
and STT Cloud services (e.g. Google API).
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

...
class utterance ( Belief ): pass
class move_to ( Action ):
def execute ( self ):
x = self [0]
y = self [1]
# ... perform movement to x , y
class hear ( Sensor ):
def sense ( self ):
command = # sample audio data and invoke STT clould service
return + utterance ( command )
class say ( Action ):
def execute ( self ):
phrase = self [0]
# invoke the TTS could service with " phrase "
+ utterance ( " go " )

>> [ say ( " ok , i ’m going " ) , move_to ( " X " , " Y " ) ]
Integrating Cloud Services in Behaviour Programming for Autonomous Robots
PROFETA
Execution Semantics

Synchronous Execution

The synchronous execution is a desired PROFETA feature,
but it could cause some problems.
Sensors are polled in sequence only if there are no actions to
be executed
If actions/sensors are “slow” an agent/robot is blind, w.r.t.
events which could happen in the environment
Action/Sensor dynamics/duration matters!!
Action/Sensor for cloud services are potentially “slow”.
Integrating Cloud Services in Behaviour Programming for Autonomous Robots
CLEPTA
Architecture

Introducing CLEPTA
To solve the problem a decoupling layer is needed.
The layer has to introduce the needed asynchrony in cloud
service invocation.
CLEPTA (CLoud Extension for ProfeTA) provides a
different domain for the asynchronous execution of Sensors
and Actions.
Integrating Cloud Services in Behaviour Programming for Autonomous Robots
CLEPTA
Architecture

Introducing CLEPTA

ServiceInvokers: Entities—subclass of Service—performing
the concrete invocation of cloud services.
PROFETA/CLEPTA Interface: Layer which, using special
kind of Actions and Sensors, connects the ServiceInvokers
with the PROFETA domain.
Integrating Cloud Services in Behaviour Programming for Autonomous Robots
CLEPTA
ASync Sensors and Actions

Sensors in CLEPTA

A PROFETA Sensor is decoupled by wrapping it with a
AsyncSensorProxy provided by CLEPTA.
The AsyncSensorProxy:
Creates a new thread in which the real Sensor executes.
Manages a queue to store the beliefs generated by the
Sensors (w/ configurable length).
It is seens by PROFETA as a classical Sensor.
Integrating Cloud Services in Behaviour Programming for Autonomous Robots
CLEPTA
ASync Sensors and Actions

Actions in CLEPTA

A PROFETA Action is decoupled by creating it as a subclass of
AsyncAction (provided by CLEPTA).
Asynchronous execution of the cloud service invocation is handled
by an AsyncActionExecutor, it:
Creates a new thread in which the Invoker executes.
Manages a method queue to store the IDs of methods to be
called asynchronously.
Integrating Cloud Services in Behaviour Programming for Autonomous Robots
CLEPTA
A Simple Case-Study

PROFETA + CLEPTA and the Cloud
A simple robot which responds to voice commands by using TTS and
STT Cloud services (e.g. Google API).
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

...
class utterance ( Belief ): pass
class say ( AsyncAction ):
def create_service ( self , lang = ’ en ’ ):
return G o og l eT ex t To S pe ec h ( lang ) # provided by CLEPTA
def execute ( self ):
utterance = self [0]
self . async_invoke ( self . get_service (). say , [ utterance ])
class hear ( Sensor ):
def sense ( self ):
command = # sample audio data and invoke STT clould service
return + utterance ( command )
...
PROFETA . add_sensor ( AsyncSensorProxy ( hear ()))
+ utterance ( " go " ) >> [ say ( " ok , i ’m going " ) , .... ]
+ utterance ( " _ " ) >> [ say ( " could you repeat please ? " ) ]
Integrating Cloud Services in Behaviour Programming for Autonomous Robots
Conclusions

Conclusions
PROFETA allows to define robot strategies in a flexible and
intuitive way, by using the principles of the BDI model.
PROFETA combines the advantages of both imperative and
declarative approach, while offering an all-in-one environment.
CLEPTA adds the ability to exploit, in robot’s behaviour,
external services provided “in the cloud”.
PROFETA+CLEPA have been successfully applied in various
robots built at ARSLab, thus proving the effectiveness of the
tool:
Voice-driven robots
Complex image analysis (e.g. target recognition)
Integrating Cloud Services in Behaviour Programming for Autonomous Robots
Conclusions

References
http://github.com/corradosantoro/profeta
L. Fichera, D. Marletta, V. Nicosia, C. Santoro. Flexible Robot Strategy
Design using Belief-Desire-Intention Model. In Proc. of International
Conference on Research and Education in Robotics (EUROBOT 2010),
Spriger CCIS Series, Rappreswille, Swizerland), May 27-30, 2010.
L. Fichera, D. Marletta, V. Nicosia, C. Santoro. A Methodology to
Extend Imperative Languages with AgentSpeak Declarative Constructs.
In Proc. of Workshop on Objects and Agents (WOA2010), CEUR-WS
Publisher, ISSN 1613-0073, Rimini, Italy, Sept. 5-7, 2010.
G. Fortino, W. Russo, C. Santoro. Translating Statecharts-based into BDI
Agents: The DSC/PROFETA case. MAS&S Workshop @ MATES 2013.
F. Messina, G. Pappalardo, C. Santoro. Integrating Cloud Services in
Behaviour Programming for Autonomous Robots. CSmart-CPS
Workshop, LNCS, 2013.
Integrating Cloud Services in Behaviour Programming for Autonomous Robots
Conclusions

Integrating Cloud Services in Behaviour
Programming for Autonomous Robots
Fabrizio Messina, Giuseppe Pappalardo, Corrado Santoro

ARSLAB - Autonomous and Robotic Systems Laboratory
Dipartimento di Matematica e Informatica
Universit` di Catania, Italy
a
{messina, pappalardo, santoro}@dmi.unict.it

C-SmartCPS @ ICA3PP 2013 - Vietri sul Mare, 20 Dicembre 2013

More Related Content

What's hot

Introduction To Erlang Final
Introduction To Erlang   FinalIntroduction To Erlang   Final
Introduction To Erlang FinalSinarShebl
 
Java PRACTICAL file
Java PRACTICAL fileJava PRACTICAL file
Java PRACTICAL fileRACHIT_GUPTA
 
The Erlang Programming Language
The Erlang Programming LanguageThe Erlang Programming Language
The Erlang Programming LanguageDennis Byrne
 
Java practical(baca sem v)
Java practical(baca sem v)Java practical(baca sem v)
Java practical(baca sem v)mehul patel
 
Introduction to theano, case study of Word Embeddings
Introduction to theano, case study of Word EmbeddingsIntroduction to theano, case study of Word Embeddings
Introduction to theano, case study of Word EmbeddingsShashank Gupta
 
(chapter 5) A Concise and Practical Introduction to Programming Algorithms in...
(chapter 5) A Concise and Practical Introduction to Programming Algorithms in...(chapter 5) A Concise and Practical Introduction to Programming Algorithms in...
(chapter 5) A Concise and Practical Introduction to Programming Algorithms in...Frank Nielsen
 
Why we cannot ignore Functional Programming
Why we cannot ignore Functional ProgrammingWhy we cannot ignore Functional Programming
Why we cannot ignore Functional ProgrammingMario Fusco
 
16. Java stacks and queues
16. Java stacks and queues16. Java stacks and queues
16. Java stacks and queuesIntro C# Book
 
Implementing a decorator for thread synchronisation.
Implementing a decorator for thread synchronisation.Implementing a decorator for thread synchronisation.
Implementing a decorator for thread synchronisation.Graham Dumpleton
 
Java programming lab assignments
Java programming lab assignments Java programming lab assignments
Java programming lab assignments rajni kaushal
 

What's hot (19)

Introduction To Erlang Final
Introduction To Erlang   FinalIntroduction To Erlang   Final
Introduction To Erlang Final
 
Java small steps - 2019
Java   small steps - 2019Java   small steps - 2019
Java small steps - 2019
 
Class method
Class methodClass method
Class method
 
Java generics final
Java generics finalJava generics final
Java generics final
 
Java PRACTICAL file
Java PRACTICAL fileJava PRACTICAL file
Java PRACTICAL file
 
The Erlang Programming Language
The Erlang Programming LanguageThe Erlang Programming Language
The Erlang Programming Language
 
Java practical(baca sem v)
Java practical(baca sem v)Java practical(baca sem v)
Java practical(baca sem v)
 
Introduction to theano, case study of Word Embeddings
Introduction to theano, case study of Word EmbeddingsIntroduction to theano, case study of Word Embeddings
Introduction to theano, case study of Word Embeddings
 
Lazy java
Lazy javaLazy java
Lazy java
 
Java Script Workshop
Java Script WorkshopJava Script Workshop
Java Script Workshop
 
(chapter 5) A Concise and Practical Introduction to Programming Algorithms in...
(chapter 5) A Concise and Practical Introduction to Programming Algorithms in...(chapter 5) A Concise and Practical Introduction to Programming Algorithms in...
(chapter 5) A Concise and Practical Introduction to Programming Algorithms in...
 
Why we cannot ignore Functional Programming
Why we cannot ignore Functional ProgrammingWhy we cannot ignore Functional Programming
Why we cannot ignore Functional Programming
 
Deep Learning in theano
Deep Learning in theanoDeep Learning in theano
Deep Learning in theano
 
Icom4015 lecture13-f16
Icom4015 lecture13-f16Icom4015 lecture13-f16
Icom4015 lecture13-f16
 
16. Java stacks and queues
16. Java stacks and queues16. Java stacks and queues
16. Java stacks and queues
 
Wrapper classes
Wrapper classesWrapper classes
Wrapper classes
 
CS2309 JAVA LAB MANUAL
CS2309 JAVA LAB MANUALCS2309 JAVA LAB MANUAL
CS2309 JAVA LAB MANUAL
 
Implementing a decorator for thread synchronisation.
Implementing a decorator for thread synchronisation.Implementing a decorator for thread synchronisation.
Implementing a decorator for thread synchronisation.
 
Java programming lab assignments
Java programming lab assignments Java programming lab assignments
Java programming lab assignments
 

Similar to Integrating Cloud Services in Behaviour Programming for Autonomous Robots

Developing Actors in Azure with .net
Developing Actors in Azure with .netDeveloping Actors in Azure with .net
Developing Actors in Azure with .netMarco Parenzan
 
Oo Design And Patterns
Oo Design And PatternsOo Design And Patterns
Oo Design And PatternsAnil Bapat
 
Eclipse Con Europe 2014 How to use DAWN Science Project
Eclipse Con Europe 2014 How to use DAWN Science ProjectEclipse Con Europe 2014 How to use DAWN Science Project
Eclipse Con Europe 2014 How to use DAWN Science ProjectMatthew Gerring
 
IRJET- Automation using Alexa and Raspberry Pi
IRJET- Automation using Alexa and Raspberry PiIRJET- Automation using Alexa and Raspberry Pi
IRJET- Automation using Alexa and Raspberry PiIRJET Journal
 
Azure Functions.pptx
Azure Functions.pptxAzure Functions.pptx
Azure Functions.pptxYachikaKamra
 
Azure Service Fabric and the Actor Model: when did we forget Object Orientation?
Azure Service Fabric and the Actor Model: when did we forget Object Orientation?Azure Service Fabric and the Actor Model: when did we forget Object Orientation?
Azure Service Fabric and the Actor Model: when did we forget Object Orientation?João Pedro Martins
 
semantic web service composition for action planning
semantic web service composition for action planningsemantic web service composition for action planning
semantic web service composition for action planningShahab Mokarizadeh
 
Local development using telepresence
Local development using telepresenceLocal development using telepresence
Local development using telepresenceIrvi Aini
 
MicroServices at Netflix - challenges of scale
MicroServices at Netflix - challenges of scaleMicroServices at Netflix - challenges of scale
MicroServices at Netflix - challenges of scaleSudhir Tonse
 
Intro to Scalable Deep Learning on AWS with Apache MXNet
Intro to Scalable Deep Learning on AWS with Apache MXNetIntro to Scalable Deep Learning on AWS with Apache MXNet
Intro to Scalable Deep Learning on AWS with Apache MXNetAmazon Web Services
 
XebiCon'17 : AxonFramework @ SGCIB (our experience) : (CQRS, Eventsourcing, A...
XebiCon'17 : AxonFramework @ SGCIB (our experience) : (CQRS, Eventsourcing, A...XebiCon'17 : AxonFramework @ SGCIB (our experience) : (CQRS, Eventsourcing, A...
XebiCon'17 : AxonFramework @ SGCIB (our experience) : (CQRS, Eventsourcing, A...Publicis Sapient Engineering
 
Cisco Automation with Puppet and onePK - PuppetConf 2013
Cisco Automation with Puppet and onePK - PuppetConf 2013Cisco Automation with Puppet and onePK - PuppetConf 2013
Cisco Automation with Puppet and onePK - PuppetConf 2013Puppet
 
Android Jumpstart Jfokus
Android Jumpstart JfokusAndroid Jumpstart Jfokus
Android Jumpstart JfokusLars Vogel
 
Evolution of netflix conductor
Evolution of netflix conductorEvolution of netflix conductor
Evolution of netflix conductorvedu12
 
Durable Functions vs Logic App : la guerra dei workflow!!
Durable Functions vs Logic App : la guerra dei workflow!!Durable Functions vs Logic App : la guerra dei workflow!!
Durable Functions vs Logic App : la guerra dei workflow!!Massimo Bonanni
 
Event-driven Infrastructure - Mike Place, SaltStack - DevOpsDays Tel Aviv 2016
Event-driven Infrastructure - Mike Place, SaltStack - DevOpsDays Tel Aviv 2016Event-driven Infrastructure - Mike Place, SaltStack - DevOpsDays Tel Aviv 2016
Event-driven Infrastructure - Mike Place, SaltStack - DevOpsDays Tel Aviv 2016DevOpsDays Tel Aviv
 

Similar to Integrating Cloud Services in Behaviour Programming for Autonomous Robots (20)

Developing Actors in Azure with .net
Developing Actors in Azure with .netDeveloping Actors in Azure with .net
Developing Actors in Azure with .net
 
Oo Design And Patterns
Oo Design And PatternsOo Design And Patterns
Oo Design And Patterns
 
Akka.Net & .Net Core - .Net Inside 4° MeetUp
Akka.Net & .Net Core - .Net Inside 4° MeetUpAkka.Net & .Net Core - .Net Inside 4° MeetUp
Akka.Net & .Net Core - .Net Inside 4° MeetUp
 
Eclipse Con Europe 2014 How to use DAWN Science Project
Eclipse Con Europe 2014 How to use DAWN Science ProjectEclipse Con Europe 2014 How to use DAWN Science Project
Eclipse Con Europe 2014 How to use DAWN Science Project
 
IRJET- Automation using Alexa and Raspberry Pi
IRJET- Automation using Alexa and Raspberry PiIRJET- Automation using Alexa and Raspberry Pi
IRJET- Automation using Alexa and Raspberry Pi
 
Azure Functions.pptx
Azure Functions.pptxAzure Functions.pptx
Azure Functions.pptx
 
Azure Service Fabric and the Actor Model: when did we forget Object Orientation?
Azure Service Fabric and the Actor Model: when did we forget Object Orientation?Azure Service Fabric and the Actor Model: when did we forget Object Orientation?
Azure Service Fabric and the Actor Model: when did we forget Object Orientation?
 
semantic web service composition for action planning
semantic web service composition for action planningsemantic web service composition for action planning
semantic web service composition for action planning
 
Local development using telepresence
Local development using telepresenceLocal development using telepresence
Local development using telepresence
 
MicroServices at Netflix - challenges of scale
MicroServices at Netflix - challenges of scaleMicroServices at Netflix - challenges of scale
MicroServices at Netflix - challenges of scale
 
Intro to Scalable Deep Learning on AWS with Apache MXNet
Intro to Scalable Deep Learning on AWS with Apache MXNetIntro to Scalable Deep Learning on AWS with Apache MXNet
Intro to Scalable Deep Learning on AWS with Apache MXNet
 
Opentracing 101
Opentracing 101Opentracing 101
Opentracing 101
 
XebiCon'17 : AxonFramework @ SGCIB (our experience) : (CQRS, Eventsourcing, A...
XebiCon'17 : AxonFramework @ SGCIB (our experience) : (CQRS, Eventsourcing, A...XebiCon'17 : AxonFramework @ SGCIB (our experience) : (CQRS, Eventsourcing, A...
XebiCon'17 : AxonFramework @ SGCIB (our experience) : (CQRS, Eventsourcing, A...
 
Cisco Automation with Puppet and onePK - PuppetConf 2013
Cisco Automation with Puppet and onePK - PuppetConf 2013Cisco Automation with Puppet and onePK - PuppetConf 2013
Cisco Automation with Puppet and onePK - PuppetConf 2013
 
Android Jumpstart Jfokus
Android Jumpstart JfokusAndroid Jumpstart Jfokus
Android Jumpstart Jfokus
 
Evolution of netflix conductor
Evolution of netflix conductorEvolution of netflix conductor
Evolution of netflix conductor
 
DevOps
DevOpsDevOps
DevOps
 
Durable Functions vs Logic App : la guerra dei workflow!!
Durable Functions vs Logic App : la guerra dei workflow!!Durable Functions vs Logic App : la guerra dei workflow!!
Durable Functions vs Logic App : la guerra dei workflow!!
 
Event-driven Infrastructure - Mike Place, SaltStack - DevOpsDays Tel Aviv 2016
Event-driven Infrastructure - Mike Place, SaltStack - DevOpsDays Tel Aviv 2016Event-driven Infrastructure - Mike Place, SaltStack - DevOpsDays Tel Aviv 2016
Event-driven Infrastructure - Mike Place, SaltStack - DevOpsDays Tel Aviv 2016
 
IoT in salsa Serverless
IoT in salsa ServerlessIoT in salsa Serverless
IoT in salsa Serverless
 

More from Corrado Santoro

Physical Flying Agents: Ummanned Aerial Vehicles Control, Coordination and Em...
Physical Flying Agents: Ummanned Aerial Vehicles Control, Coordination and Em...Physical Flying Agents: Ummanned Aerial Vehicles Control, Coordination and Em...
Physical Flying Agents: Ummanned Aerial Vehicles Control, Coordination and Em...Corrado Santoro
 
Pulse Width Modulation Signal Generation with MCUs
Pulse Width Modulation Signal Generation with MCUsPulse Width Modulation Signal Generation with MCUs
Pulse Width Modulation Signal Generation with MCUsCorrado Santoro
 
Using Timer2 in Microchip MCUs
Using Timer2 in Microchip MCUsUsing Timer2 in Microchip MCUs
Using Timer2 in Microchip MCUsCorrado Santoro
 
Handling Asynchronous Events in MCUs
Handling Asynchronous Events in MCUsHandling Asynchronous Events in MCUs
Handling Asynchronous Events in MCUsCorrado Santoro
 
Presentation @ Miniscuola WOA 2015
Presentation @ Miniscuola WOA 2015Presentation @ Miniscuola WOA 2015
Presentation @ Miniscuola WOA 2015Corrado Santoro
 
Presentation @ WOA 2015
Presentation @ WOA 2015 Presentation @ WOA 2015
Presentation @ WOA 2015 Corrado Santoro
 
Using Ready-for-PIC and SDR Libraries
Using Ready-for-PIC and SDR LibrariesUsing Ready-for-PIC and SDR Libraries
Using Ready-for-PIC and SDR LibrariesCorrado Santoro
 
Introduction to shell scripting
Introduction to shell scriptingIntroduction to shell scripting
Introduction to shell scriptingCorrado Santoro
 
Analog to digital converter
Analog to digital converterAnalog to digital converter
Analog to digital converterCorrado Santoro
 
Exercises with timers and UART
Exercises with timers and UARTExercises with timers and UART
Exercises with timers and UARTCorrado Santoro
 
Handling Interrupts in Microchip MCUs
Handling Interrupts in Microchip MCUsHandling Interrupts in Microchip MCUs
Handling Interrupts in Microchip MCUsCorrado Santoro
 
Using Timers in PIC18F Microcontrollers
Using Timers in PIC18F MicrocontrollersUsing Timers in PIC18F Microcontrollers
Using Timers in PIC18F MicrocontrollersCorrado Santoro
 
Programming the Digital I/O Interface of a PIC microcontroller
Programming the Digital I/O Interface of a PIC microcontrollerProgramming the Digital I/O Interface of a PIC microcontroller
Programming the Digital I/O Interface of a PIC microcontrollerCorrado Santoro
 
Introduction to microcontrollers
Introduction to microcontrollersIntroduction to microcontrollers
Introduction to microcontrollersCorrado Santoro
 

More from Corrado Santoro (20)

Physical Flying Agents: Ummanned Aerial Vehicles Control, Coordination and Em...
Physical Flying Agents: Ummanned Aerial Vehicles Control, Coordination and Em...Physical Flying Agents: Ummanned Aerial Vehicles Control, Coordination and Em...
Physical Flying Agents: Ummanned Aerial Vehicles Control, Coordination and Em...
 
The I2C Interface
The I2C InterfaceThe I2C Interface
The I2C Interface
 
Using Timer1 and CCP
Using Timer1 and CCPUsing Timer1 and CCP
Using Timer1 and CCP
 
Pulse Width Modulation Signal Generation with MCUs
Pulse Width Modulation Signal Generation with MCUsPulse Width Modulation Signal Generation with MCUs
Pulse Width Modulation Signal Generation with MCUs
 
Using Timer2 in Microchip MCUs
Using Timer2 in Microchip MCUsUsing Timer2 in Microchip MCUs
Using Timer2 in Microchip MCUs
 
Handling Asynchronous Events in MCUs
Handling Asynchronous Events in MCUsHandling Asynchronous Events in MCUs
Handling Asynchronous Events in MCUs
 
Presentation @ Miniscuola WOA 2015
Presentation @ Miniscuola WOA 2015Presentation @ Miniscuola WOA 2015
Presentation @ Miniscuola WOA 2015
 
Presentation @ WOA 2015
Presentation @ WOA 2015 Presentation @ WOA 2015
Presentation @ WOA 2015
 
Soc
SocSoc
Soc
 
Using Ready-for-PIC and SDR Libraries
Using Ready-for-PIC and SDR LibrariesUsing Ready-for-PIC and SDR Libraries
Using Ready-for-PIC and SDR Libraries
 
Introduction to Erlang
Introduction to ErlangIntroduction to Erlang
Introduction to Erlang
 
Introduction to shell scripting
Introduction to shell scriptingIntroduction to shell scripting
Introduction to shell scripting
 
Pillole di C++
Pillole di C++Pillole di C++
Pillole di C++
 
Analog to digital converter
Analog to digital converterAnalog to digital converter
Analog to digital converter
 
Exercises with timers and UART
Exercises with timers and UARTExercises with timers and UART
Exercises with timers and UART
 
UART MCU
UART MCUUART MCU
UART MCU
 
Handling Interrupts in Microchip MCUs
Handling Interrupts in Microchip MCUsHandling Interrupts in Microchip MCUs
Handling Interrupts in Microchip MCUs
 
Using Timers in PIC18F Microcontrollers
Using Timers in PIC18F MicrocontrollersUsing Timers in PIC18F Microcontrollers
Using Timers in PIC18F Microcontrollers
 
Programming the Digital I/O Interface of a PIC microcontroller
Programming the Digital I/O Interface of a PIC microcontrollerProgramming the Digital I/O Interface of a PIC microcontroller
Programming the Digital I/O Interface of a PIC microcontroller
 
Introduction to microcontrollers
Introduction to microcontrollersIntroduction to microcontrollers
Introduction to microcontrollers
 

Recently uploaded

Blooming Together_ Growing a Community Garden Worksheet.docx
Blooming Together_ Growing a Community Garden Worksheet.docxBlooming Together_ Growing a Community Garden Worksheet.docx
Blooming Together_ Growing a Community Garden Worksheet.docxUnboundStockton
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxiammrhaywood
 
Painted Grey Ware.pptx, PGW Culture of India
Painted Grey Ware.pptx, PGW Culture of IndiaPainted Grey Ware.pptx, PGW Culture of India
Painted Grey Ware.pptx, PGW Culture of IndiaVirag Sontakke
 
Pharmacognosy Flower 3. Compositae 2023.pdf
Pharmacognosy Flower 3. Compositae 2023.pdfPharmacognosy Flower 3. Compositae 2023.pdf
Pharmacognosy Flower 3. Compositae 2023.pdfMahmoud M. Sallam
 
Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17Celine George
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
भारत-रोम व्यापार.pptx, Indo-Roman Trade,
भारत-रोम व्यापार.pptx, Indo-Roman Trade,भारत-रोम व्यापार.pptx, Indo-Roman Trade,
भारत-रोम व्यापार.pptx, Indo-Roman Trade,Virag Sontakke
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Krashi Coaching
 
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdfEnzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdfSumit Tiwari
 
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17Celine George
 
Final demo Grade 9 for demo Plan dessert.pptx
Final demo Grade 9 for demo Plan dessert.pptxFinal demo Grade 9 for demo Plan dessert.pptx
Final demo Grade 9 for demo Plan dessert.pptxAvyJaneVismanos
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxSayali Powar
 
Alper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentAlper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentInMediaRes1
 
CARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxCARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxGaneshChakor2
 
Class 11 Legal Studies Ch-1 Concept of State .pdf
Class 11 Legal Studies Ch-1 Concept of State .pdfClass 11 Legal Studies Ch-1 Concept of State .pdf
Class 11 Legal Studies Ch-1 Concept of State .pdfakmcokerachita
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptxVS Mahajan Coaching Centre
 
Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Educationpboyjonauth
 

Recently uploaded (20)

Model Call Girl in Bikash Puri Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Bikash Puri  Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Bikash Puri  Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Bikash Puri Delhi reach out to us at 🔝9953056974🔝
 
Blooming Together_ Growing a Community Garden Worksheet.docx
Blooming Together_ Growing a Community Garden Worksheet.docxBlooming Together_ Growing a Community Garden Worksheet.docx
Blooming Together_ Growing a Community Garden Worksheet.docx
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
 
Painted Grey Ware.pptx, PGW Culture of India
Painted Grey Ware.pptx, PGW Culture of IndiaPainted Grey Ware.pptx, PGW Culture of India
Painted Grey Ware.pptx, PGW Culture of India
 
Pharmacognosy Flower 3. Compositae 2023.pdf
Pharmacognosy Flower 3. Compositae 2023.pdfPharmacognosy Flower 3. Compositae 2023.pdf
Pharmacognosy Flower 3. Compositae 2023.pdf
 
Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
 
भारत-रोम व्यापार.pptx, Indo-Roman Trade,
भारत-रोम व्यापार.pptx, Indo-Roman Trade,भारत-रोम व्यापार.pptx, Indo-Roman Trade,
भारत-रोम व्यापार.pptx, Indo-Roman Trade,
 
9953330565 Low Rate Call Girls In Rohini Delhi NCR
9953330565 Low Rate Call Girls In Rohini  Delhi NCR9953330565 Low Rate Call Girls In Rohini  Delhi NCR
9953330565 Low Rate Call Girls In Rohini Delhi NCR
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
 
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
 
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdfEnzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
 
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
 
Final demo Grade 9 for demo Plan dessert.pptx
Final demo Grade 9 for demo Plan dessert.pptxFinal demo Grade 9 for demo Plan dessert.pptx
Final demo Grade 9 for demo Plan dessert.pptx
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
 
Alper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentAlper Gobel In Media Res Media Component
Alper Gobel In Media Res Media Component
 
CARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxCARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptx
 
Class 11 Legal Studies Ch-1 Concept of State .pdf
Class 11 Legal Studies Ch-1 Concept of State .pdfClass 11 Legal Studies Ch-1 Concept of State .pdf
Class 11 Legal Studies Ch-1 Concept of State .pdf
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
 
Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Education
 

Integrating Cloud Services in Behaviour Programming for Autonomous Robots

  • 1. Integrating Cloud Services in Behaviour Programming for Autonomous Robots Integrating Cloud Services in Behaviour Programming for Autonomous Robots Fabrizio Messina, Giuseppe Pappalardo, Corrado Santoro ARSLAB - Autonomous and Robotic Systems Laboratory Dipartimento di Matematica e Informatica Universit` di Catania, Italy a {messina, pappalardo, santoro}@dmi.unict.it C-SmartCPS @ ICA3PP 2013 - Vietri sul Mare, 20 Dicembre 2013
  • 2. Integrating Cloud Services in Behaviour Programming for Autonomous Robots Outline 1 Motivation 2 PROFETA Basic Entities Sensors and Actions Execution Semantics 3 CLEPTA Architecture ASync Sensors and Actions A Simple Case-Study 4 Conclusions
  • 3. Integrating Cloud Services in Behaviour Programming for Autonomous Robots Motivation Motivation (I) Robots are autonomous systems living in a pysical environment. We expect to have home robots in the next few years. Computing platforms for home robots could not possess the adequate amount of computing power — i.e. CPU Power and/or Storage capacity — to perform certain computation-intensive tasks, e.g.: Speech to text, text to speech Speaker recognition NLP processing Image processing Pattern recognition (in general) ...
  • 4. Integrating Cloud Services in Behaviour Programming for Autonomous Robots Motivation Motivation (II) But nowadays home environments are “on the net” And “computation intensive” tasks could be performed “in the cloud” Hence the necessity to include, in robot programming environment/platforms, a proper support for Cloud Computing
  • 5. Integrating Cloud Services in Behaviour Programming for Autonomous Robots PROFETA Basic Entities PROFETA Basics PROFETA (Python RObotic Framework for dEsigning sTrAtegies) is Python tool for programming autonomous systems (agents or robots) using the Belief-Desire-Intention (BDI) model. Designed at ARSLAB @ UNICT in 2010 and available at http://github.com/corradosantoro/profeta PROFETA provides a declarative language as a dialect of AgentSpeak(L). PROFETA is an “all-in-one” environment supporting both imperative (algorithmical part) and declarative (behavioural part) programming models.
  • 6. Integrating Cloud Services in Behaviour Programming for Autonomous Robots PROFETA Basic Entities PROFETA Basics PROFETA provides A set of classes to represent basic BDI entities, i.e. Beliefs ⇒ Knowledge Goals ⇒ States to be achieved Actions ⇒ Things to do to reach the Goals A declarative language—dialect of AgentSpeak(L)—to express agent’s behaviour An engine executing that behaviour A Knowledge base storing the beliefs
  • 7. Integrating Cloud Services in Behaviour Programming for Autonomous Robots PROFETA Basic Entities PROFETA Declarative Syntax A PROFETA behaviour is a set of rules in the form Event / Condition >> set of Action where: Event can be: belief assert or retract, goal achievement request, goal failure. Condition refers to a certain state of the knowledge base. Action can be: belief assert or retract, goal achievement request, Python expressions, user defined atomic action. Example: +object_at("X","Y") / object_got("no") >> [ move_to("X", "Y"), pick_object() ] Such expressions are managed thanks to operator overloading
  • 8. Integrating Cloud Services in Behaviour Programming for Autonomous Robots PROFETA Sensors and Actions Interface with environment: Actions In order to interact with the environment, two abstractions are provided: Actions Sensors An action is defined as a subclass of Action. The execute() method has to implement the computation which concretely performs the action. The associated computation is executed atomically.
  • 9. Integrating Cloud Services in Behaviour Programming for Autonomous Robots PROFETA Sensors and Actions Sensors A Sensor class is provided with the objective of allowing the programmer to write the proper code to “sense” the environment and generate the proper beliefs. The programmer has to: subclass Sensor override the sense() method inform the Engine that a new sensor has been added in the program. Method sense() may return None, nothing has been sensed +bel(...), something has been sensed, a belief is added to the KB and the “add event” is generated. bel(...), something has been sensed, a belief is added to the KB but the “add event” is NOT generated.
  • 10. Integrating Cloud Services in Behaviour Programming for Autonomous Robots PROFETA Execution Semantics PROFETA (Informal) Execution Semantics PROFETA Main Loop Execution: 1 Scan sensors and, for each of them, call the sense() method and analyse the return value. 2 If the return value is an event, e.g.+bel(...), find the relevant rule, verify the condition part and then put the rule in execution. 3 Executes all the actions of the selected rule and then go to 1. 4 Go to 1. Execution is strictly synchronous!
  • 11. Integrating Cloud Services in Behaviour Programming for Autonomous Robots PROFETA Execution Semantics PROFETA and the Cloud A simple robot which responds to voice commands by using TTS and STT Cloud services (e.g. Google API). 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ... class utterance ( Belief ): pass class move_to ( Action ): def execute ( self ): x = self [0] y = self [1] # ... perform movement to x , y class hear ( Sensor ): def sense ( self ): command = # sample audio data and invoke STT clould service return + utterance ( command ) class say ( Action ): def execute ( self ): phrase = self [0] # invoke the TTS could service with " phrase " + utterance ( " go " ) >> [ say ( " ok , i ’m going " ) , move_to ( " X " , " Y " ) ]
  • 12. Integrating Cloud Services in Behaviour Programming for Autonomous Robots PROFETA Execution Semantics Synchronous Execution The synchronous execution is a desired PROFETA feature, but it could cause some problems. Sensors are polled in sequence only if there are no actions to be executed If actions/sensors are “slow” an agent/robot is blind, w.r.t. events which could happen in the environment Action/Sensor dynamics/duration matters!! Action/Sensor for cloud services are potentially “slow”.
  • 13. Integrating Cloud Services in Behaviour Programming for Autonomous Robots CLEPTA Architecture Introducing CLEPTA To solve the problem a decoupling layer is needed. The layer has to introduce the needed asynchrony in cloud service invocation. CLEPTA (CLoud Extension for ProfeTA) provides a different domain for the asynchronous execution of Sensors and Actions.
  • 14. Integrating Cloud Services in Behaviour Programming for Autonomous Robots CLEPTA Architecture Introducing CLEPTA ServiceInvokers: Entities—subclass of Service—performing the concrete invocation of cloud services. PROFETA/CLEPTA Interface: Layer which, using special kind of Actions and Sensors, connects the ServiceInvokers with the PROFETA domain.
  • 15. Integrating Cloud Services in Behaviour Programming for Autonomous Robots CLEPTA ASync Sensors and Actions Sensors in CLEPTA A PROFETA Sensor is decoupled by wrapping it with a AsyncSensorProxy provided by CLEPTA. The AsyncSensorProxy: Creates a new thread in which the real Sensor executes. Manages a queue to store the beliefs generated by the Sensors (w/ configurable length). It is seens by PROFETA as a classical Sensor.
  • 16. Integrating Cloud Services in Behaviour Programming for Autonomous Robots CLEPTA ASync Sensors and Actions Actions in CLEPTA A PROFETA Action is decoupled by creating it as a subclass of AsyncAction (provided by CLEPTA). Asynchronous execution of the cloud service invocation is handled by an AsyncActionExecutor, it: Creates a new thread in which the Invoker executes. Manages a method queue to store the IDs of methods to be called asynchronously.
  • 17. Integrating Cloud Services in Behaviour Programming for Autonomous Robots CLEPTA A Simple Case-Study PROFETA + CLEPTA and the Cloud A simple robot which responds to voice commands by using TTS and STT Cloud services (e.g. Google API). 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ... class utterance ( Belief ): pass class say ( AsyncAction ): def create_service ( self , lang = ’ en ’ ): return G o og l eT ex t To S pe ec h ( lang ) # provided by CLEPTA def execute ( self ): utterance = self [0] self . async_invoke ( self . get_service (). say , [ utterance ]) class hear ( Sensor ): def sense ( self ): command = # sample audio data and invoke STT clould service return + utterance ( command ) ... PROFETA . add_sensor ( AsyncSensorProxy ( hear ())) + utterance ( " go " ) >> [ say ( " ok , i ’m going " ) , .... ] + utterance ( " _ " ) >> [ say ( " could you repeat please ? " ) ]
  • 18. Integrating Cloud Services in Behaviour Programming for Autonomous Robots Conclusions Conclusions PROFETA allows to define robot strategies in a flexible and intuitive way, by using the principles of the BDI model. PROFETA combines the advantages of both imperative and declarative approach, while offering an all-in-one environment. CLEPTA adds the ability to exploit, in robot’s behaviour, external services provided “in the cloud”. PROFETA+CLEPA have been successfully applied in various robots built at ARSLab, thus proving the effectiveness of the tool: Voice-driven robots Complex image analysis (e.g. target recognition)
  • 19. Integrating Cloud Services in Behaviour Programming for Autonomous Robots Conclusions References http://github.com/corradosantoro/profeta L. Fichera, D. Marletta, V. Nicosia, C. Santoro. Flexible Robot Strategy Design using Belief-Desire-Intention Model. In Proc. of International Conference on Research and Education in Robotics (EUROBOT 2010), Spriger CCIS Series, Rappreswille, Swizerland), May 27-30, 2010. L. Fichera, D. Marletta, V. Nicosia, C. Santoro. A Methodology to Extend Imperative Languages with AgentSpeak Declarative Constructs. In Proc. of Workshop on Objects and Agents (WOA2010), CEUR-WS Publisher, ISSN 1613-0073, Rimini, Italy, Sept. 5-7, 2010. G. Fortino, W. Russo, C. Santoro. Translating Statecharts-based into BDI Agents: The DSC/PROFETA case. MAS&S Workshop @ MATES 2013. F. Messina, G. Pappalardo, C. Santoro. Integrating Cloud Services in Behaviour Programming for Autonomous Robots. CSmart-CPS Workshop, LNCS, 2013.
  • 20. Integrating Cloud Services in Behaviour Programming for Autonomous Robots Conclusions Integrating Cloud Services in Behaviour Programming for Autonomous Robots Fabrizio Messina, Giuseppe Pappalardo, Corrado Santoro ARSLAB - Autonomous and Robotic Systems Laboratory Dipartimento di Matematica e Informatica Universit` di Catania, Italy a {messina, pappalardo, santoro}@dmi.unict.it C-SmartCPS @ ICA3PP 2013 - Vietri sul Mare, 20 Dicembre 2013