Académique Documents
Professionnel Documents
Culture Documents
(3)
The crisp input d
1
to the obstacle avoidance behaviour
context is the minimum value of the front sonar sensors and
the nearest depth to obstacles obtained from the vision
system. The context
1
C for the obstacle avoidance behaviour
is in the form of a fuzzy set as shown in Fig. 8 which defines
that the obstacle avoidance behaviour should be active when
the robot path is obstructed by an obstacle and the closer the
robot gets to the obstacle, the higher will be the activation of
the obstacle avoidance behaviour. d
1
is fuzzified using the
fuzzy context membership functions of
1
C
to a membership
value
1
1
( )
C
d . The crisp input d
2
to the left edge following
behaviour context
2
C
is the minimum value of the left side
sonar sensors. The crisp input d
3
to the right edge following
behaviour context
3
C
is the minimum value of the right side
sonar sensors. The crisp input d
4
to the goal seeking
behaviour context
4
C is d
1
,. The context
4
C for the goal
seeking behaviour is in the form of a fuzzy set as shown in
Fig. 8 which defines that the goal seeking behaviour should
be active when the robot path is clear, the clearer the robot
path the higher will be the activation of the goal seeking
behaviour. d
4
is fuzzified using the context membership
functions of
4
C to a membership value
4
4
( )
C
d . After all
the crisp inputs d
j
(j=1,..4) are matched and fuzzified against
their fuzzy contexts, the fuzzified values are then fed to the
inference engine which determines which rules (and hence
which behaviours) are fired from the coordination rule base.
The coordination rule base contains a coordination rule for
each behaviour which relates the contexts to the behaviours.
In case of an attacking situation, the robot can coordinate
OA, GS and the left and right edge following behaviours. As
we have four behaviours then we will have four coordination
rules as follows: IF d
1
is LOW THEN Obstacle Avoidance,
IF d
2
is LOW THEN Left Edge Following, IF d
3
is LOW
THEN Right Edge Following, IF d
4
is HIGH THEN Goal
Seeking. The system is capable of performing very different
tasks using identical behaviours by changing only the context
rules and co-ordination parameters. For example, in the Goal
defensive situation, the robot will be coordinating the goal
keeper behaviour mentioned above with the GS behaviour
which seeks the puck and opponent and when the puck is
within a given safe distance, the robot can activate the goal
seeking behaviour to get the puck. We can eliminate the
unneeded behaviours from the context rules according to the
robots mission.
VII. INTERMEDIATE BEHAVIOURS
Besides the basic FLC and HFLCs behaviours mentioned
above, the robots have intermediate behaviours as explained
in the following subsections.
A. The Attacking Behaviour
The attacking behavior makes use of the HFLC
coordinating the OA and GS (The robots seek the opponent
goal) behaviours. In case the robot can not locate the goal it
will rotate around the puck in the gripper while performing
obstacle avoidance. This means that the axis of rotation is a
normal vector to the pucks surface.
As the distance and angle from goal becomes optimum for
shooting, the HFLC will be disabled and the shooting
behvaiour will be triggered. According to the situation
different shooting techniques take place. We have three
different shooting mechanisms. The first one is shooting
from long distances. This one will be triggered from a far
distance from goal as it takes about 1.5 meters to execute.
The robot simply rotates while moving forward in a certain
direction. As the robots side faces the goal it will suddenly
rotate to the goals direction. Another interesting shooting
mechanism is done when approaching the goal from a dead
angle. The robot simply leaves the puck from the gripper and
moves diagonally leaving the puck the right or left of the
gripper. The second shooting mechanism involves the robot
bursting to the right or left accordingly for about 1 meter
drifting with the puck to the grippers side. The robot would
end this diagonal movement with a sudden rotation in the
opposing direction rotating about 340 degrees hitting the
puck to the facing direction. The third shot is the basic one
which is similar to the second one but without the drifting
part.
Another attacking mechanism involves the edge following
behaviours. This approach involves sneaking to the opponent
defensive area. If the robot with the puck detects that it is
still far away from opponents goal and opponents robots
are between the robot and the goal, this behaviour will be
enabled. The robot would keep track of its orientation from
the goal. Then the robot would rotate 90 degrees or -90 to
face any of the side walls. The robot would then move
towards the wall until the IR sensors detect a certain range.
The robot would then maintain a certain distance from the
wall using the edge following behaviour while moving
towards the opponents defensive area. As the robot crosses
the silver line marking the opponents defensive area, or
detects an obstacle in the way that might be an opponents
robot, the attacking robot would rotate in the opposite
direction until it locates the opponents goal. As the robot
detects the goal it will continue with the normal attacking
behaviour mentioned above. The advantage of such an
approach is that the robots gripper can totally hide the puck
from the side view, and together with the wall the puck is
totally hidden from opponents robots.
Finally, as the robot with the puck shoots, the game
situation changes and this will be managed by the robotic
agents team coordination module mentioned below.
B. Opponent Obstruction
Opponent obstruction is a behaviour designed to take one
robot of the opponents team out of play. The motivation
behind this behaviour is that while our robot has the puck,
the opponent team robots are all obstructing our attacker. For
this reason it is a good choice to start obstructing one of
them to enhance the attackers odds to reach the goal.
Opponent Obstruction behaviour simply makes use of the GS
behaviour. This time the goal is one of the opponents
robots. The behaviour consequents are modified slightly in
the case of opponent obstruction in order to make the tackles
with more speed to produce biggest impact possible.
The rule of the game states that only one team robot can
be present in its own defensive zone per instance. If another
robot goes in its defensive area to retrieve the puck or
obstruct another robot the other team is rewarded a penalty.
To avoid those penalties, robots that are not assigned to be
the goal keeper keep track of inductive lines all the time.
Indicating an inductive line means that the robot is moving
into one of the teams defensive areas. If the robot can detect
any of the two goals, the robot can directly take the decision
to enter the defensive area to pursue its goal or not. This can
be done by checking the depth of the goal that enables the
robot to know which defensive area it is about to enter or
leave. On the other hand, if none of the goals is in sight the
robot would have to check its situation. The robot would
stop rotate until it locates one of the two goals, figure out its
position with reference to that reference point and take the
decision accordingly.
C. Defence Behaviour
The defence behaviour is a precautionary action to secure
our defensive area when the puck is loose or with the
opponent. The defence behaviour makes use of the GS FLC.
However, this time the inputs are our teams goal.
Furthermore, the FLC is modified to reduce speed in order to
avoid entering our restricted defensive area. When the robot
reaches a certain depth from our goal it will stop and start
rotating trying to locate the puck in the field. As the robot
locates the puck it will start tracking it. Note that the role
assigned to that robot according to the situation is to only
track the puck and do not interfere. This is because another
robot is currently trying to grab the puck because it has a
better chance to grab it. Also note that if the puck grabbing
robot looses sight of the puck while the defence behaviour
robot has the puck in its sight the roles will suddenly switch.
The puck seeking robot that failed to retrieve the puck will
take the defence role and the defending robot will burst to
grab the puck leaving its position to the former robot.
Finally, if all three robots loose track of the puck the game
situation will change to the last situation to be discussed in
the next section.
VIII. HIERARCHICAL COORDINATION OF THE ROBOTIC
AGENTS TEAM
From our perspective we have three main game situations.
Situation one is when one of our robots has the puck.
Situation two is when our team does not have the puck but
one or more of our robots can locate the puck in the field.
Situation three is when none of our robots can see the puck
which directly implies that none of our robots have it either.
The following subsections will explain each of these
situations and how our team handles the given situation.
A. First Situation: A Team Member has the Puck
When one of the team members has got a puck in its
gripper, then this will mean low distance for the front
medium IR and low depth as obtained from the machine
vision system. In such a situation, the robot with the puck
will have to attack and will try to reach shooting positions.
The second robot will return to be goal keeper or will stay as
goal keeper if was previously assigned to be goal keeper.
Finally, the last robot will obstruct opponents robots.
B. Second Situation: Team does not have the Puck but
One or More of Our robots Can Locate the Puck
The second situation states that none of our team members
has the puck; however, one or more of our team robots can
see the puck. Behaviours of that situation are as follows: the
robot that can locate the puck would do the goal seeking
behaviour. This time the goal of the robot is the puck itself.
The robot closest to our teams goal would return to goal
keeping position, or stay in goal if was already assigned goal.
The third robot would do the defence behaviour.
It is important to point out that our game situations do not
differentiate between a loose puck and an opponents having
the puck. In both case the game situation is set to the second
one, however, the puck grabbing procedure referred to as
Goal seeking of situation two differs in actions depending on
the context as it is explained in the upcoming subsections.
As mentioned in the second situation one robot performs
GS to grab the loose or opponents puck. A special GS
behaviour which can be referred to as puck seeking or puck
grabbing. Basically, this behaviour is based on the GS FLC
where the GS FLC is fed with the puck depth and puck
orientation. The behaviour is also fed with the locations of
opponents robots around the puck if any can be located.
Note that this time OA is only activated if the puck depth is
too far. Furthermore, if the located puck is close to an
opponents robot the controller outputs an excessive speed
when the puck depth is near. This ensures that if the puck is
near the opponents robot or even in its gripper the excessive
speed would knock the puck away from the opponent robot
and out of its gripper if it was inside the gripper. Note that if
the robot looses track of the puck and another robot locates it
the same situation will still apply, however, the roles will
change. The robot that can locate the puck will do the puck
seeking behaviour and the other robot will probably do the
defence behaviour.
C. Third Situation: None of Our Robots can Locate the
Puck
In this situation no robot can locate the puck. For this
reason highest defensive precautions are made. The robot
most suitable (namely the robot with the least depth to our
teams goal and most probably is already assigned to be goal
keeper) for being the goal keeper will return to goal and
enable goal keeper behaviour. The other two robots will do
the defence behaviour. They will return to nearest post
outside of our defensive area and start searching for the
puck. Note that as any of the three robots detect the puck, the
situation will change to situation two. If certain time duration
passes and the puck was not detected then it is feared that the
opponents team are hiding the puck. The roles would
change by switching the two defending robots to opponent
obstruction behaviour for a duration of time allowing them to
expose the hidden puck. Then they would return back to
defence behaviour.
D. The Team Hierarchical Coordination Mechanism
In the previous sections the three game situations were
explained together with the behaviours associated with them.
Our coordination system is dynamic depending on the
situations mentioned above and if one of the robots is
missing due to technical failures or due to suspension from
the game the behaviour with the least importance is
neglected. For instance, assume that one robot is missing and
game situation is situation two. This means that at least one
of our teams robots can locate the puck, however, puck is
loose or with an opponents robot. According to which robot
is more suitable for the role, one robot would grab the loose
puck and the other would return to protect the goal by being
assigned the goal keeper role. The third role is neglected as
only two roles are available.
The team hierarchical coordinator can be viewed as the
high level coach that gathers information from the robots and
determine the game situation. According to that game
situation the high level coordinator would figure out the
different roles to be assigned and their priorities. Then the
coordinator would assign the role with the highest priority to
the fittest robot for that role. Then it would assign the second
important role to the more suitable robot from the other two.
Finally, it would grant the last robot the least important role
as it was not fit enough to fit the more important roles.
This hierarchical coordination technique allows room for
dynamic role allocation. In other words, if a robot
malfunctions during the game it will not respond to the
coordinator with updates. This indicates that the mentioned
robot is the least suitable for any of the roles to be assigned,
hence, giving the chance for the coordinator to assign the
roles to the other functioning robot.
Fig. 9 shows the structure of the team hierarchical
coordination which assembles from each robots its own the
distance from puck and from the team goal. The team
coordinator then analyses the situation of the robot
depending on the assembled information. After this and
depending on the game situation, the coordinator assigns the
roles to the various robots depending on their location to the
puck and to the team goal.
Fig. 9. An overview of the structure of the team hierarchical coordination.
Fig.10. The GUC (in blue) game against the University of Osnabrueck (in
green) in the final game
IX. RESULTS
In this section, we will summarise the results achieved by
the GUC team in the Festo Hockey Challenge held within
Robocup 2009. These game results serve as comparison with
the computer vision, control and the agent coordination
systems followed by the other teams.
In the first game, the GUC team played against ESTI
Tunis (Tunisia) and the GUC team won 2-0. In the second
game the GUC played against Polytech'Lille (France) and the
GUC won 6-0. In these two games, the GUC team played
only with one robot against three opponent robots (as two of
GUC robots became faulty on this day). This shows the
power of our techniques in term of defence and attacking and
in spite of playing outnumbered the robotic team
compensated with better vision, control and artificial
intelligence systems.
The GUC team then played against the University of
Osnabrueck (Germany) who employed a panoramic vision
approach which allowed them 360
o
vision of the arena.
However the GUC team won 4-0 due to the better fuzzy
control and coordination systems employed. The GUC then
won against HEIG Yverdon (Switzerland) 5-0 before loosing
2-4 from HHT Budapest (Hungary) due to sudden hardware
failure in the GUC robots. The GUC then qualified to the
semi final to play against Polytech'Lille (France) two games
where the GUC won in the first game 3-1 and in the second
game 5-0. The GUC then played in the final game against
University of Osnabrueck (Germany) where the game
finished 2-2 and the GUC lost by penalty shootout 1-0.
Fig.10 shows a screenshot of the final game.
X. CONCLUSIONS AND FUTURE WORK
In this paper, we have show a description of the vision
system, the control and team coordination mechanisms used
by the GUC team for the Festo Hockey Challenge held
within RoboCup 2009. We have shown the employed vision
techniques which provided robust and accurate results using
only camera. In addition, we have used a fuzzy logic based
approach to implement the low level behaviours within the
robots. We have also employed fuzzy context based
coordination for the high level coordination of behaviours to
form HFLCs. The robotic agent team coordinator involved a
situation based hierarchical coordination which enabled the
dynamic role allocation to the various robotic which allowed
to handle the dynamic environment of the game. The GUC
developed systems has enabled to gain the 2
nd
place in the
competition after loosing by penalty shootout in the final.
For our future work, we will aim to employ type-2 fuzzy
systems which are able to better handle the high levels of
uncertainties encountered in this dynamic game. We will also
investigate the application of reinforcement learning
techniques to enable the robots to adapt to the changing
environment and circumstances.
ACKNOWLEDGEMENT
REFERENCES
[1] A. Bonarini, Anytime learning and adaptation of hierarchical fuzzy
logic behaviours, Adaptive Behavior Journal, Vol. 5, No. 3-4, pp.
281-315, 1997.
[2] J. Bruce, T. Balch, and M. Veloso, Fast and inexpensive color image
segmentation for interactive robots. Proceedings of
Proceedings.2000 IEEE/RSJ International Conference on Intelligent
Robots and Systems ( IROS2000) Japan, October 2000, pp. 2061-
2066.
[3] CMvision: Open Source Library
http://www.cs.cmu.edu/~jbruce/cmvision/
[4] Festo Didactic GmbH & Co.KG: Technical Documentation of
Robotino, Denkendorf 2007, http://www.festo-didactic.de
[5] Festo Didactic GmbH & Co.KG: http://www.festo-didactic.de
[6] H. Hagras, V. Callaghan and M. Colley, "Prototyping design and
learning in outdoor mobile robots operating in unstructured outdoor
environments," IEEE Magazine on Robotics and Automation, Vol. 8,
No.3, pp.53-69, September 2001.
[7] H. Hagras, M. Colley and V. Callaghan, " Learning and adaptation of
an intelligent mobile robot navigator operating in unstructured
environments based on a novel Online Fuzzy-Genetic System,"
Journal of Fuzzy Sets and Systems, Vol. 141, No. 1, pp. 107-160,
January 2004.
[8] A.Saffiotti, The uses of fuzzy logic in autonomous robot navigation,
Journal of Soft Computing, Vol. 1, No. 4, pp. 180-197, 1997.
[9] E. Tunstel, T. Lippincott and M. Jamshidi, "Behaviour hierarchy for
autonomous mobile robots: Fuzzy behaviour modulation and
evolution," International Journal of Intelligent Automation and soft
computing, Vol. 3, No. 1, pp. 37-49, 1997.
[10] L. Wang, Analysis and design of hierarchical fuzzy systems, IEEE
Transaction on Fuzzy Systems, Vol. 7, No. 5, pp. 617-624, October
1999.