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;
}
}