![]() |
GT RoboCup SSL
Soccer software, robot firmware
|
lines up with the ball and the target, then drives up and kicks this differs from PivotKick which gets the ball first, then aims Note: LineKick recalculates the aim_target_point ONLY when the target point/segment changes More...
Classes | |
class | State |
Public Member Functions | |
def | __init__ (self) |
def | on_enter_waiting (self) |
def | on_exit_waiting (self) |
def | on_enter_running (self) |
def | execute_kick (self) |
![]() | |
def | __init__ (self) |
def | use_windowing (self) |
if True, uses the window evaluator to choose the best place to aim at target_segment Default: True | |
def | use_windowing (self, value) |
def | win_eval_params (self) |
these params are passed to the window evaluator using setattr() Default: {} | |
def | win_eval_params (self, value) |
def | target (self) |
The thing we're trying to kick at can be a Segment or a Point setting this property automatically recalculates the target_aim_point Default: the opponent's goal segment. | |
def | target (self, value) |
def | shot_obstacle_ignoring_robots (self) |
A list of robots that the shot obstacle doesn't apply to Note: the shot obstacle already doesn't apply to the kicker, you don't have to specify that here Default: []. | |
def | shot_obstacle_ignoring_robots (self, value) |
def | aim_target_point (self) |
We calculate the point we're ACTUALLY going to aim at based on the target Segment/Point and other parameters This is that point. | |
def | current_shot_point (self) |
Generic compatibility with pivot_kick This method should be overriden if possible. | |
def | is_steady (self) |
Generic compatibilty with pivot_kick This method should be overriden if possible. | |
def | recalculate_aim_target_point (self) |
we're aiming at a particular point on our target segment, what is this point? | |
def | kick_power (self) |
Allows for different kicker/chipper settings, such as for passing with lower power. More... | |
def | kick_power (self, value) |
def | chip_power (self) |
def | chip_power (self, value) |
def | use_chipper (self) |
If false, uses straight kicker, if true, uses chipper (if available) Default: False. | |
def | use_chipper (self, value) |
def | enable_kick (self) |
If set to False, will get all ready to go, but won't kick/chip just yet Can be used to synchronize between behaviors Default: True. | |
def | enable_kick (self, value) |
def | add_shot_obstacle (self, excluded_robots=[]) |
creates a polygon obstacle from the ball to the target this obstacle applies to all robots except the kicker and anything specified in the excluded_robots parameter NOTE: this method is not called by _kick, it's up to subclasses/superbehaviors to call it | |
def | execute_running (self) |
![]() | |
def | __init__ (self, continuous) |
def | execute_running (self) |
def | role_requirements (self) |
def | assign_roles |
def | __str__ (self) |
![]() | |
def | __init__ |
def | add_state (self, state, parent_state=None) |
def | is_done_running (self) |
def | terminate (self) |
Transitions the Behavior into a terminal state (either completed or cancelled) | |
def | behavior_state (self) |
returns a state in Behavior.State that represents what the behaviors is doing use this instead of the property if you want to avoid dealing with custom subclass substates | |
def | is_continuous (self) |
The Behavior's termination behavior noncontinuous: a behavior that accomplishes a specific task, then completes (example: shooting at the goal) continuous: a behavior that continually runs until told to stop (example: zone defense) | |
def | __str__ (self) |
def | role_requirements (self) |
Returns a tree of RoleRequirements keyed by subbehavior reference name This is used by the dynamic role assignment system to intelligently select which robot will run which behavior. | |
def | assign_roles (self, assignments) |
assignments is a tree of (RoleRequirements, OurRobot) tuples Same tree structure as the role_requirements() return value, but tuples instead of RoleRequirements as leaf nodes | |
![]() | |
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) |
![]() | |
def | __init__ |
Constructor. More... | |
def | autorestart (self) |
def | autorestart |
def | add_subbehavior |
we over-ride this to enforce the rule that there can't be more than one subbehavior | |
def | has_subbehaviors (self) |
def | role_requirements (self) |
def | assign_roles (self, assignments) |
def | __str__ (self) |
![]() | |
def | __init__ |
def | add_subbehavior |
def | remove_subbehavior |
def | has_subbehavior_with_name |
def | has_subbehaviors (self) |
def | subbehavior_with_name |
def | subbehaviors_by_name (self) |
def | remove_all_subbehaviors (self) |
def | all_subbehaviors (self) |
Returns a list of all subbehaviors. | |
def | all_subbehaviors_completed (self) |
def | spin (self) |
Override StateMachine.spin() so we can call spin() on subbehaviors. | |
def | handle_subbehavior_exception (self, name, exception) |
Override point for exception handling this is called whenever a subbehavior throws an exception during spin() subclasses of CompositeBehavior can override this to perform custom actions, such as removing the offending subbehavior the default implementation logs the exception and re-raises it. | |
def | role_requirements (self) |
returns a tree of role_requirements | |
def | assign_roles (self, assignments) |
def | __str__ (self) |
Public Attributes | |
shell_id | |
max_speed | |
max_accel | |
![]() | |
enable_kick | |
use_chipper | |
kick_power | |
chip_power | |
use_windowing | |
win_eval_params | |
target | |
shot_obstacle_ignoring_robots | |
enable_shot_obstacle | |
aim_params | |
![]() | |
robot | |
![]() | |
autorestart | |
robot | |
robot_shell_id | |
Static Public Attributes | |
int | ClosenessThreshold = constants.Robot.Radius * 3 + 0.04 |
lines up with the ball and the target, then drives up and kicks this differs from PivotKick which gets the ball first, then aims Note: LineKick recalculates the aim_target_point ONLY when the target point/segment changes
See Also: LineKickOld is the old, python-only implementation of line_kick