General description

Basically, the robots architecture is centered on a main processing unit that is responsible for the higher-level behavior coordination, i.e. the coordination layer. This main processing unit (a PC) processes visual information gathered from the vision system, executes high-level control functions and handles external communication with the other robots. This unit also receives sensing information and sends actuating commands to control the robot attitude by means of a distributed low-level sensing/actuating system.

The PC runs the Linux operating system. The communication among team robots uses an adaptive TDMA transmission control protocol on top of IEEE 802.11b, that reduces the probability of transmission collisions between team mates thus reducing the communication latency.

Low level sensing/actuating system

The low-level sensing/actuation system is implemented through a set of microcontrollers 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 higher-level transmission control protocol to enhance its real-time performance, composability and fault-tolerance, namely the FTT-CAN protocol (Flexible Time-Triggered communication over CAN).

The low-level sensing/actuation system executes four main functions, namely, Motion control, Odometry, Kicking and System monitoring. The Motion control function provides holonomic motion using 3 DC motors. The Odometry function combines the encoder readings from the 3 motors and provides coherent robot displacement information that is then sent to the coordination layer. The Kick function includes the control of an electromagnetic kicker and of a ball handler to dribble the ball. Finally, the System monitor function monitors the robot batteries as well as the state of all nodes in the low-level layer.

The low-level control layer connects to the coordination layer through a gateway, which filters interactions within both layers, passing through the information that is relevant across the layers, only.

Vision System

The current version of the vision system uses an omni-directional and a perspective camera. The omni-directional part of the vision system is based on a catadioptric configuration implemented with a firewire camera and a hyperbolic mirror. The perspective camera uses a low cost firewire web-camera.

The image processing software uses radial search lines to analyze the color information. The regions of the image that have to be excluded from analysis (such as the robot itself, the sticks that hold the mirror and the areas outside the mirror) are ignored through the use of a previously generated image mask. The objects of interest (a ball, two goals, obstacles and the green to white transitions) are detected through algorithms that, using the color information collected by the radial search lines, calculate the object position and/or their limits in an angular representation (distance and angle). The green/white detected transition points, that are at a distance smaller than a predefined value, are stored in the RTDB for latter use by the robot self-localization process.

The relationship between image pixels and real world distances is obtained through an analytical method developed by the team (see publications link) that explores a back-propagation ray-tracing approach and the mathematical properties of the mirror surface.

High-level coordination and control

The high-level decision is built around three main modules: sensor fusion, basic behaviors and high-level decision and cooperation. The objective of the sensor fusion module is to gather the noisy information from the sensors and from other robots and update the World State database that will be used by the high-level decision and coordination. The basic behaviors module provides the set of primitives that the higher-level decision modules use to control the robot. It is essential to provide those modules with a good set of alternatives, each of which should be as efficient as possible. 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.

 
Transverse Activity on Intelligent Robotics, IEETA
University of Aveiro, Portugal