>xabsl
Behavior Documentation
>
Index
>Agents
>Symbols
>Basic Behaviors
>Options
>> playing_goalie
>>>
localize
>>>
position
>>>
clear_ball
Option playing_goalie
The goalie playing
State Machine
This browser can't display the SVG file
svg/option_playing_goalie.svg
.
The
Adobe SVG Viewer 3.0
can be downloaded from
http://www.adobe.com/svg/viewer/install/main.html
State localize
If that state is active,
>
The option
localize
is executed.
The decision tree:
This browser can't display the SVG file
svg/option_playing_goalie_state_localize.svg
.
The
Adobe SVG Viewer 3.0
can be downloaded from
http://www.adobe.com/svg/viewer/install/main.html
Pseudo code of the decision tree:
/** */
if
(
robot_pose.is_valid
()
)
{
goto
position
;
}
else
{
stay;
}
State position
If that state is active,
>
This enumerated output symbol is set:
head.control_mode
=
head.control_mode.goalie_head_control
>
The option
goalie_position
is executed.
>
The option
goalie_block
is executed.
The decision tree:
This browser can't display the SVG file
svg/option_playing_goalie_state_position.svg
.
The
Adobe SVG Viewer 3.0
can be downloaded from
http://www.adobe.com/svg/viewer/install/main.html
Pseudo code of the decision tree:
/** Ball in penalty area, goalie near goal */
if
(
(
ball.was_seen
()
)
&&
(
ball.position.field.x
()
<
field.own_penalty_area.x
()
)
&&
(
abs
(
ball.position.field.y
()
)
<
field.left_penalty_area.y
()
)
&&
(
robot_pose.x
()
< (
field.own_penalty_area.x
()
+ 100)
)
&&
(
abs
(
robot_pose.y
()
)
< (
field.left_penalty_area.y
()
+ 100)
)
)
{
goto
clear_ball
;
}
else
{
stay;
}
State clear_ball
If that state is active,
>
This enumerated output symbol is set:
head.control_mode
=
head.control_mode.search_for_ball
>
The option
goalie_clear_ball
is executed.
The decision tree:
This browser can't display the SVG file
svg/option_playing_goalie_state_clear_ball.svg
.
The
Adobe SVG Viewer 3.0
can be downloaded from
http://www.adobe.com/svg/viewer/install/main.html
Pseudo code of the decision tree:
/** ball is handled */
if
(
strategy.ball_is_grabbed
)
{
stay;
}
else
{
/** */
if
(
state_time
> 1500
)
{
goto
position
;
}
else
{
stay;
}
}