<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.3 20070202//EN" "journalpublishing.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink" xml:lang="en" article-type="research-article">
<front>
<journal-meta>
<journal-id journal-id-type="nlm-ta">Sensors</journal-id>
<journal-title>Sensors</journal-title>
<issn pub-type="epub">1424-8220</issn>
<publisher>
<publisher-name>Molecular Diversity Preservation International (MDPI)</publisher-name></publisher></journal-meta>
<article-meta>
<article-id pub-id-type="doi">10.3390/s110404385</article-id>
<article-id pub-id-type="publisher-id">sensors-11-04385</article-id>
<article-categories>
<subj-group>
<subject>Article</subject></subj-group></article-categories>
<title-group>
<article-title>A New HLA-Based Distributed Control Architecture for Agricultural Teams of Robots in Hybrid Applications with Real and Simulated Devices or Environments</article-title></title-group>
<contrib-group>
<contrib contrib-type="author">
<name><surname>Nebot</surname><given-names>Patricio</given-names></name><xref ref-type="aff" rid="af1-sensors-11-04385"><sup>1</sup></xref><xref ref-type="corresp" rid="c1-sensors-11-04385"><sup>★</sup></xref></contrib>
<contrib contrib-type="author">
<name><surname>Torres-Sospedra</surname><given-names>Joaquín</given-names></name><xref ref-type="aff" rid="af1-sensors-11-04385"><sup>1</sup></xref></contrib>
<contrib contrib-type="author">
<name><surname>Martínez</surname><given-names>Rafael J.</given-names></name><xref ref-type="aff" rid="af2-sensors-11-04385"><sup>2</sup></xref></contrib></contrib-group>
<aff id="af1-sensors-11-04385">
<label>1</label> Department of Engineering and Computer Science, Universitat Jaume I, Avda. Sos Baynat S/N, E-12071, Castellón, Spain; E-Mail: <email>jtorres@uji.es</email></aff>
<aff id="af2-sensors-11-04385">
<label>2</label> LSyM - IRTIC Institute, University of Valencia, C/Catedrático José Beltrán 2, 46980, Paterna, Spain; E-Mail: <email>rafael.martinez@uv.es</email></aff>
<author-notes>
<corresp id="c1-sensors-11-04385">
<label>★</label> Author to whom correspondence should be addressed; E-Mail: <email>pnebot@uji.es</email>; Tel.: +34-96-4728273; Fax: +34-96-4728486.</corresp></author-notes>
<pub-date pub-type="collection">
<year>2011</year></pub-date>
<pub-date pub-type="epub">
<day>14</day>
<month>4</month>
<year>2011</year></pub-date>
<volume>11</volume>
<issue>4</issue>
<fpage>4385</fpage>
<lpage>4400</lpage>
<history>
<date date-type="received">
<day>15</day>
<month>2</month>
<year>2011</year></date>
<date date-type="rev-recd">
<day>2</day>
<month>4</month>
<year>2011</year></date>
<date date-type="accepted">
<day>13</day>
<month>4</month>
<year>2011</year></date></history>
<permissions>
<copyright-statement>© 2011 by the authors; licensee MDPI, Basel, Switzerland.</copyright-statement>
<copyright-year>2011</copyright-year>
<license>
<p>This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution license (http://creativecommons.org/licenses/by/3.0/).</p></license></permissions>
<abstract>
<p>The control architecture is one of the most important part of agricultural robotics and other robotic systems. Furthermore its importance increases when the system involves a group of heterogeneous robots that should cooperate to achieve a global goal. A new control architecture is introduced in this paper for groups of robots in charge of doing maintenance tasks in agricultural environments. Some important features such as scalability, code reuse, hardware abstraction and data distribution have been considered in the design of the new architecture. Furthermore, coordination and cooperation among the different elements in the system is allowed in the proposed control system. By integrating a network oriented device server <italic>Player</italic>, Java Agent Development Framework (<italic>JADE</italic>) and High Level Architecture (<italic>HLA</italic>), the previous concepts have been considered in the new architecture presented in this paper. <italic>HLA</italic> can be considered the most important part because it not only allows the data distribution and implicit communication among the parts of the system but also allows to simultaneously operate with simulated and real entities, thus allowing the use of hybrid systems in the development of applications.</p></abstract>
<kwd-group>
<kwd>hybrid systems</kwd>
<kwd>improved simulation system</kwd>
<kwd>agricultural robotics</kwd>
<kwd>control architecture</kwd>
<kwd>HLA-based system</kwd></kwd-group></article-meta></front>
<body>
<sec sec-type="intro">
<label>1.</label>
<title>Introduction</title>
<p>The use of robotic applications in forestry or agriculture is widespread. This paper will deal with the agricultural robotic systems which work into orange groves. These systems should perform some general applications, such as navigation, and specific maintenance tasks. In orange groves, the robotic system can be used to collect oranges, detect illnesses, eliminate weeds, fertilize, or simply explore the grove to eliminate rests of trees by the pruning.</p>
<p>In the bibliography, the description of cooperative systems, composed by some different robots, for agricultural tasks is not common. In general, a single complex robot which performs specific actions on the environment is commonly suggested in the literature [<xref ref-type="bibr" rid="b1-sensors-11-04385">1</xref>–<xref ref-type="bibr" rid="b5-sensors-11-04385">5</xref>].</p>
<p>The control architecture is one of the most important parts to develop in a robotic system, especially if it is composed by some robots which must cooperate. This control architecture must give support for all the facilities of the system and forms the backbone of the robotic system. The right choice of the architecture can facilitate the specification, implementation and validation of the applications implemented for the system. In the literature, we can find some important architectures which are able to be used in our cooperative system.</p>
<list list-type="bullet">
<list-item>
<p><bold>Robot Operating System</bold> (<italic>ROS</italic>): It is a framework for robot software development, providing operating system-like functionality on top of a heterogeneous computer cluster. This framework was originally developed in 2007 by the Stanford Artificial Intelligence Laboratory in support of the <italic>Stanford AI Robot</italic> project under the name <italic>switchyard</italic>. Although it is intended to be cross-platform, it is only fully supported by a few Linux distributions.</p></list-item>
<list-item>
<p><bold>Orca/Orocos:</bold> <italic>Orca</italic> is another open-source framework, released under <italic>LGPL</italic> and <italic>GPL</italic> licenses, for developing component-based robotic systems. It was initially a part of an EU sponsored project, <italic>OROCOS 2002</italic>, but it was renamed to <italic>ORCA</italic>. This framework is based on <italic>CORBA</italic> and it provides the means for defining and developing the parts of complex robotic systems.</p></list-item>
<list-item>
<p><bold>Umbra:</bold> <italic>Umbra</italic> is a framework for modeling and simulation. This framework allows generating models and simulations for intelligent system development, analysis, experimentation, and control and supports the analysis of complex robotic systems. The models in Umbra include 3D geometry and physics of robots and environments. Model components can be built with varying levels of fidelity, so the models built with low fidelity for conceptual analysis can be gradually converted to high fidelity models for later phase detailed analysis. Within control environments, the models can be easily replaced with actual control elements.</p></list-item></list>
<p>Abstraction of the hardware, code reuse, scalability and other features are included in these three alternatives. Moreover, some of these architectures implement the capability to manage the possible coordination or cooperation among different entities that could be involved in the system to perform the different tasks. Additionally, the capacity of allowing communication, implicit or explicit, between the elements in the system is also implemented by some of them.</p>
<p><xref ref-type="table" rid="t1-sensors-11-04385">Table 1</xref> introduces a comparison considering all these control architectures and the proposed <italic>Agriture</italic>. Important and relevant measurements have been included in this comparison.</p>
<p>The research described in this paper is focused on the development of a cooperative system to control a team of mobile robots. The intention is to use the proposed system in agricultural environments developing different maintenance tasks. As mentioned before, in any robotic system it is necessary to choose a control architecture to support the system. However, none of the architectures reviewed before fit well in our cooperative system requirements. In our case, including the capabilities of the other architectures, it is also desirable to have the architecture based on international standards and allow simulations of the elements in the system in order to deploy or debug the applications without the necessity to move to the outdoor scenario. These concepts are not present in the cited architectures. For this reason we introduce a new control architecture called “<italic>AGRIcultural architecTURE</italic>” (<italic>Agriture</italic>), which integrates three different systems (<italic>Player</italic> [<xref ref-type="bibr" rid="b9-sensors-11-04385">9</xref>], <italic>JADE</italic> [<xref ref-type="bibr" rid="b10-sensors-11-04385">10</xref>] and <italic>HLA</italic> [<xref ref-type="bibr" rid="b11-sensors-11-04385">11</xref>–<xref ref-type="bibr" rid="b13-sensors-11-04385">13</xref>]) that interact to provide a solid control architecture for developing cooperative robotic system. <xref ref-type="fig" rid="f1-sensors-11-04385">Figure 1</xref> introduces the basic description of a distributed application for the proposed architecture.</p>
<p>The rest of the paper is organized as follows. Firstly, the design and implementation of the proposed architecture, <italic>Agriture</italic>, is introduced in Sections 2 and 3. In Section 4, some distributed applications which can use <italic>Agriture</italic> are detailed. Finally, the conclusions and some future research lines are presented.</p></sec>
<sec sec-type="methods">
<label>2.</label>
<title>Design of the <italic>Agriture</italic> Architecure</title>
<p>As mentioned, the purpose of this work is to develop a system able to control a team of mobile robots in agricultural environments. This system is based on the <italic>Agriture</italic> architecture which is the backbone for the system. <italic>Agriture</italic>, as explained, is based in three subsystems: Player, JADE and HLA, each giving different features to the architecture.</p>
<p>The most interesting system added to the architecture is the <italic>HLA</italic> (<italic>High Level Architecture</italic>) subsystem. <italic>HLA</italic> provides a framework to create complex simulations using simple components and is defined under <italic>IEEE Standard 1516–2010</italic>. There following institutions use <italic>HLA</italic> for their applications:
<list list-type="bullet">
<list-item>
<p><bold>NASA:</bold> This agency uses <italic>HLA</italic> for integrating numerous specialized simulators into larger overall space mission simulations [<xref ref-type="bibr" rid="b14-sensors-11-04385">14</xref>]. It is also used for formation flying using multiple spacecraft and ground stations. Furthermore, some applications related to modeling natural Earth or planetary geophysical systems are based on <italic>HLA</italic>.</p></list-item>
<list-item>
<p><bold>Boeing:</bold> Linking Boeing’s Joint Strike Fighter (JSF) full-mission simulator with U.S. Air Force Air Combat Command simulators off-site in order to conduct real-time cooperative training missions [<xref ref-type="bibr" rid="b15-sensors-11-04385">15</xref>].</p></list-item>
<list-item>
<p><bold><italic>HLA</italic></bold> <bold>in robotics:</bold> In [<xref ref-type="bibr" rid="b16-sensors-11-04385">16</xref>,<xref ref-type="bibr" rid="b17-sensors-11-04385">17</xref>] a new distributed simulation environment, Symbricator3D, is introduced to simulate robot swarms as well as modular robots. Its underlying framework is the game and simulation engine “Delta-3D”, which also supports the <italic>HLA</italic> standard for providing distributed simulation. In [<xref ref-type="bibr" rid="b18-sensors-11-04385">18</xref>] a new multidisciplinary modeling and collaborative simulation system based on HLA related to multi-robot systems is developed.</p></list-item></list></p>
<p>HLA simulations are divided into federates. “A <italic>HLA</italic> federate can be a computer simulation, a manned simulator, a supporting utility (such as a viewer or data collector), or even an interface to a live player or instrumented range” [<xref ref-type="bibr" rid="b19-sensors-11-04385">19</xref>]. This property of the HLA systems opens a very big field of applications. It allows the use of both real and simulated entities at the same time, being these entities robots, environments, or any part of the system able to be simulated. This is specially useful when the system is optimized for a specific application, like the case of agricultural robotics. The relationship among the different parts is depicted in <xref ref-type="fig" rid="f2-sensors-11-04385">Figure 2</xref>.</p>
<p>In the previous figure, an example of abstraction of the mobile robot is used. Depending on the application, a real or simulated instance of the mobile robot (<italic>ATRV-2</italic>) is used to perform the corresponding tasks.</p>
<p>The new architecture, shown in <xref ref-type="fig" rid="f1-sensors-11-04385">Figure 1</xref>, is composed of three layers. The physical layer is related to all the real or simulated devices (robots, cameras, sensors, ...). They are the agents which interact with the real or simulated environment. One important feature is that each of these elements has its own specifications and communication protocols.</p>
<p>The architecture middleware implements: (1) the cooperation and coordination tasks, (2) communication between the elements, and (3) abstraction of the external devices (elements). This middleware involves three parts. One of them is in charge of implicit communication and establishes the links and data exchange format between the different elements; another part is related to explicit communication and takes charge of determining which information is transmitted and how the tasks are assigned to physical elements; the last one provides machine independence to the system because each robotic system is abstracted. The system does not work directly with the real robots, and their abstraction allows to use basic commands to control the robots. In this way, the robot can be easily replaced by a different robot without having to recode the middleware. Only the abstraction module related to the robot has to be replaced.</p>
<p>Finally, the highest part of our architecture is composed by the distributed applications. These distributed applications are controlled by the middleware layer, which is in charge of assigning the different tasks to each specific element or device. When an application is tested and it correctly works, it can be added to the middleware as a part of the whole system. This is a feature of <italic>Software Scalability</italic>.</p>
<p>The whole system, with the three layers detailed, can be seen in <xref ref-type="fig" rid="f3-sensors-11-04385">Figure 3</xref>.</p>
<p>The diagram shown in <xref ref-type="fig" rid="f4-sensors-11-04385">Figure 4</xref> represents how the signals flow in the proposed architecture. In this chart, an instance of device (<italic>Camera</italic>, <italic>LASER</italic>, <italic>GPS</italic> or <italic>Robot</italic>) is directly linked to a real or a simulated element.</p></sec>
<sec>
<label>3.</label>
<title>Implementation of the <italic>Agriture</italic> Architecture</title>
<sec>
<label>3.1.</label>
<title>Physical Devices/Hardware</title>
<p>The physical layer of the architecture contains all the hardware elements of our system. They are directly managed by <italic>Player</italic>. In the experiments on outdoor environments, such as in Agricultural Robotics, the following devices will be used:
<list list-type="bullet">
<list-item>
<p><bold>ATRV-2:</bold> The <italic>ATRV-2</italic>, shown in <xref ref-type="fig" rid="f5-sensors-11-04385">Figure 5</xref>, is a rugged four-wheel drive, differentially steered all-terrain robot vehicle for outdoor robotic research and application development. It is stable in wide varied terrains and it can traverse them easily. All its features make the <italic>ATRV-2</italic> a good alternative for use in outdoor environments such as the orange groves. The ATRV-2 Provides:
<list list-type="simple">
<list-item>
<p>– An internal PC computer with data and power ports for user hardware additions.</p></list-item>
<list-item>
<p>– Full front sonar coverage, with 4 side and 2 rear sonars.</p></list-item>
<list-item>
<p>– Mobility object-oriented software development environment.</p></list-item>
<list-item>
<p>– Run Time: 4.5 h average.</p></list-item>
<list-item>
<p>– Translate Speed: 2 meters per second.</p></list-item>
<list-item>
<p>– Payload: 50 kg user added equipment.</p></list-item></list></p></list-item>
<list-item>
<p><bold>RESCUER:</bold> It is a mobile platform extremely solid and very appropriate for outdoor environments, even hazardous to access (see <xref ref-type="fig" rid="f6-sensors-11-04385">Figure 6</xref>). It is appropriate for scientific research. The researchers can add components (cameras, sensors, hydraulic arms or grippers) due to its modular system. A big quantity of equipment can be added whether over its platform or inside it.</p>
<p>Other features of this robot are:
<list list-type="simple">
<list-item>
<p>– Dimensions: 1,100 × 780 × 600 mm.</p></list-item>
<list-item>
<p>– Payload: 200 kg.</p></list-item>
<list-item>
<p>– Speed: 1.25 m/s.</p></list-item>
<list-item>
<p>– Software architecture based in player/stage.</p></list-item>
<list-item>
<p>– Autonomy: 8 h in normal operation</p></list-item></list></p></list-item>
<list-item>
<p><bold>GPS:</bold> Each robot has its own <italic>GPS</italic> module, concretely a <italic>GPS Pathfinder ProXT Receiver</italic>. This device is composed of a sub-meter precision GPS receiver, an antenna, and an all-day battery as can be seen in <xref ref-type="fig" rid="f7-sensors-11-04385">Figure 7</xref>. Moreover, it is totally cable-free, rugged and weatherproof, so it suitable for outdoor environments such as orange groves.</p>
<p>The use of GPS is essential for localization and navigation of the robotic system in orange groves, as it provides the global position of the robot. This particular GPS sensor is a “differential GPS”, which offers greater precision than other standard GPS receivers, and they can also make use of the DGPS Spanish Network.</p></list-item>
<list-item>
<p><bold>Vision system:</bold> The vision system is composed by a <italic>VGA</italic> camera with <italic>CCD</italic> image sensor and auto iris control. Concretely, the <italic>FOculus FO124IC</italic> (<xref ref-type="fig" rid="f8-sensors-11-04385">Figure 8</xref>) has been used after testing some other alternatives. The features of the camera are:
<list list-type="simple">
<list-item>
<p>– 1/3′ IT CCD image sensor.</p></list-item>
<list-item>
<p>– Color camera.</p></list-item>
<list-item>
<p>– Progressive Scan mode.</p></list-item>
<list-item>
<p>– 60 fps, 640 (H) × 494 (V), External Trigger.</p></list-item>
<list-item>
<p>– Auto IRIS Lens Control.</p></list-item>
<list-item>
<p>– Firewire - IEEE 1394.</p></list-item></list></p>
<p>The lens used is a Pentax H612E(HK) lens which has 0.5′ format, 6.0 mm focal length and its iris is automatically controlled by the camera.</p>
<p>This vision system provides <italic>VGA</italic> color images whose resolution is enough for further applications. Furthermore, it allows the auto iris control which is necessary in outdoor scenarios such as orange groves. In the next figure, <xref ref-type="fig" rid="f9-sensors-11-04385">Figure 9</xref>, three different captures have been shot with a similar FOculus camera without the auto iris control. The upper image is related to a capture where the aperture of the iris has been optimized for the lighting conditions. However, the image obtained may not adequately capture the elements of the grove if the iris is not properly set (the images located at the bottom left and bottom right).</p>
<p>In these captures, it can be seen that the bottom left image is so dark that the elements can not be distinguished. In the bottom right image, the iris is too open and this produces a “burn” image where most of the elements have highest brightness possible.</p></list-item>
<list-item>
<p><bold>LASER detector:</bold> To perform the detection of the obstacles located in front of a robot, a <italic>HOKUYO’s LASER</italic> system, shown in <xref ref-type="fig" rid="f10-sensors-11-04385">Figure 10</xref>, has been chosen. This detector provides a field-of-view around 240 degrees and its angular resolution is close to 36 degrees with a scanning refresh rate of up to 10 Hz.</p>
<p>Due to the problems related with outdoor environments and this class of sensors, only the objects located near the robot will be detected.</p></list-item>
<list-item>
<p><bold>WiFi Network:</bold> This system is used to allow the wireless communication between the different robots. This network should allow the communication among all the robots in any place of the grove. Moreover, it should provide Internet connectivity in order to obtain, for instance, satellite images.</p>
<p>For this reason a <italic>TP-Link</italic> 3G wireless router (TL-MR3420) has been used (<xref ref-type="fig" rid="f11-sensors-11-04385">Figure 11</xref>). This router creates a wireless network under the standard <italic>IEEE 802.11N</italic>. Moreover, it allows 3G connectivity via a USB 3G stick. This router is placed in the grove besides the human operator and its position is kept unchanged.</p>
<p>This kind of networks, based on standard <italic>IEEE 802.11N</italic>, provides better coverage and speed than traditional wireless networks (<italic>IEEE 802.11g</italic>). Moreover, two 1.5 meter omnidirectional 15dbi antennas (TP-Link TL-ANT2415D also shown in <xref ref-type="fig" rid="f11-sensors-11-04385">Figure 11</xref>) are connected to the router to have, approximately, a coverage of one kilometer radius.</p></list-item></list></p>
<p>Example of the Information Provided by the Physical Devices</p>
<p>With all the “sensors” previously listed, a global view of the real environment can be obtained. On the one hand, the vision system and <italic>LASER</italic> provide local information related to the real environment in real time. On the other hand, the <italic>GPS</italic> module sends the coordinates to a maps service via Internet (WiFi router with 3G connection) that allows the robot to obtain the image of the area where it is placed. A graphical description is shown in <xref ref-type="fig" rid="f12-sensors-11-04385">Figure 12</xref>.</p>
<p>According to the previous figure, each robot has visual information about the path it is navigating (provided by the vision system) and it can extract some extra information about its position and trajectory from the satellite image. Moreover, any other robot of the system will provide similar information about its localization. All the robots can share this information in order to coordinate efficiently one or more tasks. The special WiFi network will allow the high speed communication among all the robots of the system.</p></sec>
<sec>
<label>3.2.</label>
<title>The Middleware Layer</title>
<p>In this subsection, the three different systems which forms the middleware layer are described.</p>
<list list-type="bullet">
<list-item>
<p><bold>JADE:</bold> JADE is a software framework designed to develop agent-based applications in compliance with the <italic>FIPA</italic> specifications for interoperable intelligent multiagent systems. It is a software framework fully implemented in Java language and simplifies the implementation of multiagent systems through a middleware and through a set of graphical tools that supports the debugging and deployment phases [<xref ref-type="bibr" rid="b20-sensors-11-04385">20</xref>].</p>
<p>The <italic>JADE</italic> middleware implements an agent platform for execution and a development framework. Also, it provides some agent facilities such as life cycle management, naming service, message transport and parsing service, and a library of <italic>FIPA</italic> interaction protocols ready to be used [<xref ref-type="bibr" rid="b20-sensors-11-04385">20</xref>].</p></list-item>
<list-item>
<p><bold>The High Level Architecture:</bold> <italic>HLA</italic> provides a general framework in which the researchers can structure and describe their final applications. In any case, <italic>HLA</italic> is neither a simulator nor a modeling tool. Furthermore, <italic>HLA</italic> does not generate data or simulate because it does not eliminate programming.</p>
<p>The main objective of <italic>HLA</italic> is to generate systems (<italic>Federations</italic>) based on <italic>reusable</italic> components of different nature (<italic>Federates</italic>) which can <italic>interact</italic> among them easily through a distributed, real-time operating system. To perform this task, there are three main components in the <italic>HLA</italic> architecture:
<list list-type="simple">
<list-item>
<p>– A set of rules: <italic>HLA</italic> consists of a set of ten rules which must be obeyed in order to govern the overall system and to govern each participating component. Five of them defy the operations of the federate and the other five are related to the federations.</p></list-item>
<list-item>
<p>– <italic>An Object Model Template:</italic> The <italic>Object Model Template</italic>, <italic>OMT</italic>, provides a standard for defining and documenting the form, type and structure of the information shared within a simulation. This model defines the <italic>Federation Object Model</italic> (information shared for each federation), the <italic>Simulation Object Model</italic> (internal operations of each federate that can be used externally) and the <italic>Management Object Model</italic> (identification of the objects/interactions used to manage a federation and introduction of universal definition).</p></list-item>
<list-item>
<p>– <italic>Interface Specifications:</italic> The <italic>Interface Specifications</italic>, <italic>IS</italic>, describes the runtime services between each federate and the <italic>RTI</italic>. There are six classes of services. The <italic>HLA Interface Specification</italic> defines the way these services are accessed in an application programmer’s interface (<italic>API</italic>).</p></list-item></list></p></list-item>
<list-item>
<p><bold>Player/Stage:</bold> One of the most widely used software nowadays for programming multirobot applications is the <italic>Player/Stage</italic> project [<xref ref-type="bibr" rid="b9-sensors-11-04385">9</xref>]. <italic>Player</italic> is a network oriented device server that provides clients with network-oriented programming interfaces to access actuators and sensors of a robot. It employs a one-to-many client/server style architecture where one server serves all the clients of a robot’s devices and it relies on a TCP-based protocol to handle communication between client and server.</p>
<p>Accompanying <italic>Player</italic> is the robot simulator Stage, a lightweight, highly configurable robot simulator that supports large populations of robots and allows programmers to control these virtual robots navigating inside a virtual environment.</p></list-item></list>
<p>In the system, each one of the subsystems is in charge of a main task. In that way, the coordination and cooperation task, as well as the explicit communications, rely on <italic>JADE</italic>, whereas the implicit communication, the data distribution and the control of the simulated entities are assigned to <italic>HLA</italic>. Finally, <italic>Player</italic> is in charge of the hardware abstraction and the control of the real (or simulated) entities in the system.</p></sec></sec>
<sec>
<label>4.</label>
<title>Possible Distributed Applications of <italic>Agriture</italic></title>
<p>The proposed architecture, <italic>Agriture</italic>, can interact with real and simulated devices. Depending on the final application, a concrete device (real or simulated) can be used. This can be useful in the procedure used to set or optimize some parameters of the whole system.</p>
<p>As an example, this system can be run in a real orange where a classifier processes the images obtained by the vision system in order to identify the elements of the grove as depicted in <xref ref-type="fig" rid="f13-sensors-11-04385">Figure 13</xref>. The sequence of images captured can be stored for further research or debugging tasks. Although the classifier used can be good enough, its performance can be improved by setting better its parameters. In this case, an off-line simulation can be run using the stored data. It means that all the elements and devices of the system are simulated but they provide real data from the previous real run. In the figure, it can be seen that the virtual camera provides a capture done in the real orange grove to the simulated environment. In the simulation, other classification alternatives (using the same classifier with different parameter or choosing different base classifiers) can be tested and the original classifier (the one used in the real runs) can be replaced if it is outperformed by another alternative.</p>
<p>In the previous image, it can be seen that the classification obtained in the real run is good. However, there are some misclassifications. Some of them are near the boundaries between the sky (white in classification image) and orange crowns (denoted with green pixels). In the experiments done off-line, a better classifier has been used with the same purpose and it provides slightly better results. Although both classifications are similar (close to 95% of correctly classified elements), the second one is better because the misclassifications near the boundaries tend to disappear.</p>
<p>Although the use of off-line runs have been introduced to optimize a task of the real system (a classification task in the example), it can be used to evaluate a new task (not implemented in the real system) which uses the information provided by the sensors used in the real system. This application involves using a completely simulated environment with virtual devices to test it. These simulations with real data can be useful when the number of alternatives considered for a new task are high because they can be tested under the same experimental framework (the same real data) without using the real devices.</p>
<p>Furthermore, the use of <italic>Agriture</italic> can be considered for hybrid applications in which real and simulated elements are used together. In hybrid applications, both kinds of elements (real and virtual) must be present.</p>
<p>In a first hybrid application, the real robots move in a free-obstacle environment (an example is shown in <xref ref-type="fig" rid="f14-sensors-11-04385">Figure 14</xref>). The orange grove can be simulated but the interaction and navigation of the different robots can be real. For instance, the robots can be located into a warehouse but the information provided by the camera and GPS can be simulated to make the robot believe it is navigating in a real grove. In this application, the robot’s behavior in an orange grove can be tested without the robot being there. In this case, the real robots will navigate in the simulated grove without the risk of damaging the environment. Moreover, the economical costs of optimizing the system (testing different algorithms for a task) are reduced because the outdoor field experiments are avoided.</p>
<p>The second hybrid application considered is depicted in <xref ref-type="fig" rid="f15-sensors-11-04385">Figure 15</xref>. This application consists in using both real and virtual devices in a real environment (orange grove). In this system, a real robot could perform a virtual task in parallel with other real tasks. For instance, the orange trees can be virtually sprayed or the weeds located in the path can be virtually removed while the robot is navigating through the grove. In this way, some different algorithms to perform a new task can be tested while the robot is running another real application. The real devices, such as cameras and other sensors can provide real information to the new virtual element, so the simulation can be more realistic. It can be also useful in the case in which the availability for executions of the real devices (robots and sensors) into a simulated environment (such as the warehouse previously mentioned) is low, because the resources are required to perform a real application. In this case, the new virtual applications can be tested <italic>in situ</italic> while the required real task is being done.</p></sec>
<sec sec-type="conclusions">
<label>5.</label>
<title>Conclusions</title>
<p>In this paper, <italic>Agriture</italic>, a new architecture to implement an agricultural multirobotic system has been introduced. In <italic>Agriture</italic>, <italic>Player/Stage</italic> is in charge of the hardware (real or simulated) abstraction. The coordination and cooperation tasks rely on <italic>JADE</italic> whereas the implicit communication is assigned to <italic>HLA</italic>. They have been selected to improve the <italic>reusability</italic>, <italic>scalability</italic> and <italic>interoperability</italic> of system.</p>
<p>Furthermore, the use of <italic>Agriture</italic> has been introduced either in real or simulated environments. It can be used in real applications or it can be applied to simulate experiments. In addition, the proposed architecture can be used in hybrid systems in which real and simulated elements (devices and environments) can interact.</p></sec></body>
<back>
<ack>
<p>This paper describes research carried out at the <italic>Robotic Intelligence Laboratory</italic> of <italic>Universitat Jaume-I</italic> and the <italic>Institut de Robótica</italic> of the <italic>Universitat de Valencia</italic>.</p>
<p>Support and funds are provided in part by the Generalitat Valenciana under project GV/2010/087, and by the Fundació Caixa Castelló-Bancaixa under project P1-1A2008-12.</p></ack>
<ref-list>
<title>References</title>
<ref id="b1-sensors-11-04385"><label>1.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Astrand</surname><given-names>B</given-names></name><name><surname>Baerveldt</surname><given-names>AJ</given-names></name></person-group><article-title>An Agricultural Mobile Robot with Vision-Based Perception for Mechanical Weed Control</article-title><source>Auton. Robots</source><year>2002</year><volume>13</volume><fpage>21</fpage><lpage>35</lpage><pub-id pub-id-type="doi">10.1023/A:1015674004201</pub-id></citation></ref>
<ref id="b2-sensors-11-04385"><label>2.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Cho</surname><given-names>SI</given-names></name><name><surname>Lee</surname><given-names>DS</given-names></name><name><surname>Jeong</surname><given-names>JY</given-names></name></person-group><article-title>Automation and Emerging Technologies: Weed-Plant Discrimination by Machine Vision and Artificial Neural Network</article-title><source>Biosyst. Eng</source><year>2002</year><volume>83</volume><fpage>275</fpage><lpage>280</lpage><pub-id pub-id-type="doi">10.1006/bioe.2002.0117</pub-id></citation></ref>
<ref id="b3-sensors-11-04385"><label>3.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Blasco</surname><given-names>J</given-names></name><name><surname>Aleixos</surname><given-names>N</given-names></name><name><surname>Roger</surname><given-names>JM</given-names></name><name><surname>Rabatel</surname><given-names>G</given-names></name><name><surname>Molto</surname><given-names>E</given-names></name></person-group><article-title>Automation and Emerging Technologies: Robotic Weed Control using Machine Vision</article-title><source>Biosyst. Eng</source><year>2002</year><volume>83</volume><fpage>149</fpage><lpage>157</lpage><pub-id pub-id-type="doi">10.1006/bioe.2002.0109</pub-id></citation></ref>
<ref id="b4-sensors-11-04385"><label>4.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Nejati</surname><given-names>H</given-names></name><name><surname>Azimifar</surname><given-names>Z</given-names></name><name><surname>Zamani</surname><given-names>M</given-names></name></person-group><article-title>Using Fast Fourier Transform for Weed Detection in Corn Fields</article-title><conf-name>Proceedings of IEEE International Conference on Systems, Man and Cybernetics</conf-name><conf-loc>Singapore</conf-loc><conf-date>12–15 October 2008</conf-date><fpage>1215</fpage><lpage>1219</lpage></citation></ref>
<ref id="b5-sensors-11-04385"><label>5.</label><citation citation-type="book"><person-group person-group-type="author"><name><surname>Li</surname><given-names>Z</given-names></name><name><surname>An</surname><given-names>Q</given-names></name><name><surname>Ji</surname><given-names>C</given-names></name></person-group><article-title>Classification of Weed Species Using Artificial Neural Networks Based on Color Leaf Texture Feature</article-title><source>Computer and Computing Technologies in Agriculture II</source><publisher-name>Springer</publisher-name><publisher-loc>Berlin, Germany</publisher-loc><year>2009</year><comment>Volume 2</comment><fpage>1217</fpage><lpage>1225</lpage></citation></ref>
<ref id="b6-sensors-11-04385"><label>6.</label><citation citation-type="web"><person-group person-group-type="author"><name><surname>Conley</surname><given-names>K</given-names></name></person-group><article-title>ROS Documentation—Installation</article-title><comment>Available online: <ext-link xlink:href="http://www.ros.org/wiki/ROS/Installation" ext-link-type="uri">http://www.ros.org/wiki/ROS/Installation</ext-link> (accessed on 15 February 2011)</comment></citation></ref>
<ref id="b7-sensors-11-04385"><label>7.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Althoff</surname><given-names>D</given-names></name><name><surname>Kourakos</surname><given-names>O</given-names></name><name><surname>Lawitzky</surname><given-names>M</given-names></name><name><surname>Mrtl</surname><given-names>A</given-names></name><name><surname>Rambow</surname><given-names>M</given-names></name><name><surname>Rohrmller</surname><given-names>F</given-names></name><name><surname>Brcic</surname><given-names>D</given-names></name><name><surname>Wollherr</surname><given-names>D</given-names></name><name><surname>Hirche</surname><given-names>S</given-names></name><name><surname>Buss</surname><given-names>M</given-names></name></person-group><article-title>An Architecture for Real-time Control in Multi-Robot Systems, Human Centered Robot Systems</article-title><source>Cogn. Syst. Monogr</source><year>2010</year><volume>6</volume><fpage>43</fpage><lpage>52</lpage></citation></ref>
<ref id="b8-sensors-11-04385"><label>8.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Wulf</surname><given-names>O</given-names></name><name><surname>Kiszka</surname><given-names>J</given-names></name><name><surname>Wagner</surname><given-names>B</given-names></name></person-group><article-title>A Compact Software Framework for Distributed Real-Time Computing</article-title><conf-name>Proceedings of the Fifth Real-Time Linux Workshop</conf-name><conf-loc>Valencia, Spain</conf-loc><conf-date>9–11 November 2003</conf-date></citation></ref>
<ref id="b9-sensors-11-04385"><label>9.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Gerkey</surname><given-names>B</given-names></name><name><surname>Vaughan</surname><given-names>R</given-names></name><name><surname>Howard</surname><given-names>A</given-names></name></person-group><article-title>The Player/Stage Project: Tools for Multi-Robot and Distributed Sensor Systems</article-title><conf-name>Proceedings of International Conference on Advanced Robotics</conf-name><conf-loc>Coimbra, Portugal</conf-loc><conf-date>30 June–3 July 2003</conf-date><fpage>317</fpage><lpage>323</lpage></citation></ref>
<ref id="b10-sensors-11-04385"><label>10.</label><citation citation-type="web"><person-group person-group-type="author"><name><surname>Lab</surname><given-names>TI</given-names></name></person-group><article-title>JADE—Java Agent DEvelopment Framework</article-title><comment>Available online: <ext-link xlink:href="http://jade.tilab.com/" ext-link-type="uri">http://jade.tilab.com/</ext-link> (accessed on 15 February 2011)</comment></citation></ref>
<ref id="b11-sensors-11-04385"><label>11.</label><citation citation-type="book"><person-group person-group-type="author"><collab>IEEE</collab></person-group><source>Draft Standard for Modeling and Simulation (MS) High Level Architecture (HLA)—Federate Interface Specification</source><comment>Peruse IEEE P1516.1</comment><publisher-name>The IEEE Xplore Digital Library</publisher-name><publisher-loc>Piscataway, NJ, USA</publisher-loc><year>2001</year></citation></ref>
<ref id="b12-sensors-11-04385"><label>12.</label><citation citation-type="book"><person-group person-group-type="author"><collab>IEEE</collab></person-group><source>Draft Standard for Modeling and Simulation (MS) High Level Architecture (HLA)—Framework and Rules</source><comment>IEEE P1516</comment><publisher-name>The IEEE Xplore Digital Library</publisher-name><publisher-loc>Piscataway, NJ, USA</publisher-loc><year>2010</year></citation></ref>
<ref id="b13-sensors-11-04385"><label>13.</label><citation citation-type="book"><person-group person-group-type="author"><collab>IEEE</collab></person-group><source>Draft Standard for Modeling and Simulation (MS) High Level Architecture (HLA)—Object Model Template (OMT) Specification</source><comment>IEEE P1516.2</comment><publisher-name>The IEEE Xplore Digital Library</publisher-name><publisher-loc>Piscataway, NJ, USA</publisher-loc><year>2001</year></citation></ref>
<ref id="b14-sensors-11-04385"><label>14.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Reid</surname><given-names>MR</given-names></name></person-group><article-title>An Evaluation of The High Level Architecture (HLA) as a Framework for NASA Modeling and Simulation</article-title><conf-name>Proceedings of The 25th NASA Software Engineering Workshop</conf-name><conf-loc>Greenbelt, MD, USA</conf-loc><conf-date>November 2000</conf-date></citation></ref>
<ref id="b15-sensors-11-04385"><label>15.</label><citation citation-type="web"><person-group person-group-type="author"><name><surname>Media</surname><given-names>B</given-names></name></person-group><article-title>Boeing Demonstrates Joint JSF and F-15 Training Simulation</article-title><comment>Available online: <ext-link xlink:href="http://www.boeing.com/news/releases/2000/news_release000621n.htm" ext-link-type="uri">http://www.boeing.com/news/releases/2000/news_release000621n.htm</ext-link> (accessed on 15 February 2000)</comment></citation></ref>
<ref id="b16-sensors-11-04385"><label>16.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Kernbach</surname><given-names>S</given-names></name><name><surname>Meister</surname><given-names>E</given-names></name><name><surname>Schlachter</surname><given-names>F</given-names></name><name><surname>Jebens</surname><given-names>K</given-names></name><name><surname>Szymanski</surname><given-names>M</given-names></name><name><surname>Liedke</surname><given-names>J</given-names></name><name><surname>Laneri</surname><given-names>D</given-names></name><name><surname>Winkler</surname><given-names>L</given-names></name><name><surname>Schmickl</surname><given-names>T</given-names></name><name><surname>Thenius</surname><given-names>R</given-names></name><name><surname>Corradi</surname><given-names>P</given-names></name><name><surname>Ricotti</surname><given-names>L</given-names></name></person-group><article-title>Symbiotic Robot Organisms: REPLICATOR and SYMBRION Projects</article-title><conf-name>Proceedings of the 8th Workshop on Performance Metrics for Intelligent Systems</conf-name><conf-loc>Gaithersburg, MD, USA</conf-loc><conf-date>19–21 August 2008</conf-date><fpage>62</fpage><lpage>69</lpage></citation></ref>
<ref id="b17-sensors-11-04385"><label>17.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Winkler</surname><given-names>L</given-names></name><name><surname>Wörn</surname><given-names>H</given-names></name></person-group><article-title>Symbricator3D—A Distributed Simulation Environment for Modular Robots</article-title><conf-name>Proceedings of the 2nd International Conference on Intelligent Robotics and Applications</conf-name><conf-loc>Singapore</conf-loc><conf-date>16–18 December 2009</conf-date><fpage>1266</fpage><lpage>1277</lpage></citation></ref>
<ref id="b18-sensors-11-04385"><label>18.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Xiang</surname><given-names>L</given-names></name><name><surname>Xunbo</surname><given-names>L</given-names></name><name><surname>Liang</surname><given-names>C</given-names></name></person-group><article-title>Multi-Disciplinary Modeling and Collaborative Simulation of Multi-Robot Systems Based on HLA</article-title><conf-name>Proceedings of IEEE International Conference on Robotics and Biomimetics (ROBIO 2007)</conf-name><conf-loc>Sanya, China</conf-loc><conf-date>15–18 December 2007</conf-date><fpage>553</fpage><lpage>558</lpage></citation></ref>
<ref id="b19-sensors-11-04385"><label>19.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Dahmann</surname><given-names>JS</given-names></name><name><surname>Calvin</surname><given-names>JO</given-names></name><name><surname>Weatherly</surname><given-names>RM</given-names></name></person-group><article-title>A Reusable Architecture for Simulations</article-title><source>Commun. ACM</source><year>1999</year><volume>42</volume><fpage>79</fpage><lpage>84</lpage></citation></ref>
<ref id="b20-sensors-11-04385"><label>20.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Bellifemine</surname><given-names>F</given-names></name><name><surname>Caire</surname><given-names>G</given-names></name><name><surname>Poggi</surname><given-names>A</given-names></name><name><surname>Rimassa</surname><given-names>G</given-names></name></person-group><article-title>JADE A White Paper</article-title><source>EXP Search Innovat</source><year>2003</year><volume>3</volume><fpage>6</fpage><lpage>19</lpage></citation></ref></ref-list>
<sec sec-type="display-objects">
<title>Figures and Table</title>
<fig id="f1-sensors-11-04385" position="float">
<label>Figure 1.</label>
<caption>
<p>The new distributed HLA-based architecture.</p></caption>
<graphic xlink:href="sensors-11-04385f1.gif"/></fig>
<fig id="f2-sensors-11-04385" position="float">
<label>Figure 2.</label>
<caption>
<p>HLA offers the possibility to employ real and simulated entities at the same time.</p></caption>
<graphic xlink:href="sensors-11-04385f2.gif"/></fig>
<fig id="f3-sensors-11-04385" position="float">
<label>Figure 3.</label>
<caption>
<p>The new distributed HLA-based architecture.</p></caption>
<graphic xlink:href="sensors-11-04385f3.gif"/></fig>
<fig id="f4-sensors-11-04385" position="float">
<label>Figure 4.</label>
<caption>
<p>Flow chart.</p></caption>
<graphic xlink:href="sensors-11-04385f4.gif"/></fig>
<fig id="f5-sensors-11-04385" position="float">
<label>Figure 5.</label>
<caption>
<p>ATRV-2 robotic system.</p></caption>
<graphic xlink:href="sensors-11-04385f5.gif"/></fig>
<fig id="f6-sensors-11-04385" position="float">
<label>Figure 6.</label>
<caption>
<p>Rescuer robotic system.</p></caption>
<graphic xlink:href="sensors-11-04385f6.gif"/></fig>
<fig id="f7-sensors-11-04385" position="float">
<label>Figure 7.</label>
<caption>
<p>GPS—Pathfinder ProXH receiver.</p></caption>
<graphic xlink:href="sensors-11-04385f7.gif"/></fig>
<fig id="f8-sensors-11-04385" position="float">
<label>Figure 8.</label>
<caption>
<p>Vision System—FOculus 124IC with auto iris lens.</p></caption>
<graphic xlink:href="sensors-11-04385f8.gif"/></fig>
<fig id="f9-sensors-11-04385" position="float">
<label>Figure 9.</label>
<caption>
<p>Differences in the same capture with different apertures of the iris.</p></caption>
<graphic xlink:href="sensors-11-04385f9.gif"/></fig>
<fig id="f10-sensors-11-04385" position="float">
<label>Figure 10.</label>
<caption>
<p>LASER - HOKUYO’s LASER.</p></caption>
<graphic xlink:href="sensors-11-04385f10.gif"/></fig>
<fig id="f11-sensors-11-04385" position="float">
<label>Figure 11.</label>
<caption>
<p>TP-LINK WiFi router and antenna.</p></caption>
<graphic xlink:href="sensors-11-04385f11.gif"/></fig>
<fig id="f12-sensors-11-04385" position="float">
<label>Figure 12.</label>
<caption>
<p>Example of the visual data collected by all the sensors.</p></caption>
<graphic xlink:href="sensors-11-04385f12.gif"/></fig>
<fig id="f13-sensors-11-04385" position="float">
<label>Figure 13.</label>
<caption>
<p>Offline application: HLA allows to simulate all the elements to optimize part of the system.</p></caption>
<graphic xlink:href="sensors-11-04385f13.gif"/></fig>
<fig id="f14-sensors-11-04385" position="float">
<label>Figure 14.</label>
<caption>
<p>First application: HLA offers the possibility to virtualize an orange grove into a warehouse.</p></caption>
<graphic xlink:href="sensors-11-04385f14.gif"/></fig>
<fig id="f15-sensors-11-04385" position="float">
<label>Figure 15.</label>
<caption>
<p>Application 2: HLA offers the possibility to virtualize an element/device of a real robot.</p></caption>
<graphic xlink:href="sensors-11-04385f15.gif"/></fig>
<table-wrap id="t1-sensors-11-04385" position="float">
<label>Table 1.</label>
<caption>
<p>Comparison among different architectures.</p></caption>
<table frame="below" rules="groups">
<thead>
<tr>
<th align="center" valign="bottom"/>
<th colspan="4" align="center" valign="bottom">
<hr/></th></tr>
<tr>
<th align="center" valign="top"/>
<th align="center" valign="top"><bold>ROS</bold></th>
<th align="center" valign="top"><bold>ORCA/OROCOS</bold></th>
<th align="center" valign="top"><bold>UMBRA</bold></th>
<th align="center" valign="top"><bold>AGRITURE</bold></th></tr></thead>
<tbody>
<tr>
<td align="center" valign="top"><italic>Cross-platform</italic></td>
<td align="center" valign="top">×[<xref ref-type="bibr" rid="b6-sensors-11-04385">6</xref>]</td>
<td align="center" valign="top">✓</td>
<td align="center" valign="top">✓</td>
<td align="center" valign="top">✓</td></tr>
<tr>
<td align="center" valign="top"><italic>Real-world interaction</italic></td>
<td align="center" valign="top">✓</td>
<td align="center" valign="top">✓</td>
<td align="center" valign="top"><italic>×</italic></td>
<td align="center" valign="top">✓</td></tr>
<tr>
<td align="center" valign="top"><italic>Hardware abstraction</italic></td>
<td align="center" valign="top">✓</td>
<td align="center" valign="top">✓</td>
<td align="center" valign="top">✓</td>
<td align="center" valign="top">✓</td></tr>
<tr>
<td align="center" valign="top"><italic>Code reuse</italic></td>
<td align="center" valign="top">✓</td>
<td align="center" valign="top">✓</td>
<td align="center" valign="top">✓</td>
<td align="center" valign="top">✓</td></tr>
<tr>
<td align="center" valign="top"><italic>Distributed Multi-robot</italic></td>
<td align="center" valign="top">✓</td>
<td align="center" valign="top">✓</td>
<td align="center" valign="top">✓</td>
<td align="center" valign="top">✓</td></tr>
<tr>
<td align="center" valign="top"><italic>Free license</italic></td>
<td align="center" valign="top">✓</td>
<td align="center" valign="top">✓</td>
<td align="center" valign="top"><italic>×</italic></td>
<td align="center" valign="top">✓</td></tr>
<tr>
<td align="center" valign="top"><italic>Efficient distributed operation</italic></td>
<td align="center" valign="top"><italic>×</italic> [<xref ref-type="bibr" rid="b7-sensors-11-04385">7</xref>]</td>
<td align="center" valign="top">×[<xref ref-type="bibr" rid="b8-sensors-11-04385">8</xref>]</td>
<td align="center" valign="top">✓</td>
<td align="center" valign="top">✓</td></tr>
<tr>
<td align="center" valign="top"><italic>Scalability</italic></td>
<td align="center" valign="top"><italic>×</italic> [<xref ref-type="bibr" rid="b7-sensors-11-04385">7</xref>]</td>
<td align="center" valign="top">✓</td>
<td align="center" valign="top">✓</td>
<td align="center" valign="top">✓</td></tr>
<tr>
<td align="center" valign="top"><italic>Hybrid systems</italic></td>
<td align="center" valign="top"><italic>×</italic></td>
<td align="center" valign="top"><italic>×</italic></td>
<td align="center" valign="top"><italic>×</italic></td>
<td align="center" valign="top">✓</td></tr></tbody></table></table-wrap></sec></back></article>
