CAMBADA'2010: Team Description Paper
A. J. R. Neves, J. L. Azevedo, M. B. Cunha, N. Lau, A. Pereira, G. Corrente, F. Santos, D. Martins, N. Figueiredo, J. Silva, J. Cunha, B. Ribeiro, R. Sequeira, L. Almeida, L. S. Lopes, J. M. Rodrigues, A. J. Pinho
Transverse Activity on Intelligent Robotics IEETA/DETI – University of Aveiro 3810-193 Aveiro, Portugal
Abstract This paper describes the CAMBADA middle-size robotic soccer team for the purpose of qualification to RoboCup'2010. During the last year, improvements have been made mostly in the vision system, in the high-level coordination and control, in the world modelling and robot control.
1 Introduction
CAMBADA^1 is the RoboCup middle-size league soccer team of the University of Aveiro, Portugal. The project involves people working on several areas contributing for the development of the mechanical structure of the robot, its hardware architecture and controllers [1, 2], as well as the software development in areas such as image analysis and processing [3–8], sensor and information fusion [9, 10], reasoning and control [11–13], cooperative sensing approach based on a Real-Time Database (RTDB) [14], communications among robots [15–19] and the development of an efficient basestation [20].
The development of the team started in 2003 and a steady progress was observed since then. CAMBADA has participated in several national and international competitions, including RoboCup world championships ($5^{th}$ place in 2007, $1^{st}$ in 2008 and $3^{rd}$ in 2009), the European RoboLudens and the annual Portuguese Open Robotics Festival ($3^{rd}$ place in 2006, $1^{st}$ in 2007, 2008 and 2009). Moreover, the CAMBADA team achieved excellent results in the mandatory technical challenge of the RoboCup MSL: 2nd place in 2008 and 1st place in 2009.
This paper describes the current development stage of the team and is organized as follows: Section 2 describes the general architecture of the robots focusing both on low-level control hardware aspects and on the general software architecture. Section 3 presents the current version of the vision system. Section 4 addresses the world modeling and the control of the robots. Section 5 describes the high-level coordination and control framework. Section 6 describes the basestation application and, finally, Section 7 concludes the paper.
^1 CAMBADA is an acronym of Cooperative Autonomous Mobile roBots with Advanced Distributed Architecture.
2 General Architecture of the Robots
The general architecture of the CAMBADA robots has been described in [14, 1]. Basically, the robots follow a biomorphic paradigm, each being centered on a main processing unit (a laptop), the brain, which is responsible for the highlevel behavior coordination, i.e. the coordination layer. This main processing unit handles external communication with the other robots and has high bandwidth sensors, typically vision, directly attached to it. Finally, this unit receives low bandwidth sensing information and sends actuating commands to control the robot attitude by means of a distributed low-level sensing/actuating system (Fig. 1), the nervous system.
The low-level sensing/actuating system follows the fine-grain distributed model where most of the elementary functions, e.g. basic reactive behaviors and closed-loop control of complex actuators, are encapsulated in small microcontroller based nodes interconnected by means of a network. For this purpose, Controller Area Network (CAN), a real-time fieldbus typical in distributed embedded systems, has been chosen. This network is complemented with a highlevel transmission control protocol to enhance its real-time performance, composability and fault-tolerance, namely the FTT-CAN protocol (Flexible Time-Triggered communication over CAN) [2]. This protocol keeps all the information of periodic flows within a master node, implemented on another basic module, which works like a maestro triggering tasks and message transmissions.
The low-level sensing/actuation system executes four main functions as described in Fig. 2, namely Motion, Odometry, Kick and System monitoring. The former provides holonomic motion using 3 DC motors. The Odometry function combines the encoder readings from the 3 motors and provides a coherent robot displacement information that is then sent to the coordination layer. An Inertial Measurement Unit, with a three axis accelerometer and one gyroscope, provides further sensing to be combined with odometry in order to increase the ability to measure robot posture and behavior in the short term. The Kick function includes the control of an electromagnetic kicker and of a ball handler to dribble the ball. A new version of the kicking device has been developed, now allowing for both direct and lob kicking.
The system monitor function monitors the robot batteries as well as the state of all nodes in the low-level layer. Finally, the low-level control layer connects to the coordination layer through a gateway, which filters interactions within both layers, passing through only the relevant information across the layers. Such filtering reduces the overhead of handling unnecessary receptions at each layer as well as the network bandwidth usage at the low-level side, thus further reducing mutual interference across the layers.
A detailed description regarding the implementation of this architecture, namely the mapping between the functional architecture onto hardware and the information flows and their synchronization is presented in [1].
3 Vision System
Some improvements have been made in the vision system, in particular the development of object detection algorithms based on morphological information to recognize arbitrary FIFA balls and the use of higher resolution images using the Format 7 available in the Point Grey digital cameras. The last point leads to the development of more efficient and optimized algorithms for colored object detection, namely orange balls, black obstacles and white lines.
The current vision system of the CAMBADA robots is based on an omnidirectional setup. Additionally, the goal-keeper also has a perspective camera to help in the detection of balls in a 3D space.
For the calibration of the vision system, it is used the algorithm described in [5] that does not require human interaction to configure the most important parameters of the camera, namely the exposure, the white-balance, the gain and the brightness. Moreover, this algorithm runs continuously, even during the game, therefore coping with environmental changes that often occur while playing.
For most practical robotic applications, the setup of the vision system requires the translation of the planar field of view at the camera sensor plane, into real world coordinates at the ground plane, using the robot as the center of this system. A detailed description of that algorithm is presented in [8].
The algorithms developed for object detection can be split into three main modules, namely the Utility Sub-System, the Color Processing Sub-System and the Morphological Processing Sub-System, as can be seen in Fig. 3.
In the Color Processing Sub-System, proper color classification and extraction processes were developed, along with an object detection process to extract information from the acquired image, through color analysis [3, 4]. In Fig. 4 it is presented an example of application of this color-based object detection algorithm.
The Morphological Processing Sub-System is used to detect arbitrary FIFA balls, independently of their colors (a preliminary version of the algorithm was presented in [6]). In Fig. 5 it is presented an example of the application of this algorithm.
4 World modelling and robot control
During the last year some improvements have been made in the world model of the robots, namely the development of algorithms for obstacles identification and some improvements in the Integrator module. The control of the robots was also improved, mainly due to the development of a Predictor module to address the delay affecting the robot actuation along with an algorithm to update the robot velocity prioritizing the velocity direction.
With the objective of refining the information of the obstacles detected by the vision system, obstacles are selected and a matching is attempted, in order to try to identify them as team mates or opponents. The details of the algorithm are presented in [10] and an example is shown in Fig. 6.
In [21] it is proposed an approach to address physical constraints regarding omnidirectional motion control, with special focus on system actuation delay. CAMBADA robots carry inherent delays which, associated with discrete time control, results in non-instant, non-continuous control degrading the performance over time. Besides a natural maximum velocity, CAMBADA robots also have a maximum acceleration limit implemented at software level to provide motion stability. Considering the previous constraints, such as the cycle time and the overall sensor-action delay, compensations can be made to improve the robot sensing-action.
As can be seen in Fig. 7 a), by using the prediction module combined with the new acceleration limiter (described in [21]) the robot successfully moves in a straight line while rotating simultaneously. As can also be seen in Fig. 7 b), even when using a constant angular velocity, the robot performance is acceptable for this particular application.
This predictive control was then integrated with the existing behaviors of CAMBADA robots, presented in the next section, enhancing ball handling, obstacle avoidance and team formation. For consistency, a predictive model of the ball was also implemented to predict its position. Since the team mate position and velocity is shared among all robots the predictive model can be expanded predicting the position of the team mates. On the other hand, since robot communication is not synchronized with the control cycle the resulting prediction might be very inaccurate.
5 High-level coordination and control
The high-level decision is built around three main modules: sensor fusion [9, 10], basic behaviors and high-level decision and cooperation [11–13]. The aim of the sensor fusion module is to gather the noisy information from the sensors and from other robots and update the RTDB database that will be used by the high-level decision and coordination modules. The basic behaviors module provides the set of primitives that the high-level decision modules use to control the robot. The high-level decision module is responsible for the analysis of the current situation and for the performing of decision-making processes carried out by each player in order to maximize, not only the performance of its actions, but also the global success of the team. In the last year, several improvements have been made in these modules.
5.1 Basic behaviors
The different behaviors of the CAMBADA robots represent the basic tasks to be performed by the robot, such as move to a position in the field, dribble or kick the ball. A behavior can then be seen as the basic block that determines the CAMBADA robot actions. A behavior defines a specific task by computing the desired velocities to be applied at the robot frame, activating the ball handling device and the desired strength to be applied by the kicking system.
The choice of a given behavior at each instant of the game is executed by a role which is basically a finite-state machine composed of various behaviors that allows the different robots to play distinct parts of the team overall strategy.
The various CAMBADA behaviors are depicted in Fig 8.
5.2 High-level decision
In CAMBADA, each robot is an independent agent and coordinates its actions with its team mates through communication and information exchange. The resulting behavior of the individual robot should be integrated into the global team strategy, thus resulting in cooperative actions between the robots. This is done using roles and behaviors that define each robot attitude in the field and resulting individual actions.
New roles were created to improve the team strategy and some of the previously existing roles were improved in order to better fit the desired goals.
During open play, the CAMBADA agents use only three roles: RoleGoalie, RoleSupporter and RoleStriker. The RoleGoalie is activated for the goalkeeper. RoleSupporter moves according to its strategic positioning. RoleStriker is an active player role. Only one player at a time is supposed to run RoleStriker.
The striker is helped by team mates that take on RoleSupporter. Supporters keep their target positions as determined by their positioning assignments and the current ball position. As a result, Supporters accompany the Striker as it plays along the field, without interfering. When the Striker cannot progress with the ball towards the opponent goal and the ball remains behind the Striker for more than some fixed time (e.g. 2 sec), Supporters can take a more active behavior. In this case, the closest Supporter to the ball also approaches the ball, acting as "backup striker".
In set pieces, such as kick-off, throw-in, goal-kick, corner-kick and free-kick there are two robots directly involved while the others are in strategic positions.
Set pieces can be offensive or defensive. In offensive set pieces CAMBADA new approach uses three robots so that two of them are ready to receive a pass. All offensive set pieces are based on two roles, RoleReplacer, the robot that makes the pass, and RoleReceiver, the robot that receives the ball. Whenever all robots are running, one Replacer and two Receivers are used. If that is not the case, then only one Receiver is used.
In defensive set pieces, roles are usually based on strategic positioning only. However, in the last year, a new more dynamic role, named RoleBarrier, has been developed.
In this new approach, all the strategy for set pieces can be parameterized through a configuration file. That file contains the information about the positioning of the Receivers for every set piece and to which the Replacer should pass first.
The role assignment algorithm may be performed by the coach agent in the base station computer, thus ensuring a coordinated assignment result, or locally by each robot.
The coordination model of the CAMBADA team is based on concepts like strategic positioning, role and formation. A formation defines a movement model for the robotic players. Formations are sets of strategic positionings, each one being a movement model for a specific player. The assignment of a player to a specific positioning is performed in a dynamic way and according to a set of pre-defined rules. A tool has been developed to configure all the parameters of the robot, as presented in Fig. 9.
6 Basestation
The basestation has a determinant role both during the development of a robotic soccer team as well as during the games [20]. During the last year, the CAMBADA team has been developing a basestation (see Fig. 10) taking into consideration a set of requirements that emerge from the robotic soccer challenge.
The basestation application must provide a set of tools to perform the control and monitoring of the robots. Regarding the control activity, this application allows high level control of the robots by sending basic commands/information such as, run and stop commands, play mode, role assignment, etc. It also provides a high level monitoring of the robots internal states, namely their position in the field, velocity and battery charge, among other relevant information related with the robots and the game.
Furthermore, this application provides a mechanism that can be used to easily show a specific behavior of a robot, for debugging purposes. Besides that, the basestation has a fundamental role during a game, while receiving the commands from the referee box, translating them to internal game states and broadcasting the results to the robots.
A simulator of CAMBADA robots has been developed based on the odeserver of Tribots 2005 source release^2 and its integration with basestation is being developed.
^2 http://www.ni.uos.de/fileadmin/user_upload/bs2d/downloads/sources.zip
7 Conclusions
This paper described the current development stage of the CAMBADA robots. Since the last submission of qualification materials, in January 2009, several major improvements have been carried out, namely: the improvement of the vision system, in particular the use of higher resolution images, the development of an efficient algorithm for arbitrary ball detection and the improvement of the vision system calibration; the improvement of sensor fusion techniques and world state representation, in particular regarding the obstacles identification; new behaviors and the improvements of the existing ones adding a predictive control; new roles were created to add to the team strategy and some of the previously existing roles were improved and, finally, the development of an efficient basestation application.
References
- Azevedo, J.L., Cunha, B., Almeida, L.: Hierarchical distributed architectures for autonomous mobile robots: a case study. In: Proc. of the 12th IEEE Conference on Emerging Technologies and Factory Automation, ETFA2007, Greece (2007) 973–980
- Almeida, L., Pedreiras, P., Fonseca, J.A.: The FTT-CAN protocol: Why and how. IEEE Transactions on Industrial Electronics 49(6) (2002) 1189–1201
- Neves, A.J.R., Corrente, G., Pinho, A.J.: An omnidirectional vision system for soccer robots. In: Proc. of the 2nd International Workshop on Intelligent Robotics, IROBOT 2007. Volume 4874 of Lecture Notes in Artificial Inteligence., Springer (2007) 499–507
- Neves, A.J.R., Martins, D.A., Pinho, A.J.: A hybrid vision system for soccer robots using radial search lines. In: Proc. of the 8th Conference on Autonomous Robot Systems and Competitions, Portuguese Robotics Open - ROBOTICA'2008, Aveiro, Portugal (April 2008) 51–55
- Neves, A.J.R., B. Cunha, A.J.P., Pinheiro, I.: Autonomous configuration of parameters in robotic digital cameras. In: Proc. of the 4th Iberian Conference on Pattern Recognition and Image Analysis, IbPRIA-2009. Volume 5524 of Lecture Notes in Computer Science., Póvoa do Varzim, Portugal, Springer (June 2009) 80–87
- Martins, D.A., Neves, A.J.R., Pinho, A.J.: Real-time generic ball recognition in RoboCup domain. In: Proc. of the 3rd International Workshop on Intelligent Robotics, IROBOT 2008, Lisbon, Portugal (Oct. 2008) 37–48
- Martins, D.A., Neves, A.J., Pinho, A.J.: Obtaining the distance map for perspective vision systems. In: Proc. of the 2nd ECCOMAS Thematic Conference on Computational Vision and Medical Image Processing, VipIMAGE 2009, Porto, Portugal (2009)
- Cunha, B., Azevedo, J.L., Lau, N., Almeida, L.: Obtaining the inverse distance map from a non-SVP hyperbolic catadioptric robotic vision system. In: Proc. of the RoboCup 2007. Volume 5001 of Lecture Notes in Computer Science., Atlanta, USA, Springer (2007) 417–424
- Silva, J., Lau, N., Rodrigues, J., Azevedo, J.L.: Ball sensor fusion and ball interception behaviours for a robotic soccer team. In: Proc. of the 11th edition of the Ibero-American Conference on Artificial Intelligence, IBERAMIA 2008, Lisbon, Portugal (october 2008) 25–36
- Silva, J., Lau, N., Rodrigues, J., Azevedo, J.L., Neves, A.J.R.: Sensor and information fusion applied to a robotic soccer team. In: RoboCup 2009: Robot Soccer World Cup XIII. Lecture Notes in Artificial Intelligence, Springer (2009)
- Lau, N., Lopes, L.S., Corrente, G.: CAMBADA: information sharing and team coordination. In: Proc. of the 8th Conference on Autonomous Robot Systems and Competitions, Portuguese Robotics Open - ROBOTICA'2008, Aveiro, Portugal (April 2008) 27–32
- Lau, N., Lopes, L.S., Corrente, G., Filipe, N.: Roles, positionings and set plays to coordinate a msl robot team. In: Proc. of the 4th International Workshop on Intelligent Robotics, IROBOT'09. Volume 5816 of Lecture Notes in Computer Science., Aveiro, Portugal, Springer (2009) 323–337
- Lau, N., Lopes, L.S., Corrente, G., Filipe, N.: Multi-robot team coordination through roles, positioning and coordinated procedures. In: Proc. of the IEEE/RSJ International Conference on Intelligent Robots and Systems, St. Louis, MO, USA (2009) 5841–5848
- Almeida, L., Santos, F., Facchinetti, T., Pedreira, P., Silva, V., Lopes, L.S.: Coordinating distributed autonomous agents with a real-time database: The CAMBADA project. In: Proc. of the 19th International Symposium on Computer and Information Sciences, ISCIS 2004. Volume 3280 of Lecture Notes in Computer Science., Springer (2004) 878–886
- Santos, F., Almeida, L., Pedreiras, P., Lopes, L.S., Facchinetti, T.: An adaptive tdma protocol for soft real-time wireless communication among mobile autonomous agents. In: Proc. of the Workshop on Architectures for Cooperative Embedded Real-Time Systems, WACERTS 2004, Lisbon, Portugal (Dec. 2004)
- Santos, F., Almeida, L.: On the effectiveness of ieee802.11 broadcasts for soft realtime communication. In: Proc. of the 4th International Workshop on Real-Time Networks, Palma de Mallorca, Spain (Jul. 2005)
- Santos, F., Corrente, G., Almeida, L., Lau, N., Lopes, L.S.: Self-configuration of an adaptive TDMA wireless communication protocol for teams of mobile robots. In: Proc. of the 13th Portuguese Conference on Artificial Intelligence, EPIA 2007, Guimarães, Portugal (December 2007) 657–665
- Santos, F., Almeida, L., Lopes, L.S.: Self-configuration of an adaptive tdma wireless communication protocol for teams of mobile robots. In: Proc. of the 13th IEEE International Conference on Emerging Technologies and Factory Automation, ETFA 2008, Hamburg, Germany (Sept. 2008)
- Santos, F., Almeida, L., Lopes, L.S., Azevedo, J.L., Cunha, M.B.: Communicating among robots in the robocup middle-size league. In: RoboCup 2009: Robot Soccer World Cup XIII. Lecture Notes in Artificial Intelligence, Springer (2009)
- Figueiredo, N., Neves, A.J.R., Lau, N., Pereira, A., Corrente, G.: Control and monitoring of a robotic soccer team: The base station application. In: Proc. of the 4th International Workshop on Intelligent Robotics, IROBOT'09. Volume 5816 of Lecture Notes in Computer Science., Aveiro, Portugal, Springer (2009) 299–309
- Cunha, J., Lau, N., Rodrigues, J., Cunha, B., Azevedo, J.L.: Predictive control for behavior generation of omni-directional robots. In: Proc. of the 4th International Workshop on Intelligent Robotics, IROBOT'09. Lecture Notes in Computer Science, LNAI 5816, Aveiro, Portugal, Springer (2009) 275–286