– Dealing with conflicts based on plans priorities and deadlines including dynamicprioritization and preemption.– Supporting different policies to deal with preempted and failed plans suchas stopping, suspending or aborting a preempted plan or a failed plan.– Recovering from a plan failure and performing wind-down activities aftersuspension and before resuming a plan.Furthermore, in addition to mechanisms needed for representing, reasoningon and resolving conflicts in plans execution, similar mechanisms are also necessarywhen processing goals and events to generate plans. For example processinggoals and events should be ordered based on their priorities and a lower prioritygoal conflicting with a higher priority goal might needed to be considered asfailed or to be kept to be processed later. These mechanisms are in particularneeded in a distributed control paradigm in which a control component mightreceives conflicting goals from other components and should provide feedback tothose components if it can handle those goals or not.7 ConclusionThe paper presents various requirements for agent programming languages in orderto implement cognitive robot control systems. These requirements are drawnpartially based on an analysis <strong>of</strong> the problem at hand and partially based on astudy <strong>of</strong> current autonomous robot control systems. We do not claim that the set<strong>of</strong> requirements presented in this paper is complete. However by analyzing mainaspects <strong>of</strong> programming cognitive robots and providing an overview <strong>of</strong> capabilities<strong>of</strong> current high-level robot programming tools, we have made a contributionto the systematic analysis and presentation <strong>of</strong> agent programming languages requirementsfor programming cognitive robots. In this paper we limit ourselvesto single robot applications. Multi-robot scenarios impose other requirements onagent programming languages for coordination, cooperation and communicationbetween robots which have been left for further research.The requirements presented in this paper show a big gap between capabilities<strong>of</strong> current agent programming languages and demands <strong>of</strong> programmingautonomous robot control systems. Our research aim is to bridge this gap byextending the 2APL agent programming language to meet these requirements.One <strong>of</strong> such requirements is integration with existing robotic frameworks to facilitatecontrolling and communication with functional modules developed inthese frameworks. This can encourage the use <strong>of</strong> agent programming languagesby robotic community and facilitate their use for rapid prototyping and development<strong>of</strong> autonomous systems. To address this requirement, we have developedan environment interface for 2APL facilitating its integration with ROS usingROS communication mechanisms. We have used ROS to provide basic roboticcapabilities such as face recognition, voice recognition and a number <strong>of</strong> high-levelactions such as sit-down(), stand-up(), turn-neck(O) and walk-to(X,Y) for ourNAO robots. Using 2APL and ROS, we have developed a demo application in51
which different NAO’s movement can be controlled by voice. Also NAO can becommanded to remember the face <strong>of</strong> a user and whenever a user greets NAO, ifNAO recognizes the user’s face, it greets the user by his/her name.A part <strong>of</strong> the future work is to extend 2APL to provide support for development<strong>of</strong> a sensory component for processing and management <strong>of</strong> heterogeneoussensory information. This component should enable unified representation <strong>of</strong>sensory data and domain knowledge and reasoning on high-level events (i.e. situations).The sensory information managed and processed by the sensory componentshould be accessible by a BDI based control component in a symbolicform and through both querying and receiving as events.Another part <strong>of</strong> the future work is extending plan representation and executioncapabilities <strong>of</strong> 2APL. An extensive list <strong>of</strong> such required capabilities ispresented in section 6. These capabilities include providing support for governingthe execution <strong>of</strong> plans by sequential, temporal and priority orderings, andbased on different internal conditions and external events, representing and handlingconflicts in parallel execution <strong>of</strong> plans, and monitoring and handling plansexecution failures.Finally, we aim to provide support for development <strong>of</strong> distributed real-timeBDI-based control systems. This requires a specific version <strong>of</strong> 2APL dedicated todevelopment <strong>of</strong> real-time control components. The semantic and implementation<strong>of</strong> such version should guarantee safe and bounded-time computations to enableanalysis and guaranteeing required real-time properties <strong>of</strong> a control component.Also a dedicated architecture and runtime environment is required to supportthe real-time coordination and communication <strong>of</strong> different control components <strong>of</strong>a robot. We envision a ROS architecture consisting <strong>of</strong> a distributed set <strong>of</strong> controlcomponent with different functionalities (e.g. deliberative, reactive, plan failurehandling) which can share beliefs and goals and other ROS components (i.e.functional layer modules) including sensory components described above. Thesecomponents can have different real-time requirements. Some <strong>of</strong> them should berun in real-time and guarantee bounded reaction and response time to events.Our initial proposal for development <strong>of</strong> the real-time distributed architecture isto use the Orocos Real-Time Toolkit which has been seamlessly integrated withROS.References1. Anand S. Rao. (1996) AgentSpeak(L): BDI agents speak out in a logica computablelanguage. In W. Vander Velde and J. W. Perram, editors, <strong>Agents</strong> Breaking Away(LNAI), volume 1038 <strong>of</strong> LNAI, pages 4255. Springer-Verlag.2. Bernard, D. et.al. (2000) Remote Agent Experiment: Final Report, NASA TechnicalReport, Feb. 20003. Bordini, R. Braubach, L. Dastani, M. Fallah A.E. Gomez-Sanz, J. Leite, J, OHare,G. Pokahr, A. and Ricci, A. (2006) A survey <strong>of</strong> programming languages and platformsfor multi-agent systems. In Informatica 30, pages 33444. Bordini,R.H. hbner, J.F. and Wooldridge, M. (2007) Programming Multi-agent Systemsin AgentSpeak Using Jason. Wiley Series in Agent Technology52
- Page 2 and 3: Proceedings of the Tenth Internatio
- Page 4 and 5: OrganisationOrganising CommitteeMeh
- Page 6: Table of ContentseJason: an impleme
- Page 10 and 11: in Sect. 3 the translation of the J
- Page 12 and 13: init_count(0).max_count(2000).(a)(b
- Page 14 and 15: For instance, a failure in the ERES
- Page 16 and 17: {plan, fun start_count_trigger/1,fu
- Page 18 and 19: single parameter, an Erlang record
- Page 20 and 21: 1. Belief annotations. Even though
- Page 22 and 23: decisions taken during the design a
- Page 24 and 25: Conceptual Integration of Agents wi
- Page 26 and 27: Fig. 2. Active component structurep
- Page 28 and 29: the service provider component. As
- Page 30 and 31: Fig. 4. Web Service Invocationretri
- Page 32 and 33: 01: public interface IBankingServic
- Page 34 and 35: tate them in the same way as in the
- Page 36 and 37: 01: public interface IChartService
- Page 38 and 39: implementations being available for
- Page 41: deliberative behavior in BDI archit
- Page 44 and 45: layer modules (i.e. nodes) can be d
- Page 46 and 47: different methods to choose the cur
- Page 48 and 49: also a single scheduler module, imp
- Page 50 and 51: andom choice (OR), conditional choi
- Page 54 and 55: 5. Brooks, R. A. (1991) Intelligenc
- Page 56 and 57: An Agent-Based Cognitive Robot Arch
- Page 58 and 59: It has been argued that building ro
- Page 60 and 61: EnvironmentHardwareLocal SoftwareC+
- Page 62 and 63: a cognitive layer can connect as a
- Page 64 and 65: can reliably be differentiated and
- Page 66 and 67: 4 ExperimentTo evaluate the feasibi
- Page 68 and 69: learn or gain knowledge from experi
- Page 70 and 71: A Programming Framework for Multi-A
- Page 72 and 73: exchange and storage of tuples (key
- Page 74 and 75: Although some success [13] [14] hav
- Page 76 and 77: as well as important non-functional
- Page 78 and 79: component plans have been instantia
- Page 80 and 81: A in the example) can evaluate all
- Page 83 and 84: 1. robot-1 issues a Localization(ro
- Page 85 and 86: ACKNOWLEDGMENTThis work has been su
- Page 87 and 88: The code was analysed both objectiv
- Page 89 and 90: a conversation is following. Additi
- Page 91 and 92: the context of a communication-heav
- Page 93 and 94: Table 1. Core Agent ProtocolsAgent
- Page 95 and 96: statistically significant using an
- Page 97 and 98: to the conversation and has a perfo
- Page 99 and 100: principal reasons. Firstly, it is a
- Page 101 and 102: 2. Muldoon, C., O’Hare, G.M.P., C
- Page 103 and 104:
In the following section we will at
- Page 105 and 106:
DevelopmentProductionHuman Readabil
- Page 107 and 108:
will then evaluate this new format
- Page 109 and 110:
encoder, it is first checked if the
- Page 111 and 112:
nents themselves. However, since th
- Page 113 and 114:
optimized for this format feature s
- Page 115 and 116:
Java serialization and Jadex Binary
- Page 117 and 118:
10. P. Hoffman and F. Yergeau, “U
- Page 119 and 120:
Caching the results of previous que
- Page 121 and 122:
querying an agent’s beliefs and g
- Page 123 and 124:
or relative performance of each pla
- Page 125 and 126:
were run for 1.5 minutes; 1.5 minut
- Page 127 and 128:
Size N K n p c qry U c upd Update c
- Page 129 and 130:
epresentation. The cache simply act
- Page 131 and 132:
6 ConclusionWe presented an abstrac
- Page 133 and 134:
Typing Multi-Agent Programs in simp
- Page 135 and 136:
1 // agent ag02 iterations (" zero
- Page 137 and 138:
3.1 simpAL OverviewThe main inspira
- Page 139 and 140:
3.2 Typing Agents with Tasks and Ro
- Page 141 and 142:
Defining Agent Scripts in simpAL (F
- Page 143 and 144:
that sends a message to the receive
- Page 145 and 146:
* error: wrong type for the param v
- Page 147 and 148:
Given an organization model, it is
- Page 149 and 150:
Learning to Improve Agent Behaviour
- Page 151 and 152:
2.1 Agent Programming LanguagesAgen
- Page 153 and 154:
choosing actions is to find a good
- Page 155 and 156:
1 init module {2 knowledge{3 block(
- Page 157 and 158:
of a module. For example, to change
- Page 159 and 160:
if bel(on(X,Y), clear(X)), a-goal(c
- Page 161 and 162:
mance. Figure 2d shows the same A f
- Page 163 and 164:
the current percepts of the agent.
- Page 165:
Author IndexAbdel-Naby, S., 69Alelc