>xabsl 2
Behavior Documentation
>
Index
>Agents
>Symbols
>Basic Behaviors
>Options
>> grab-ball-with-head
>>>
approach-ball
>>>
grab
>>>
continue-grab
>>>
grabbed
Option grab-ball-with-head
Grabs the ball with the head
State Machine
This browser can't display the SVG file
svg/option_grab-ball-with-head.svg
.
The
Adobe SVG Viewer 3.0
can be downloaded from
http://www.adobe.com/svg/viewer/install/main.html
State approach-ball
If that state is active,
>
The option
approach-ball
is executed. Parameters:
approach-ball.look-at-ball-distance
=
500 ;
approach-ball.slow-down-distance
=
(
ball.play-ball-precisely
? 380 : 350 ) ;
approach-ball.slow-speed
=
(
ball.play-ball-precisely
? 100 : 170 ) ;
>
These output symbols are set:
head-control-mode
=
head-control-mode.search-for-ball
The decision tree:
This browser can't display the SVG file
svg/option_grab-ball-with-head_state_approach-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-consecutively
< 200
)
&&
(
ball.consecutively-seen-time
> 100
)
&&
(
ball.seen.distance
> 200
)
&&
(
ball.seen.distance
< 800
)
)
// ball distance greater than 200 mm
{
transition-to-state(
approach-ball
);
}
else
{
if
(
time-of-state-execution
< 300
)
// state running less than 300 ms
{
transition-to-state(
approach-ball
);
}
else if
(
(
ball.time-since-last-seen-consecutively
< 300
)
&&
(
ball.consecutively-seen-time
> 100
)
&&
(
ball.seen.distance
< (
ball.play-ball-precisely
? 90 : 180 )
)
&&
(
ball.seen.angle
< (
ball.play-ball-precisely
? 15 : 20 )
)
&&
(
ball.seen.angle
> (
ball.play-ball-precisely
? -15 : -20 )
)
)
// grab possible
{
transition-to-state(
grab
);
}
else
{
transition-to-state(
approach-ball
);
}
}
State grab
If that state is active,
>
The basic behavior
walk
is executed. Parameters:
walk.type
=
walk-type.normal
;
walk.speed-x
=
200 ;
walk.speed-y
=
0 ;
walk.rotation-speed
=
(
ball.seen.angle
* 2)
;
>
These output symbols are set:
head-control-mode
=
head-control-mode.catch-ball
strategy.ball-handling
=
handling-the-ball
The decision tree:
This browser can't display the SVG file
svg/option_grab-ball-with-head_state_grab.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-consecutively
< 200
)
&&
(
ball.consecutively-seen-time
> 100
)
&&
(
ball.seen.distance
> 200
)
&&
(
ball.seen.distance
< 800
)
)
// ball distance greater than 200 mm
{
transition-to-state(
approach-ball
);
}
else
{
if
(
time-of-state-execution
< 1000
)
// grab in progress
{
transition-to-state(
grab
);
}
else
{
transition-to-state(
continue-grab
);
}
}
State continue-grab
If that state is active,
>
The basic behavior
walk
is executed. Parameters:
walk.type
=
walk-type.turn-with-ball
;
walk.speed-x
=
0 ;
walk.speed-y
=
0 ;
>
These output symbols are set:
head-control-mode
=
head-control-mode.catch-ball
strategy.ball-handling
=
handling-the-ball
The decision tree:
This browser can't display the SVG file
svg/option_grab-ball-with-head_state_continue-grab.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-consecutively
< 200
)
&&
(
ball.consecutively-seen-time
> 100
)
&&
(
ball.seen.distance
> 200
)
&&
(
ball.seen.distance
< 800
)
)
// ball distance greater than 200 mm
{
transition-to-state(
approach-ball
);
}
else
{
if
(
robot-state.something-in-front-of-chest
)
// ball in front of chest
{
transition-to-state(
grabbed
);
}
else if
(
time-of-state-execution
< 100
)
// grab in progress
{
transition-to-state(
continue-grab
);
}
else
{
transition-to-state(
grabbed
);
}
}
State grabbed
This state is a target state.
If that state is active,
>
The basic behavior
walk
is executed. Parameters:
walk.type
=
walk-type.turn-with-ball
;
walk.speed-x
=
0 ;
walk.speed-y
=
0 ;
walk.rotation-speed
=
0 ;
>
These output symbols are set:
head-control-mode
=
head-control-mode.catch-ball
strategy.ball-handling
=
dribble-the-ball
The decision tree:
This browser can't display the SVG file
svg/option_grab-ball-with-head_state_grabbed.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-consecutively
< 200
)
&&
(
ball.consecutively-seen-time
> 100
)
&&
(
ball.seen.distance
> 200
)
&&
(
ball.seen.distance
< 800
)
)
// ball distance greater than 200 mm
{
transition-to-state(
approach-ball
);
}
else
{
if
(
robot-state.time-since-something-was-in-front-of-chest
> 450
)
// ball is not in front of chest
{
transition-to-state(
approach-ball
);
}
else
{
transition-to-state(
grabbed
);
}
}