Option kickoff_position

Positions a player depending on its number and the kickoff-team

State Machine

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



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

State orientate

If that state is active,
 >  This enumerated output symbol is set:
    head.control_mode  = 
head.control_mode.search_for_landmarks
 >  This enumerated output symbol is set:
    motion.type  = 
motion.type.stand
 
The decision tree:
  This browser can't display the SVG file svg/option_kickoff_position_state_orientate.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 (
(selfloc.time_since_last_seen_two_landmarks() > 5000)
|| 
(
!(robot_pose.is_valid() )
)
)
{
  
goto orientate;
}
else
{
  
/** We have kickoff */
if ( game.kickoff_team() == game.own_team_color() )
{
  
/** */
if ( game.player_number() == 1)
{
  
goto position_goalie;
}
else
{
  
/** */
if ( game.player_number() == 2)
{
  
goto position_striker;
}
else
{
  
/** */
if ( game.player_number() == 3)
{
  
goto position_back_middle_left;
}
else
{
  
/** */
if ( game.player_number() == 4)
{
  
goto position_back_middle_right;
}
else
{
  
goto position_striker_helper;
}
}
}
}
}
else
{
  
/** */
if ( true)
{
  
/** */
if ( game.player_number() == 1)
{
  
goto position_goalie;
}
else
{
  
/** */
if ( game.player_number() == 2)
{
  
goto position_back_left;
}
else
{
  
/** */
if ( game.player_number() == 3)
{
  
goto position_back_middle_left;
}
else
{
  
/** */
if ( game.player_number() == 4)
{
  
goto position_back_middle_right;
}
else
{
  
goto position_back_right;
}
}
}
}
}
else
{
  
stay;
}
}
}

State position_goalie

If that state is active,
 >  This enumerated output symbol is set:
    head.control_mode  = 
head.control_mode.search_for_landmarks
 >  The option go_to_point_smart_avoid_collisions is executed. Parameters:
    go_to_point_smart_avoid_collisions.x  =  (field.own_ground_line.x() + 150) ;
    go_to_point_smart_avoid_collisions.y  =  0 ;
    go_to_point_smart_avoid_collisions.angle  =  0 ;
 
The decision tree:
  This browser can't display the SVG file svg/option_kickoff_position_state_position_goalie.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 (
(selfloc.time_since_last_seen_two_landmarks() > 5000)
|| 
(
!(robot_pose.is_valid() )
)
)
{
  
goto orientate;
}
else
{
  
/** We have kickoff */
if ( game.kickoff_team() == game.own_team_color() )
{
  
/** */
if ( game.player_number() == 1)
{
  
goto position_goalie;
}
else
{
  
/** */
if ( game.player_number() == 2)
{
  
goto position_striker;
}
else
{
  
/** */
if ( game.player_number() == 3)
{
  
goto position_back_middle_left;
}
else
{
  
/** */
if ( game.player_number() == 4)
{
  
goto position_back_middle_right;
}
else
{
  
goto position_striker_helper;
}
}
}
}
}
else
{
  
/** */
if ( true)
{
  
/** */
if ( game.player_number() == 1)
{
  
goto position_goalie;
}
else
{
  
/** */
if ( game.player_number() == 2)
{
  
goto position_back_left;
}
else
{
  
/** */
if ( game.player_number() == 3)
{
  
goto position_back_middle_left;
}
else
{
  
/** */
if ( game.player_number() == 4)
{
  
goto position_back_middle_right;
}
else
{
  
goto position_back_right;
}
}
}
}
}
else
{
  
stay;
}
}
}

State position_back_left

If that state is active,
 >  This enumerated output symbol is set:
    head.control_mode  = 
head.control_mode.search_for_landmarks
 >  The option go_to_point_smart_avoid_collisions is executed. Parameters:
    go_to_point_smart_avoid_collisions.x  =  ((field.own_ground_line.x() / 2) - 400) ;
    go_to_point_smart_avoid_collisions.y  =  ((field.left_field_border.y() * 3) / 4) ;
    go_to_point_smart_avoid_collisions.angle  =  -45 ;
 
The decision tree:
  This browser can't display the SVG file svg/option_kickoff_position_state_position_back_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 (
(selfloc.time_since_last_seen_two_landmarks() > 5000)
|| 
(
!(robot_pose.is_valid() )
)
)
{
  
goto orientate;
}
else
{
  
/** We have kickoff */
if ( game.kickoff_team() == game.own_team_color() )
{
  
/** */
if ( game.player_number() == 1)
{
  
goto position_goalie;
}
else
{
  
/** */
if ( game.player_number() == 2)
{
  
goto position_striker;
}
else
{
  
/** */
if ( game.player_number() == 3)
{
  
goto position_back_middle_left;
}
else
{
  
/** */
if ( game.player_number() == 4)
{
  
goto position_back_middle_right;
}
else
{
  
goto position_striker_helper;
}
}
}
}
}
else
{
  
/** */
if ( true)
{
  
/** */
if ( game.player_number() == 1)
{
  
goto position_goalie;
}
else
{
  
/** */
if ( game.player_number() == 2)
{
  
goto position_back_left;
}
else
{
  
/** */
if ( game.player_number() == 3)
{
  
goto position_back_middle_left;
}
else
{
  
/** */
if ( game.player_number() == 4)
{
  
goto position_back_middle_right;
}
else
{
  
goto position_back_right;
}
}
}
}
}
else
{
  
stay;
}
}
}

