Option go_to_ball_and_kick_sideways

Parameters of that option:
ParameterTypeMeasureRangeDescription
go_to_ball_and_kick_sideways.left_sidebooleantrue/ false

State Machine

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



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

State go_to_ball

If that state is active,
 >  This boolean output symbol is set:
    strategy.ball_is_grabbed  = 
false
 >  The option go_to_ball is executed.
 
The decision tree:
  This browser can't display the SVG file svg/option_go_to_ball_and_kick_sideways_state_go_to_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:
 
/** */
if ( ball.time_since_last_seen() > 3000)
{
  
goto search_for_ball;
}
else
{
  
/** */
if (
(ball.distance() < 200)
&& 
(abs( ball.angle() ) < 20)
&& 
(ball.was_seen() )
&& 
(@go_to_ball_and_kick_sideways.left_side)
)
{
  
goto kick_left;
}
else
{
  
/** */
if (
(ball.distance() < 200)
&& 
(abs( ball.angle() ) < 20)
&& 
(ball.was_seen() )
&& 
(
!(@go_to_ball_and_kick_sideways.left_side)
)
)
{
  
goto kick_right;
}
else
{
  
stay;
}
}
}

State kick_left

If that state is active,
 >  This boolean output symbol is set:
    strategy.ball_is_grabbed  = 
true
 >  This enumerated output symbol is set:
    head.control_mode  = 
head.control_mode.none
 >  The option kick_ball_with_head is executed. Parameters:
    kick_ball_with_head.left_side  =  true ;
 >  This enumerated output symbol is set:
    motion.type  = 
motion.type.walk
 >  This enumerated output symbol is set:
    motion.walk_type  = 
motion.walk_type.normal
 >  This decimal output symbol is set:
    motion.walk_speed.x  = 
150
 >  This decimal output symbol is set:
    motion.walk_speed.y  = 
0
 >  This decimal output symbol is set:
    motion.walk_speed.rot  = 
0
 
The decision tree:
  This browser can't display the SVG file svg/option_go_to_ball_and_kick_sideways_state_kick_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 ( action_done)
{
  
goto after_kick_left;
}
else
{
  
stay;
}

State kick_right

If that state is active,
 >  This boolean output symbol is set:
    strategy.ball_is_grabbed  = 
true
 >  This enumerated output symbol is set:
    head.control_mode  = 
head.control_mode.none
 >  The option kick_ball_with_head is executed. Parameters:
    kick_ball_with_head.left_side  =  false ;
 >  This enumerated output symbol is set:
    motion.type  = 
motion.type.walk
 >  This enumerated output symbol is set:
    motion.walk_type  = 
motion.walk_type.normal
 >  This decimal output symbol is set:
    motion.walk_speed.x  = 
150
 >  This decimal output symbol is set:
    motion.walk_speed.y  = 
0
 >  This decimal output symbol is set:
    motion.walk_speed.rot  = 
0
 
The decision tree:
  This browser can't display the SVG file svg/option_go_to_ball_and_kick_sideways_state_kick_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 ( action_done)
{
  
goto after_kick_right;
}
else
{
  
stay;
}

State after_kick_left

If that state is active,
 >  This boolean output symbol is set:
    strategy.ball_is_grabbed  = 
true
 >  This boolean output symbol is set:
    strategy.ball_was_kicked  = 
true
 >  This enumerated output symbol is set:
    motion.type  = 
motion.type.walk
 >  This decimal output symbol is set:
    motion.walk_speed.x  = 
150
 >  This decimal output symbol is set:
    motion.walk_speed.y  = 
0
 >  This decimal output symbol is set:
    motion.walk_speed.rot  = 
0
 >  This enumerated output symbol is set:
    head.control_mode  = 
head.control_mode.none
 >  This enumerated output symbol is set:
    head.motion_type  = 
head.motion_type.direct
 >  This enumerated output symbol is set:
    head.pid_setting  = 
head.pid_setting.normal
 >  This decimal output symbol is set:
    head.neck_tilt  = 
-30
 >  This decimal output symbol is set:
    head.head_pan  = 
65
 >  This decimal output symbol is set:
    head.head_tilt  = 
10
 >  This decimal output symbol is set:
    head.mouth  = 
