# Option goalie-position Positions the goalie inside it's goal. ## State Machine ## State ball-just-seen-not-moving
If that state is active,
> | The basic behavior goalie-position is executed. Parameters:
| goalie-position.max-speed | = | 120 ;
| goalie-position.min-x-trans | = | 25 ;
| goalie-position.min-y-trans | = | 25 ;
| goalie-position.weight-pose | = | 1 ;
| goalie-position.weight-odo | = | 0 ;
| goalie-position.cut-y | = | 300 ;
| goalie-position.guard-direct-to-goal | = | 200 ;
| goalie-position.guard-line | = | -150 ;
> | These output symbols are set:
| leds.face2 | = | face2.lolo
| leds.face3 | = | face3.olol
| head-control-mode | = | head-control-mode.search-for-ball
The decision tree:
Pseudo code of the decision tree:
if ( | ball.time-since-last-seen < 3500 | ) | // ball was seen in the last 3500 msecs -> dont jump
{
if ( | executed-motion-request.motion-type == stand | ) | // Dog is not moving -> only look at ball
{
transition-to-state(ball-just-seen-not-moving);
}
else
{
transition-to-state(ball-just-seen);
}
}
else
{
transition-to-state(ball-not-seen);
}
## State ball-just-seen
If that state is active,
> | The basic behavior goalie-position is executed. Parameters:
| goalie-position.max-speed | = | 120 ;
| goalie-position.min-x-trans | = | 20 ;
| goalie-position.min-y-trans | = | 20 ;
| goalie-position.weight-pose | = | 1 ;
| goalie-position.weight-odo | = | 0 ;
| goalie-position.cut-y | = | 300 ;
| goalie-position.guard-direct-to-goal | = | 200 ;
| goalie-position.guard-line | = | -150 ;
> | These output symbols are set:
| leds.face1 | = | face1.lolo
| leds.face2 | = | face2.lolo
| leds.face3 | = | face3.llll
The decision tree:
Pseudo code of the decision tree:
if ( | ball.time-since-last-seen < 3500 | ) | // ball was seen in the last 3500 msecs -> dont jump
{
if ( | executed-motion-request.motion-type == stand | ) | // Dog is not moving -> only look at ball
{
transition-to-state(ball-just-seen-not-moving);
}
else
{
transition-to-state(ball-just-seen);
}
}
else
{
transition-to-state(ball-not-seen);
}
## State ball-not-seen
If that state is active,
> | The basic behavior go-to-point is executed. Parameters:
| go-to-point.x | = | (field.own-groundline.x + 200) ;
| go-to-point.y | = | 0 ;
| go-to-point.destination-angle | = | 0 ;
| go-to-point.distance-remain | = | 100 ;
| go-to-point.angle-remain | = | 10 ;
| go-to-point.max-speed | = | 180 ;
> | These output symbols are set:
| leds.face2 | = | face2.oooo
| leds.face3 | = | face3.lolo
| head-control-mode | = | head-control-mode.search-for-ball
The decision tree:
Pseudo code of the decision tree:
if ( | ball.time-since-last-seen < 3500 | ) | // ball was seen in the last 3500 msecs -> dont jump
{
if ( | executed-motion-request.motion-type == stand | ) | // Dog is not moving -> only look at ball
{
transition-to-state(ball-just-seen-not-moving);
}
else
{
transition-to-state(ball-just-seen);
}
}
else
{
transition-to-state(ball-not-seen);
}