Option position_offensive_supporter

Parameters of that option:
ParameterTypeMeasureRangeDescription
position_offensive_supporter.ball_xdecimal
position_offensive_supporter.ball_ydecimal

State Machine

This browser can't display the SVG file svg/option_position_offensive_supporter.svg.



The Adobe SVG Viewer 3.0 can be downloaded from http://www.adobe.com/svg/viewer/install/main.html

State decide_side

If that state is active,
 
The decision tree:
  This browser can't display the SVG file svg/option_position_offensive_supporter_state_decide_side.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 ( @position_offensive_supporter.ball_y > (field.left_sideline.y() - 1200))
{
  
goto position_at_right;
}
else
{
  
/** */
if ( @position_offensive_supporter.ball_y < (field.right_sideline.y() + 1200))
{
  
goto position_at_left;
}
else
{
  
/** */
if ( (@position_offensive_supporter.ball_y - robot_pose.y() ) > 0)
{
  
goto position_at_right;
}
else
{
  
goto position_at_left;
}
}
}

State position_at_left

If that state is active,
 >  The option position_offensive_supporter_near_ball is executed. Parameters:
    position_offensive_supporter_near_ball.ball_x  =  @position_offensive_supporter.ball_x ;
    position_offensive_supporter_near_ball.ball_y  =  @position_offensive_supporter.ball_y ;
    position_offensive_supporter_near_ball.left  =  true ;
 
The decision tree:
  This browser can't display the SVG file svg/option_position_offensive_supporter_state_position_at_left.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 ( @position_offensive_supporter.ball_x < -1500)
{
  
/** */
if ( @position_offensive_supporter.ball_y > 0)
{
  
goto wait_for_throw_in_left;
}
else
{
  
goto wait_for_throw_in_right;
}
}
else
{
  
/** */
if ( @position_offensive_supporter.ball_y > (field.left_sideline.y() - 1200))
{
  
goto position_at_right;
}
else
{
  
/** */
if ( @position_offensive_supporter.ball_y < (field.right_sideline.y() + 1500))
{
  
stay;
}
else
{
  
/** */
if ( (@position_offensive_supporter.ball_y - robot_pose.y() ) > 300)
{
  
goto position_at_right;
}
else
{
  
stay;
}
}
}
}

State position_at_right

If that state is active,
 >  The option position_offensive_supporter_near_ball is executed. Parameters:
    position_offensive_supporter_near_ball.ball_x  =  @position_offensive_supporter.ball_x ;
    position_offensive_supporter_near_ball.ball_y  =  @position_offensive_supporter.ball_y ;
    position_offensive_supporter_near_ball.left  =  false ;
 
The decision tree:
  This browser can't display the SVG file svg/option_position_offensive_supporter_state_position_at_right.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 ( @position_offensive_supporter.ball_x < -1500)
{
  
/** */
if ( @position_offensive_supporter.ball_y > 0)
{
  
goto wait_for_throw_in_left;
}
else
{
  
goto wait_for_throw_in_right;
}
}
else
{
  
/** */
if ( @position_offensive_supporter.ball_y > (field.left_sideline.y() - 1500))
{
  
stay;
}
else
{
  
/** */
if ( @position_offensive_supporter.ball_y < (field.right_sideline.y() + 1200))
{
  
goto position_at_left;
}
else
{
  
/** */
if ( (@position_offensive_supporter.ball_y - robot_pose.y() ) < -300)
{
  
goto position_at_left;
}
else
{
  
stay;
}
}
}
}

State wait_for_throw_in_left

If that state is active,
 >  The option go_to_point_avoid_collisions is executed. Parameters:
    go_to_point_avoid_collisions.x  =  300 ;
    go_to_point_avoid_collisions.y  =  (field.left_sideline.y() - 400) ;
    go_to_point_avoid_collisions.angle  =  180 ;
 
The decision tree:
  This browser can't display the SVG file svg/option_position_offensive_supporter_state_wait_for_throw_in_left.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 ( @position_offensive_supporter.ball_x > -1000)
{
  
goto decide_side;
}
else
{
  
/** */
if ( @position_offensive_supporter.ball_y < -500)
{
  
goto wait_for_throw_in_right;
}
else
{
  
stay;
}
}

State wait_for_throw_in_right

If that state is active,
 >  The option go_to_point_avoid_collisions is executed. Parameters:
    go_to_point_avoid_collisions.x  =  300 ;
    go_to_point_avoid_collisions.y  =  (field.right_sideline.y() + 400) ;
    go_to_point_avoid_collisions.angle  =  180 ;
 
The decision tree:
  This browser can't display the SVG file svg/option_position_offensive_supporter_state_wait_for_throw_in_right.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 ( @position_offensive_supporter.ball_x > -1000)
{
  
goto decide_side;
}
else
{
  
/** */
if ( @position_offensive_supporter.ball_y > 500)
{
  
goto wait_for_throw_in_left;
}
else
{
  
stay;
}
}