# Option odometry-tester A parcour for testing the quality of measured odometry values ## State Machine ## State init
If that state is active,
> | The basic behavior stand is executed.
> | These output symbols are set:
| head-control-mode | = | head-control-mode.real-slow-scan
The decision tree:
Pseudo code of the decision tree:
if ( | robot-state.head-button-pressed-short | ) | // head pressed for several seconds
{
transition-to-state(point-1);
}
else
{
transition-to-state(init);
}
## State point-1
If that state is active,
> | The basic behavior walk is executed. Parameters:
| walk.type | = | walk-type.normal ;
| walk.speed-x | = | 250 ;
| walk.speed-y | = | 0 ;
| walk.rotation-speed | = | 0 ;
> | These output symbols are set:
| head-control-mode | = | head-control-mode.look-straight-ahead
The decision tree:
Pseudo code of the decision tree:
if ( | 500 < robot-pose.x | ) | //
{
transition-to-state(point-2);
}
else
{
transition-to-state(point-1);
}
## State point-2
If that state is active,
> | The basic behavior walk is executed. Parameters:
| walk.type | = | walk-type.normal ;
| walk.speed-x | = | 250 ;
| walk.speed-y | = | 0 ;
| walk.rotation-speed | = | 30 ;
> | These output symbols are set:
| head-control-mode | = | head-control-mode.look-straight-ahead
The decision tree:
Pseudo code of the decision tree:
if ( | 90 < robot-pose.angle | ) | //
{
transition-to-state(point-3);
}
else
{
transition-to-state(point-2);
}
## State point-3
If that state is active,
> | The basic behavior walk is executed. Parameters:
| walk.type | = | walk-type.normal ;
| walk.speed-x | = | 250 ;
| walk.speed-y | = | 0 ;
| walk.rotation-speed | = | 0 ;
> | These output symbols are set:
| head-control-mode | = | head-control-mode.look-straight-ahead
The decision tree:
Pseudo code of the decision tree:
if ( | 500 < robot-pose.y | ) | // reached-end-of-lane
{
transition-to-state(point-4);
}
else
{
transition-to-state(point-3);
}
## State point-4
If that state is active,
> | The basic behavior walk is executed. Parameters:
| walk.type | = | walk-type.normal ;
| walk.speed-x | = | 250 ;
| walk.speed-y | = | 0 ;
| walk.rotation-speed | = | 30 ;
> | These output symbols are set:
| head-control-mode | = | head-control-mode.look-straight-ahead
The decision tree:
Pseudo code of the decision tree:
if ( |
( | 175 < robot-pose.angle | )
( | robot-pose.angle < -175 | )
| ) | // reached-end-of-lane
{
transition-to-state(point-5);
}
else
{
transition-to-state(point-4);
}
## State point-5
If that state is active,
> | The basic behavior walk is executed. Parameters:
| walk.type | = | walk-type.normal ;
| walk.speed-x | = | 250 ;
| walk.speed-y | = | 0 ;
| walk.rotation-speed | = | 0 ;
> | These output symbols are set:
| head-control-mode | = | head-control-mode.look-straight-ahead
The decision tree:
Pseudo code of the decision tree:
if ( | robot-pose.x < -500 | ) | // reached-end-of-path-segment
{
transition-to-state(point-6);
}
else
{
transition-to-state(point-5);
}
## State point-6
If that state is active,
> | The basic behavior walk is executed. Parameters:
| walk.type | = | walk-type.normal ;
| walk.speed-x | = | 250 ;
| walk.speed-y | = | 0 ;
| walk.rotation-speed | = | 30 ;
> | These output symbols are set:
| head-control-mode | = | head-control-mode.look-straight-ahead
The decision tree:
Pseudo code of the decision tree:
if ( |
( | robot-pose.angle < -80 | )
&& |
( | -90 < robot-pose.angle | )
| ) | // reached-end-of-path-segment
{
transition-to-state(point-7);
}
else
{
transition-to-state(point-6);
}
## State point-7
If that state is active,
> | The basic behavior walk is executed. Parameters:
| walk.type | = | walk-type.normal ;
| walk.speed-x | = | 250 ;
| walk.speed-y | = | 0 ;
| walk.rotation-speed | = | 0 ;
> | These output symbols are set:
| head-control-mode | = | head-control-mode.look-straight-ahead
The decision tree:
Pseudo code of the decision tree:
if ( | robot-pose.y < -500 | ) | //
{
transition-to-state(point-8);
}
else
{
transition-to-state(point-7);
}
## State point-8
If that state is active,
> | The basic behavior walk is executed. Parameters:
| walk.type | = | walk-type.normal ;
| walk.speed-x | = | 250 ;
| walk.speed-y | = | 0 ;
| walk.rotation-speed | = | 30 ;
> | These output symbols are set:
| head-control-mode | = | head-control-mode.look-straight-ahead
The decision tree:
Pseudo code of the decision tree:
if ( | 0 < robot-pose.angle | ) | //
{
transition-to-state(init);
}
else
{
transition-to-state(point-8);
}