State position_back_right

If that state is active,
 >  This enumerated output symbol is set:
    head.control_mode  = 
head.control_mode.search_for_landmarks
 >  The option go_to_point_smart_avoid_collisions is executed. Parameters:
    go_to_point_smart_avoid_collisions.x  =  ((field.own_ground_line.x() / 2) - 400) ;
    go_to_point_smart_avoid_collisions.y  =  ((field.right_field_border.y() * 3) / 4) ;
    go_to_point_smart_avoid_collisions.angle  =  45 ;
 
The decision tree:
  This browser can't display the SVG file svg/option_kickoff_position_state_position_back_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 (
(selfloc.time_since_last_seen_two_landmarks() > 5000)
|| 
(
!(robot_pose.is_valid() )
)
)
{
  
goto orientate;
}
else
{
  
/** We have kickoff */
if ( game.kickoff_team() == game.own_team_color() )
{
  
/** */
if ( game.player_number() == 1)
{
  
goto position_goalie;
}
else
{
  
/** */
if ( game.player_number() == 2)
{
  
goto position_striker;
}
else
{
  
/** */
if ( game.player_number() == 3)
{
  
goto position_back_middle_left;
}
else
{
  
/** */
if ( game.player_number() == 4)
{
  
goto position_back_middle_right;
}
else
{
  
goto position_striker_helper;
}
}
}
}
}
else
{
  
/** */
if ( true)
{
  
/** */
if ( game.player_number() == 1)
{
  
goto position_goalie;
}
else
{
  
/** */
if ( game.player_number() == 2)
{
  
goto position_back_left;
}
else
{
  
/** */
if ( game.player_number() == 3)
{
  
goto position_back_middle_left;
}
else
{
  
/** */
if ( game.player_number() == 4)
{
  
goto position_back_middle_right;
}
else
{
  
goto position_back_right;
}
}
}
}
}
else
{
  
stay;
}
}
}

State position_back_middle_left

If that state is active,
 >  This enumerated output symbol is set:
    head.control_mode  = 
head.control_mode.search_for_landmarks
 >  The option go_to_point_smart_avoid_collisions is executed. Parameters:
    go_to_point_smart_avoid_collisions.x  =  ((field.own_ground_line.x() / 2) - 400) ;
    go_to_point_smart_avoid_collisions.y  =  (field.left_field_border.y() / 4) ;
    go_to_point_smart_avoid_collisions.angle  =  -30 ;
 
The decision tree:
  This browser can't display the SVG file svg/option_kickoff_position_state_position_back_middle_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 (
(selfloc.time_since_last_seen_two_landmarks() > 5000)
|| 
(
!(robot_pose.is_valid() )
)
)
{
  
goto orientate;
}
else
{
  
/** We have kickoff */
if ( game.kickoff_team() == game.own_team_color() )
{
  
/** */
if ( game.player_number() == 1)
{
  
goto position_goalie;
}
else
{
  
/** */
if ( game.player_number() == 2)
{
  
goto position_striker;
}
else
{
  
/** */
if ( game.player_number() == 3)
{
  
goto position_back_middle_left;
}
else
{
  
/** */
if ( game.player_number() == 4)
{
  
goto position_back_middle_right;
}
else
{
  
goto position_striker_helper;
}
}
}
}
}
else
{
  
/** */
if ( true)
{
  
/** */
if ( game.player_number() == 1)
{
  
goto position_goalie;
}
else
{
  
/** */
if ( game.player_number() == 2)
{
  
goto position_back_left;
}
else
{
  
/** */
if ( game.player_number() == 3)
{
  
goto position_back_middle_left;
}
else
{
  
/** */
if ( game.player_number() == 4)
{
  
goto position_back_middle_right;
}
else
{
  
goto position_back_right;
}
}
}
}
}
else
{
  
stay;
}
}
}

State position_back_middle_right

If that state is active,
 >  This enumerated output symbol is set:
    head.control_mode  = 
head.control_mode.search_for_landmarks
 >  The option go_to_point_smart_avoid_collisions is executed. Parameters:
    go_to_point_smart_avoid_collisions.x  =  ((field.own_ground_line.x() / 2) - 400) ;
    go_to_point_smart_avoid_collisions.y  =  (field.right_field_border.y() / 4) ;
    go_to_point_smart_avoid_collisions.angle  =  30 ;
 
The decision tree:
  This browser can't display the SVG file svg/option_kickoff_position_state_position_back_middle_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 (
