Behavior Programming (Based on GT 2005)

advertisement
Computer Engineering Department
INTRODUCTION TO ROBOTICS
COE 484
Dr. Mayez Al-Mouhamed
SPRING 2008
Chapter III – Behavior Programming
Plan
• Introduction to Soccer Game Behavior Design, “Soccer Behaviors for Humanoid
Robots, By Jörg Stückler and Sven Behnke
• German Team 2005
Soccer Behaviors for Humanoid Robots
Jörg Stückler and Sven Behnke (2006) and other papers*
We describe the design of the behavior control software for the Humanoid League team
NimbRo. The control software is based on a framework that supports a hierarchy of
reactive behaviors:
• It is structured both as an agent hierarchy (joint – body part – player – team) and as a
time hierarchy. The speed of sensors, behaviors, and actuators decreases when moving
up in the hierarchy.
• The lowest levels of this framework contain position control of individual joints and
kinematic interfaces for body parts.
• At the next level, basic skills like omnidirectional walking, kicking, and getting-up
behaviors are implemented.
These are used by soccer behaviors like:
• searching for the ball, approaching the ball, avoiding obstacles, and defending the
goal.
• Finally, on the team level, the robots communicate via a wireless network to share
information about the world state and to negotiate roles like attacker and defender.
• Participated in RoboCup 2006. The KidSize robots won
the Penalty Kick competition and came in second in the overall Best Humanoid ranking,
next only to the titleholder, Team Osaka.
*All Summaries are taken from ”Hierarchical Reactive Control for a Team of Humanoid
Soccer Robots”, same authors, 2007.
Soccer Behaviors for Humanoid Robots
•The framework forces the behavior engineers to define abstract
sensors that are aggregated from faster, more basic sensors. One
example for such an abstract sensor is the robot’s attitude that is
computed from the readings of accelerometers and gyros.
• Abstract actuators give higher-level behaviors the possibility to
configure lower layers in order to eventually influence the state of
the world. One such abstract actuator is the desired walking
speed, which configures the gait engine, described below,
implemented in the lower control levels.
• The behaviors within one layer of the behavior framework are
activated according to the current state of its sensors. Activation
is indicated by an activation factor in the interval. Each active
behavior can manipulate the actuators in its layer.
• If multiple behaviors try to manipulate the same
actuator, the actuator is set to the weighted sum of desired values,
where the activation factors are used as weights.
•To prevent conflicting behaviors from being active at the same
time, behaviors can inhibit other behaviors. If an inhibiting
behavior is not completely active, the inhibited behaviors share
the remaining activation, such that the activation factors sum to
one.
• The control hierarchy of our soccer robots is arranged in an
agent hierarchy, where multiple joints (e.g. left knee) constitute a
body part (e.g. left leg), multiple body parts constitute a player
(e.g. field player), and multiple players constitute a team. The
behavior framework manages all but the motor control loop within
the Dynamixel actuators, which has been implemented by
Robotis.
Fig. 4. Actuators, behaviors, and mutual inhibitions within the behavioral
joint – body part – player hierarchy. Upper layer behaviors can configure
lower layer behaviors by manipulating the upper layer actuators. The resulting
values of the actuators depend on the activation factors and the inhibitory
structure of the manipulating behaviors.
Fig. 5. Actuators,
behaviors, and
mutual inhibitions
within the behavioral
hierarchy. Upper layer
behaviors can
configure lower layer
behaviors by
manipulating the
upper layer actuators.
The resulting values
of the actuators
depend on the
activation factors and
the inhibitory
structure of the
manipulating
behaviors.
IV. BASIC SKILLS
Fundamental for playing soccer are:
•
the abilities to walk and to kick.
•
As body contact between the physical agents is unavoidable, the capability of getting
up after a fall is also essential.
•
For keeping a goal, the robot must be able to perform special motions. The basic skills
are implemented on the body part layer.
•
Fig. 4 illustrates the inhibitory structure of the basic skills and how the motor control
layer is configured through actuators.
A. Omni-directional Walking
We use the leg interface to implement omni-directional walking:
•
The robots are able to walk in every direction and to change their heading direction at
the same time. The gait target vector (vx, vy, v-theta) can be changed continuously while
the robot is walking. This makes it possible to correct for deviations in the actual
walking direction and to account for changes in the environment by using visual
feedback.
•
Behaviors of the upper level can control the gait target vector with an actuator that
enforces maximal speeds and accelerations.
IV. BASIC SKILLS (Cont)
B. Kicking
In addition to walking, we implemented kicking:
• An actuator allows behaviors in the upper level to trigger kicks with both the left and the
right leg. After inhibiting the walking behavior and coming to a stop, the robot moves its
weight to the non-kicking leg (see hip roll angle).
• Then, it shortens the kicking leg, swings it back and accelerates forward. The kicking leg
reaches its maximal speed when it comes to the front of the robot.
• At this point the hip pitch joint and the knee both move the foot forward and the ball is
kicked.
• The kicking movement continues with deceleration of the foot and slow motion back to the
bipedal stand.
C. Getting up after a Fall
Since in soccer games physical contact between the robots is unavoidable, the walking patterns
are disturbed and the robots might fall:
• Hence, they must be able to detect the fall, to recognize their posture on the ground, and to
get back into an upright posture.
• After falling, the robot’s center of mass (COM) projection to the ground is outside the
convex hull spanned by the foot-contact points.
• Additional support points like knees, elbows, and hands must be used in order to move the
COM back inside the foot polygon.
• Using their attitude sensors, the robots detect a fall, classify the prone or supine posture
and trigger the corresponding getting-up sequence.
D. Goalkeeper Motions
The goalkeeper is capable of diving into both directions or to bend forward with spread arms. First, it
moves its COM and turns its upper body towards the left while shortening the legs. As soon as it tips
over its left foot, it starts straightening its body again. While doing so it is sliding on its hands and
elbows. The fully extended robot covers the entire goal half. After the dive Franz gets up again, as
described above.
V - PLAYING SOCCER
Soccer behaviors of the robots during a 2 vs. 2 soccer game, which build on the basic skills.
A - World and Internal State Representation
The soccer behaviors require knowledge of the current game situation:
•The visual perception supplies relative distance, angle, and perceptual confidence for the ball
pBall = (dBall, theta-Ball, cBall), the own goal pOwnGoal, the opponent goal pOppGoal, and the
nearest obstacle pObstacle. The confidence is a value in the interval [0, 1].
• In the Attacking Player, the relative position and confidence of the opponent goal is used as
the target to kick at. We refer to this target as the ball-target with relative position pBallTarget.
• The decision for the kicking leg is made in every time step, depending on the relative
position of the ball and the line from ball to ball-target, which we denote as ball-to-targetline.
• If the robot has to approach the ball-to-target-line from the right, it kicks with the left leg,
and vice versa.
• To avoid oscillations it is important that the decision may only be changed if the
distance of the robot to the ball-to-target-line is large.
A - World and Internal State Representation (Cont)
•To kick the ball with the chosen leg, the robot has to position itself behind the
ball with lateral and segittal offsets, delta-l and delta-s that depend on the
distance between the legs and the length of the feet. The target position behind
the ball, pBehindBall, is calculated by adding the lateral and sagittal offsets to
the ball position orthogonal to and along the ball-to-target-line, respectively.
•To generate smoothly approaching trajectories to this position, the sagittal
offset is increased by an amount a that is proportional to the angle between the
robot’s heading direction and the ball-target. Fig. 11 illustrates two examples for
positioning behind the ball with the left leg as kicking leg.
Fig. 11. Two examples showing sequences of robot poses, target positions
behind the ball (blue crosses), and ball positions while approaching the ball
with the left leg as kicking leg.
A - World and Internal State Representation (Cont)
• When playing as Defensive Field Player, the own goal is used as ball-target, such
that the position behind the ball is set to a position between ball and own goal:
• The distance kept to the ball depends on the distance to the own goal.
• A threshold for the minimal distance to the goal lets the robot stay out of
its goal, as long as the ball is still far away.
• If the ball and the robot are near the goal, the robot keeps behind the ball
at a minimum distance.
• The robot maintains additional hypotheses about the relative ball location that are
used for searching the ball. If a kick is triggered, one hypothesis is set in front of the
robot at a distance depending on kick strength.
•The confidence of the hypothesis is discounted by the time since the kick started. Its
relative position is altered according to the motion model. Additionally, hypotheses
are maintained for the perceptions of the ball by other players on the field.
•The confidence of these hypotheses depends on the self-localization and ball
perception confidences of the other players and the self-localization confidence of the
robot itself.
Summary (World representation):
• The visual perception supplies relative distance, angle, and perceptual confidence for the ball,
the own goal, the opponent goal, the center angle of the largest goal area not covered by the goalie,
and the nearest obstacle.
• In the offensive role:
• The relative position and confidence of the largest free area in the opponent goal is used as
the target to kick at (ball-target), if it is perceived confidently.
• Else the opponent goal is used as ball-target.
• To kick the ball, the robot has to position with its kicking leg behind the ball. Thus, the
corresponding relative target position of the robot, denoted as behind-ball-position, and the
kicking leg are included in the game state.
• The decision for the kicking leg is made at every time step, depending on the relative
position of the ball and the line from ball to ball-target. If the robot has to approach the ball-totarget-line from the right, it kicks with the left leg, and vice versa.
Summary (World representation) (Cont):
•To avoid oscillations, decisions are only made as long as the distance of the robot to the ball-totarget-line exceeds a threshold.
• When playing as defensive field player:
• The own goal is used as ball-target, such that the position behind the ball is set to a
defensive position between ball and own goal.
•The components of the current game state are provided to the soccer behaviors through
sensors. Fig. 6 illustrates the positioning of offensive and defensive field player with an
example.
•The robot also maintains hypotheses about the relative ball location that are used for
searching the ball.
• If a kick is triggered, one hypothesis is set to the predicted end position of the ball, as
due to limitations in visibility range the visual perception could fail to detect the ball.
• Additionally, hypotheses are maintained for the perceptions of the ball by other players
on the field.
•The confidences in these hypotheses depend on the self-localization and ball perception
confidences of the other players and the self-localization confidence of the robot itself.
• The relative positions of the hypotheses are altered according to the motion model.
Their confidences are discounted by the time since the last update.
Fig. 6. An illustration for the positioning of offensive and defensive field
players (green circles with orientation indicator). The offensive field player
positions on the line from ball to target goal (yellow) with sagittal and lateral
offsets behind the ball (orange circle) on the blue cross, such that the ball
lies in front of the kicking leg. The defensive field player takes a defensive,
supporting pose by positioning on the direct line from ball to own goal in a
certain distance to the ball.
B. Soccer Behaviors
According to the current game situation, behaviors like searching the ball, positioning behind the
ball, or avoiding obstacles are activated. These behaviors are implemented on the player level
and use the actuator provided by the basic skills of the lower layer.
•
•
1)
For example they set the gait target vector or trigger a kick.
Fig. 4 illustrates the inhibitory structure of the soccer behaviors and the actuator interface
to the basic skills which reside on the lower layer.
Searching the Ball
•
Exploring the environment for the ball is always active, but inhibited by behaviors that
activate when the ball has been perceived with a certain confidence.
•
If a ball hypothesis with confidence over a certain threshold exists, the robot walks towards
the most confident hypothesis.
•
Otherwise, it turns towards the most confident hypothesis for a short time. If the ball is still
not visible, it starts walking around the center circle in a constant distance in order to
inspect all parts of the field.
•
Summary: If the ball is not perceived, the robot has to explore the field for it. In the case that
a confident ball hypothesis exists, it gazes and walks towards it. If no confident hypotheses
exist, it first stops walking and sweeps its upper trunk over a range of ± pi/2 , because
motion blur reduces the visibility range of balls during walking. If still no ball is in sight, it
walks to the farer goal, and then turns to the other goal. After this, it repeats the search
process.
B. Soccer Behaviors
2) Walking towards the Ball
•
The robot walks straight towards the ball, if it perceives the ball.
•
The own goal must be either not visible (cOwnGoal < 0.1) or far away (dOwnGoal > 0.5m) to
avoid an own goal.
•
This behavior controls the gait target velocity to keep the robot near the ball, e.g. if visual
perception fails to detect the opponent goal.
•
The behavior inhibits searching the ball.
•
Summary: As it is possible to perceive the ball, while the opponent goal is occluded, the
robot is kept close to the ball. The behavior is not activated, if the robot is close to the own
goal.
B. Soccer Behaviors (Cont)
3) Positioning behind the Ball:
•
If the ball and the ball-target are perceived, the robot positions itself behind the ball, facing
towards the ball-target. The robot is positioning on pBehindBall by controlling the gait
target velocity. Some details are:
•
If the distance to the target position is large (dBehindBall > 0.5m), the robot
rotates towards the target position, such that it can approach it by mainly
combining forward walking with turning.
•
If it is near the target position (dBehindBall =< 0.25m), the robot aligns itself
towards the ball-target.
•
For intermediate distances, the gait rotation is interpolated linearly between both
alignment targets.
•
The behavior also handles the case, when the ball is positioned between robot and target
position. Here, the robot walks around the ball by walking towards the target position but
avoiding the ball-to-target-line.
•
When playing as defensive field player, the robot rotates towards the ball at any distance. It
does not avoid the ball-to-target-line, because the ball-target is the own goal. This behavior
inhibits walking towards the ball, such that the inhibited behavior may only be active, if the
ball-target has not been perceived. It also inhibits searching the ball.
B. Soccer Behaviors (Cont)
3) Positioning behind the Ball:
•
Summary:
•
If ball and opponent goal are visible, the robot positions behind the ball, as given
in the current game state.
•
While the distance to the target position is large, the robot rotates towards the
target position, such that it can approach it by mainly combining forward walking
with turning.
•
If it is near the target position, the robot aligns itself towards the ball-target.
•
For intermediate distances, the gait rotation is interpolated linearly between both
alignment targets.
•
The behavior also handles the case when the ball is located between the robot
and the behind-ball-position.
•
Here, the robot walks around the ball by walking towards the target position but
avoiding the ball-to-target-line.
•
When playing as defensive field player, the robot rotates towards the ball at any
distance without avoiding the ball-to-target-line.
*All Summaries are taken from ”Hierarchical Reactive Control for a Team of Humanoid Soccer
Robots”, same authors, 2007.
B. Soccer Behaviors (Cont)
4) Kicking the Ball towards the Target:
This behavior is activated as soon as the target position pBehindBall has been reached with a
certain precision in angle to the ball-target and in distance to the target position:
•
If the precision conditions hold, a kick is triggered. Naturally, ball and ball-target must
be perceived.
•
To prevent own goals, the own goal must be either not visible or be seen in an angle
that is larger than ± pi/4 .
•
If the ball comes into a kicking position by chance, the behavior initiates a kick with
the corresponding leg. As the robot has to come to a complete stop before the kicking
motion can be executed, the robot can cancel the kick, if the ball moves away in the
meantime.
•
This behavior inhibits searching the ball, walking towards the ball, and positioning
behind the ball.
•
Summary: This behavior is activated as soon as the behind-ball position has been
reached with a certain precision in angle to the ball-target and in distance to the target
position. The active behavior triggers a kick with the correct kicking leg. If the ball
comes into a kicking position by chance, the behavior initiates a kick with the
corresponding leg. As the robot has to come to a complete stop before the kicking
motion can be executed, the robot can cancel the kick, if the ball moves away in the
meantime.
B. Soccer Behaviors (Cont)
5) Dribbling the Ball towards the Target:
•
If positioning behind the ball was not successful for a longer time, or the game started with
a kick-off for the player, the robot activates dribbling the ball towards the ball-target for
some time. Additional preconditions for activation are that the ball and ball-target are
perceived and the angle towards the balltarget is smaller than ± pi/4 .
•
Dribbling is performed by steering towards the ball. The forward walking speed is inversely
related to the angle to the ball. In combination with positioning behind the ball, the robot is
kept behind the ball, facing the ball-target when dribbling. Dribbling inhibits searching the
ball, walking towards the ball, and positioning behind the ball. As we want the decision for
dribbling to be strict, it also inhibits kicking the ball towards the target.
•
Summary: If positioning behind the ball was not successful for a longer time, or at kick-off,
the robot dribbles the ball towards the ball-target for some time. Target-oriented dribbling is
achieved by steering towards the ball, if it is still far away. If it is close, the robot aligns the
ball in the center in front of its feet by lateral motion, and aligns its orientation towards the
ball-target. The better this alignment is, the faster the robot moves in forward direction. At
intermediate distances, the alignment targets are interpolated linearly. Dribbling inhibits
kicking the ball.
B. Soccer Behaviors (Cont)
6) Avoiding Obstacles: After a fall, the robot needs valuable time to get back on its feet. The
main reason for our robots to fall is physical contact with other robots. Hence, obstacle
avoidance is an important feature.
•
The visual perception supplies the behavior with the nearest obstacle. If it is
detected (cObstacle > 0.1), in a certain distance (dObstacle < dObstacle_max),
and in front of the robot (|Obstacle| < 1.2), obstacle avoidance is activated by a
factor that interpolates linearly between a minimum and a maximum distance for
the obstacle, dObstacle_min and dObstacle_max.
•
The avoidance sets the gait target actuator to a constant and a variable part of
the direction from obstacle to robot. The strength of the variable part depends on
the distance to the obstacle, similar to the activation factor.
•
If the ball is between obstacle and robot, the variable avoidance is weakened,
such that the robot moves more aggressively behind the ball.
•
A stuck situation is indicated by a resulting gait target vector that is small in
length for a longer time. In this case, the robot may sidestep the obstacle, if the
ball is not between the obstacle in the front and the robot and is perceived on
one side of the obstacle (|Obstacle − Ball| > pi / 4 ). The action is cancelled, if
either the preconditions for sidestepping do not hold anymore or some time has
passed since sidestepping has been activated.
•
The deactivation of sidestepping after some time is important, because the
decision for the sidestep direction is made only once on activation.
B. Soccer Behaviors (Cont)
6) Avoiding Obstacles (Cont):
•
Summary:
•
After a fall, the robot needs valuable time to get back on its feet. The main
reason for our robots to fall is physical contact with other robots. Hence,
obstacle avoidance is an important feature.
•
The visual perception supplies the behavior with the nearest obstacle. If it
is detected closely in front of the robot, obstacle avoidance is activated.
The avoidance sets the gait target actuator to a constant and a variable part
of the direction from obstacle to robot, which norm is proportional to the
distance to the obstacle.
•
If the ball is between obstacle and robot, the variable avoidance is
weakened, such that the robot moves more aggressively behind the ball.
•
A stuck situation is indicated by a resulting gait target vector that is small in
length for a longer time.
•
In this case, the robot may sidestep the obstacle, if the ball is not between
the obstacle in the front and the robot and is perceived on one side of the
obstacle.
•
The action is canceled, if either the preconditions for sidestepping do not
hold anymore or a certain amount of time has elapsed since sidestepping
has been activated.
B. Soccer Behaviors (Cont)
7) Controlling the Gaze Orientation:
•
Although the robot has wide-angled views to the front and the rear, it cannot perceive
objects on the sides. Thus, a gaze control behavior is always active and primarily
keeps the ball within an angular range of ± pi/ 4 by twisting the upper trunk with the
trunk yaw joint.
•
If the ball is not visible or within range and the robot is localized, it aligns the upper
body onto the line between the goals to keep the localization landmarks visible. This is
achieved by keeping the angle to the line within the angular range of ± pi / 4 . The
twisting of the trunk is limited to ± pi/4 in each direction.
•
Summary: A gaze control behavior keeps the ball within an angular range of ±pi / 4 in
the front camera by rotating the upper trunk in yaw direction. If the ball is not visible or
within range and the robot is localized, it aligns the upper body with the line between
the goals to improve the visibility of the landmarks.
B. Soccer Behaviors (Cont)
8) Goalkeeping:
•
The goalkeeper’s objective apparently is to keep the ball out of the own goal. While the
ball is visible and is not within the kicking distance to the robot, the goalkeeping
behavior is active.
•
Otherwise, the robot behaves like a field player and tries to shoot the ball towards the
opponent goal. Hence, goalkeeping inhibits positioning behind the ball, kicking the
ball, and dribbling the ball towards the target.
•
Walking towards the ball and searching for the ball is not activated when playing as a
goalkeeper. The goalkeeper stands still until it reacts on the ball.
•
When the ball is close to the robot it lets it react immediately. It uses the angle to the
ball to determine the type of motion (diving left/right or bending forward). To achieve
fast reaction on an approaching ball, the visual perception supplies the difference of
the ball position between the last two images. The magnitude of this vector is
interpreted as approaching speed.
•
The goalkeeper does not react on small speeds. The type of the goalkeeper motion is
determined by the intersection point of the moving ball direction and the goal line.
•
At kick-off, the goalkeeper is placed in the goal. After a diving motion, it gets up and
repositions itself in the goal while facing the opponent goal.
B. Soccer Behaviors (Cont)
8) Goalkeeping:
•
Summary:
•
The goalkeeper’s objective apparently is to keep the ball out of the own goal.
•
It positions itself in the own goal on the line from own goal to ball, or, if the ball is
not visible, on the line between the goals.
•
Balls close to the robot let it react immediately and trigger a corresponding
goalie motion to capture the ball. To achieve fast reaction on an approaching ball,
the visual perception supplies an estimation of the ball velocity from two
successive frames.
•
The goalkeeper reacts on balls that have velocity larger than a fixed threshold.
The type of the goalkeeper motion, i.e. bending down or diving to a side, is
determined by the intersection point of the moving ball direction and the goal
line.
C. Team Behaviors
•
The importance of team behaviors is still low in the Humanoid League, as
only two players per team have competed so far.
•
In Bremen 2006, most teams assigned one player to keep the goal clear
and used the other player as field player.
•
In our team, the players share perceptions via wireless communication.
The ball perceptions communicated by other players are used for search.
For the soccer play with two field players, we implemented simple but
effective role negotiation between the players. As soon as one of our
players has control of the ball, the other player goes to a defensive
position between the ball and the own goal.
•
A player takes control of the ball, if it is close to the ball and perceived it
with high confidence. It loses control, if the ball gets far away or has low
confidence. The thresholds for taking and losing control implement
hystheresis to prevent oscillations of the control state.
VIII. TACTICS AND TEAM BEHAVIORS
•The soccer behaviors so far make use of egocentric information obtained from visual
perception. To implement team play and to act in an allocentric perspective, we introduced
a next higher level in our behavior framework that abstracts from the reactive, egocentric
soccer behaviors.
• On the basis of self-localization, tactical behaviors can configure the lower level soccer
behaviors by setting ball-target and target pose in Fig. 6. An illustration for the positioning of
offensive and defensive field players (green circles with orientation indicator):
• The offensive field player positions on the line from ball to target goal (yellow) with
sagittal and lateral offsets behind the ball (orange circle) on the blue cross, such that the
ball lies in front of the kicking leg.
•The defensive field player takes a defensive, supporting pose by positioning on the
direct line from ball to own goal in a certain distance to the ball. Allocentric coordinates
at a rate of 20.83Hz.
•To implement target-pose positioning, an additional behavior is necessary on the lower
level that inhibits all other behaviors on its level. Additionally, the tactical behaviors can
control, when the soccer behaviors are allowed to dribble or kick. For instance, dribbling
can be preferred over kicking. In this way, special game tactics can be implemented.
Also, the technical challenges of the RoboCup Humanoid League, i.e. obstacle
avoidance, slalom dribbling around poles, and passing between two field players, could
easily be implemented with this abstract interface.
VIII. TACTICS AND TEAM BEHAVIORS
Another main concept on this level is the role of the player within the soccer team.
• A player can act either as offensive field player, as defensive field player, or as
goalkeeper. If only one field player is on the field, it plays offensive.
• When the team consists of more than one field player, the field players negotiate
roles by claiming ball control. While no player is in control of the ball, all players
attack. If one of the players takes control, the other player switches to the defensive
role. A player may claim ball control, if it is not already claimed, relative ball position
and angle are within a certain threshold, and the player is positioned better behind the
ball than the other field player.
• As soon as the relative ball position and angle exceed a larger threshold or the
player detects a fall or performed a kick, it abandons ball control.
•To assess the positioning quality of the players, a positioning utility is calculated by
each player and communicated via WLAN to the other. The positioning utility depends
on the deviation from the relative target position behind the ball that is given in the
current game situation. Another application of the role concept is goal clearance by
the goalkeeper: the goalkeeper switches its role to field player, if the ball gets closer
than a certain distance. In this case it starts negotiating roles with other field players
like a standard field player.
VIII. TACTICS AND TEAM BEHAVIORS
We implemented the following behaviors on this level, excluding special behaviors for the
technical challenges:
•
Role Assignment: The behavior implements default role negotiation and role
switching as described above.
•
Positioning: Positioning on a target pose is used for kick-off and for technical
challenges.
•
Ball Handling: This behavior contains default ball handling skills, i.e. dribbling the
ball close to the goal instead. Final game of the TeenSize penalty kick tournament:
NimbRo vs. Pal Technology. NimbRo won the exciting match 5:4. Fig. 8. Final game
of the KidSize soccer tournament: NimbRo vs. Team-Osaka. NimbRo won the
exciting match 8:6 of kicking, and dribbling the ball from the opponent’s field corner
to the center of the opponent’s half.
•
Dribble around Obstacles: If the ball lies in front of a close obstacle, the player
dribbles the ball around the obstacle onto the side where the angle between goal and
obstacle is largest.
•
Dribble into Freespace: If an obstacle is located between the player and the balltarget in the opponent’s half, the player dribbles the ball onto the field side that is not
occupied by the obstacle.
C. Team Behaviors
•
The importance of team behaviors is still low in the Humanoid League, as
only two players per team have competed so far.
•
In Bremen 2006, most teams assigned one player to keep the goal clear
and used the other player as field player.
•
In our team, the players share perceptions via wireless communication.
The ball perceptions communicated by other players are used for search.
For the soccer play with two field players, we implemented simple but
effective role negotiation between the players. As soon as one of our
players has control of the ball, the other player goes to a defensive
position between the ball and the own goal.
•
A player takes control of the ball, if it is close to the ball and perceived it
with high confidence. It loses control, if the ball gets far away or has low
confidence. The thresholds for taking and losing control implement
hystheresis to prevent oscillations of the control state.
VII. CONCLUSIONS
•
The behavior control software for our 2006 KidSize robots, which successfully
took part as team NimbRo at the RoboCup 2006 competitions.
•
We implemented the control software in a framework that supports a hierarchy
of reactive behaviors. A kinematic interface for body parts made it possible to
abstract from individual joints when implementing basic skills like
omnidirectional walking. These basic skills made it possible to abstract from
body parts when implementing more complex soccer behaviors.
•
At this player level, our humanoid robots are very similar to wheeled or fourlegged soccer robots. Finally, at the team level, the players are coordinated
through role negotiation. Playing soccer with humanoid robots is a complex
task, and the development has only started.
•
So far, there has been significant progress in the Humanoid League, which
moved in its few years from remotely controlled robots to soccer games with
fully autonomous humanoids which is the most dynamic RoboCupSoccer
league.
•
We expect to see the rapid progress continue as more teams join the league.
Many research issues, however, must be resolved before the humanoid robots
reach the level of play shown in other RoboCupSoccer leagues. For example,
the humanoid robots must maintain their balance, even when disturbed.
VII. CONCLUSIONS (Cont)
•
Currently, we are working on postural reflexes, which should minimize the
number of falls [12]. In the next years, the speed of walking must be increased
significantly. We work on automatic gait optimization to increase both speed
and stability.
•
At higher speeds, running will become necessary. The visual perception of the
soccer world must become more robust against changes in lighting and other
interferences. We continuously improve our computer vision software to make
it more reliable.
•
The 2006 competition has shown that most teams were able to kick penalties,
but that soccer games are much richer and more interesting. In the team leader
meeting after the competition, the majority voted for abandoning penalty kick
as a separate competition. Instead, the KidSize teams will focus on soccer
games.
•
Unfortunately, most teams do not feel ready to increase the number of players
to more than two per team. This limits the possibilities for team play. As the
basic skills of the humanoid soccer robots improve every year, teams will be
able to focus on the more complex soccer behaviors and on team play. This will
make structured behavior engineering a key factor for success.
Behavior Programming for GT 2005
Motivation
The Sony robots have four legs with 3 DOF each, and a head with 3 DOF.
• Instead of kicking with a single kicking device like in the middle or small sized league, this
allows for a lot of different kicking skills using legs, body, or even head, which often require
preparatory movements. Instead of moving on wheels many different styles of walking are
used in different situations.
• With the introduction of Wireless LAN communication in the Sony League in 2002,
cooperative strategies became more complex and consequently require adequately
formulated high level behavior.
• For perception, the Sony robots need a set of perception behaviors, too. Because the field of
vision, the image quality and the quality of the other sensors are very limited, information has
to be collected over time, the movement of legs and head has to be coordinated with current
vision needs and the perception process needs to be supported by methods like active vision.
Motivation (cont)
• Usually, the related behaviors have to be merged with the other movement
skills. This huge set of abilities results in the need for a complex behavior
control architecture that integrates many behavior patterns.
• It should be modular in the meaning that behavior patterns can be reused in
different contexts. It has to support reactive and real-time decision making as
well as long term deliberative behaviors.
•The set of behaviors needs to be easy to extend - adding new behaviors should
not have side effects on other ones.
• It is found that C++ is not well suited for specifying agent behaviors. Especially
extension and maintenance of complex behavior control systems may become a
tedious and error prone task.
• High level behavior specification languages allow for a separation of the
behavior design from the implementation of the agent platform.
Related Work
• According to the dynamics of soccer, the agents act with only very limited
foresight. Most teams in RoboCup are using layered architectures, with
comparatively reactive behaviors (basic skills) at the lowest level.
• Ordering different behaviors on layers allows to follow different goals in parallel.
Behaviors on higher levels invoke or activate behaviors on lower levels. As long as
the architecture has to manage only few basic behaviors, the separation of
behaviors in two or three layers may be sufficient.
• It becomes very difficult to control more than a few basic behaviors without
introducing further hierarchies, when their usage depends on a careful analysis of
the situation, when they require complex preconditions to be achieved and when
their performance needs a considerable amount of time.
Related Work (cont)
• There are other attempts to use behavior languages in order to simplify the
process of behavior development. For example, GOLOG is an logic based robot
control language.
• Funge developed the cognitive modeling language (CML) for the domain of
computer games. Obst and Stolzenburg employ UML state charts for specifying
multiagent systems. They follow a layered state machine approach with a fixed
number of layers. They used UML because there exists a rich set of easy-to-adapt
editors for editing state charts.
• State machines are well suited for behavior modelling. The decision which action
is executed next depends not only on the environment but also on the last state.
That allows to keep behaviors stable and to define hysteresis between two
behaviors for avoiding oscillations when the sensor readings are noisy.
Agent Behavior with XABSL
• XABSL a flexible, open hierarchical behavior control architecture. It consists of
state machines which manage the transitions to new behaviors according to the last
state and the recent situation. In a flat architecture, the number of transitions
between states increases very fast with the number of states. Therefore we use
options to encapsulate a limited number of states and transitions according to their
abstractness.
• The options form a rooted directed acyclic graph. XABSL is an XML based
behavior language that allows to completely specify the behavior of autonomous
agents. The development of a robot control includes the design of a hierarchy of
options and the implementation of their internal state machines. XABSL supports
both tasks using the advantages of XML technologies.
• The XABSL framework contains a variety of visualization and debugging tools. The
runtime system XabslEngine executes the behaviors written in XABSL.
• XABSL allows the efficient integration of program parts from different groups. It is
possible to develop a new robot control with about 50 different behaviors in only two
weeks.
The Architecture behind XABSL
• an agent consists of a number of behavior modules called options. The options are
ordered in a rooted directed acyclic graph, the option graph, which may be
expanded into a tree. The terminal nodes of that graph are called basic behaviors
which generate the actions of the agent and are associated with basic skills.
• The task of the option graph is to activate and parameterize one of the basic
behaviors, which is then executed. Beginning from the root option, each active
option has to activate and parameterize another option on a lower level in the
graph or a basic behavior. Within options, the activation of behaviors on lower
levels is done by state machines. Each state has a subsequent option or a
subordinated basic behavior. There can be several states that have the same
subsequent option or basic behavior.
• Each state has a decision tree with transitions to other states at the leaves. The
decision is based on the world state and other sensory information and messages
from other agents can also be used.
• As timing is often important, the time how long the state is already active and the
time how long the option is already active can be taken into account. Additionally,
each state can set special requests, that influence the information processing or
determine how and where the robot should point its camera.
Option graph of a simplified Goalie
• Boxes denote options, ellipses
denote basic behaviors. The edges
show which other option or basic
behavior can be activated from within
an option.
• The internal state machine of the
option ”goalie-playing”. Circles denote
states, the circle with the two
horizontal lines denotes the initial
state. An edge between two states
indicates that there is at least one
transition from one state to the other.
•The dashed edges show which other
option or basic behavior becomes
activated when the corresponding
state is active.
The decision tree of the state ”get-to-ball”
• Graphical notation: The leaves of the tree are
transitions to other states. The dashed circle
denotes a transition to the own state.
• Pseudo code of the decision tree. Note that
both charts were generated automatically from
the XML source.
Behavior Specification in XML
The GermanTeam found that C++ is error prone and not very comfortable. The
source code became very large and it was quite hard to extend the behaviors.
Therefore the Extensible Agent Behavior Specification Language (XABSL) was
developed to simplify the process of specifying behaviors:
• XABSL is an XML dialect specified in XML Schema. The reasons to use XML
technologies instead of defining a new grammar from scratch were the big variety
and quality of existing editing, validation and processing tools (many XML Editors are
able to check if an XABSL document is valid at runtime), the possibility of easy
transformation from and to other languages as well as the general flexibility of data
represented in XML languages.
• Behaviors specified in XABSL can be easily visualized using XSLT and DotML. We
have implemented language elements for options, their states, and their decision
trees. Boolean logic (||, &&, !, ==, ! =, <, <=, > and >=) and simple arithmetic
operators (+, −, ,/ and %) can be used for conditional expressions. Custom arithmetic
functions (e.g. distance−to(x, y)) that are not part of the language can be easily
defined and used in instance documents.
• Symbols are defined in XABSL instance documents to formalize the interaction
with the software environment. Interaction means access to input functions and
variables (e. g. from the world state) and to output functions (e. g. to set requests for
other parts of the information processing). For each variable or function that shall be
used for conditions a symbol has to be defined. This makes the XABSL framework
independent from specific software environments and platforms.
An example:
<decimal-input-symbol name="ball.x" measure="mm“ description="The absolute x
position on the field"/>
<decimal-input-symbol name="utility-for-dribbling" measure="0..1“ description="Utility
for dribbling instead of passing/kicking"/>
<boolean-input-symbol name="goalie-should-jump-right“ description="A ball is right
ahead and rolls into to own goal"/>
The first symbol ”ball.x” simply refers to a variable in the world state of the agent,
”utility-for-dribbling” stands for a member function of an utility analyzer and ”goalieshould-jump-right” represents a complex predicate function that determines if a fast
moving ball is headed to the right portion of the own goal. In options, these symbols
then can be referenced.
The developer may decide
whether to express
complex conditions in
XABSL by combining
different input symbols with
boolean and decimal
operators or by
implementing the condition
as an analyzer function in
C++ and referencing the
function via a single input
symbol.
As the basic behaviors are
written in C++, prototypes
and parameter definitions
have to be specified in an
XABSL document so that
states can reference them.
The figures 1 and 2 were generated automatically from the XML source shown above.
Software Environment
• An XABSL behavior specification can be distributed over many files. Different XML
files for symbol definitions can be used, basic behavior definitions, predefined
conditions, agents and options.
•This helps larger teams of behavior developers to work in parallel. It is easier to
keep an overview over the whole agent and a version control system like CVS can
be easily used.
• Tools for generating three different types of documents from an XABSL instance
document set:
– An Intermediate Code which is executed by the XabslEngine because on
many embedded computing platforms (like Sony’s AIBO), XML parsers are not
available due to resource and portability constraints.
– Debug Symbols containing the names for all options, states, basic behaviors
and symbols make it possible to implement platform and application dependent
debugging tools for monitoring option and state activations as well as input and
output symbols.
– An extensive auto-generated HTML-documentation containing SVG-charts
for each agent, option and state which helps the developers to understand
what their behaviors do.
See XABSL source file and the XABSL web site for the language reference,
the XML schema files and examples.
The Runtime System XabslEngine
For running the compiled behavior on a target agent platform, the runtime environment
XabslEngine has been developed. The engine is meant to be platform and application
independent and can be easily employed on other robotic platforms. This results in a
variety of abstract helper classes that have to be adapted to the current software
environment.
The XabslEngine parses and executes the intermediate code. It links the symbols from
the XML specification that were used in the options and states to the variables and
functions of the agent platform. Therefore, for each used symbol an entity in the
software environment has to be registered to the engine. The following example
connects the C++ variable worldState.ballPosition.x to the XABSL symbol ”ball.x”:
myEngine.registerDecimalInputSymbol("ball.x", &worldState.ballPosition.x);
While options and their states are represented in XML, basic behaviors are written in
C++. They have to be derived from a common base class and registered to the engine.
The engine provides extensive debugging interfaces to be able to monitor the option and
state activations, the values of the symbols and the parameters of options and basic
behaviors. Instead of executing the engine from the root option, single options or basic
behaviors can be tested separately.
A complete documentation of the engine, along with the code, can be found
at the XABSL web site [14].
The hierarchical constitution of XABSL allows it to make many both very short-term
and reactive decisions and more deliberative and long-term decisions
co-instantaneous. The lower behaviors in the option hierarchy that are responsible
for ball handling react instantly on changes in the environment. The more high-level
behaviors like waiting for a pass, positioning or role changes try to prevent frequent
state changes to avoid oscillations.
The GermanTeam implemented over 50 different options in Fukuoka. About 10 team
members were involved in developing and tuning the behaviors. The modular
approach of XABSL made it easy to extend or advance the behaviors. New options
could easily be added to existing ones without having negative side effects. Better
solutions of existing options could be developed in parallel and were easily to
compare with the previous ones.
To help behavior control developers, an example agent was implemented for the
Ascii Robot Soccer environment. In this simple soccer simulation by Tucker Balch
the field is displayed in a 78 characters long and 21 lines wide text terminal. A team
of four ”>” players plays against a team of four ”<” players with an ”o” as the ball. All
agents retrieve the full information about the world and the set of possible actions is
very limited. This makes the implemented XABSL agent simple and easy to
understand. The example implementation containing the XabslEngine and the
visualization tools can also be downloaded from the XABSL web site.
Scenes from a video of a round robin game against the team Georgia Tech (4:1)
in Fukuoka: a) Use of communication. The first forward (1) performs a bicycle kick
directed to the opponent goal. The second forward (2) was told to wait in front of the
opponent goal to be able to help if the kick fails. b) Positioning. The second forward
(1) tries to dribble the ball into the opponent half. The defender (2) stays behind it to
support the forward. The first forward (3) waits in the opponent half for a pass.
Application:
XABSL is used for the Aibo German Team. Later on this approach was chosen for the
participation of the GermanTeam in the RoboCup 2002 in Fukuoka [9]. In the
competitions the GermanTeam won all its games except against the later finalists
from CMU and UNSW.
The strength of the team was based on a big set of different behavior patterns. For
instance the players employed over 16 different kicks in different situations. Amongst
them the bicycle kick is a good method for getting the ball behind the player without
previously turning around the ball. (cf. Fig. 4a) All these kicks require different
behaviors for approaching the ball. Some work better for bigger ball distances, some
require to grab the ball with the both front legs.
Varying ball handling behaviors were chosen depending on whether the ball was in
the opponent half, in the own half, at the left border, at the right border or in front of
the opponent goal. XABSL proved to be suitable for implementing and integrating all
these different abilities. On higher levels, a set of team strategies based on
communication was implemented.
As it is often disadvantageous when two players try to obtain the ball the robots
negotiated which of them handles the ball and which stays behind or waits for a
pass. The state based architecture of XABSL simplifies the developing of such
strategies. Each robot sends its option and state activations to all other robots so
that all players know what the others plan to do. However, since the wireless
communication is not always reliable, all strategies have to be able to resort to noncommunicative behavior, when necessary.
Complex positioning strategies were also employed. Each player had to care for an
area of responsibility which changed depending on the score, the number of own
players and the distribution of opponent players on the field. Although XABSL is a
state based architecture, continuous approaches can easily be integrated into the
behaviors. A potential field was employed to determine an optimal dribbling direction.
This direction was made available to the options by an input symbol. A Fuzzy Logic
based basic behavior for approaching the ball was implemented. Several options
used continuous utility models for state transitions.
Behavior Programming
Specific behavior description languages prove to be suitable replacements to
native programming language like C++ when the number and complexity of
behavior patterns of an agent increases.
• The XML based Extensible Agent Behavior Specification Language (XABSL)
simplifies the process of specifying complex behaviors and supports the
design of both very reactive and long term oriented behaviors.
• XABSL uses hierarchies of behavior modules called options that contain state
machines for decision making.
• Introduce the architecture behind XABSL, the formalization of that architecture
in XML and the software library XabslEngine that runs the formalized behavior on
an agent platform.
• The GermanTeam employed XABSL in the RoboCup Sony Four Legged
League competitions in Fukuoka.
52
3.8 Behavior Control
The module BehaviorControl is responsible for decision making based on the world state, the
game control data received from the RoboCup Game Manager, the motion request that is currently
being executed by the motion modules, and the team messages from other robots. It has no access
to lower layers of information processing. It outputs the following:
• A motion request that specifies the next motion of the robot,
• a head motion request that specifies the mode how the robot’s head is moved,
• a LED request that sets the states of the LEDs,
• a sound request that selects a sound file to be played by the robot’s loudspeaker,
• a behavior team message that is sent to other players by wireless communication.
This section describes in detail the implemented strategies and behaviors of the GermanTeam
2005. Those who are not familiar with the XABSL language should probably read appendix D
first.
The behaviors which the GermanTeam developed in XABSL for the RoboCup championships
2005 in Osaka are distributed among about 80 options. Figure 3.27 shows the option graph of
the soccer related behaviors.
In general, the lower behaviors in the option hierarchy such as ball handling or navigation,
have to react instantly on changes in the environment and are therefore very short-term and
reactive. The more high-level behaviors such as waiting for a pass, positioning, or role changes
The behaviors which the GermanTeam developed in XABSL for the RoboCup championships
2005 in Osaka are distributed among about 80 options.
Figure 3.27 shows the option graph of the soccer related behaviors.
•In general, the lower behaviors in the option hierarchy such as ball handling or navigation,
have to react instantly on changes in the environment and are therefore very short-term and
reactive.
•The more high-level behaviors such as waiting for a pass, positioning, or role changes try to
prevent frequent state changes to avoid oscillations and make more deliberative and longterm
decisions.
•This section describes from bottom to top how the GermanTeam’s robots play soccer starting
with basic capabilities and finishing with the high-level team strategies.
• An extensive automatically generated HTML documentation of these behaviors can be found
at http://www.ki.informatik.hu-berlin.de/XABSL/examples/gt2005/. It is recommended to use
this site as an additional source to this Section.
3.8.1
Ball Handling
3.8.1.1 Approaching
• “go-to-ball” behavior is responsible for walking to the ball, i.e. for ball approaching and
dribbling
• For the use in different contexts it provides following parameters:
•First, the body of the robot is always directed to the ball, restricted by the parameter
“max-turn-speed”.
•The maximum walk speed is given by the parameter “max-speed”, making higher
options responsible for slowing down near the ball.
•The “max-speed.y” parameter restricts the sideward component, allowing for
sprinting with the “dash” walk type.
•For dribbling and the “turn kick”, “y-offset” specifies a y offset with that the robot
shall arrive at the ball.
•If the robot is very close to the ball and if the ball is much to the left or right, the
translation component is almost completely inhibited, making the robot only turn in
order to avoid pushing the ball away with the front legs.
The “go-to-ball” basic behavior use option
“approach-ball”:
• “search-auto”: when robot is far away
from the ball. Here the head-control
mode is set: the head of the robot look
at the ball and (frequently, always after
a certain time of consecutively
perceived balls) shortly look around for
landmarks and obstacles to improve
self-localization.
• If robot gets closer to the ball than
specified in the option parameter “lookat-ball-distance”, in state “search-forball” the head control mode is set to
“search-for-ball”. This lets the head
look at the ball only.
• To avoid frequent changes between
these two states, there is a distance
hystheresis of 5 cm between them.
• In both states, the option “approachball-set-walk-speed”, which controls the
walk speed, is referenced.
Figure 3.28: Option “approach-ball” controls the head
movements while approaching the ball and
handles collisions and ball losses.
• “search-for-ball”: head scans are disadvantageous near the ball. The head control mode is set to
“search-for-ball”: Head look at the ball only.
•If the ball was not seen for (1) 1.3 seconds in the “search-auto” state, (2) 400 ms in the “searchfor-ball” state, then in state “ball-not-seen” the option “turn-for-ball” tries to redetect the ball.
• If the ball is seen again, the state “ball-just-found” remains active for 2 seconds, setting the
head control mode “search-for-ball” in order to avoid further ball losses due to scanning around
with “search-auto”.
•Option “approach-ball-set-walk-speed” controls the speed of
ball approaching. It is only used by option “approach-ball”.
• In state “fast”, the basic behavior “go-to-ball” is executed
with a fixed speed of 350 cm per second.
• If the robot gets closer to the ball than specified in
parameter “slow-down-distance” (minus 2,5 cm
hysteresis), in state “slow” the speed given in “slowspeed” is passed to “go-to-ball”.
• From the “fast” state, if the ball is farer away than 1200
cm and if the angle to the ball is between plus and minus 7
degrees, state “dash” becomes active.
• There “go-to-ball” is executed with walk type “dash”, a
faster but not omnidirectional walking gait.
• The ball approaching stops immediately after the ball was
not seen for a certain time. In this case, “approach-ball”
references the option “turn-for-ball” to redetect the ball.
Option “approach-ball-set-walk-speed” controls the speed of ball
approaching. b) Option “turn-for-ball” tries to redetect a previously lost ball.
•The ball approaching stops immediately
after the ball was not seen for a certain
time. In this case, “approach-ball”
references the option “turn-for-ball” to
redetect the ball.
•In the initial state “ball-not-seen”, the
basic behavior “stand” is executed. Note
that “stand” does not stop walking
immediately but continuously slows
down in order to avoid bumpy
movements if the ball is redetected fast.
• As “turn-for-ball” can be activated from
different contexts and situations, the time
how long state “ball-not-seen” remains
active depends on how long the ball was
not seen and where it was seen last.
• The state remains active for at least
800 ms which are needed for “stand” to
almost slow down.
•As long as the ball was seen 1.7
seconds before, “ball-not-seen” keeps
active to give the head control a chance
to make a complete scan around.
•If the ball was seen in the last 5
seconds and in the near, it is very likely
that the ball is at the side of the robot.
Therefore, in state “back-up” the robot
walks backward for1.5 seconds to
redetect the ball. If that fails (or from
“ball-not-seen” if all other conditions fail),
the state “ball-not-seen-left” or “ball-notseen-right” gets active, depending on
whether the ball was previously seen left
or right.
•The robot turns around using the “walk”
basic behavior. The head control mode
is set to “look-left” or “look-right”, letting
the robot look into the direction of
turning.
• Although the “turn-for-ball” option is not
activated anymore from “approach-ball”
when the ball is redetected, state “ballseen” becomes active when the ball is
seen again, turning the robot to the ball.
Figure 3.30: Option “approach-and-turn”
dribbles the ball into given direction by
pushing the ball with
the chest or pulling it around with the front
legs.
Figure 3.31: Option “grab-ball-with-head” grabs the ball with the head.
3.32: Option “carry-ball-fast” grabs and
walks with the ball while touching and
guiding it with
the head or the mouth. Optionally a kick
can be performed at the end oft the option.
Figure 3.33: Option “turn-and-release”
grabs the ball and pulls it around. The
actual job of lifting the
head in the right moment is done in the
head control.
Figure 3.34: a) The kick selection table for the goalie when the desired kick
direction is “forward” (in the sector between -15 and 15 degrees). If the current
position of the ball is in the outer blue areas, the “left-paw” or “right-paw” kick is
selected, in front of the robot (red area), kick “chest-strong”, and in a narrow
range more distant in front of the robot (brown area) “forward-kick-hard”. b) Data
recorded from kick experiments for the “left-paw” kick. The dots mark the
position where the ball was perceived before the kick started. The lines out of
the dots indicate in which direction and how far the ball was kicked in the
experiment. All kick experiments in that the ball was kicked into the “forward”
sector are highlighted blue. The area for “put-left” in a) was defined by taking
these highlighted entries into account. c) The goalie kick selection table for the
sector between 45 and 75 degrees. For the ball to the very left (purple
area), “put-left” is selected, close to the robot (red area) “hook-left”, and in the
brown area “head-left”. d) Kick experiments for the “head-left” kick, with those
entries highlighted where the ball was kicked
into the direction between 45 and 75 degrees.
Figure 3.35: Option “handle-ball” selects
between different behaviors for different
zones on the field.
Figure 3.36: a) Option “get-to-position-andavoid-obstacles” walks to a position
avoiding obstacles on
the way there. b) On top of that, “get-toball-and-avoid-obstacles” walks to the ball.
Figure 3.37: Option “position-supporternear-ball” positions the robot near the ball.
The speed is controlled
depending on the reliability of the ball
position.
Figure 3.39: The options a) “new-playingoffensive-supporter” and b) “new-playingdefensivesupporter”
decide where to position the robot.
Figure 3.40: Option “playing-supportermsh” intercepts kicks from the own team
and blocks kicks of the
other team.
References
[1] R. C. Arkin. Motor schema-based mobile robot navigation. TheInternational Journal of Robotics
Research, 8(4), 1989.
[2] R. C. Arkin. Behavior-Based Robotics. MIT Press, 1998.
[3] B. Bakker and J. Schmidhuber. Hierarchical reinforcement learning based on subgoal discovery
and subpolicy specialization. In Proceedings ofIAS-8, pages 438-445, 2004.
[4] T. Balch. The ascii robot soccer homepage, 1995. http://www- 2.cs.cmu.edu/-trb/soccer/.
[5] R. A. Brooks. A robust layered control system for a mobile robot. IEEE Journal of Robotics and
Automation, 2(1):14-23, 1986.
[6] R. A. Brooks. The behavior language; user's guide. Technical Report AIM- 1127, MIT Artificial
Intelligence Lab, 1990.
[7] R. A. Brooks. Intelligence without representation. Artificial Intelligence, 47:139-159, 1991.
[8] T. Buchheim et al. Team description paper 2004 CoPS stuttgart. In RoboCup 2004: Robot Soccer
World Cup VIII, LNAI. Springer, 2005.
[9] M. Fujita and H. Kitano. Development of an autonomous quadruped robot for robot entertainment.
Autonomous Robots, 5(1):7-18, 1998.
[10] J. D. Funge. Artificial Intelligence For Computer Games: An Introduction. AK Peters, Ltd, 2004.
[11] E. Gat. Integrating planning and reacting in a heterogeneous asynchronous architecture for
controlling real-world mobile robots. In Proceedings AAAI-92, pages 809-815. MIT Press, 1992.
[12] H. Kitano, M. Asada, Y Kuniyoshi, I. Noda, and E. Osawa. RoboCup: The robot world cup
initiative. In Proceedings of Agents'97, pages 340- 347. ACM Press, 1997.
[13] K. Konolige. COLBERT: A language for reactive control in Sapphira. In KI-97: Advances in
Artificial Intelligence, number 1303 in LNAI, pages 31-52. Springer, 1997.
References
[13] K. Konolige. COLBERT: A language for reactive control in Sapphira. In KI-97: Advances in
Artificial Intelligence, number 1303 in LNAI, pages 31-52. Springer, 1997.
[14] H. J. Levesque, R. Reiter, Y Lesperance, F. Lin, and R. B. Scherl. GOLOG: A logic programming
language for dynamic domains. Journal of Logic Programming, 31(1-3):59-83, 1997.
[15] M. Loetzsch, M. Risler, and M. Juingel. XABSL web site, 2006. http://www.informatik.huberlin.de/ki/XABSL.
[16] M. Lotzsch. XABSL - a behavior engineering system for autonomousagents. Diploma thesis.
Humboldt-Universitat zu Berlin, 2004. Available online: http://www.martinloetzsch.de/papers/diploma-thesis.pdf.
[17] M. Lotzsch, J. Bach, H.-D. Burkhard, and M. Jiingel. Designing agent behavior with the
extensible agent behavior specification language XABSL. In RoboCup 2003: Robot Soccer World
Cup VII, volume 3020 of LNAI, pages 114-124. Springer, 2004.
[18] D. MacKenzie, R. Arkin, and J. Cameron. Multiagent mission specification and execution.
Autonomous Robots, 4(1):29-52, 1997.
[19] P. Maes. Situated agents can have goals. In Designing Autonomous Agents: Theory and Practice
from Biology to Engineering and Back, pages 49-70. MIT Press, 1990.
[20] D. McDermott. Pddl the planning domain definition language, 1998.
[21] S. Rabin, editor. AI Game Programming Wisdom, volume 2. Charles River Media, Inc., 2002.
[22] T. Rofer et al. Germanteam 2005. In RoboCup 2005: Robot Soccer World Cup IX, LNAI. Springer,
2006. To appear.
[23] S. Russel and P. Norvig. Artificial Intelligence, a Modern Approach. Prentice Hall, 1995.
[24] T. Ziemke. Rethinking grounding. In Understanding Representation in the Cognitive Sciences Does Representation Need Reality?, pages 177-190. Plenum Press, 1999.
Summary
• R-type components are:
– Instruction Memory (IM)
– Register File (RF)
– Arithmetic and Logic Unit (ALU)
• R-type requires 4 clocks (IM, RF, ALU, and WB)
• Control is generated based on instruction type (OPCODE)
• Prepare for next lecture
– Examine the datapath components needed for Load/Store -type
instruction
– Interconnect the needed components
– Build the datapath Load/Store –type
Thank you.
Any question…
Download