0
 
The decision tree:
  This browser can't display the SVG file svg/option_go_to_ball_and_kick_sideways_state_after_kick_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 ( ball.was_seen() )
{
  
goto finished;
}
else
{
  
/** */
if ( state_time > 200)
{
  
goto sweep;
}
else
{
  
stay;
}
}

State after_kick_right

If that state is active,
 >  This boolean output symbol is set:
    strategy.ball_is_grabbed  = 
true
 >  This boolean output symbol is set:
    strategy.ball_was_kicked  = 
true
 >  This enumerated output symbol is set:
    motion.type  = 
motion.type.walk
 >  This decimal output symbol is set:
    motion.walk_speed.x  = 
150
 >  This decimal output symbol is set:
    motion.walk_speed.y  = 
0
 >  This decimal output symbol is set:
    motion.walk_speed.rot  = 
0
 >  This enumerated output symbol is set:
    head.control_mode  = 
head.control_mode.none
 >  This enumerated output symbol is set:
    head.motion_type  = 
head.motion_type.direct
 >  This enumerated output symbol is set:
    head.pid_setting  = 
head.pid_setting.normal
 >  This decimal output symbol is set:
    head.neck_tilt  = 
-30
 >  This decimal output symbol is set:
    head.head_pan  = 
-65
 >  This decimal output symbol is set:
    head.head_tilt  = 
10
 >  This decimal output symbol is set:
    head.mouth  = 
0
 
The decision tree:
  This browser can't display the SVG file svg/option_go_to_ball_and_kick_sideways_state_after_kick_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 ( ball.was_seen() )
{
  
goto finished;
}
else
{
  
/** */
if ( state_time > 200)
{
  
goto sweep;
}
else
{
  
stay;
}
}

State sweep

If that state is active,
 >  This boolean output symbol is set:
    strategy.ball_is_grabbed  = 
true
 >  This boolean output symbol is set:
    strategy.ball_was_kicked  = 
true
 >  This enumerated output symbol is set:
    motion.type  = 
motion.type.walk
 >  This decimal output symbol is set:
    motion.walk_speed.x  = 
150
 >  This decimal output symbol is set:
    motion.walk_speed.y  = 
0
 >  This decimal output symbol is set:
    motion.walk_speed.rot  = 
0
 >  This enumerated output symbol is set:
    head.control_mode  = 
head.control_mode.none
 >  This enumerated output symbol is set:
    head.motion_type  = 
head.motion_type.move_to_point
 >  This decimal output symbol is set:
    head.speed  = 
200
 >  This enumerated output symbol is set:
    head.pid_setting  = 
head.pid_setting.normal
 >  This decimal output symbol is set:
    head.neck_tilt  = 
-30
 >  This decimal output symbol is set:
    head.head_pan  = 
0
 >  This decimal output symbol is set:
    head.head_tilt  = 
30
 >  This decimal output symbol is set:
    head.mouth  = 
0
 
The decision tree:
  This browser can't display the SVG file svg/option_go_to_ball_and_kick_sideways_state_sweep.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 (
(ball.was_seen() )
|| 
(state_time > 400)
)
{
  
goto finished;
}
else
{
  
stay;
}

State finished

This state is a target state.



If that state is active,
 >  This boolean output symbol is set:
    strategy.ball_is_grabbed  = 
false
 >  This boolean output symbol is set:
    strategy.ball_was_kicked  = 
false
 >  The option go_to_ball is executed.
 
The decision tree:
  This browser can't display the SVG file svg/option_go_to_ball_and_kick_sideways_state_finished.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 ( ball.time_since_last_seen() > 3000)
{
  
goto search_for_ball;
}
else
{
  
/** */
if ( state_time < 2000)
{
  
stay;
}
else
{
  
goto go_to_ball;
}
}

State search_for_ball

This state is a target state.



If that state is active,
 >  This boolean output symbol is set:
    strategy.ball_is_grabbed  = 
false
 >  The option search_ball is executed.
 
The decision tree:
  This browser can't display the SVG file svg/option_go_to_ball_and_kick_sideways_state_search_for_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:
 
/** */
if ( ball.was_seen() )
{
  
goto go_to_ball;
}
else
{
  
stay;
}