(selfloc.time_since_last_seen_two_landmarks() > 5000)
|| 
(
!(robot_pose.is_valid() )
)
)
{
  
goto orientate;
}
else
{
  
/** We have kickoff */
if ( game.kickoff_team() == game.own_team_color() )
{
  
/** */
if ( game.player_number() == 1)
{
  
goto position_goalie;
}
else
{
  
/** */
if ( game.player_number() == 2)
{
  
goto position_striker;
}
else
{
  
/** */
if ( game.player_number() == 3)
{
  
goto position_back_middle_left;
}
else
{
  
/** */
if ( game.player_number() == 4)
{
  
goto position_back_middle_right;
}
else
{
  
goto position_striker_helper;
}
}
}
}
}
else
{
  
/** */
if ( true)
{
  
/** */
if ( game.player_number() == 1)
{
  
goto position_goalie;
}
else
{
  
/** */
if ( game.player_number() == 2)
{
  
goto position_back_left;
}
else
{
  
/** */
if ( game.player_number() == 3)
{
  
goto position_back_middle_left;
}
else
{
  
/** */
if ( game.player_number() == 4)
{
  
goto position_back_middle_right;
}
else
{
  
goto position_back_right;
}
}
}
}
}
else
{
  
stay;
}
}
}

State position_striker_helper

If that state is active,
 >  This enumerated output symbol is set:
    head.control_mode  = 
head.control_mode.search_for_landmarks
 >  The option go_to_point_smart_avoid_collisions is executed. Parameters:
    go_to_point_smart_avoid_collisions.x  =  -150 ;
    go_to_point_smart_avoid_collisions.y  =  (field.right_field_border.y() / 2) ;
    go_to_point_smart_avoid_collisions.angle  =  0 ;
 
The decision tree:
  This browser can't display the SVG file svg/option_kickoff_position_state_position_striker_helper.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 (
(selfloc.time_since_last_seen_two_landmarks() > 5000)
|| 
(
!(robot_pose.is_valid() )
)
)
{
  
goto orientate;
}
else
{
  
/** We have kickoff */
if ( game.kickoff_team() == game.own_team_color() )
{
  
/** */
if ( game.player_number() == 1)
{
  
goto position_goalie;
}
else
{
  
/** */
if ( game.player_number() == 2)
{
  
goto position_striker;
}
else
{
  
/** */
if ( game.player_number() == 3)
{
  
goto position_back_middle_left;
}
else
{
  
/** */
if ( game.player_number() == 4)
{
  
goto position_back_middle_right;
}
else
{
  
goto position_striker_helper;
}
}
}
}
}
else
{
  
/** */
if ( true)
{
  
/** */
if ( game.player_number() == 1)
{
  
goto position_goalie;
}
else
{
  
/** */
if ( game.player_number() == 2)
{
  
goto position_back_left;
}
else
{
  
/** */
if ( game.player_number() == 3)
{
  
goto position_back_middle_left;
}
else
{
  
/** */
if ( game.player_number() == 4)
{
  
goto position_back_middle_right;
}
else
{
  
goto position_back_right;
}
}
}
}
}
else
{
  
stay;
}
}
}

State position_striker

If that state is active,
 >  This enumerated output symbol is set:
    head.control_mode  = 
head.control_mode.search_for_middle_circle
 >  The option go_to_point_smart_avoid_collisions is executed. Parameters:
    go_to_point_smart_avoid_collisions.x  =  ((0 - field.center_circle_radius() ) - 150) ;
    go_to_point_smart_avoid_collisions.y  =  0 ;
    go_to_point_smart_avoid_collisions.angle  =  0 ;
 
The decision tree:
  This browser can't display the SVG file svg/option_kickoff_position_state_position_striker.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 (
(selfloc.time_since_last_seen_two_landmarks() > 5000)
|| 
(
!(robot_pose.is_valid() )
)
)
{
  
goto orientate;
}
else
{
  
/** We have kickoff */
if ( game.kickoff_team() == game.own_team_color() )
{
  
/** */
if ( game.player_number() == 1)
{
  
goto position_goalie;
}
else
{
  
/** */
if ( game.player_number() == 2)
{
  
goto position_striker;
}
else
{
  
/** */
if ( game.player_number() == 3)
{
  
goto position_back_middle_left;
}
else
{
  
/** */
if ( game.player_number() == 4)
{
  
goto position_back_middle_right;
}
else
{
  
goto position_striker_helper;
}
}
}
}
}
else
{
  
/** */
if ( true)
{
  
/** */
if ( game.player_number() == 1)
{
  
goto position_goalie;
}
else
{
  
/** */
if ( game.player_number() == 2)
{
  
goto position_back_left;
}
else
{
  
/** */
if ( game.player_number() == 3)
{
  
goto position_back_middle_left;
}
else
{
  
/** */
if ( game.player_number() == 4)
{
  
goto position_back_middle_right;
}
else
{
  
goto position_back_right;
}
}
}
}
}
else
{
  
stay;
}
}
}