A NEURAL APPROACH TO REAL TIME COLOUR RECOGNITION IN THE
ROBOT SOCCER DOMAIN
José Angelo Gurzoni Jr.∗, Murilo Fernandes Martins†, Flavio Tonidandel∗, Reinaldo A.
C. Bianchi∗
∗
Dept. of Electrical Engineering
Centro Universitário da FEI, Brazil
†
Dept. of Electrical and Electronic Engineering
Imperial College London, UK
Emails: [email protected], [email protected], [email protected],
[email protected]
Abstract— This paper addresses the problem of colour recognition in real time computer vision systems
applied to the robot soccer domain. The developed work presents a novel combination between our current
model-based computer vision system and neural networks to classify colours and identity the robots on an image.
This combination presents an alternative to the considerably high computational cost of the neural network,
which reduces the demanding and time consuming task of calibrating the system before a match. The results
prove that this new approach copes with luminance variations across the playing field and enhances the accuracy
of the overall system.
Keywords—
1
Neural Networks, computer vision, mobile robotics
INTRODUCTION
Since its introduction to the Artificial Intelligence
research field, the Robot Soccer domain has become a widely studied area of research. The
Robot Soccer domain introduces a real, dynamic
and uncertain environment, requiring real time
responses from a team of robots that must, autonomously, work together to defeat an opponent
team of robots. The reason for such popularity
comes from the diversity of challenges addressed
by this domain in many areas of research, including machine learning, multi-robot systems, computer vision, control theory and so forth.
A robot soccer team must be endowed with
sensory and perceptual capabilities in order to actuate in the environment. The richest perceptual
data of a robot soccer system is, for sure, provided
by the computer vision system, responsible for the
recognition of the robots and ball pose. The computer vision system must retrieve the pose of the
objects recognised in the scene accurately, in real
time and should cope with luminance variation,
occlusion, lens distortion and so forth. Notice
that, as different teams and even robots are distinguished by different colours, the computer vision system must recognise these colours in order
to provide the right information about the scene
observed.
Although largely studied by several researchers (e.g., (Comaniciu and Meer, 1997),
(Bruce et al., 2000)), colour segmentation is still
an open issue and worthy of consideration, as recent studies like (Tao et al., 2007), (Sridharan and
Stone, 2007) and (Zickler et al., 2009) have shown.
This is due to difficulties in dealing effectively with
luminance variation and colour calibration.
In our previous work (see (Martins et al.,
2006), (Martins et al., 2007)) we developed a
model-based computer vision system that does not
use colour information for object recognition, only
for object distinction. As a result, this system
proved to be fast to recognise objects and also robust to luminance variation. It also made the task
of calibrating colours easier, since this information
is only required when the objects are already detected in the image. However, the calibration of
colours was still required.
Moving towards an automatic computer vision system, we present in this paper a novel combination between our model-based computer vision system and a Multi-layer perceptron (MLP)
neural network to classify colours as an alternative
to the high computational cost of neural networks,
enhancing the accuracy of the overall system.
We first examine colour and object recognition issues and define the problem in Section 2.
Subsequently, in Section 3 we present a brief review of the relevant characteristics of Artificial
Neural Networks for the problem of colour classification and, in Section 4, describe our approach
to solve the problem stated. Section 5 has descriptions and analysis of the experiments performed,
followed by the paper conclusion, Section 6, where
we remark the contributions and present future
work.
2 COLOUR AND OBJECT
RECOGNITION IN ROBOT SOCCER
The robot soccer domain is composed of a group of
distinct categories, which are regulated by either
FIRA or RoboCup. These categories range from
small-sized wheeled mobile and dog-like 4-legged
robots to humanoid robots, offering to researchers
Figure 1: The MiroSot arquitecture proposed by
FIRA
two main challenges in computer vision: local and
global vision systems.
The former requires robots endowed with such
an embedded system (camera and computer vision
algorithms) that allows the robot to localise the
ball, the other robots (teammates and opponents)
and itself. The latter entails a system where the
camera is fixed over the game field, providing a
global perception of the environment and centralising the processing of the images captured by the
camera, as illustrated in Fig. 1.
2.1
The RoboFEI global vision system
We have been developing a global vision system
for the RoboFEI robot soccer team, under the
rules of the MiroSot, regulated by FIRA. Basically, each team is represented by a colour, either
yellow or blue, and the ball is an orange coloured
golf ball. A label must be placed on top of each
robot with a blob coloured according to the team
the robot represents and a minimum area of 15
cm2 .
To distinguish between robots in our team,
another blob with a different colour (green, cyan
or pink) is placed on the label and we deliberatively use a circle as the shape of the blobs. The
circles are posed in such a way that the line segment between their centres forms an angle of 45
degrees with the front of the robot (Fig. 2).
In order to recognise the objects (robots and
ball), the computer vision system was designed in
seven stages, as shown in Fig. 3 (for a detailed
description, see (Martins et al., 2006), (Martins
et al., 2007)).
Initially, the images are captured from the
camera with resolution of either 320x240 or
640x480 pixels and 24-bit RGB colour depth, at
30 frames per second. Then, the background is
subtracted so only the objects remain in the im-
Figure 2: Example of a label used to identify the
robots
Figure 3: Block diagram of the RoboFEI global
vision system
age, and the edges are extracted.
Subsequently, the Hough Transform, fitted to
detect circles, is computed using only edge information and hence a Hough space is generated,
which maps cartesian coordinates into probabilities. The higher the probability the higher the
certainty that a given point is centre of a real circle in the image. The Hough space is thresholded
and the points with the highest probabilities are
stored to be used afterwards.
Finally, the robots are recognised using colour
information, since all the circle centres in the image are already known (the high probability points
in the Hough space). By using this approach, the
influence of luminance variation is considerably
minimised and the accuracy required to calibrate
the colours is reduced.
However, the colour recognition in the Object
Recognition stage is based on a set of constant
thresholds (minimum and maximum values for
Hue, Saturation and Value) for each colour class.
The use of constant thresholds implies in two main
limitations: (i) the minimum and maximum HSV
values can only be set as continuous ranges, while
the number of discontinuities is not known, and
(ii) the ranges of HSV must be adjusted for each
colour in such a way that these ranges are neither so narrow that cannot represent all possible
samples of a class, nor too wide that two colour
ranges get superposed. Due to these restrictions,
the task of calibrating colours is demanding and
time consuming, requiring knowledge of theoretical concepts, such as the HSV colour space representation and how each attribute of this colour
space influences colour information.
Many researchers have been addressing the
colour calibration procedure (e.g., (Gunnarsson
et al., 2005), (Sridharan and Stone, 2007)) in
different categories, proposing new techniques to
solve the problems of manual colour calibration
systems. Our approach in this paper (described
further in Section 4) makes use of Artificial Neural Networks.
3
NEURAL NETWORKS TO
RECOGNISE COLOURS
Artificial Neural Networks, particularly Multi
Layer Perceptron (MLP) networks, have been applied to a wide range of problems such as pattern
recognition and robot control strategies, noticeably for their capability of approximating nonlinear functions, by learning from input-output
example pairs, and generalisation (see (Mitchell,
1997)). MLP neural networks can learn from complex and noisy training sets without the need to
explicitly define the function to be approximated,
which is usually multi-variable, non-linear or unknown. In addition, they also have the capability
to generalise, retrieving correct outputs when input data not used in the training set is presented.
This generalisation allows the use of a small number of samples during the training stage.
Specifically in the problem of colour classification, the representation of the colour classes
in the HSV domain (as stated in Section 2.1)
can be spread along a variable, and unknown a
priori, number of discontinuous portions of the
space, which a manually-defined thresholding system cannot represent unless it has one set of
thresholds for each of these discontinuous portions. The creation of multiple thresholds also
considerably increase the expertise and time required to calibrate the colours, if the task is to be
carried manually by the operator. On the other
hand, this representation can be quickly learnt by
neural networks from the training set, without the
need of operator’s expertise, making them a much
more suitable solution for the task.
However, MLP neural networks have a relatively high computational cost, due to the fact
that each new input sample requires a new calculation of the neuron matrices, which cannot be
computed a priori, thus making MLPs to be commonly deemed unsuitable for real time applications. Next section details a way to overcome this
inconvenience and have neural networks applied
to a real time application.
Figure 4: The MLP neural network implemented
to recognise colours
4
THE IMPLEMENTED SYSTEM
In order to be fully compatible with the modelbased vision system used in this paper, the MLP
neural network algorithm was implemented in
C/C++ language, and the machine learning portion of the well-known Intel OpenCV library due
to its very good performance.
The MLP neural network is composed of 3
layers of neurons, activated by sigmoid functions.
Because the input is a 3 dimensional vector, the
HSV colour space, 3 neurons form the input layer,
while the output layer has 7 neurons, six outputs
representing a given colour of interest in which
a pixel must be classified (orange, yellow, blue,
green, pink and cyan) and an additional output
representing the background. Regarding the hidden layer, after some preliminary investigations we
found the best accuracy using 20 neurons. Therefore, the topology of the MLP neural network was
set as 3-20-7. To train the network, the backpropagation with momentum algorithm was used, and
the parameters adjusted to learning rate of 0.1,
momentum of 0.1 and stop criteria (also called
performance) of 10−6 . This tight value for serves to really ensure the training set was learnt
correctly and the scalar value was defined during
the test phase, looking at different values of that
could still produce high fidelity results.
Moving towards an automatic global vision
system, we developed a solution to the colour calibration problem, inspired by the work developed
by (Simoes and Costa, 2000). In order to bypass
the high computational cost constraint, we make
use of our model-based vision system to detect,
through a Hough transform, the points with high
probability of being the actual centres of circles
that form the real objects in the image. Once the
circles are found, we apply the MLP neural network (shown in Fig. 4) to classify the pixels of a
5x5 mask inside this area.
In contrast to our previous method to calibrate colours described in Section 2.1, the task of
training the MLP neural network is straightforward to anyone who is able to distinguish colours,
since no specific knowledge is needed and the only
requirement is to select samples of a given colour
of interest and define to which output that samples should be assigned.
This yields a more efficient use of the MLP
neural network evaluation function, since only
a small number of pixels need to be evaluated,
rather than evaluating the whole image. For instance, in an image with resolution of 320x240
pixels (the lowest resolution we use), the neural network would need to classify 76800 points,
while with the combination of our model-based
system the number of points to be classified is reduced to 1250 (about 50 points with probability
higher than a fixed threshold - for more details,
see (Martins et al., 2006), (Martins et al., 2007)),
because only a 5x5 pixel mask of each detected
circle needs to be evaluated. This reduction, as
shown by the results further presented, is enough
to allow the execution of the network in real time.
5
EXPERIMENTS
In order to validate our proposal and analyse the
performance of the MLP neural network implemented, we performed experiments to measure accuracy and execution time of the algorithm, as
well as a complete real-world scenario test. Below we describe the MLP neural network training
stage and the three experiments performed.
In the first experiment, the MLP neural network was tested detached from the model-based
vision system, aiming at measuring its accuracy.
Subsequently, the second experiment tested our
combined solution to object recognition, focusing
on the accuracy and execution time of the complete vision system when compared with the manual calibration of the colour ranges. The third test
is a real-world test, with measurements of accuracy taken directly from a game scenario.
In all cases, the tests were performed on
a computer equipped with an Intel Pentium D
3.4GHz processor running Microsoft Windows XP
operating system.
5.1
The MLP neural network training stage
In our approach, the training stage happens before a game, when a human supervisor selects
the training points in the image and defines to
which output (either a colour or background)
these points should be classified. In this scenario,
we take advantage of capturing the input samples
in a live video streaming, what takes into account
the noise. As points are captured from different
frames, they intrinsically carry the noise to the
training set, improving the robustness of the neural network. Once enough training points are captured, the human triggers the network’s training
function.
5.2
Neural Network accuracy test
In this test, we trained the neural network using
140 training points, 70 from an image with luminance of 750 lux and other 70 from another image
with luminance of 400 lux, with the training points
equally distributed among the 7 output classes.
The network was then executed against 10x76800
pixels (10 images with resolution of 320x240 pixels and luminance varying from 400 to 1000 lux).
The result was an average of 83% correctly classified pixels. The source image and resultant representation of the classified pixels are shown in
Fig. 5. From the image is noticeable that most
of the incorrectly classified pixels belong to the
Figure 5: (top) Source image from noisy camera.
(bottom) Resultant image, generated by the Neural network classification
background class, what does not pose a problem
for the algorithm, since the colour information is
only retrieved from points belonging to the foreground image, after background subtraction. This
experiment proves that our MLP neural network
is robust to luminance variation and the accuracy
is high enough to be used on our approach in
the robot soccer domain. However, this test is
a proof of concept, aimed at validating the algorithm. The practical application of the proposed algorithm is presented in the following experiments.
5.3
Manual thresholding x Neural approaches
comparison
In this test, we used 30 images of the game field
with the objects (6 robots and a ball) randomly
positioned on the field, captured at the resolution
of 640x480 pixels.
Three people (first two with basic knowledge
and one with advanced skills in regards to our
computer vision system) were asked to calibrate
the manual colour recognition system. In addition, each one was asked to capture 140 training
points (20 for each output class) to train the MLP
neural network, always using the same image. A
fourth person then presented the 30 images to the
computer vision system and obtained the results
shown in Table 1 for both algorithms. During this
experiment, the averaged execution times of the
complete vision system were also measured, within
a loop of 500 executions for each test image, and
the results are shown in Table 2.
While both algorithms produced good classification levels, the neural network showed not to
be easily susceptible to performance drops caused
by different trainer experiences, expressed by its
much smaller deviation on the experiments, and
to match and exceed the thresholding algorithm
performance. In terms of execution time, we conclude that no significant time is added with the
introduction of the neural network algorithm.
Table 1: Accuracy (%)
Thresholding Neural Network
1st trainer
90 ± 14.2
97.5 ± 2.3
2nd trainer
76 ± 29.0
97.5 ± 3.5
3rd trainer
96 ± 21.0
96 ± 2.3
Figure 6: Percentage of frames where the robots
were found, averaged among 6 robots of different
colour combinations, by each algorithm.
Table 2: Execution times (ms)
Image Size
Algorithm
320x240
640x480
Neural Network 7.92 ± 1.15 27.30 ± 1.76
Thresholding
6.10 ± 0.01 25.55 ± 0.28
5.4
Real Game Scenario
At last, we tested and compared the algorithm
in a real game scenario, with luminance variations and using real time images from the camera.
This is a very similar complete system validation
test we performed in our previous work (Martins
et al., 2007), with the difference that, this time,
we used a camera with noisy signal. The noisy
colour signal is a very common noise found specially in analog cameras, caused by imperfect or
old cabling connections, electric wiring close to
video signal cables and aging cameras. Under luminance variation and noise conditions, we sought
to stress the capabilities of the neural algorithm to
generalise, correctly classifying pixels of different
luminance levels, even when trained and executed
with noisy samples.
To do so, the neural algorithm was calibrated
with 70 samples from the live camera image, 35
of these obtained at a luminance level of 1000 lux
and 35 obtained at 600 lux. As the thresholding
algorithm would need to be used as comparison,
it was calibrated as well, with some static images
taken at different luminance levels, as the paragraph of result analysis will explain. Then, the
robots were set to randomly run across the field
and a counter summed the number of times each
robot was correctly identified, in a cycle of 4000
frames, in a process that was repeated for each
Figure 7: Percentage of frames where the robot
with smaller detection count was found by each
algorithm.
different luminance level. Fig. 6 shows the averaged detection count among the 6 robots, comparing the neural and threshold algorithms. Fig.
7 shows a worst case detection count, of the robot
detected the lesser number of times during one
cycle of 4000 frames. The game test results show
that the neural algorithm is extremely robust to
luminance variation, as well as to noise. On the
contrary, the thresholding system is highly vulnerable to noise. It is important to note also that,
to obtain a calibration for the thresholding algorithm that could be used in the test, more than
45 minutes where spent in trials, for even when
the results in the test images were satisfactory,
after the robots started to move the results were
showed to be poor. The neural network calibration did not take more than 3 minutes and was
executed only one time.
6
CONCLUSIONS AND FUTURE
WORK
The results of the different experiments confirm
that our approach, combining object detection
and neural network colour classification, considerably increases the accuracy of the vision system
under real-world conditions such as noise and light
intensity variation while, at same time, creates
an easier to operate method for colour recognition. We successfully removed the time consuming and demanding task of manually adjusting
thresholds for colour calibration and replaced it
by a more robust and efficient classifier, the neural network, but avoided its high computational
cost with the use of the circle detection algorithm
based in Canny and Hough filters. The limitation of the system is its inability to detect objects
with unknown geometric form, which we intend
to solve in future work. We would like also, as a
future work, to explore the use of non supervised
classifiers and possibly RBF (Radial Basis Function) neural networks, aiming to produce a fully
automatic calibration system.
ACKNOWLEDGMENTS
The authors would like to thank FAPESP, CNPq
and CAPES for the support.
Murilo Fernandes Martins acknowledges the support of
CAPES (Grant No. 5031/06-0) and Reinaldo A.
C. Bianchi acknowledges the support of CNPq
(Grant No. 201591/2007-3) and FAPESP (Grant
No. 2009/11256-0).
The authors are also very grateful to the members of the RoboFEI project, for their valuable
contributions and time spared.
References
Bruce, J., Balch, T. and Veloso, M. (2000). Fast
and inexpensive color image segmentation
for interactive robots, Proceedings of IROS2000, Japan.
Comaniciu, D. and Meer, P. (1997). Robust analysis of feature spaces: color image segmentation, CVPR ’97: Proceedings of the 1997
Conference on Computer Vision and Pattern
Recognition (CVPR ’97), IEEE Computer
Society, Washington, DC, USA.
Gunnarsson, K., Wiesel, F. and Rojas, R. (2005).
The color and the shape: Automatic online color calibration for autonomous robots,
in A. Bredenfeld, A. Jacoff, I. Noda and
Y. Takahashi (eds), RoboCup, Vol. 4020 of
Lecture Notes in Computer Science, Springer,
pp. 347–358.
Martins, M. F., Tonidandel, F. and Bianchi, R.
A. C. (2006). A fast model-based vision system for a robot soccer team, in A. F. Gelbukh and C. A. R. Garcı́a (eds), MICAI, Vol.
4293 of Lecture Notes in Computer Science,
Springer, pp. 704–714.
Martins, M. F., Tonidandel, F. and Bianchi, R.
A. C. (2007). Towards model-based vision
systems for robot soccer teams, in P. Lima
(ed.), Robotic Soccer, I-Tech Education and
Publishing, chapter 5, pp. 95–108.
Mitchell, T. (1997). Machine Learning, McGrawHill Education (ISE Editions).
Simoes, A. S. and Costa, A. H. R. (2000). Using
neural color classification in robotic soccer
domain, International Joint Conference IBERAMIA’00 Ibero-American Conference on
Artificial Intelligence and SBIA’00 Brazilian
Symposium on Artificial Intelligence pp. 208–
213.
Sridharan, M. and Stone, P. (2007). Color learning
on a mobile robot: Towards full autonomy
under changing illumination, in M. M. Veloso
(ed.), IJCAI, pp. 2212–2217.
Tao, W., Jin, H. and Zhang, Y. (2007). Color image segmentation based on mean shift and
normalized cuts, Systems, Man, and Cybernetics, Part B, IEEE Transactions on
37(5): 1382–1389.
Zickler, S., Laue, T., Birbach, O., Wongphati,
M. and Veloso, M. (2009). Ssl-vision: The
shared vision system for the robocup smallsize league, Proceedings of the International
RoboCup Symposium 2009 (RoboCup 2009).
ABORDAGEM GENÉTICA PARA DEFINIÇÃO DE AÇÕES EM AMBIENTE
SIMULADO DE FUTEBOL DE ROBÔS
Eduardo Sacogne Fraccaroli∗, Ivan Nunes da Silva∗
∗
Av. Trabalhador Sancarlense, 400, 13566-590, São Carlos
Universidade de São Paulo, Escola de Engenharia de São Carlos, Departamento de Engenharia Elétrica
São Carlos, São Paulo, Brasil
Emails: [email protected], [email protected]
Abstract— This work consists of applying a genetic algorithm as an alternative approach to traditional methods for defining the actions of the players on a soccer team of robots simulated. The method of evaluation of
each team is based on the number of goals for and goals against. It is a robust method of evaluation, which is
focused on the distinction of global acions according to the types of players (defender, attacker and middle field).
The results are reported in order to validate the presented proposal.
Keywords—
Genetic Algorithm, Multi-Agent System, RoboCup 2D.
Resumo— Este trabalho consiste na aplicação de um algoritmo genético como alternativa aos métodos tradicionais para definir as ações dos jogadores em um time de futebol de robôs simulados. O método de avaliação de
cada time é baseada no número de gols prós e gols contra. Propõe-se um método de avaliação robusto, focado
na distinção das ações globais conforme os tipos de jogadores (zagueiro, meio campo e atacante). Os resultados
são relatados procurando validar a proposta apresentada.
Palavras-chave—
1
Algoritmos Genéticos, Sistemas Multi-Agentes, RoboCup 2D.
Introdução
As pesquisas em sistemas multiagentes têm se tornado uma das principais tendências no domı́nio da
inteligência artificial (Weiss, 1999). O conceito de
futebol de robôs foi introduzido em 1993 pelo Dr.
Itsuki Nota (Kitano et al., 1995). A competição
de futebol de robôs tem como pretexto o desenvolvimento de técnicas de inteligência artificial, para
aplicações robóticas, utilizando um problema padrão em que um grande leque de possı́veis tecnologias possam ser examinadas. Aprendizado por
reforço, aprendizado por reforço baseado em heurı́sticas, algoritmos genéticos, sistemas fuzzy e redes neurais artificiais são as tecnologias mais utilizadas no ambiente de futebol de robôs.
A partir de já há muito tempo, um dos objetivos mais perseguidos pelo ser humano é dotar uma máquina construı́da pelo mesmo com
caracterı́sticas inteligentes. Desde então, têmse testemunhado o surgimento de novos paradigmas simbólicos de aprendizagem, em que muitos
deles se tornaram métodos computacionais poderosos, como aprendizado baseado em explicações, sistemas classificadores e sistemas evolutivos
(Ross, 2004).
O algoritmo genético é inspirado na teoria da
evolução de Darwin e pode ser considerado como
um método que trabalha com buscas paralelas
randômicas direcionadas, em que se utiliza o processo evolutivo para determinar a melhor (mais
adequada) solução de um problema. São empregados para resolver problemas complexos, tendo
como vantagem seu paralelismo. O algoritmo genético percorre o espaço das possı́veis soluções
usando muito indivı́duos, de modo que são me-
nos susceptı́veis de ficarem presos em um mı́nimo
local (Goldberg, 1989).
Existem diversas pesquisas realizadas na área
da RoboCup nas quais se utilizam algoritmos genéticos. Em Nakashima et al. (2004) foi proposto
um método evolutivo para aquisição da estratégia
do time, em que se utilizou um conjunto de regras
para inferir uma determinada ação de acordo com
a posição do jogador e do adversário mais próximo. Já em Nakashima et al. (2006) foi proposto
um método utilizando correspondência histórica.
A avaliação de um time é realizada de acordo com
seus objetivos e suas metas, portanto, é possı́vel
que um time com uma boa estratégia seja eliminado, devido isto ao fato do ambiente simulado
possuir um alto grau de incerteza.
Assim sendo, para os propósitos mencionados
anteriormente, o restante deste artigo está organizado da maneira que se segue. A Seção 2 apresenta uma breve descrição sobre a RoboCup. A
Seção 3 descreve o ambiente de simulação de futebol de robôs e seus respectivos módulos. A Seção
4 introduz o conceito do algoritmo genético e seus
principais operadores. A Seção 5 apresenta o modelo do time e suas respectivas ações propostas. A
Seção 6 detalha o modelo proposto do algoritmo
genético. A Seção 7 mostra os resultados obtidos
de acordo com o número de gerações. Finalmente,
as conclusões são tecidas na Seção 8.
2
Aspectos da RoboCup
A RoboCup (Robot World Cup) foi iniciada no Japão e nos Estados Unidos e tem como ambicioso
objetivo criar um time de robôs humanóides, to-
talmente autônomos, capazes de ganhar dos atuais
campeões mundiais de futebol. A RoboCup possibilita pesquisas nas áreas de robótica e inteligência
artificial, disponibilizando um problema desafiador que oferece a integração de pesquisas nas diversas áreas da robótica e da inteligência artificial,
por exemplo, agentes autônomos, visão computacional, colaboração multiagente, comportamento
reativo, aprendizado, controle de movimento, controle inteligente robótico, evolução, resolução em
tempo real, entre outros (Kitano et al., 1998).
Existem cinco categorias na RoboCup Soccer : Humanoid, Middle Size, Small Size, Standard
Platform e Simulation. Cada uma com o foco em
diferentes nı́veis de abstração para o respectivo
problema.
3
Categoria de Simulação 2D
O ambiente dos agentes simulados é uma estrutura
hierárquica. Essa estrutura é dividida em dois ambientes. O ambiente de baixo nı́vel é responsável
por processar as informações básicas como aquelas
de informações visuais, de som, de sensibilidade e,
também, de ações básicas como driblar, realizar
um passe e chutar. O outro é o ambiente de alto
nı́vel que possibilita a decisão do ponto de vista
global, tais como a estratégia cooperativa de jogar
entre os companheiros (Chen et al., 2002).
O ambiente da RoboCup Simulação 2D apresenta as caracterı́sticas de ser um ambiente dinâmico em tempo real, ruidoso (insere um ruı́do
gaussiano entre a comunicação servidor/cliente),
cooperativo e coordenado e de possuir limitado
espaço de comunicação.
uso de ferramentas que viabilizem a comunicação
via UDP/IP, pois toda comunicação feita entre o
servidor e cada cliente é feita via socket UDP/IP,
o qual é um protocolo de comunicação orientado
à conexão, incluindo-se mecanismos para iniciar
e encerrar a conexão, negociar tamanhos de pacotes e permitir a retransmissão de pacotes corrompidos. Cada cliente é um processo separado e
conecta-se com o servidor por meio de uma única
porta. Cada time pode ter onze clientes (jogadores).
O cliente é responsável por atuar no ambiente simulado, sendo este o módulo em que são
desenvolvidos e aplicados os algoritmos inteligentes para serem avaliados. As ações referentes ao
comportamento dos jogadores devem ser executadas obedecendo a ordem seguinte . Primeiro, o
cliente envia requisições para o servidor; em seguida, o servidor recebe e armazena as requisições, as quais são procuradas para serem executadas (chutar a bola, virar, correr, etc.); por fim,
o ambiente é então atualizado. O servidor é um
sistema executado em tempo real com intervalos
discretos de tempo (ciclos) (Chen et al., 2002).
Figura 2: Simulação computacinal de uma partida de
futebol de robôs simulados.
Figura 1: Arquitetura do simulador 2D.
(Reis, 2003).
O ambiente simulado de futebol de robôs é
composto por dois módulos, ou seja, o servidor e
o monitor. O servidor é um ambiente que torna
possı́vel o jogo de futebol entre dois times, sendo
responsável por simular os movimentos dos jogadores e da bola, a comunicação com cliente (jogador) e o controle do jogo conforme as regras. Para
desenvolver times torna-se necessário que se faça
O monitor (Figura 2) é responsável por mostrar o campo na tela do computador. Por meio
dessa interface é possı́vel observar os agentes jogando de acordo com as informações enviadas pelo
servidor. As informações disponı́veis na tela incluem o placar, os nomes dos times, o tempo decorrido, os jogadores, as posições e a bola (Chen
et al., 2002).
4
Algoritmo Genético
Os algoritmos genéticos foram introduzidos por
Holland (1975), com o objetivo de simular por
meio de um computador os processos de adaptação de sistemas naturais utilizando um sistema
artificial.
Pseudocódigo Algoritmo Genético
begin
Geração ←− 0;
Inicializar População (Geração);
Avaliar População (Geração);
while (Não Condição de Parada) do
Geração ←− Geração + 1;
Selecionar População (Geração)
a partir da População (Geração - 1);
Alterar População (Geração);
Avaliar População (Geração);
end while
end
Figura 3: Pseudocódigo do algoritmo genético.
Os algoritmos genéticos são técnicas de busca
estocásticas inspiradas na teoria de Darwin, que
consiste em achar uma resposta para um problema com um número grande de possı́veis soluções. Charles Darwin propôs a teoria da seleção
natural, na qual indivı́duos com boas caracterı́sticas genéticas possuem maiores chances de sobrevivência e de se reproduzirem, gerando-se, assim,
indivı́duos cada vez mais aptos. Por outro lado,
os indivı́duos menos aptos tenderão a desaparecer (Holland, 1975). Na Figura 3 é mostrado um
pseudocódigo resumido de um algoritmo genético.
Um algoritmo genético deve apresentar os seguintes componentes:
• Um método de seleção genética para soluções
candidatas ou potenciais;
• Uma maneira de gerar uma população inicial
para as possı́veis soluções potenciais;
• Uma função para avaliar sua adaptação ao
ambiente;
• Operadores genéticos, como cruzamento e
mutação.
Uma população inicial de cromossomos pode
ser criada usando uma seleção aleatória de cada
gene. Cada um dos cromossomos deve ser avaliado de acordo com seu sucesso em direção à solução do problema, sendo que tal avaliação é obtida por meio da função objetivo (fitness), cuja
missão é estabelecer uma relação que permita medir o desempenho de cada solução. Os indivı́duos
com melhores desempenhos serão escolhidos para
se reproduzirem. Já os indivı́duos menos aptos serão retirados da população e substituı́dos por seus
descendentes. Cada iteração em um algoritmo genético é conhecida como geração.
Os algoritmos genéticos possuem um operador
de seleção, o qual é responsável por selecionar o
cromossomo com melhor valor de avaliação. Para
reproduzir dois descendentes, os cromossomos são
trocados em um ponto determinado.
Em cada geração uma mutação em um gene
especı́fico pode ocorrer, sendo a mesma essencial
por dois motivos. Primeiro, na natureza, mutações podem ocorrer de maneira aleatória. Segundo e mais importante, em um contexto de um
problema otimista, isso impede que a população
se torne uniforme e incapaz de se desenvolver e,
também, prevê a possibilidade de saltar pontos
de mı́nimos locais. A probabilidade da mutação
pode ser representada por meio de um operador
de mutação, em que cada gene em um cromossomo tem a mesma probabilidade de ser mutado
(Rezende, 2003).
5
Caracterı́sticas do Time
Nesse artigo utiliza-se o time UvA Trilearn como
base para aplicar o modelo evolutivo computacional. O código fonte apenas implementa o comportamento de baixo nı́vel, como informações trocadas com o servidor. O comportamento de alto
nı́vel, como a estratégia do time foi omitida no
código fonte.
Assim, encontra-se disponı́vel somente dois
modos simples de ações no código da UvA Trilearn. Um é o modo de manuseio da bola e o outro
é o modo de posicionamento, os quais serão utilizados pelos jogadores dependendo da situação de
jogo. Se o jogador estiver perto da bola, o modo
manuseio da bola é então executado. Este modo
é executado quando o jogador está perto da bola,
o qual avalia a possibilidade de chutar ou não;
se existir a possibilidade de chutar, o mesmo realizará uma ação consequente; por outro lado, se
não existir tal possibilidade, haverá então a ação
de interceptar a bola. A ação de interceptar a
bola consiste em posicionar o jogador no ponto
de intersecção da trajetória da bola (de Boer and
Kok, 2002).
Foram propostas 10 ações nesse artigo, tais
quais:
1. Realizar um passe com velocidade média para
o companheiro número seis;
2. Realizar um passe com velocidade média para
o companheiro número sete;
3. Realizar um passe com velocidade média para
o companheiro número oito;
4. Levar a bola para uma área sem oponentes,
usado quando não conseguir driblar ou realizar o passe para o companheiro;
5. Chutar em direção ao gol adversário;
6. Driblar em direção à linha lateral com um
ângulo positivo;
7. Driblar em direção à linha lateral com um
ângulo negativo;
8. Realizar um passe com velocidade alta para
o companheiro número nove;
9. Realizar um passe com velocidade alta para
o companheiro número dez;
10. Realizar um passe com velocidade alta para
o companheiro número onze.
A Figura 4 representa os indivı́duos (jogadores) gerados e suas respectivas ações. Cada indivı́duo (jogador) possui um conjunto de ações de
1 a 10. Gera-se de 1 a 10 indivı́duos para cada
geração.
de uma partida comum de futebol no ambiente simulado costuma ser de dez minutos, dividido em
dois tempos de cinco minutos cada. A cada geração são criados dez indivı́duos (jogadores), sendo
necessário dez minutos para avaliar o time. Para
acelerar o processo de avaliação foi necessário configurar o servidor, alterando-se a variável que controla o sincronismo. Foi alterado do modo sı́ncrono para o modo não sı́ncrono, acelerando-se
assim o tempo de uma partida. Desse modo, o
tempo decorrido passa a ser aproximadamente de
dois minutos e meio, reduzindo-se então o processo
de avaliação de cada geração.
Figura 4: Representação dos jogadores.
Os quatro primeiros jogadores exercerão a
função de zagueiros, os três jogadores intermediários exercerão a função de meio-campo e os últimos três jogadores exercerão a função de atacantes.
6
Desenvolvimento do Sistema
Propõe-se aqui um método evolucionário para obter a estratégia para os jogadores e que seja eficiente para o propósito de se jogar futebol. O foco é
tentar encontrar o melhor conjunto de ações para
os dez jogadores. Cada jogador possui seu próprio conjunto de ações que serão utilizados quando
estiver de posse da bola. Toda estratégia está armazenada dentro de um vetor de números inteiros.
Ressalta-se que o foco não é otimizar um jogador
unicamente e sim o time como um todo.
O algoritmo genético foi aplicado somente
nos dez jogadores, sendo que o goleiro foi excluı́do. Considerando o total de ações por jogador, utilizaram-se então os dez vetores de inteiros
para representar o time. Cada vetor possui dez
possı́veis ações de um jogador e cada posição do
vetor pode assumir valores no intervalo de [1,10],
de acordo com as dez possı́veis ações descrita na
Seção 5. Cada ação é realizada na sequência correspondente ao do vetor de inteiros, no momento
em que o jogador estiver de posse da bola .
No processo de avaliação, cada vetor de inteiros na população joga apenas uma vez. A avaliação é baseada no resultado do jogo, realizado contra o time base UvA Trilearn. O tempo decorrido
Figura 5: Fluxograma do algoritmo genético.
A Figura 5 apresenta o fluxograma do algoritmo genético proposto. Primeiramente, é gerado
apenas um time de dez indivı́duos aleatoriamente.
Então, esse time gerado é colocado para disputar
uma partida de futebol. Após o término da partida, o referido time é avaliado de acordo com o
placar resultante. Dependendo do resultado cada
indivı́duo, ao ser avaliado, obterá um valor diferente de fitness, correspondente a sua respectiva
função de atuação em campo.
O método de avaliação prioriza o valor de gols
prós em relação ao valor de gols contra. Quando
a partida é finalizada, dois valores são retornados
para a função de avaliação, isto é, a quantidade de
gols prós e a quantidade de gols contra. O função
de avaliação recebe o placar da partida e pontua
cada indivı́duo de acordo com sua posição tática.
Em seguida, realiza-se o cruzamento e a mutação
dos indivı́duos selecionados de acordo com suas
respectivas pontuações.
O algoritmo genético foi configurado com as
seguintes caracterı́sticas:
• Processo de avaliação utilizando recompensa
e punição;
• Cruzamento usando apenas um ponto em
60% dos indivı́duos;
• Mutação em apenas 1% dos indivı́duos;
• Método de seleção do tipo elitista.
Na operação de cruzamento é selecionado
60% da população pelo método do elitismo,
respeitando-se os indivı́duos com melhores valores da função de avaliação. Tal método elenca
os indivı́duos de acordo com o valor da função de
avaliação, do maior valor para o menor valor desta
função, mantendo-se os indivı́duos mais aptos na
população.
Depois de se selecionar 60% do indivı́duos,
escolhe-se aleatoriamente um ponto de secção para
realizar a operação de cruzamento, em que serão
trocados as duas metades dos dois vetores selecionados anteriormente. Dois indivı́duos (pais) geram, a partir do método de cruzamento, dois novos indivı́duos (filhos).
Para a operação de mutação, um indivı́duo é
escolhido aleatoriamente. Em seguida, escolhe-se
um ponto dentro do seu vetor de inteiros para realizar a mutação, obedecendo-se os seguintes critérios:
• Se o indivı́duo for um zagueiro, priorizar então as ações 1, 2, 3, 4, 5, 6 e 7;
• Se o indivı́duo for do tipo meio campo, priorizar então as ações 4, 5, 6, 7, 8, 9 e 10;
• Se o indivı́duo for um atacante, priorizar então as ações 4, 5, 6 e 7.
O sistema desenvolvido funciona de acordo
com a Figura 6. Primeiramente, geram-se de
maneira aleatória dez indivı́duos (jogadores), os
quais são escritos dentro de um arquivo texto (indiv.txt). O módulo Time lê os indivı́duos desse
arquivo e os colocam para disputar uma partida
no simulador de futebol.
Logo após o término da partida, o simulador
retorna o placar do jogo, sendo que o mesmo é
escrito pelo módulo Time no arquivo texto (placar.txt). Em seguida, o módulo Algoritmo Genético lê o placar desse arquivo e inicia os operadores
genéticos que irão avaliar, cruzar e mutar os indivı́duos. Depois, os indivı́duos são escritos dentro
do arquivo texto (indiv.txt), em que o processo se
reinicia até que o número de gerações seja igual
ao valor definido.
7
Figura 6: Fluxo de dados dentro do sistema desenvolvido.
de 2000 gerações, visando-se avaliar o desempenho do algoritmo genético. A partir da Tabela 1 é
possı́vel notar a evolução do time em relação aos
gols prós e gols contra de acordo com as gerações.
O número de gols prós aumenta conforme o número de gerações e o número de gols contra tende
a cair. Os valores de gols prós e gols contra se
estabilizam após a duo-milésima geração.
Tabela 1: Média de gols prós e gols.
Gerações
Gols Pró
Gols Contra
50
1,2
2,3
100
1,9
1,8
500
2,9
2,6
1000
3,4
2,2
2000
4,1
2,8
A Figura 7 mostra a média de gols prós e gols
contra em relação a cada geração. Foi analisado o
desempenho dos dez indivı́duos (jogadores) como
um todo, após terem sido selecionados como a próxima geração. Percebe-se que houve um incremento do desempenho de acordo com o aumento
do número de gerações, fato este ocasionado pelo
objetivo traçado, no qual consiste em priorizar o
maior número de gols prós.
Resultados de Simulação
Os parâmetros do algoritmo genético foram ajustados conforme a Seção 6. Foram gerados dez indivı́duos (jogadores) de modo aleatório e colocados
para disputar uma partida. Estipulou-se um total
Figura 7: Resultado da simulação.
Nota-se ainda pela Figura 7 aquele resultado
já esperado, ou seja, o aumento da quantidade de
gols prós em detrimento da quantidade de gols
contra. O algoritmo genético foi ajustado de maneira a priorizar determinadas ações em relação à
cada tipo de indivı́duo (jogador), como visto na
Seção 6.
8
Conclusão
Apresentou-se nesse trabalho um modelo capaz de
definir as ações para os respectivos jogadores de
uma partida de futebol de robôs, levando-se em
consideração a função tática em jogo. Para tanto,
utilizou-se um algoritmo genético para determinar
e avaliar o time como um todo em relação aos gols
prós e os gols contra. Em suma, este trabalho possui extrema valia no que tange à especificação de
uma nova estratégia de jogo para times de futebol
de robôs, possibilitando ainda que versões futuras
sejam aprimoradas a partir de novas pesquisas.
Agradecimentos
Os autores gostariam de agradecer à FAPESP
(Fundação de Amparo à Pesquisa do Estado de
São Paulo) e à CAPES (Coordenação de Aperfeiçoamento de Pessoal de Nı́vel Superior) pelos
auxı́lios financeiros propiciados.
Referências
Chen, M., Foroughi, E., Heintz, F., Huang,
Z., Kapetanakis, S., Kostiadis, K., Kummeneje, J., Noda, I., Obst, O., Riley, P.,
Steffens, T., Wang, Y. and Yin, X. (2002).
RoboCup Soccer Server.
Disponı́vel em
http://sourceforge.net/projects/sserver.
de Boer, R. and Kok, J. (2002). The incremental
development of a synthetic multi-agent system: The uva trilearn 2001 robotic soccer simulation team, Master’s thesis, University of
Amsterdam.
Goldberg, D. E. (1989). Genetic Algorithms in Search, Optimization, and Machine Learning,
Addison-Wesley.
Holland, J. H. (1975). Adaptation in Natural and
Artificial Systems, 1 edn, The University of
Michigan Press.
Kitano, H., Asada, M., Kuniyoshi, Y., Noda, I.
and Osawa, E. (1995). Robocup: The robot
world cup initiative, IJCAI-95 Workshop on
Entertainment and AI/Alife.
Kitano, H., Asada, M., Kuniyoshi, Y., Noda, I.
and Osawa, E. (1998). Robocup: A challenge problem for ai and robotics, RoboCup97: Robot Soccer World Cup I.
Nakashima, T., Takatani, M., Ishibuchi, H. and
Nii, M. (2006). The effect os using match
history on the evolutionary of robocup soccer
team strategies, Symposium on Computational Intelligence and Games.
Nakashima, T., Takatani, M., Udo, M. and Ishibuchi, H. (2004). An evolutionary apparoach
for strategy learning in robocup soccer, International Conference on Systems, Man and
Cybernetics.
Reis, L. P. (2003). Coordenação em Sistemas
Multi-Agente: Aplicações na Gestão Universitária e Futebol Robótico, PhD thesis, Faculdade de Engenharia da Univeridade do Porto.
Rezende, S. O. (2003). Sistemas Inteligentes: Fundamentos e Aplicações, Manole.
Ross, T. J. (2004). Fuzzy Logic with Engineering
Applications, John Wiley.
Weiss, G. (1999). Multiagent Systems: A Modern Approach to Distributed Artificial Intelligence, The University of Michigan Press.
SISTEMA ESPECIALISTA FUZZY PARA POSICIONAMENTO DOS JOGADORES APLICADO AO
FUTEBOL DE ROBÔS
JOSÉ R. F. NERI, CARLOS H. F. SANTOS
Grupo de Pesquisas em Robótica(GPR), Centro de Engenharias e Ciências Exatas(CECE), Universidade Estadual do Oeste do Paraná(UNIOESTE) – Campus Foz do Iguaçu
AV. Tancredo Neves, 6731 – CEP 85856-970 – Foz do Iguaçu – PR - Brasil
E-mails: [email protected], [email protected]
JOÃO A. FABRO
Departamento de Informática(DAINF), Universidade Tecnológica Federal do Paraná(UTFPR)
Av. Sete de Setembro, 3165 - CEP 80230-901 - Curitiba - PR - Brasil
E-mail: [email protected]
Abstract¾ This paper presents a proposal of a fuzzy expert system that controls the player positioning in a simulated robot soccer game. The proposed system is based on the Mecateam framework, and on the Expert-Coop++ expert system library. The
proposed system modify the Expert-Coop library using the XFuzzy 3.0 to implement the fuzzy rule-based system. The proposed
system is tested against several other simulated teams from the Robocup finals. Fuzzy expert systems that control the players positioning(including the goalkepper) are implemented, and present a better performance than the non-fuzzy expert system.
Keywords¾ Robot Soccer, Fuzzy Expert Systems, Robocup
Resumo¾ Este artigo apresenta uma proposta de utilização de sistemas especialistas fuzzy para o controle do posicionamento
dos jogadores da categoria "simulação" de um time de futebol de robôs da Robocup. É utilizado o framework Mecateam, e a biblioteca Expert-Coop++, que implementa um Sistema Especialista, é alterada com o apoio da Biblioteca XFuzzy 3.0, para dar
suporte à regras fuzzy de comportamento dos jogadores. São implementadas regras fuzzy de posicionamento do goleiro e dos jogadores, e o desempenho é comparado com outros times que participaram da final nacional da Robocup Brasil, obtendo desempenho superior ao sistema especialista clássico.
Palavras-chave¾ Futebol de Robôs, Sistemas Especialistas Fuzzy, Robocup
1
Introdução
Durante a última década do século XX, a Robocup
(Robot Soccer World Cup) foi uma das organizações
científicas que estabeleceram a promoção e desenvolvimento das pesquisas em Inteligência Artificial
aplicada a robôs móveis inteligentes. No sentido de
realizar estes objetivos, esta organização escolheu o
jogo de futebol como sua aplicação principal. Neste
sentido, várias competições mundiais de futebol de
robôs foram promovidas, onde os times participantes
desenvolveram diversas tecnologias, tais como: controle inteligente, processamento de imagens, colaboração multi-agente, raciocínio e mobilidade em tempo real, aquisição e implementação de estratégias de
jogo, etc (Bishop, 1996).
O objetivo deste avanço tecnológico promovido
pela Robocup é desenvolver até 2050 um time de
robôs humanóides totalmente autônomos que consigam ganhar do atual campeão mundial de futebol
humano. A Robocup é subdividida em várias categorias sendo o robocup soccer a mais importante, abordando o problema do futebol de robôs sendo subdividida em ligas: simulação, robôs pequenos, robôs
médios, robôs com 4 patas, robôs humanóides.
A liga de simulação da Robocup soccer é dividida em duas sub-ligas: 2D e 3D. A categoria simulação funciona simulando uma partida de futebol entre
dois times de onze robôs cada. A arquitetura da categoria de simulação consiste de dois programas, o
soccerserver e o soccermonitor disponibilizados gratuitamente pela comunidade de pesquisa Robocup.
O soccerserver (Figura 1) é um sistema que possibilita agentes autônomos disputarem uma partida de
futebol com outro time. Essa partida é processada no
modo cliente/servidor, sendo que o soccerserver fornece um campo virtual e simula todos os movimentos
dentro dele. Cada cliente (agente) controla as ações
de um jogador simulado, e a comunicação entre o
agente e o servidor é via socket UDP/IP por isso pode-se utilizar qualquer linguagem de programação
que tenha suporte a UDP/IP.
Figura 1. Soccer server.
O soccermonitor (Figura 2) é um programa que
visualiza o campo virtual gerado pelo soccerserver
com dimensões de 105X68 m, em uma janela gráfica.
É uma ferramenta que permite às pessoas visualizarem o que está acontecendo com o soccerserver durante o jogo, ele recebe informações do soccerserver
e as apresenta de modo gráfico.
ta seção, apresenta-se o algoritmo de controle dos
jogadores, destacando-se a coordenação dos jogadores em relação à posição da bola, por exemplo. Na
sexta seção são apresentados os testes dos controladores fuzzy e na sétima e última seção, apresentam-se
as conclusões e algumas idéias que podem servir
como direções para pesquisas futuras.
2
Figura 2. Soccer monitor.
Geralmente, um robô de futebol consiste de uma
parte mecânica, composta por duas rodas, dois motores DC, um microcontrolador, um módulo de comunicação e uma fonte de alimentação. Trata-se de um
relevante exemplo de sistema mecatrônico. O comportamento e eficiência deste robô (agente) dependem de sua construção mecânica, algoritmo de controle e desempenho do sistema de visão.
Este trabalho explora a aplicação de um algoritmo que concilia o controle de um único agente e a
interação deste com os demais agentes do time e os
seus adversários.
Num time de futebol de robôs as principais características individuais são que cada jogador deve
identificar objetos pertencentes ao ambiente como a
bola, e os robôs que compõem o seu time e o time
adversário. Cada jogador deve ser capaz de representar o ambiente, escolher objetivos, planejar e executar ações para atingir as metas do time, como marcar
gols ou posicionar-se na defesa.
Dentre as principais características coletivas destacam-se as de realizar passes, interagir com jogadores do mesmo time para estabelecer ações coletivas
(jogadas ensaiadas), e sincronizar as ações objetivando fazer gols e impedir que o time adversário os faça.
Observa-se que a tarefa de controlar vários agentes não é uma missão fácil, pois deve ser feita de
forma cooperativa, coordenada, e de maneira comunicativa com outros agentes. Neste sentido, propõe-se
uma estratégia cooperativa entre diversos agentes.
Esta estratégia utiliza um algoritmo baseado em lógica nebulosa (fuzzy), a qual é capaz de manipular dados que representam a incerteza das informações
manipuladas, aqui denominado de Sistema Especialista Fuzzy.
Este documento está dividido em sete seções. Na
primeira seção, foi introduzido e contextualizado o
problema e a justificativa de aplicação da proposta.
Na segunda seção, comenta-se sobre o ambiente que
os agentes irão interagir aonde será implementada a
estratégia de controle. Na terceira seção, descreve os
principais conceitos sobre sistemas especialistas
fuzzy e lógica fuzzy. Na quarta seção, é apresentado
a estrutura do controlador fuzzy do goleiro. Na quin-
Framework Mecateam
O framework Mecateam utiliza o código do time de
futebol de robôs Uva Trilearn, da Holanda, para as
camadas mais básicas de programação, e a biblioteca
Expert Coop++ para as camadas onde é implementada a inteligência artificial.
O UvA Trilearn (Kok et al., 2003) é um time de
futebol de robôs simulado da Universidade de Amsterdã, a equipe que desenvolveu os algoritmos de
controle deste time disponibilizou seu código fonte
na internet. Entretanto, somente a parte básica dos
algoritmos foi disponibilizada (chutar a bola para o
gol quando estiver de posse da bola, e posicionar-se
de forma adequada no campo quando estiver sem a
posse da bola). O restante dos algoritmos (a parte
inteligente dos jogadores) foi retirado.
O framework Mecateam disponibilizado e desenvolvido pela UFBA é utilizado como base na elaboração deste projeto.
2.1 Expert-Coop++
A Expert-Coop++ é uma biblioteca orientada a objetos destinada a auxiliar o desenvolvimento de sistemas multiagentes sob restrição de tempo real do tipo
melhor esforço (COSTA et al., 2003). Esta biblioteca
foi implementada em C++ oferecendo suporte a Sistemas Baseados em Conhecimento (SBC). A mesma
utiliza uma arquitetura de três camadas, sendo que
cada uma delas representa um nível decisório distinto
(os níveis são Reativo, Instintivo e Cognitivo).
O nível Reativo é o mais baixo na arquitetura,
encarregado pela interação com o ambiente e pela
resposta em tempo real do agente.
O nível Instintivo consiste de um sistema especialista de um único ciclo de inferência que escolhe a
cada mudança de estado do jogo o comportamento
reativo mais adequado para meta local em vigor.
O nível superior da arquitetura do agente é denominado Cognitivo. O principal papel do nível cognitivo é construir um modelo lógico do ambiente a
partir das informações simbólicas provenientes do
Instintivo, escolhendo planos e avaliando a validade
do plano corrente (JUNIOR, 2007).
3
Sistemas Especialistas Fuzzy
Sistemas especialistas são programas de computador
que usam conhecimento obtido a partir de perícia de
especialista e procedimentos de inferências para auxiliar na tomada de decisão de problemas que requerem
especialidade humana para resolvê-los.
O motor de inferência é o principal componente
do sistema especialista. Seu funcionamento consiste
na realização de inferências a partir de uma base de
regras e uma base de fatos (JUNIOR, 2007).
- A base de fatos é responsável por armazenar o
estado do ambiente e é atualizada a partir de informações do ambiente e das regras.
- A base de regras é responsável pelo armazenamento do conhecimento do especialista.
A lógica fuzzy foi criada visando representar conhecimento incerto e impreciso. Esta lógica fornece
uma maneira aproximada de descrever sistemas bastante complexos, mal definidos, ou de difícil análise
matemática.
Um processo denominado “fuzzificação” gera
entradas fuzzy a partir de dados incertos e imprecisos. Estas informações podem ser então utilizadas
pelo motor de inferência fuzzy, para obter os resultados do processamento das regras. O processo inverso
é chamado de defuzzificação que cria valores reais,
também chamados de crisp, para serem aplicados na
máquina sob controle (máquina ou processo que se
deseja controlar).
4
Figura 3. Gráficos de pertinência.
Um controlador baseado em lógica fuzzy, no entanto, não se preocupa com modelos matemáticos
complexos, baseando o seu controle em regras de
decisão do tipo:
Se x é X, então y é Y.
Abaixo nas tabelas I e II estão definidas a base
de regras para os controladores nos eixos X e Y.
Controlador Nebuloso para o goleiro
Na implementação do sistema especialista fuzzy a
seguir foi proposta a idéia de um algoritmo de controle de posicionamento para o goleiro, de tal forma
que o mesmo se posicione de acordo com a posição
da bola. Esse controlador é ativado quando a bola se
encontra numa certa posição que seria próxima ao
gol. O objetivo desse controlador fuzzy é o posicionamento do goleiro em relação à bola, ele deve se
posicionar na melhor posição para poder recepcionar
a mesma, com o objetivo de fechar o gol e deixar o
atacante com um ângulo ruim para chutar para o gol e
uma vez chutada a bola ao gol, o goleiro já deve estar
na posição mais provável para recepcioná-la.
Foi utilizada a ferramenta Xfuzzy, em sua versão 3.0 na elaboração desse sistema especialista
fuzzy. Este programa possibilita a criação das máquinas de inferências de forma intuitiva e prática e,
uma vez montadas, pode-se gerar o código em C,
C++ ou Java.
O processamento de inferência utilizado foi o de
Mamdani, que é chamada de inferência Máx-Min.
Ela utiliza as operações de união e de interseção entre os conjuntos da mesma forma que Zadeh, por
meio dos operadores de máximo e de mínimo, respectivamente. Um controlador clássico estabelece
um modelo matemático entre as variáveis pertencentes ao sistema e tenta aplicar esse modelo ao sistema
físico.
Para o processo de defuzzificação utilizou-se o
de centro de áreas, na escolha das funções de pertinência optou pela trapezoidal mostrado na figura 3.
Este formato foi escolhido, pois permite que vários
valores possam ser identificados como pertinência
total (grau de pertinência 1) e pela possibilidade de
serem implementadas com código mais simples e
eficiente.
Tabela 1. Regras para o controlador do eixo X
Tabela 2. Regras para o controlador do eixo Y.
Nos primeiros testes do posicionamento do goleiro, este trabalhou perfeitamente tampando os ângulos do gol de acordo com o posicionamento da bola.
O maior problema observado no goleiro antigo era no
posicionamento dele no eixo X, pois diversas vezes
ele ficava adiantado demais para agarrar a bola e
acabava por tomar gols pelas costas.
Um erro encontrado no controlador do goleiro
foi que quando o atacante do time adversário atacava
pelas laterais o goleiro recuava para o centro do gol
deixando a lateral do gol livre abrindo o ângulo para
o atacante chutar. Esse problema foi sanado mudando
as variáveis de saída do goleiro na posição Y fazendo
com que o goleiro recuasse menos nas laterais.
5
Controlador Nebuloso para posicionamento
estratégico
Foi desenvolvido um sistema especialista fuzzy para
controlar o posicionamento dos jogadores. Este sistema foi baseado no comportamento GostrategicPosition que já existia. Esse controlador parte da idéia
que os jogadores devem se posicionar de acordo com
a posição da bola. Esse controlador é ativado quando
o jogador não possui a bola e quando ele não é o
mais próximo da mesma. Esse controlador faz com
que os jogadores se posicionem mais perto ou mais
longe da bola, dependendo da posição da bola em
seus respectivos eixos X e Y.
Abaixo nas tabelas III e IV estão definidas a base de regras para os controladores nos eixos X e Y.
Tabela 5. Tabela demonstrativa do comportamento
GoStrategicPosition.
Tabela 3. Regras para o controlador do eixo X.
Tabela 4. Regras para o controlador do eixo Y.
Foi feita uma mudança tática no posicionamento
dos jogadores. O time continua com o posicionamento 4 3 3 (4 jogadores na defesa, 3 no meio de campo
e 3 no ataque), mas foi mudado a posição de cada
jogador para poder auxiliar o controlador de posicionamento. Essas mudanças foram feitas no arquivo
Formations que é lido ao iniciar o time, essas mudanças são feitas na posição inicial dos jogadores e influenciam diretamente o comportamento GoStrategicPosition.
Esse comportamento é baseado na posição da
bola, ele retorna a posição estratégica para um jogador. Essa posição estratégica calcula essa informação,
tomando como base a posição inicial do jogador somada com a posição da bola que é multiplicada pelo
seu atrativo nos eixo X ou Y, esse atrativo é definido
no arquivo Formation.
Quando a coordenada da posição inicial X é 10,
a posição da bola é 20 e a coordenada X de atração é
de 0,25. A coordenada X da posição estratégica ficará 10,0 + 0,25 * 20,0 = 15,0. Quando este valor é
menor ou maior do que as coordenadas do campo
essa coordenada é alterada para os valores mínimo ou
máximo do campo respectivamente. Além disso,
quando a coordenada da bola estiver definida com
um valor a frente da coordenada X da posição estratégica o posicionamento estratégico é definido igual à
coordenada da bola.
Com o controlador fuzzy foi acrescentado o valor StrategicX e StrategicY que é somada a posição
estratégica. A tabela V abaixo mostra como ficaria a
posição na coordenada X de um zagueiro no campo
com e sem o controlador fuzzy. Quando a posição da
bola está em 0 significa que ela está no meio de campo e quando ela estiver em -45 significa que está nas
proximidades do gol.
Observa-se que o zagueiro com controlador recua de forma mais alinhada quando está na defesa se
aproximando da bola gradativamente, isso faz com
que de tempo da defesa se alinhar forçando impedimento do adversário se houver passes no ataque, é
possível definir com precisão o momento em que o
zagueiro intercepta a bola, isso acontece quando a
saída do controlador se iguala com a posição da bola.
Graças a esse controlador a defesa se posiciona
de forma alinhada fazendo com que ocorram mais
impedimentos do time adversário, e evitando cruzamentos próximos a área de defesa. Quando a bola
está no meio de campo os jogadores se posicionam
mais rápido na defesa e quando a bola está na defesa
eles tomam uma posição mais fixa esperando o atacante se aproximar pra roubar a bola.
6 Testes dos Controladores
Nos testes dos controladores fuzzy foram simuladas
dez partidas contra alguns times, o framework Mecateam que serviu de base para a criação do GPR-2D
(este é o time que está sendo desenvolvido neste projeto): contra o atual campeão brasileiro, e campeão
em 2007, o PET_Soccer da UFES (Universidade
Federal do Espírito Santo); contra o time Bahia_2D
da UFBA (Universidade Federal da Bahia), terceiro
colocado em 2007 e vice-campeão em 2008; e contra
o time Gargalos, vice campeão 2007 da UFES (Universidade Federal do Espírito Santo). Todos os códigos dos times testados são de 2007 e funcionam somente na versão 11 do simulador soccerserver. Cada
tempo de jogo tem 3000 ciclos, equivalente a 5 minutos de jogo, totalizando 10 minutos por partida. Os
resultados podem ser vistos nas tabelas abaixo.
Tabela 6. Resultados contra o time Pet_Soccer.
Tabela 7. Resultados contra o time Gargalos.
Tabela 8. Resultados contra o time Bahia_2D.
Tabela 9. Resultados contra o framework Mecateam.
7 Conclusão
Este artigo apresenta uma proposta de utilização de
sistemas especialistas fuzzy para o controle do posicionamento dos jogadores da categoria "simulação"
de um time de futebol de robôs da Robocup. Foram
desenvolvidos controladores para o posicionamento
do goleiro e dos jogadores da “linha”, procurando
obter um melhor desempenho que o time base no
qual este projeto se baseou (framework Mecateam). A
melhora observada no desempenho se deve à possibilidade dos sistemas fuzzy de melhor tratarem as decisões de posicionamento, mesmo através de regras
simples.
O desempenho apresentado pelo time GPR-2D
ainda está aquém do esperado para poder competir
em condições de igualdade com outros times bem
posicionados na Robocup 2007, porém apresentou
um mecanismo simplificado de criação de novas regras. Este mecanismo de criação de regras está sendo
utilizado, atualmente, para a definição de regras de
passe entre jogadores, e tomada de decisão e direcionamento para os chutes a gol.
Os próximos passos no desenvolvimento dos
controladores também envolvem o estudo do desempenho computacional das regras implementadas pelo
sistema XFuzzy 3.0, visando sua avaliação e possível
substituição por uma abordagem mais avançada, baseada no mecanismo de notificação (SIMÃO et al.,
2003).
Agradecimentos
Este projeto é financiado pelo Programa de Ciência e
Tecnologia - PTI C&T da Fundação Parque Tecnológico Itaipu – FPTI-BR
Contra o time do Petsoccer_2D o GPR-2D teve
uma melhoria significativa na defesa de 77 gols sofridos passou a 23, com uma melhoria de 230% em
evitar gols. Isso ocorreu devido ao Petsoccer_2D ser
um time que efetua muitos passes, e esses passes foram interceptados graça ao controlador Strategic.
O Gargalos é um time com um ataque mais ofensivo, que não costuma tocar a bola dentro da grande
área, avançando com a bola até chegar próximo ao
gol para chutá-la, foi posto um zagueiro mais adiantado no meio de campo, para tentar evitar que os atacantes chegassem muito próximo ao gol, esse posicionamento mostrou-se eficiente contra o gargalos e
contra os outros times testados, o GPR-2D não teve
melhoria em sua defesa contra o Gargalos e seu ataque piorou. Um goleiro mais adiantado se mostrou
mais eficientes contra esse time.
Contra o time Bahia_2D o GPR-2D teve uma
melhoria de 50% em sua defesa, mostrando que os
controladores foram eficientes contra este time.
Contra o framework Mecateam o resultado total
foi de 21x8 para o time GPR-2D, essa melhoria ocorreu por causa da mudança tática de posicionamento e
a mudança das regras do framework fazendo com que
o time chegasse mais vezes ao ataque aumentando as
chances de fazer gols.
Referências Bibliográficas
Bishop, M.C. (1996). Neural Networks for Pattern
Recognition, 2ed., Oxford University Press Inc.
Chen, M. et al. (2003). Robocup Soccer Server for
Soccer Server Version 7.07 and later,
http://sserver.sourceforge.net. Última visita,
Abril de 2009.
Júnior, Orivaldo V. S. (2007). Mecateam Framework
uma infra-estrutura para desenvolvimento de
agentes de futebol de robôs simulado, UFBA,
Salvador - BA.
Costa, A. L. d. et al.(2003). Expert-coop++:Ambiente
para desenvolvimento de sistemas multiagente.
IV ENIA Encontro Nacional de Inteligência
Artificial, p. 597–606, 2 a 8 de agosto 2003.
XXIII Congresso da Sociedade Brasileira de
Computação, Campinas, SP.
Bilobrovec, Marcelo (2005), Sistema especialista em
lógica fuzzy para o controle, gerenciamento e
manutenção da qualidade em processo de
aeração de grãos, UTFPR, Ponta Grossa-PR.
Kitano, H. et al. (1997), “The robocup synthetic
agent challenge, 97”. International Joint
Conference on Artificial Intelligence (IJCAI97 ),
Nagoya, Japan.
Garcia, J. M. (2007). Controladores fuzzy para o
posicionamento do goleiro em relação ao
atacante no futebol de robôs simulado 2D,
UFBA, Salvador - BA.
Simão, J. M. ; Fabro, J. A. ; Ishimatsu, S. ; Stadzisz,
P. C.; Arruda, L. V. R. (2003). An Agent Oriented Fuzzy Inference Engine. In: VI Simpósio
Brasileiro de Automação Inteligente SBAI, Bauru/SP. p. 585-590.
Kok, J. R., Vlassis, N., and Groen, F. (2003). Team
description uva trilearn 2003. InRoboCup 2003
Symposium.
ENHANCING EXPLORATION IN RESCUE ENVIRONMENTS THROUGH A
NEUROFUZZY SYSTEM
Alexandre da Silva Simões∗ Gustavo Imbrizi Prado∗ Esther Luna Colombini† Antonio
Cesar Germano Martins∗
∗
Automation and Integrated Systems Group (GASI)
São Paulo State University (UNESP)
Av. Três de Março, 511
Alto da Boa Vista
Sorocaba, SP, Brasil
†
Technological Institute of Aeronautics (ITA)
Praça Marechal Eduardo Gomes, 50
Vila das Acácias
São José dos Campos, SP, Brasil
Email: [email protected], [email protected], [email protected],
[email protected]
Abstract— The behavior-based approach has become one of the most popular techniques in mobile robot
control scenario for real world applications. The quick response time and the possibility of the emerging of
complex behaviors are some of its most attractive characteristics. However, the emerging of robot behaviors that
are able to perform rescue tasks should properly combine some characteristics: sensor fusion, caution to avoid
robot damage, avoid obstacles of unknown size, approach possible targets for deeper inspection, as well as embed
some learning capabilities. This paper presents a neurofuzzy control system capable of acting as a supervisory to
a behavior-based layer. Results show that this approach is able to enhance autonomous mobile robots exploration
capabilities. The algorithm was tested under the USARSIM environment, adopted in RoboCup Virtual Robots
competition.
Keywords—
1
autonomous mobile robots, neurofuzzy systems, reactive paradigm
Introduction
The Reactive Paradigm introduced by the subsumption architecture has become the predominant robot control scenario for on-line applications in the last decades. Some of its most attractive characteristics are: i) the quick response time
and ii) the possibility of the emerging of complex
behaviors based on simple sense-act directives.
However, the expected robot abilities to perform real world tasks are considerably complex.
Considering a rescue environment, for example,
a robot should properly combine abilities like:
sensor fusion, look for uncleared areas, path following, collision avoidance, obstacles avoidance,
approach target capabilities, victims inspection,
learning, etc.. Specially in rescue environments,
a suitable combination of these abilities cad lead
to a good exploration policy. However, a robust
control architecture able to combine all these features remains opened and continue to challenge
researchers.
In the original approach of the reactive paradigm, a set of simple sense-act modules worked
asynchronously and the high-level layers were allowed to suppress lower layers outputs. The pure
reactive paradigm sooner started to be mixed with
other approaches, generating hybrid architectures.
For an overview of some hybrid behaviour-based
architectures see (Bonasso et al., 1997). The Po-
tential Fields technique, for example, has become
an important approach in the mobile robot navigation and some of its recent approaches demonstrate new capabilities in tactical behaviors (Meyer
et al., 2003), motion planning and action evaluation (Laue and Rfer, 2005).
Due to the vague nature of some concepts
related to the mobile robot tasks, fuzzy-based
controllers has also being extensively employed
in behavior-based control schemas. Some of the
recent approaches propose: i) each behavior as
a single fuzzy controller (Thongchai and Kawamura, 2000); ii) a fuzzy supervision layer that
decides which behaviors to activate rather than
processing all behaviors and then blending the appropriate ones (Fatmi et al., 2005); iii) use fuzzy
techniques in path-following behaviors (Antonelli
et al., 2007). However, in general lines, fuzzybased approaches have not seen to be the most
suitable to high-dimensional scenarios, like rescue
tasks. This occurs because the fuzzy controller
complexity tends to grow with the increasing of
the number of input dimensions. In other words,
as the system input dimension grows: i) it become
more difficult to explain in clear rules the desired
robot actions; ii) a higher number of rules and
operations are necessary in the controller.
Artificial Neural Networks (NNs) have also
played an important role in this scenario, since
it looks to fill important lacks of fuzzy systems.
First of all, NNs are well-known powerful classifiers, able to learn any function from examples. Additionally, they have the natural ability to reduce
input dimensions. In this way, neurofuzzy systems have also being extensively applied in mobile robots. Again the approaches diverge about
the best way to apply the neurofuzzy. Some representative approaches propose: i) each behavior is
a neurofuzzy sub-system, and a switching coordination technique selects a suitable behavior from
the set of possible higher level behaviors (Rusu
et al., 2003). In each behavior, the NN is used
in order to identify consequent parameters of the
fuzzy inference system; ii) a NN is constructed
with the fuzzy logic algorithm to implement a specific behavior (Wang and Yang, 2003); and iii)
a NN receives information of robot angle according to a target, and an array of ultrasonic sensors
data. The output from the neural network establishes the direction for robot navigation. Based
upon a reference motion direction and distances
between the robot and obstacles, different types
of behavior are fused by fuzzy logic to control the
velocities of the two rear wheels of the robot (Li
et al., 1997). In general lines, the more complex
the controller, the more difficult to control the robot in real-time tasks.
In our understanding, the idea to establish the
neurofuzzy system as a supervisor of the behaviorbased architecture must be deeper explored. Aiming the combination of the advantages of the
approaches discussed here, this paper proposes to
combine the dimension-reduction and the learning
capabilities of the artificial neural networks with
the high level fuzzy control in order to dynamically
assign weights to behaviors, producing an output
that is a merge of all behaviors. The paper is
organized as follows: section 2 describes the rescue environment. Section 3 describes the proposed approach. Section 4 details adopted materials
and methods. Section 5 presents results focusing
on the rescue exploration capabilities of a mobile
robot. Finally, section 6 concludes with an assessment of the results and proposes directions for
further investigation.
2
The Robocup rescue environment
Disaster management is one of the most serious social issues and remain as a very important robotics
research platforms in nowadays. This task involves a very large number of heterogeneous agents
in a hostile and usually unknown environment. In
order to propose a standard research platform for
this task, RoboCup Federation developed the Virtual Robots, shown in figure 1a. This environment
is based on the high fidelity simulator USARSim,
which runs over the Unreal Torunament game engine. A large number of robots (like the P2DX
robot shown in figures 1b and 1c) and sensors (so-
nar, laser, gps, wireless, odometer, bumper, etc.)
– that are validated models of real sensors – are
available. Based on this simulator, a framework
with sensors and map viewer – shown in figure 1d
– was developed. This framework allows to extract instantaneously the readings of the robots
sensors, specially sonar and laser rangescanner, as
shown in figure 1e and 1f. This environment was
adopted in present work.
(a)
(b)
(d)
(c)
(e)
(f)
Figura 1: Robot simulation environment: a) RoboCup rescue virtual robots outdoor environment;
b) Real Pioneer P2DX robot; c) Virtual Pioneer
P2DX robot; d) Developed framework overview
with robot sensors and map viewers; e) Superior
view of a robot positioned in a aisle; f) Readings
of the sonar (left) and laser rangefinder (right) of
the robot shown in (e). Readings are identified as
Front (F), Left (L), Right (R) and Back (B).
3
Proposed approach
The proposed system is divided into two modules
as shown in figure 2. The first is a behavior-based
module, that is able to process parallel sense-act
directives. Each one of these directives receive the
full sensorial information and is able to generate
its own desired velocity and angle response to the
robot. The second module is a neurofuzzy supervision module. It has as its main task to extract
patterns from sensorial data and system objectives
in order to properly assign weight to each behavior output. The combination of the behaviors
signals with the respective weights is sent to the
robot. Each one of these modules will be better
described bellow.
TARGET
ENVIRONMENT
R
1
TARGET APPROACH
W1
TARGET
8
SONAR
LASER
R
180
R
LOOK EMPTY SPACE
AVOID OBSTACLE
EMERGENCY SITUATION
W2
S
W3
V
q
W4
ENVIRONMENT
SUPERVISION MODULE
BEHAVIOR-BASED MODULE
values. Emergency. This behavior uses the laser
readings to estimate the obstacle angle relative to
the robot. The robot speed is set to 1rad/s and the
it moves backwards proportionally to the obstacle
distance. Finally, it rotates 45 degrees. Target
Approach. Once the target position is determined, this behavior simply computes the angle to
rotate from which the robot could go straight to
approach the victim. The speed is set 1rad/s for
caution purposes.
Figura 2: Proposed architecture overview.
T heta =
Neural network. Humans are able to easily identify the existence of obstacles in their surrounding area. However, in a robot rescue environment, it is a very difficult task due to some
reasons: i) robots usually carry multiple sensors
and their information must be properly fused; ii)
incoming data is usually high-dimentional; iii) it
is practically impossible to model all possible sensorial patterns in order to safely guide robots using
traditional rules. In our approach we adopted a
neural network due to two of its main characteristics: i) its well-known generalization power
that can be applied in order to recognize obstacles patterns and ii) its capability to reduce input
dimensions. The objective of the neural layer is
to extract features from environment, mapping a
Rn sensors input to a R1 variable, where n is the
number of input dimensions.
Fuzzy inference system. The fuzzy layer
have as its main objective to assign weights to the
behaviors based on two input variables: i) the NN
reading of the environment conditions; and ii) the
distance of a target (an identified victim or some
interest point in the map). The output of the FIS
is the weight of each behavior.
Behaviors. Each defined behavior receives
input from the sonar sensors and the laser sensor to establish which action should be performed.
The control signals used are: each wheel rotation
speed and θ, that defines how many degrees the
robot should turn. The values determined by each
behavior are combined to the output of the supervisory system in order to create the final control
signal. Look for empty space. This behavior
drives the robot to the clearest region found considering the sensor measurements. Only sonar data
are used in this behavior. Equation 1 determines
the desired θ. The speed is fixed in 3rad/s. Avoid
Obstacle. This behavior uses a secondary fuzzy
system to determine the speed and θ according to
its perspective. As inputs of the fuzzy, two values
are used: the estimated obstacle angle computed
by a similar equation as that used in the explorer behavior whereas the sonar data is subtracted
from its maximum range (5m) instead of used raw,
and the actual minimum sonar reading. The outputs are then combined to define the speed and θ
4
(F2 ∗ θ2 ) + (F3 ∗ θ3 ) + (F4 ∗ θ4 )
F2 + F3 + F4
(1)
Materials and methods
In our tests we adopted a Pioneer P2DX robot in
the RoboCup USARSim environment configured
with eight frontal 5m range sonars and one frontal 20m range 180o rangefinder laser scanner able
to perform one reading by degree. All robot dynamics are modeled based on real P2DX. Behaviors
presented in previous sections were implemented
in C++ as well as a NN algorithm. The adopted
NN was a multilayer perceptron trained with the
error backpropagation with 3 layers composed of
188 neurons (first layer), 30 neurons (hidden layer)
and one output neuron. All neurons used the tanh
activation function. In oder to train the network,
one arena was chosen (NIST yellow arena) and the
robot was positioned in a number of practical situations. In each situation a human operator generated a number in the universe [−1; 1] that describes the environment: -1 is a free environment, and
+1 is an environment with many obstacles ahead.
This process is exemplified in figure 3. Network
mapping examples (R188 → R1 ) were partitioned
into training and validation sets in order to define
stop criteria. After some changes in the size of
the training set, the network converged to a 10−2
backpropagation error with 57 training examples.
Cross validation was performed and the NN response to elements that were not in the training
set were correct. Network output was assigned to
a fuzzy inference system. The fuzzy system is based on the FFLL (Free Fuzzy Logic Library). It
contains optimized functions for applications that
require fast response. The membership functions
and high-level rules developed to the fuzzy inference system are shown in figure 4 and table 1.
Figura 3: Neural network training examples. In each scene the sensor viewers show the sonar (left) and
scanner laser (right) readings. The number above the scene was assigned by a human operator as NN
output.
m
few
1
some
many
R1.
0.8
IF TARGET IS FAR AND OBSTACLES IS FEW
THEN LOOK-FOR-CLEAR-AREAS
0.6
R2.
0.4
IF TARGET IS NEAR AND OBSTACLES IS FEW
THEN TARGET-APPROACH
0.2
R3.
-1
-0.8 -0.6 -0.4 -0.2
0
0.2 0.4 0.6 0.8
1 Input
(a)
m
THEN OBSTACLES-AVOID
R4.
IF TARGET IS NEAR AND OBSTACLES IS SOME
THEN TARGET-APPROACH
near
far
1
IF TARGET IS FAR AND OBSTACLES IS SOME
R5.
0.8
IF TARGET IS FAR AND OBSTACLES IS MANY
THEN EMERGENCY
R6.
0.6
0.4
IF TARGET IS NEAR AND OBSTACLES IS MANY
THEN EMERGENCY
0.2
0
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
1 Input
(b)
Out
1
look_clear_area
Tabela 1: Fuzzy rules set.
obstace_avoid
0.8
0.6
target_approach
0.4
emergency
0.2
0
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
1
m
(c)
Figura 4: Membership functions: a) Environment
classification according to the presence of obstacles (Neural Network layer output); b) Distance
to a target; c) Output (behaviors weight).
Exmperiments. Two sets of experiments
were carried out in order to validate the system.
The first set of experiments consider no definition of a target (i.e. victim). For this set
of experiments, three different maps were used
(two of them never used for NN training). These
maps consider multiple environment configurations: halls, rooms with doors and few obstacles and
rooms with many obstacles. The trajectory followed by the robot running the supervisory system
in all three situations were compared to a state
machine where, if the sonar readings threshold is
less than 1.2 the obstacle avoidance behavior is
performed, else the robot should explore the environment. In this case, only one behavior is active
each time. The second set of experiments consider the definition of a target, i.e., the position of
a victim in the environment. In a first experiment
the robot was placed in the entrance of a room
and was asked to approach the victim. No significant obstacle was in its pathway. In a second test,
a obstacle was placed between the robot and the
victim.
5
Results
Figure 5a presents the results for the first experiment whereas figure 5b presents the results for the
second experiment. As it can be seen, in both cases the neurofuzzy controller guided the robot efficiently and smoothly along the rooms. It did not
kept the robot wandering around the rooms, instead it performed a path that demonstrate good
exploration skills. In the first set of experiments,
the comparison between the neurofuzzy controller and a classical behavior-based controller shows
that the first overcomes the latest in the exploring
capabilities for all tested situations. It is clear
that the non supervised method could be improved. However, it is clear that the exploration capability in the neurofuzzy method is richer that
the pure behavior-based method. In this way, it
is expected that the first can be easily adapted to
new environments. Although more complex, the
supervised system was able to run on-line during
robot navigation at specified speeds without any
delay. In the second set of experiments, even with
obstacles, the system was able to achieve its target positions without collision in all tested cases.
Figure 6 shows the behaviors weights along the second test of the first set of experiments. It is important to remark the smooth transition between
behaviors instead of sharp changes.
6
Conclusion and Future Works
This paper presented an approach to enhance exploring capabilities of autonomous mobile robots
under rescue environments thought a neurofuzzy
system acting as a supervisory of a behavior-based
architecture. The experiments were executed in
the RoboCup USARSim simulator. The proposed
methodology was tested in different maps and environment situations, e.g. rooms with obstacles,
halls, opened environments, etc. The results have
shown that: i) the method can run on-line during robot navigation without any delay or performance reduction; ii) the resulting trajectories did
demonstrate enhanced exploring capabilities when
compared to pure behavior-based algorithms switched by finite state machines; iii) as its main goal
is to be used in rescue environments, the absence
of collisions yet fast and efficient exploration capability demonstrate the applicability of the method
to the proposed task.
References
Antonelli, G., Chiaverini, S. and Fusco, G. (2007).
A fuzzy-logic-based approach for mobile robot path tracking, IEEE Transactions on
Fuzzy Systems 15 (2): 211–221.
Bonasso, R. P., Kortenkamp, D., Miller, D. P. and
Slack, M. (1997). Experiences with an architecture for intelligent, reactive agents, Journal of Experimental and Theoretical Artificial
Intelligence 9: 237–256.
(a)
Fatmi, A., Al Ahmadi, A., Khriji, L. and Masmoudi, N. (2005). A fuzzy logic based navigation of a mobile robot, International Journal
of Applied Mathematics and Computer Sciences 1(2): 87–92.
Laue, T. and Rfer, T. (2005). A behavior architecture for autonomous mobile robots based on potential fields, Robocup World Cup
VIII, Lecture Notes in Artificial Intelligence.
Springer 3276: 122–133.
Li, W., Ma, C. and Wahi, F. M. (1997). A neurofuzzy system architecture for behavior-based
control of a mobile robot in unknown environments, Fuzzy sets and systems 87 (2): 133–
140.
(b)
Figura 5: Results. Left: Indoor scenes with
obstacles. P2DX shown pose is the initial robot pose in each test. Right: evolution of robot path. a) Experiment with no target defined:
filled points represent robot path with the neurofuzzy controller, while empty points show robot
path with pure behavior-based controller; b) experiments with target defined.
Meyer, J., Adolph, R., Stephan, D., Daniel, A.,
Seekamp, M., Weinert, V. and Visser, U.
(2003). Decision-making and tactical behavior with potential fields, Robocup World Cup
VI, Lecture Notes in Artificial Intelligence.
Springer 2752: 304–311.
Rusu, P., Petriu, E. M., Whalen, T. E., Cornell,
A. and Spoelder, H. J. W. (2003). Behavirobased neuro-fuzzy controller for mobile robot
navigation, IEEE Transactions on Instrumentation and Measurement 52 (4): 1333–
1340.
Thongchai, S. and Kawamura, K. (2000). Application of fuzzy control to a sonar-based obstacle avoidance mobile robot, Proceedings of
the IEEE International Conference on Control Applications, IEEE, Anchorage, Alaska,
USA, pp. 425–430.
Figura 6: Behaviors transition along the second
test of the first experiment.
Wang, X. and Yang, S. X. (2003). A neuro-fuzzy
approach to obstacle avoidance of a nonholonomic mobile robot, Proceedings of the IEEE
International Conference on Advanced Intelligent Mechatronics, IEEE, pp. 29–34.
THE USE OF NEGATIVE DETECTION IN COOPERATIVE LOCALIZATION IN A
TEAM OF FOUR-LEGGED ROBOTS
Valguima V. V. A. Odakura∗, Rodrigo P. S. Sacchi ∗, Arnau Ramisa†, Reinaldo A. C.
Bianchi‡, Anna H. R. Costa§
∗
Faculdade de Ciências Exatas e Tecnologia – FACET
Universidade Federal da Grande Dourados, Dourados, MS, Brasil.
†
Institut d’Investigació en Intel.ligència Artificial (IIIA-CSIC), Bellaterra, Spain.
‡
Centro Universitário da FEI, São Bernardo do Campo, SP, Brazil.
§
Laboratório de Técnicas Inteligentes - LTI
Escola Politécnica da Universidade de São Paulo, São Paulo, SP, Brasil.
Emails: [email protected], [email protected], [email protected],
[email protected], [email protected]
Abstract— In multirobot localization, the pose beliefs of two robots are updated whenever one robot detects
another one and measures their relative distance. This paper proposes the use of a recently proposed localization
algorithm that uses negative detection information to localize a group of four-legged Aibo robots in the domain of
the RoboCup Standard Platform Four-Legged Competition. Our aim is to test the performance of this algorithm
in a real world environment, where robots must use vision capabilities to detect the presence of other robots.
Experiments were made with two robots and with three robots, using a cascade of detections to update the
position of more than one of the robots. Experimental results show that negative detection localization allows
us to localize the robots in situations where other algorithms would fail, leading to an improvement of the
localization of real robots, working in a real world domain.
Keywords—
1
Cooperative Robot Localization, Markov Localization, SIFT Algorithm.
Introduction
In order to perform their tasks, mobile robots need
to know their poses within the environment. To do
this, robots use their sensor measurements which
provide information about robot’s movement and
about the environment. In the multirobot localization problem, each robot can use measurements
taken by all robots, in order to better estimate its
own pose. In this way, the main difference between
single robot and cooperative multiple robots localization is that multirobot can achieve more information than a single robot.
A recently proposed cooperative multirobot
localization (Odakura and Costa, 2006) makes use
of negative detection information, which consists
in the absence of detection information, which can
be incorporated into the localization of a group of
cooperative robots, in the form of the Multirobot
Markov Negative Detection Information Localization algorithm.
The aim of this paper is to study this new detection algorithm in a more complex domain, that
of the RoboCup Standard Platform Four-Legged
League (RoboCup Technical Committee, 2006),
where teams consisting of four Sony AIBO robots
operating fully autonomously and communicating
through a wireless network compete in a 6 x 4 m
field. This domain is one of many RoboCup challenges, which has been proven to be an important
domain for research, and where robot localization
techniques have been widely used.
This paper is organized as follows. In Section
2, the cooperative robot localization problem is
presented and the Markov localization technique
is introduced. The negative detection multirobot
localization is described in Section 3. The proposed experiment and its results are presented in
Section 4. Finally, in Section 5, our conclusions
are derived and future works are presented.
2
Cooperative Robot Localization
The cooperative multirobot localization problem
consists in localizing each robot in a group within
the same environment, when robots share information in order to improve localization accuracy.
Markov Localization (ML) was initially designed
for a single robot (Fox et al., 1999). An extension of ML that aims at solving the multirobot
problem (MML) is presented by Fox et al. (Fox
et al., 2000).
In MML, p(xt = x) denotes the robot’s belief
that it is at pose x at time t, where xt is a random
variable representing the robot’s pose at time t,
and x = (x, y, θ) is the pose of the robot. This
belief represents a probability distribution over all
the space of xt .
MML uses two models to localize a robot: a
motion model and an observation model. The motion model is specified as a probability distribution
p(xt = x|xt−1 = x0 , at−1 ), where xt is a random
variable representing the robot’s pose at time t, at
is the action or movement executed by the robot
at time t. In ML the update equation is described
as:
X
p(x̄t = x) =
p(xt = x|xt−1 = x0 , at−1 )
x0
p(xt−1 = x0 ),
(1)
where p(x̄t = x) is the probability density function before incorporating the observation of the
environment at time t.
The observation model is used to incorporate
information from exteroceptive sensors, such as
proximity sensors and camera, and it is expressed
as p(xt = x|ot ), where ot is an observation sensed
at time t. The update equation is described as:
p(ot |xt = x)p(x̄t = x)
,
0
0
x0 p(ot |xt = x )p(x̄t = x )
p(xt = x) = P
(2)
where p(xt = x) is the probability density function
after incorporating the observation of the environment at time t.
In order to accommodate multirobot cooperation in ML it is necessary to add a detection
model to the previous models. The detection
model (Fox et al., 2000) is based on the assumption that each robot is able to detect and identify other robots and furthermore, the robots can
communicate their probabilities distributions to
other robots. Let’s suppose that robot n detects
robot m and measures the relative distance between them, so:
p(xnt = x) = p(xnt−1 = x)
P
x0
0
m
0
p(xnt−1 = x|xm
t−1 = x , rn )p(xt−1 = x ), (3)
where xnt represents the pose of robot n, xm
t represents the pose of robot m and rn denotes the
measured
The calculaP distance between robots.
0
m
0
tion x0 p(xnt−1 = x|xm
=
x
,
r
)p(x
n
t−1
t−1 = x )
describes the belief of robot m about the pose of
robot n. Similarly, the same detection is used to
update the pose of robot m.
To summarize, in the multirobot localization
algorithm each robot updates its pose belief whenever a new information is available in the following Equation sequence: (1) is used when a motion
information is available; (2) is used when an environment observation occurs; and when a detection
happens, both robots involved use (3) to update
their beliefs of poses.
Once a detection is made according to the detection model, the two robots involved in the process share their probabilities distributions and relative distance. This communication significantly
improves the localization accuracy, if compared to
a less communicative localization approach.
One disadvantage of this approach is that
detection information is shared only by the two
meeting robots and it is not used by the other
robots in the group. Odakura and Costa (2005)
Figure 1: Negative detection information.
have presented a detection model where all robots
of the group can benefit from a meeting of two
robots through the propagation of the meeting information. Other well known algorithms in cooperative multirobot localization are from Roumeliotis and Bekey (Roumeliotis and Bekey, 2002) and
Fox et al. (Fox et al., 2000), that use Kalman filter and Particle filter as localization algorithms,
respectively.
3
Negative Detection Localization
All sensor information provided to a single or multirobot in the Markov localization approach are
positive information in the sense that it represents
a sensor measurement of important features of the
environment. Negative information measurement
means that at a given time, the sensor is expected
to report a measurement but it did not.
Human beings often use negative information.
For example, if you are looking for someone in a
house, and you do not see the person in a room,
you can use this negative information as an evidence that the person is not in that room, so you
should look for him/her in another place.
In the cooperative multirobot localization
problem, negative information can also mean the
absence of detections (in the case that a robot
does not detect another one). In this case, the
negative detection measurement can provide the
useful information that a robot is not located in
the visibility area of another robot.
Odakura and Costa (2006) proposed a negative detection model and its incorporation into
multirobot ML approach. Consider two robots
within a known environment and their field of
view. If robot 1 does not detect robot 2 at a given
point in time, a negative detection information is
reported, which states that robot 2 is not in the
visibility area of robot 1, as depicted in Figure 1.
The information gathered from Figure 1 is
true if we consider that there are no occlusions.
In order to account for occlusions it is necessary
to sense the environment to identify free areas or
occupied areas. If there is a free space on the visibility area of a detection sensor, than there is not
an occlusion. Otherwise, if it is identified as an
occupied area it means that the other robot could
be occluded by another robot or an obstacle. In
this case it is possible to use geometric inference
Figure 2: Test environment: The IIIA–CSIC field
used during tests.
to determine which part of the visibility area can
be used as negative detection information.
Let’s suppose that robot m makes a negative
detection. The negative detection model, considering the visibility area of the robot and the occlusion area, becomes:
p(xm−
= x) =
t
m
m
p(d−
t |xt = x, v, obs)p(xt = x)
,
− m
m
0
0
x0 p(dt |xt = x , v, obs)p(xt = x )
P
(4)
where d−
t is the event of not detecting any robot
and xm corresponds to the state of robot m, the
robot that reports the negative detection information. The variables v and obs represent the
visibility area and the identified obstacles, respectively.
Whenever a robot m does not detect another
robot k, we can update the probability distribution function of each k, with k 6= m, in the following way:
= x)
p(x̄kt = x)p(xm−
t
,
m−
k
0
= x0 )
x0 p(x̄t = x )p(xt
p(xkt = x) = P
(5)
where xk , for k = 0, · · · , n, represents all robots
which were not detected.
In the case that a positive detection is reported, the robots involved in the detection update their beliefs according to (3).
The negative information has been applied to
target tracking using the event of not detecting a
target as evidence to update the probability density function (Koch, 2004). In that work a negative information means that the target is not located in the visibility area of the sensor and since
the target is known to exist it is certainly outside this area. In robot localization domain, the
work of Hoffmann et al. (Hoffmann et al., 2005)
on negative information in ML considers as negative information the absence of landmark sensor
measurements. Occlusions are identified using a
visual sensor that scans colors of the ground to
determine if there is free area or obstacle. The
Figure 3: Robot detection: SIFT matching between the model (above) and the test image (below).
environment is a soccer field in green with white
lines. So, if a different color is identified, it means
that an obstacle could be occluding the visibility
of a landmark.
Negative detection model allows solving certain localization problems that are unsolvable for
a group of robots that only relies on positive detection information. A typical situation is the case of
robots in different rooms, in a way that one robot
cannot detect the other.
4
Experiments in the RoboCup Standard
Platform League Domain
Soccer competitions, such as RoboCup, has been
proven to be an important challenge domain
for research, where localization techniques have
been widely used. The experiments in this work
were conducted in the domain of the RoboCup
Standard Platform Four-Legged League, using
the 2006 rules (RoboCup Technical Committee,
2006). In this domain, two teams consisting of
four Sony AIBO robots compete in a color-coded
field: the carpet is green, the lines are white, the
goals are yellow and blue. Cylindrical beacons are
placed on the edge of the field at 1/4 and 3/4 of
the length of the field. Considering only the white
lines on the floor, that are symmetric, the field,
shown in Figure 2, has dimensions 6 × 4 meters.
The robot environment model is based on a grid,
where each cell has dimensions of 0.3 × 0.3 meters,
and angular resolution of 90 degrees. It results in
a state space of dimension 18×12×4 = 864 states.
The robots used in this experiment were the
Sony Aibo ERS-7M3, a 576MHz MIPS R7000
based robot with 64 Mb of RAM, 802.11b wireless
ethernet and dimensions of 180 × 278 × 319 mm.
Each robot is equipped with a CMOS color camera, X, Y, and Z accelerometers and 3 IR distance
sensors that can be used to measure the distance
(a)
(a)
(b)
(b)
Figure 4: First experiment: robot 1 at the center
of the field and two possible positions of robot 2.
Figure 5: Images from the robot cameras: (a) Image seen by robot 1. (b) Image seen by robot 2.
to the walls in the environment.
The 416x320 pixel nose-mounted camera,
which has a field of vision 56.9o wide and 45.2o
high, is used as a detection sensor. In order to verify if there are any robots in the image and to measure their relative distance, we used the constellation method proposed by Lowe, together with
its interest point detector and descriptor SIFT
(Lowe, 2004).
This approach is a single view object detection
and recognition system which has some interesting
characteristics for mobile robots, most significant
of which are the ability to detect and recognize
objects at the same time in an unsegmented image
and the use of an algorithm for approximate fast
matching. In this approach, individual descriptors
of the features detected in a test image are initially
matched to the ones stored in the object database
using the Euclidean distance. False matches are
rejected if the distance of the first nearest neighbor
is not distinctive enough when compared with that
of the second. In Figure 3, the matching features
between model and test images can be seen. The
presence of some outliers can also be observed.
In this domain, there are situations in which
the robots are not able to detect the color markers, such as the beacons or the goals (corner situations, for example). In these moments, only the
lines are visible, and the robots must cooperate to
overcome the difficulties found by the symmetry
of the field.
We first conducted an experiment with two
robots. Robot 1 is located at the center of the
field facing the yellow goal. At a given moment,
robot 1 knows accurately its pose, and robot 2 is
in doubt about being at the yellow goal area or
at blue goal area of the field. Figure 4 depicts
this situation and Figure 5(a) shows the image
from robot 1 camera. Due to the environment
symmetry it is impossible to robot 2 to find out
that its real pose is in the blue goal area of the
field, considering that the colored marks, goals or
beacons, are not in its field of view, as can be seen
in Figure 5(b). However, robot 2 would be able
to localize itself if negative detection information,
provided by robot 1, could be used to update its
pose belief.
Figures 6(a) and 6(b) show the probability
density function of robot 1 and robot 2, respectively. In Figure 7(a) is shown the negative detection information derived from the belief of robot
1 and its visibility area. When robot 2 updates
its pose using the negative detection information
reported by robot 1, it becomes certain about its
pose, as shown in Figure 7(b).
The second experiment was conducted with
Negative information of R1
1
R1
1
0.5
0.5
0
0
15
15
10
20
10
15
20
5
10
15
5
5
10
0
5
0
0
(a)
(a)
R2 after negative detection
1
1
R2
0.5
0.5
0
15
0
15
10
10
20
15
5
20
15
5
10
10
5
0
5
0
(b)
(b)
Figure 6: (a) Probability density function of robot
1. (b) Probability density function of robot 2.
three robots. Robot 1 and robot 2 have the same
configuration as described in the previous experiment and robot 3 is in doubt about being at the
top right corner or at the bottom left corner of the
field. Figure 8 depicts this situation. Due to the
environment symmetry it is impossible to robot 2
to find out that its real pose is in the blue goal area
and it is impossible to robot 3 to find out that its
real pose is at the top right corner of the field, considering that the colored marks, goals or beacons,
are not in their fields of view. However, robot 2
would be able to localize itself if negative detection information, provided by robot 1, could be
used to update its pose belief. Further than, once
robot 2 is certain about its pose, robot 3 would be
able to localize itself with negative detection.
Figure 7(b) show the probability density function of robot 2 after update its position with negative detection and Figure 9 show the probability
density function of robot 3. In Figure 10(a) is
shown the negative detection information derived
from the belief of robot 2 and its visibility area.
When robot 3 updates its pose using the negative
detection information reported by robot 2, it becomes certain about its pose, as shown in Figure
10(b).
The experiments described above show the
use of negative detection can improve localization
Figure 7: (a) Negative detection information reported by robot 1. (b) Probability density function of robot 2 after the incorporation of negative
detection information.
accuracy if compared with a less communicative
localization approach, as MML. In both experiments all robots became certain about their poses
after the negative information exchange. If the
negative detection was not available, the uncertainty robots would have to walk around until they
could see useful landmarks in field, before being
able to localize themselves.
5
Conclusions
Negative detection can be very useful to improve
localization in ambiguous situations, as shown by
the experiments. In both experiments, the robots
configurations illustrated that cooperative localization, performed by negative detection, is the
only way to improve robot’s pose belief at that
moment. In other way, robots should move, and
wait until they can find useful marks to be able to
localize themselves. Moreover, we give a contribution in the direction of a precise localization, that
is one of the main requirements for mobile robot
autonomy.
The experiments described in this paper are
very initial ones, using the robots cameras to capture the images, and then a computer to analyze
the image and compute the robots poses, in a
Negative information of R2
1
0.5
0
15
20
10
15
5
10
5
0
0
(a)
Figure 8: Second experiment: possible positions
of robots 2 and 3.
R3 after negative detection
1
0.5
1
0
R3
15
0.5
10
20
0
15
5
10
15
5
0
10
20
15
5
(b)
10
5
0
Figure 9: Probability density function of robot 3.
static manner. The first extension of this work
is to implement the negative detection localization in a way to allow its use during a real game.
Finally, as part of our future work, we also plan to
investigate other forms of information to update
robot’s pose belief.
Acknowledgements
This research has been conducted under
the FAPESP Project LogProb (Grant No.
2008/03995-5) and the CNPq Project Ob-SLAM
(Grant No. 475690/2008-7). Anna H. R. Costa
is grateful to CNPq (Grant No. 305512/2008-0).
Reinaldo Bianchi also acknowledge the support
of the CNPq (Grant No. 201591/2007-3) and
FAPESP (Grant No. 2009/11256-0).
References
Figure 10: (a) Negative detection information reported by robot 2. (b) Probability density function of robot 3 after the incorporation of negative
detection information.
Hoffmann, J., Spranger, M., Gohring, D. and Jungel, M. (2005). Making use of what you don’t
see: Negative information in markov localization,
IEEE/RSJ International Conference on Intelligent Robots and Systems, IEEE, pp. 854–859.
Koch, W. (2004). On negative information in tracking and sensor data fusion: discussion of selected
examples, Seventh International Conference on
Information Fusion, pp. 91–98.
Lowe, D. (2004). Distinctive image features from
scale-invariant keypoints, International Journal
of Computer Vision 60(2): 91–110.
Odakura, V. and Costa, A. H. R. (2005). Cooperative
multi-robot localization: using communication to
reduce localization error, International Conference on Informatics in Control, Automation and
Robotics - ICINCO’05, pp. 88–93.
Odakura, V. and Costa, A. H. R. (2006). Negative information in cooperative multirobot localization,
Lecture Notes in Computer Science 4140: 552–
561.
Fox, D., Burgard, W., Kruppa, H. and Thrun, S.
(2000). A probabilistic approach to collaborative
multi-robot localization, Auton. Robots 8(3).
RoboCup Technical Committee (2006). RoboCup
Four-Legged League Rule Book. RoboCup Federation.
Fox, D., Burgard, W. and Thrun, S. (1999). Markov
localization for mobile robots in dynamic environments, Journal of Artificial Intelligence Research 11: 391–427.
Roumeliotis, S. I. and Bekey, G. A. (2002). Distributed multirobot localization, IEEE Transactions on Robotics and Automation 18(2): 781–
795.
Download

todos os trabalhos dessa sessão