Option position_with_angle_and_distance

Positions a robot with given angle and distance. This could be helpful if you don't want to use localization.

Parameters of that option:
ParameterTypeMeasureRangeDescription
position_with_angle_and_distance.diff_angledecimaldegThe current difference to the wished angle
position_with_angle_and_distance.diff_xdecimalmmcurrent difference on x-axis
position_with_angle_and_distance.diff_ydecimalmmcurrent difference on y-axis

State Machine

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



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

State position

If that state is active,
 >  This enumerated output symbol is set:
    motion.type  = 
motion.type.walk
 >  This decimal output symbol is set:
    motion.walk_speed.rot  = 
(0 - @position_with_angle_and_distance.diff_angle)
 >  This decimal output symbol is set:
    motion.walk_speed.x  = 
((0 - @position_with_angle_and_distance.diff_x) / 2)
 >  This decimal output symbol is set:
    motion.walk_speed.y  = 
((0 - @position_with_angle_and_distance.diff_y) / 2)
 
The decision tree:
  This browser can't display the SVG file svg/option_position_with_angle_and_distance_state_position.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 (
(abs( @position_with_angle_and_distance.diff_x ) < 100)
&& 
(abs( @position_with_angle_and_distance.diff_y ) < 100)
&& 
(abs( @position_with_angle_and_distance.diff_angle ) < 10)
)
{
  
goto reached;
}
else
{
  
stay;
}

State reached

This state is a target state.



If that state is active,
 >  This enumerated output symbol is set:
    motion.type  = 
motion.type.stand
 
The decision tree:
  This browser can't display the SVG file svg/option_position_with_angle_and_distance_state_reached.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 (
(abs( @position_with_angle_and_distance.diff_x ) > 150)
|| 
(abs( @position_with_angle_and_distance.diff_y ) > 150)
|| 
(abs( @position_with_angle_and_distance.diff_angle ) > 15)
)
{
  
goto position;
}
else
{
  
stay;
}