Agent-oriented modeling and development of a person-following mobile robot José Manuel Gascueña a , Antonio Fernández-Caballero a,b,⇑ a Instituto de Investigación en Informática de Albacete (I3A), Universidad de Castilla-La Mancha, 02071 Albacete, Spain b Departamento de Sistemas Informáticos, Escuela de Ingenieros Industriales de Albacete, Universidad de Castilla-La Mancha, 02071 Albacete, Spain article info Keywords: Multi-agent systems Agent-oriented Software Engineering Mobile robots Surveillance abstract This paper introduces a multi-agent system (MAS) approach using the detailed process provided by Pro- metheus methodology for the design of a moving robot application for the detection and following of humans. Our conjecture is that complex autonomous robotic systems have to be fully modeled in their initial design stages by means of agent-based technology. The application has been completely modeled with the Prometheus Design Tool (PDT), which offers full support to Prometheus methodology. Code has been generated in the agent-oriented programming language JACK. Ó 2010 Elsevier Ltd. All rights reserved. 1. Introduction In the last few decades, the field of surveillance systems has captured the attention of the industry and investigation in the aca- demic realm (Fernández-Caballero, Gómez, & López-López, 2008; López, Fernández-Caballero, Fernández, Mira, & Delgado, 2006). It is usual to find surveillance systems made up of heterogeneous de- vices which make it possible to recover different flow of informa- tion (video, audio, images, scalar data) from the scenario to carry out an analysis and interpretation of the scene in real time (Cucchiara, 2005; Valera & Velastin, 2005). From the point of view of image processing, these systems are based on distributing the processing capabilities and using embedded signal processing de- vices to gain from the advantages of the scalability and robustness of the distributed systems. The main problems which need to be solved in these systems are: integrating data obtained from differ- ent sensors, establishing a correspondence of the signals in time and space and coordinating and distributing the processing task and video communication. Surveillance systems are fundamentally used for three reasons. First, to guarantee public safety in public spaces (e.g. train stations, subways or airports) and/or private spaces, detecting and prevent- ing possible vandal or criminal attacks; second, in order to carry out a forensic analysis of the incidents occurred and third, to obtain statistics about people, vehicles and their behavior. In particular, mobile robots could be equipped with different sensors in order to perform surveillance tasks because they are able to obtain a vi- sion of the objects of interest from a different perspective, and to accede to zones that are inaccessible to fixed cameras or that are dangerous for the humans. For this reason, the main goal of this article is to design a moving robot application for the detection and following of humans. The potential of the practical use of the concepts and technologies related with the Prometheus agent- oriented Software Engineering methodology (Padgham & Winikoff, 2004) is evaluated to satisfy this goal. The rest of the article is organized as follows. First, it is intro- duced why agents are a good choice for solving the problems which appear and are dealt with in surveillance systems. Next, a collection of works which use robots in related subjects to surveil- lance systems is summed up. Moreover, it is emphasized the use of agent-based technology in surveillance-related robotic applica- tions and why Prometheus has been selected. Afterwards, the agent-oriented modeling of our system from requirement capture to code generation through the phases proposed in Prometheus is presented. Finally, some conclusions are offered. 2. Why agents are relevant in surveillance systems There is no universally accepted definition for the term ‘‘agent”, but there is a wide range of perspectives in function of the applica- tion domain, the author and so on. Franklin and Graesser (1996) state: ‘‘An autonomous agent is a system situated within and a part of an environment that senses that environment and acts on it, over time, in pursuit of its own agenda and so as to effect what it senses in the future”. Any agent, in accordance with this defini- tion, satisfies the four properties as indicated next (Wooldridge & Jennings, 1995): (1) autonomy – agents operate without the direct intervention of humans or other agents and have some kind of con- trol over their actions and internal state; (2) social ability – agents interact with other agents (and possibly humans) via some kind of agent-communication language; agents collaborate for the sake of 0957-4174/$ - see front matter Ó 2010 Elsevier Ltd. All rights reserved. doi:10.1016/j.eswa.2010.09.096 ⇑ Corresponding author at: Instituto de Investigación en Informática de Albacete (I3A), Universidad de Castilla-La Mancha, 02071 Albacete, Spain. Tel.: +34 967 599200; fax: +34 967 599224. E-mail addresses: jmanuel@dsi.uclm.es (J.M. Gascueña), caballer@dsi.uclm.es (A. Fernández-Caballero). Expert Systems with Applications 38 (2011) 4280–4290 Contents lists available at ScienceDirect Expert Systems with Applications journal homepage: www.elsevier.com/locate/eswa