Abstract
This paper describes an approach to the design of a population of cooperative robots based on concepts borrowed from Systems Theory and Artificial Intelligence. The research has been developed under the SocRob project, carried out by the Intelligent Systems Laboratory at the Institute for Systems and Robotics - Instituto Superior Técnico (ISR/IST) in Lisbon. The acronym of the project stands both for “Society of Robots” and “Soccer Robots”, the case study where we are testing our population of robots. Designing soccer robots is a very challenging problem, where the robots must act not only to shoot a ball towards the goal, but also to detect and avoid static (walls, stopped robots) and dynamic (moving robots) obstacles. Furthermore, they must cooperate to defeat an opposing team. Our past and current research in soccer robotics includes cooperative sensor fusion for world modeling, object recognition and tracking, robot navigation, multi-robot distributed task planning and coordination, including cooperative reinforcement learning in cooperative and adversarial environments, and behavior-based architectures for real time task execution of cooperating robot teams.
1. Introduction
Cooperative Robotics is a modern research field, with applications to areas such as building surveillance, transportation of large objects, air and underwater pollution monitoring, forest fire detection, transportation systems, or search and rescue after large-scale disasters. In short, a population of cooperative robots behaves like a distributed robot to accomplish tasks that would be difficult, if not impossible, for a single robot. Many lessons important for this domain can be learned from the Multi-Agent Systems field of Artificial Intelligence (AI) concerning relevant topics for Cooperative Robotics, such as distributed continual planning (desJardins, M. E., et al, 1999), task allocation (Ferber, J., 1999), communication languages or coordination mechanisms (Decker, K. S., & Lesser, V. R., 1995). Robotic soccer is a very challenging problem, where the robots must cooperate not only to push and/or kick an object (a ball) towards a target region (the goal), but also to detect and avoid static (walls, stopped robots) and dynamic (moving robots) obstacles while moving towards, moving with or following the ball. Furthermore, they must cooperate to defeat an opposing team. All these are features common to many other cooperative robotics problems. This paper surveys the several research problems addressed by the SocRob project, building a Systems Theory standpoint on AI concepts. In Section 2 we describe our view of the general problem involving multiple robots that act as a team, cooperating and coordinating their actions to attain the team goal. Needless to say, single-robot “traditional” research problems are covered, both from the sub-system and the integration standpoints. Natural extensions to cooperative multi-robot teams are also detailed. The problems addressed so far and the solutions we obtained for them are described in Section 3. Open problems of interest for the project and clues on how we intend to approach their solution are discussed in Section 4. We end the paper drawing some conclusions in Section 5.
2. A General Multi-Robot Cooperation and Coordination Problem
Many researchers around the world are designing mobile robots capable to display increasing autonomy and machine intelligence properties. Most groups concentrate in specific subsystems of a robot, such as the planner, the navigator, or the sensor fusion. What usually is missing in their design is a systematic way to glue together all these subsystems in a consistent fashion. Such a methodology, should one be available, would help engineering the mobile robots of the future.
One of the key factors of success for a robot lies on its capability to perceive correctly its surrounding environment, and to build models of the environment adequate for the task the robot is in charge of, from the information provided by its sensors. Different sensors (e.g., vision, laser, sonar, encoders) can provide alternative or complementary information about the same object, or information about different objects.
Once the information about the world is available, one may think of using it to make the team behave autonomously and machine-wise intelligently. Three main questions arise for the team:
Where and which
What must be done to achieve a given goal, given the constraints on time, available resources and distinct skills of the team robots? The answer to this should provide a team
How is the actual implementation of a plan handled, ensuring the consistency of individual and team (sub)-goals and the coordinated execution of the plan?
So far, a
However, a key point is a
To support this
2.1. Single-Robot Research Problems
Most of the problems tackled so far within the SocRob project concern the sub-systems of the individual robots composing a team. From our standpoint, relevant topics are:
2.2. Cooperative Multi-Robot Research Problems
The functional architecture of a behaviour-based multi-robot team must also classify behaviours according to their functionality. One such division consists of considering
When the population is composed of heterogeneous robots, if a robot has to perform a particular task for which it does not have the necessary skills, it may ask another robot with the adequate skills to carry it out. In the particular case of the SocRob robotic team, where the robots are homogeneous, examples of cooperative behaviour are the cooperative localization of the ball, the execution of a pass, the dynamical exchange of player roles or the decision of which robot should go for the ball. All of them require some form of inter-robot coordination and underlying teamwork methodologies.
3. Problems Already Addressed
A key issue of the research work developed under the SocRob project is the application of conceptual results to real robots participating in the Middle Size League (MSL) of RoboCup. The current robot team, displayed in Fig. 1, is composed of 4 Nomadic Super Scout II commercial platforms, later significantly modified by our group, each of them including: two-wheel differential drive kinematics, sixteen sonar sensors radially distributed around the robot, equally spaced, Motorola MC68332 based daughter board with three-axis motor controller, sonar and bumper interface, and battery level meters, two 12V batteries, 18Ah capacity, Pentium III 1000MHz based motherboard, with 512MB RAM, 8GB disk, two Philips USB WebCam 740K Pro, IEEE 802.11b wireless Ethernet PCMCIA card, pneumatic kicking device, based on Festo components, plus one bottle for pressurized air storage. In the remaining subsections, we describe some of the research problems addressed and solved for this team of robots.

