![]() |
GT RoboCup SSL
Soccer software, robot firmware
|
A state machine that tracks the double touch rule. More...
Classes | |
class | State |
Public Member Functions | |
def | __init__ (self) |
def | forbidden_ball_toucher (self) |
The shell id of the robot that isn't allowed to touch the ball returns None if everyone is allowed to touch. | |
def | other_robot_touching_ball (self) |
def | on_enter_start (self) |
def | on_enter_kicking (self) |
def | on_exit_restart_play_began (self) |
def | on_enter_kicker_forbidden (self) |
def | execute_kicker_forbidden (self) |
![]() | |
def | __init__ (self, start_state) |
def | start_state (self) |
def | restart (self) |
Resets the FSM back into the start state. | |
def | add_state (self, state, parent_state=None) |
Registers a new state (which can optionally be a substate of an existing state) | |
def | spin (self) |
Runs the FSM checks transition conditions for all edges leading away from the current state if one evaluates to true, we transition to it if more than one evaluates to true, we throw a RuntimeError. | |
def | add_transition |
def | transition (self, new_state) |
def | is_in_state (self, state) |
def | state_is_substate (self, state, possible_parent) |
def | corresponding_ancestor_state (self, ancestors) |
def | ancestors_of_state (self, state) |
def | as_graphviz (self) |
def | write_diagram_png |
def | state (self) |
Public Attributes | |
state | |
kicker_shell_id | |
pre_ball_pos | |
Static Public Attributes | |
float | TOUCH_RADIUS = constants.Ball.Radius * 2.5 |
A state machine that tracks the double touch rule.
From the official rules (as of 2013): "If, after the ball enters play other than due to a forced restart, the kicker touches the ball a second time (without holding the ball) before it has touched another robot: an indirect free kick is awarded to the opposing team, the kick to be taken from the place where the infringement occurred (see Law 13)"