Three robots of the current SocRob team.
3.1. Color Segmentation and Cooperative Object Recognition
A color segmentation interface was developed, providing two alternatives to discriminate the relevant MSL colors in HSV (Hue-Saturation-Value) color space (Gonzalez, R., & Woods, R., 1992): adjusting HSV intervals and graphically selecting regions with a given pixel color. The two approaches are cumulative. Furthermore, object segmentation is a topic directly related to the previous one, as we discriminate objects, namely the ball and the goals, not only based on their color, but also on their shape (e.g., by fitting circles to observed orange bulbs and identifying the ball with the closest and more circular bulb). A topic of current research within the project is the use of sensor fusion for world modeling. The goal is to maintain and update over time information on the relevant objects, such as ball position and velocity, teammates pose and velocity, opponents pose and velocity, or position of the goals with respect to the robot. Such information is obtained by each robot from the observations of its front and up cameras and then fused among all the team robots (Pinheiro, P. & Lima, P., 2004), using a Bayesian approach to sensor fusion, as depicted in Fig. 2. Currently this approach is used to provide information on ball position to all the team members, therefore enabling robots that do not see the ball to know where it is, besides improving ball localization reliability. Fusion is not used when two robots disagree (in probabilistic terms) on the ball localization.

a) local (internal to each robot) sensor fusion enabled and global (among team robots) sensor fusion disabled; b) both local and global sensor fusion enabled
3.2. Vision-Based Self-Localization
An algorithm that determines the posture of a robot, with respect to a given coordinate system, from the observation of natural landmarks of the soccer field, such as the field lines and goals, as well as from

Bird's eye-view of the field obtained by the top catadioptric systems of the robots in Fig. 1.
where (
Note that a small Δφ denotes almost parallel straight lines, while Δρ is the distance between 2 parallel lines. The Δφ and Δρ values are subsequently classified by
Currently, an efficiently coded version of the algorithm is used by each of the ISocRob team robots to obtain its self-localization during a game every second. The algorithm runs in parallel with all the other processes and can compute self-localization in about 13 ms on the average, using Intel IPP library. The knowledge of each robot localization is useful for individual robot navigation, but it is also used by the robot to share information with its teammates regarding team postures and ball location.
3.3. Multi-Sensor Guidance with Obstacle Avoidance
The ability to navigate at relatively high speeds through an environment cluttered with static and dynamic obstacles is a crucial issue for a mobile robot. Most robotic tasks require a robot to move to target postures adequate to carry out its planned activities. In robotic soccer, relevant activities include facing the opponent goal with the ball in between or covering the team goal by positioning itself between the ball and the goal, while avoiding the field walls and the other (stopped and moving) robots. Also relevant is the capability to move towards a given posture while avoiding obstacles and keeping the ball (also known as
3.4. Behavior-Based Architectures
The basic functional architecture of the SocRob team is organized in three levels of decision and responsibility, similar to those proposed in (Drogoul, A., and Collinot, A., 1998):
there is, at the
there are, at the
there are, at the
The software architecture is the practical implementation of the functional architecture, which could be done in any programming language and using different software technologies. In the SocRob project, the software architecture was defined based on three essential concepts: micro-agents (μA for short),
Inspired by the idea of Society of Agents, proposed by Minsky (Minsky, M., 1988), each functional module of the SocRob architecture was implemented by a separate process, using the parallel programming technology of threads. In this context a functional module is named μA. In the current implementation of the SocRob architecture there are nine different threads, but only the three most important ones are mentioned here: μA Vision, responsible for processing the data acquired from the cameras, μA Fusion, which fuses information concerning the same object from different sensors, μA Machine, responsible for deciding which behavior should the robot display, and μA Control, responsible for the execution of the corresponding operator.
The concept of threads was chosen to improve module performance and simplify the information passing among the threads. This was accomplished by the blackboard concept (memory space shared by several threads), further sophisticated here by the development of a
As mentioned before, the decision making involved for each agent is twofold: which behavior should be displayed, and how the operator which displays such behavior is executed. This separation between behavior decision and operator execution allows the μA Machine, the one responsible for behavior decision, to work with abstract definitions of behaviors, and choose among them without knowing details about their execution. So, new operators could be easily added and removed without affecting the existing ones, and these can also be easily replaced by others with the simple restriction of maintaining the name. This was accomplished using the concept of
The individual operators have been implemented as state machines, where the states represent primitive tasks, while the arcs between states (if any) are traversed upon the validation of given logical conditions over events (e.g., see ball, distance < x). The relational operator state machines could also be defined similarly, but events include synchronization signals between the state machines running in the sub-team robots.
However, the way the functional architecture was conceptualized allows the implementation of these operators and the switching among them using different approaches, as for example AI production systems. So, in order to have a more abstract way to deal with behaviour switching, the μA machine has been implemented using a distributed decision-making architecture supported on a logical approach to modeling dynamical systems (Reiter, 2001), based on situation calculus, a first order logic dialect. This architecture includes two main modules: i) a basic logic decision unit, and ii) an advanced logic decision unit. Both run in parallel; the former intends to quickly suggest, using simple logical decision rules, the next behavior to be executed, whereas the latter uses more sophisticated reasoning tools (situation calculus) capable of planning, learning and decision-making, both for individual and cooperative (teamwork) situations. This configures an hybrid architecture where the basic (reactive) unit only controls the robot if the advanced (deliberative) unit takes too long to make a decision, assuming a situation urgency evaluation. A partial implementation of this architecture, the basic logic decision unit, was already performed using Prolog (Arroz, M., et al, 2004). Its modeling convenience allowed the quick development of different roles for field players (Attacker, Defender, Full-Player), as well as dynamic role change between field players (defenders switch with attackers, depending on who is in a better position to get the ball). The advanced (deliberative) unit, Advanced Logic Based Unit, has been developed using an action programming language called Golog Golog (Levesque, H., et al, 1997) and it is based on situational calculus. This unit is responsible to determine plans (sequences of behaviours) that allow the team to achieve something (like scoring on the opposite goal). Situational calculus is an extension to first-order logic, specially suited to handle dynamic worlds. The changes in the world are the results of actions, that have pre-conditions and effects. Our objective is to develop a tool capable of planning and performing task control execution in a distributed environment. To do so we assume that: the agents (robots) can generate, change and execute plans; a plan can be generated, and executed by one or more agents; decisions over the generated plans are based on hypotheses, i.e., assumptions over future states that cannot be guaranteed; and the agents have the capacity to communicate among them, and share information about plans or environment states.
Another recent topic in the project research is the design and implementation of relational behaviors, where teamwork between two or more robots is required to perform a certain task, like a ball pass (Vecht, B., & Lima, P., 2004). These behaviors have a general formulation based on Joint Commitment Theory (Cohen, P. R., & Levesque, H. J., 1991), and use the navigation methods already developed in the project. Currently, the robots are capable of committing to a relational pass behavior where one of the robots is the kicker and the other the receiver. If any of the robots ends the commitment, the other switches to an individual behavior. One cooperation mechanism, implemented in 2000, consists of avoiding that two or more robots from the same team attempt to get the ball. A relational operator was developed to determine which robot should go to the ball and which one(s) should not. In the current implementation, each robot that sees the ball and wants to go for it uses a heuristic function to determine a fitness value. This heuristic penalizes robots that are far from the ball, are between the ball and the opposite goal and need to perform a angular correction to center the ball with its kicking device. Each robot broadcasts its own heuristic value, and the robot with the smallest value is allowed to go for the ball whereas the others execute a Standby behavior. Though not tested yet in real robots, formal work on Stochastic Discrete-Event Systems modeling of a multi-robot team has been recently carried out within the project with interesting results (Damas, B., & Lima, P., 2004). The environment space and each player (opponent and teammate) actions are discretized and modeled by a Finite State Automaton (FSA) 2
where π is a
4. Problems To Be Addressed
Naturally, several interesting problems remain to be tackled and solved within the project research. We will only mention the currently most important ones.
5. Conclusion
This paper described the SocRob project (on the development of methodologies for analysis, design and implementation of multi-robot cooperative systems), its objectives, past, current and intended future work. One interesting feature of the project is that it enables different approaches to the solution of the problem at hand. This naturally motivates competing research approaches, as well as research on analysis methods to compare the different results. Furthermore, the project fosters education in AI and Robotics related topics, because so many issues must be solved to handle the overall problem. Students from different levels (undergraduate, graduate, post-doctorate) can get involved at different difficulty levels and accomplish project sub-goals. They also learn how to accomplish teamwork under hard time deadlines. The SocRob project has involved so far 10 undergraduate and 4 graduate (MSc and PhD) students, besides 2 doctorates who have been supervising the project. All these students have participated regularly in RoboCup - The World Cup of Soccer Robots, since 1998. We believe that RoboCup is a very attractive long-term scientific challenge that brings together people from several different scientific fields in an exciting fusion of research, education and science promotion which are actually the driving forces of our project too.
Some of the methodologies developed within the project, namely its software and functional architectures, have been applied meanwhile to other projects, such as an European Space Agency project on Formation Guidance and Navigation of Distributed Spacecraft, and a Cooperative Navigation for Rescue Robots project currently underway at ISR/IST.
The project team is now developing new robots, in the framework of a national research project, in partnership with two Portuguese small companies. These new robots are omnidirectional, with a new modular construction, so that it will be easily modified, e.g., the up camera module can switch between a catadioptric system and a stereo image system. The new robots will also incorporate a controlled kicker mechanism, so that one can choose the kicking force, using an electromechanical solution with a DC motor pulling a spring and an infrared sensor to measure the pulled distance, both coupled to the kicking device. In order to make new and more complex behaviors and for ball handling, there is a ball reception mechanism, that will allow the implementation of ball passes behaviors. Two new sensors will be used: a rate-gyro for angular velocity measurements, and an optical mouse to track the robot position in the field. Both will provide data to be fused with odometry and vision-based self-localization, so as to improve navigation.
