►Nbinary_clock | |
►CBinaryClock | |
CState | |
►NChart | |
CFunction | |
CNumericField | |
CPointMagnitude | |
►NGameplay | Higher-level logic for soccer |
CGameplayModule | Coordinator of high-level logic |
►Ngameplay | |
►Nbehavior | |
►CBehavior | Behavior is an abstract superclass for Skill, Play, etc |
CState | These are the core states of the Behavior class Subclasses may extend this by adding substates of the following |
►Nbehavior_sequence | |
CBehaviorSequence | |
►Ncomposite_behavior | |
CCompositeBehavior | A composite behavior is one that has 0+ named subbehaviors this class has methods for making it easy to work with and manage subbehaviors |
►Nconstants | |
CBall | |
CColors | |
COurChipping | |
►CRobot | |
CDribbler | |
►Nevaluation | |
►Ndouble_touch | |
►CDoubleTouchTracker | A state machine that tracks the double touch rule |
CState | |
►Nfs_watcher | |
►CFsWatcher | Watches the filesytem for changes and executes any registered callbacks |
CFsEventHandler | |
►Nfsm | |
CStateMachine | Generic hierarchial state machine class |
►Nplay | |
CPlay | A play coordinates the entire team of robots |
►Nplay_registry | |
►CPlayRegistry | Holds references to all Play subclasses and their enabled state The play registry keeps a tree of all plays in the 'plays' folder (and its subfolders) Our old system required programmatically registering plays into categories, but the new system just uses the filesystem hierarchy for this |
CCategory | Categories correspond to filesystem directories |
CNode | |
►Nplays | |
►Noffense | |
►Nadaptive_formation | |
►CAdaptiveFormation | |
CState | |
►Nbasic_122 | |
CBasic122 | |
►Ntwo_side_attack | |
►CTwoSideAttack | |
CState | |
►Nrestarts | |
►Nbasic_indirect | |
►CBasicIndirect | |
CState | |
►Ndefend_penalty | |
CDefendPenalty | |
►Nkick_penalty | |
CKickPenalty | |
►Nour_corner_kick | |
COurCornerKick | |
►Nour_corner_kick_onetouch | |
COurCornerKickTouch | |
►Nour_free_kick | |
►COurFreeKick | |
CState | |
►Nour_goal_kick | |
►COurGoalKick | |
CState | |
►Nour_indirect_pivot | |
►COurIndirectPivot | |
CState | |
►Nour_kickoff | |
►COurKickoff | |
CState | |
►Nour_shootout_chip | |
►COurShootoutChip | |
CState | |
►Nour_shootout_kick | |
►COurShootoutKick | |
CState | |
►Nplacement | |
►CPlacement | |
CState | |
►Ntheir_kickoff | |
CTheirKickoff | |
►Ntheir_restart | |
CTheirRestart | |
►Ntheir_shoot_out | |
►CTheirShootOut | |
CState | |
►Ntwo_side_corner_kick | |
►CTwoSideCornerKick | |
CState | |
►Nstopped | |
►CStopped | When we get the Stopped command from the referee, we run this play |
CState | |
►Ntesting | |
►Ndebug_window_evaluator | |
CDebugWindowEvaluator | This isn't a real play, but it's pretty useful Turn it on and we'll draw the window evaluator stuff on-screen from the ball to our goal |
►Nfour_courners_pass | |
►CFourCornerPass | A testing play to demonstrate our ability to pass and recieve balls One robot will pursue the ball while three other robots will pass the ball amongst themselves they can only pass the ball at the corners and recieve at the corners and they cannot move through the center of the square |
CState | |
►Nline_up | |
CLineUp | |
►Nrepeated_line_up | |
►CRepeatedLineUp | Robots repeatedly line up on opposite sides of the field |
CState | |
►Nrepeated_turning_line_up | |
►CRepeatedTurningLineUp | Robots repeatedly line up on opposite sides of the field |
CState | |
►Nrepeated_turning_line_up_lengthwise | |
►CRepeatedTurningLineUpLengthwise | Robots repeatedly line up on opposite sides of the field |
CState | |
►Nstress_test | |
CStressTest | |
►Ntest_adaptive_formation_weights | |
►CTestAdaptiveFormationWeights | |
CState | |
►Ntest_bump | |
CTestBump | |
►Ntest_capture | |
►CTestCapture | |
CState | |
►Ntest_coach | |
CTestCoach | |
►Ntest_collect | |
CTestCollect | |
►Ntest_coordinated_pass | |
CTestCoordinatedPass | Continually runs a coordinated pass to opposite sides of the field |
►Ntest_defense | |
CTestDefense | Runs our Defense tactic |
►Ntest_defense_and_kicker | |
CTestDefenseAndKicker | Runs our Defense tactic and a pivot kicker than tries to score on our defense |
►Ntest_defense_old | |
CTestDefenseOld | Runs our Defense tactic |
►Ntest_find_gap | |
CTestFindGap | |
►Ntest_forward_pass | |
CTestForwardPass | Continually runs a coordinated pass to opposite sides of the field |
►Ntest_fullback | |
CTestDefender | |
►Ntest_goalside_mark | |
CTestGoalsideMark | |
►Ntest_idle | |
CTestIdle | |
►Ntest_intercept | |
CTestIntercept | |
►Ntest_line_kick | |
CTestLineKick | |
►Ntest_mark | |
CTestMark | |
►Ntest_move_sequence | |
CTestMoveSequence | |
►Ntest_num_on_offense | |
CTestNumOnOffense | |
►Ntest_one_touch_pass | |
CTestOneTouchPass | Continually runs a one_touch_pass pass tactic |
►Ntest_pivot_kick | |
CTestPivotKick | |
►Ntest_priority | |
CTestPriority | |
►Ntest_settle | |
CTestSettle | |
►Ntest_strafe | |
►CTestStrafe | Testing class for facing one direction and strafing |
CState | |
►Ntest_wall | |
CTestWall | |
►Ntriangle_pass | |
►CTrianglePass | A demo play written during a teaching session to demonstrate play-writing Three robots form a triangle on the field and pass the ball A->B->C->A and so on |
CState | |
►Ntraining | |
►Nbinary_clock | |
►CBinaryClock | |
CState | |
►Nfollow_ball | |
►CFollowBall | |
CState | |
►Nsimple_behaviors | |
CSimpleBehaviors | |
►Nwhich_half | |
►CWhichHalf | |
CState | |
►Ntuning | |
►Npid | |
►Cpid | |
CState | |
►Ntest_jittery_motion | |
CJitterer | |
CTestJitteryMotion | |
►Ntune_facing | |
►CFacer | |
CState | |
CTuneFacing | This play rotates the bot 90 degrees, pauses, and repeats It's useful for tuning the angle PID controller |
►Ntune_pivot | |
CPivoter | |
CTunePivoting | |
►Nrole_assignment | |
CImpossibleAssignmentError | |
CRoleRequirements | |
►Nroot_play | |
CRootPlay | The RootPlay is basically the python-side of the c++ GameplayModule it coordinates the selection of the 'actual' play and handles the goalie behavior |
►Nsingle_robot_behavior | |
CSingleRobotBehavior | |
►Nsingle_robot_composite_behavior | |
CSingleRobotCompositeBehavior | Behavior that applies to a single ROBOT and may have up to one subbehavior at any time Most of the implementation is just checking if we have subbehaviors and calling the real method on the appropriate superclass Note: The method-resolution-order in python dictates that as we have it listed below, SingleRobotBehavior methods take precedence over CompositeBehavior methods |
►Nsingle_robot_sequence | |
CSingleRobotSequence | |
►Nskills | |
►N_kick | |
C_Kick | This is the abstract superclass for PivotKick and LineKick |
►Naim | |
►CAim | |
CState | |
►Nangle_receive | |
CAngleReceive | AngleReceive accepts a receive_point as a parameter and gets setup there to catch the ball It transitions to the 'aligned' state once it's there within its error thresholds and is steady Set its 'ball_kicked' property to True to tell it to dynamically update its position based on where the ball is moving and attempt to catch it |
►Nbump | |
►CBump | Pushes the ball by bumping into it |
CState | |
►Ncapture | |
►CCapture | |
CState | |
►Ncollect | |
CCollect | |
►Ndribble | |
►CDribble | Behavior that moves the ball to a specified location |
CState | |
►Nface | |
CFace | A simple behavior to make a robot move to a given point and face a given direction note: probably not overly useful in real plays, but is useful for testing purposes |
►Ngoalside_mark | |
CGoalside_Mark | |
►Nintercept | |
CIntercept | |
►Nline_kick | |
►CLineKick | 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 |
CState | |
►Nline_kick_old | |
►CLineKickOld | 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: LineKickOld recalculates the target_aim_point ONLY when the target point/segment changes |
CState | |
►Nline_kick_receive | |
►CLineKickReceive | LineKickReceive accepts a receive_point as a parameter and gets setup there to catch the ball It transitions to the 'aligned' state once it's there within its error thresholds and is steady Set its 'ball_kicked' property to True to tell it to dynamically update its position based on where the ball is moving and attempt to catch it |
CState | |
►Nmark | |
CMark | |
►Nmove | |
CMove | Behavior that moves a robot to a specified location wraps up OurRobot.move() into a Skill so we can use it in the play system more easily |
►Nmove_direct | |
CMoveDirect | Behavior that moves a robot to a specified location, circumventing the path planner |
►Nmove_tuning | |
CMoveTuning | Behavior that tells the robot it is already at the endpoint |
►Npass_receive | |
►CPassReceive | PassReceive accepts a receive_point as a parameter and gets setup there to catch the ball It transitions to the 'aligned' state once it's there within its error thresholds and is steady Set its 'ball_kicked' property to True to tell it to dynamically update its position based on where the ball is moving and attempt to catch it |
CState | |
►Npivot_kick | |
►CPivotKick | |
CState | |
►Nsettle | |
CSettle | |
►Ntouch_ball | |
►CTouchBall | Touchball Class A touchball is a simplified capture behavior, that simply lets the ball roll towards the robot until it hits it in the mouth |
CState | |
►Nstandard_play | |
CStandardPlay | A standardized play that handles actions that an average play needs Right now, this is only used to implement a standard way to run or not run the play with defense, but any action that a normal play should do can be placed here |
►Ntactics | |
►Nadvance_zone_midfielder | |
►CAdvanceZoneMidfielder | |
CState | |
►Ncoordinated_pass | |
►CCoordinatedPass | This handles passing from one bot to another Simply run it and set it's receive point, the rest is handled for you It starts out by assigning a kicker and a receiver and instructing them to lineup for the pass Once they're aligned, the kicker kicks and the receiver adjusts itself based on the ball's movement Note: due to mechanical limitations, a kicker often gets stuck trying to adjust its angle while it's just outside of it's aim error threshold |
CState | |
►Ndefense | |
►CDefense | |
CState | |
►Ndefense_old | |
►CDefenseOld | The DefenseOld tactic handles goalie and defender placement to defend the goal It does lots of window and shot evaluation to figure out which 'threats' are the most important to block, then assigns blocking positions to the bots The old defense strategy had a goalie and two defenders that didn't coordinate with eachother and tended to overlap and not get an optimal positioning - this tactic handles the coordination |
CState | |
►Ndefensive_forward | |
►CDefensiveForward | |
CState | |
►Nforward_pass | |
►CForwardPass | |
CState | |
►Nline_up | |
CLineUp | |
►None_touch_pass | |
►COneTouchPass | A tactic that causes a robot to pass to another one, who scores on the goal as fast as possible |
CState | |
►Nour_placement | |
►COurPlacement | |
CState | |
►Npenalty | |
►CPenalty | |
CState | |
►Npositions | |
►Ncoach | |
►CCoach | Motivates, encourages, and directs the team |
CState | |
►Ndefender | |
►CDefender | The Defender behavior positions a robot on a certain area of the field and defends it |
CSide | The area of the field this robot should block |
CState | |
►Ngoalie | |
►CGoalie | |
CState | |
►Nsubmissive_defender | |
►CSubmissiveDefender | Defender behavior meant to be coordinated in a defense tactic The regular defender does a lot of calculations and figures out where it should be This defender lets someone else (the Defense tactic) handle calculations and blocks things based on it |
CState | |
►Nsubmissive_goalie | |
►CSubmissiveGoalie | |
CState | |
►Nsimple_zone_midfielder | |
►CSimpleZoneMidfielder | |
CState | |
►Nstopped | |
►Ncircle_near_ball | |
CCircleNearBall | Robots position themselves along a portion of the circle centered at the ball |
►Ncircle_on_center | |
CCircleOnCenter | Robots position themselves along a portion of the circle centered at the ball |
►Ntune_pid | |
►CTune_pid | |
CState | |
►Nwall | |
►CWall | |
CState | |
►Ntimed_behavior | |
►CTimedBehavior | TimedBehavior wraps a subbehavior and allows us to easily place a time limit on it |
CState | |
►Ntimeout_behavior | |
►CTimeoutBehavior | This class adds a timeout to any subbehavior |
CState | |
►Ntools | |
►Nsleep | |
CSleepBehavior | A behavior that simply waits for a specified time, in seconds, and completes once it is reached Very useful with behavior sequences also see timeout_behavior.py, for a behavior designed to timeout other behaviors |
►NGeometry2d | |
CArc | An arc (a segment of a circle) specified by a center point, a radius and a starting and ending angle |
CCircle | |
CCompositeShape | A Geometry2d::CompositeShape is a Shape that is made up of other shapes |
CLine | |
CPoint | Simple class to represent a point in 2d space |
CPolygon | |
CPose | Represents a pose in 2d space: (x, y, theta) |
CRect | Represents a rectangle by storing two opposite corners |
CSegment | |
CShape | The shape class provides the interface to all shapes that are subclasses |
CShapeSet | This class maintains a collection of Shape objects |
CTransformMatrix | |
CTwist | Represents a differential (velocity, acceleration, etc.) in 2d space: (dx, dy, dh) |
►Nkick_gently | |
►CKickGently | |
CState | |
►Noffensive_pivot_kick | |
COffensivePivotKick | |
►NPlanning | |
CAngleFunctionPath | Class which represents a Path with an angle Function attached |
CAngleInstant | This class represents a robot's angle "state" at a given time, including angle and rotation velocity |
CCollectCommand | |
CCollectPathPlanner | Planner that tries to move onto and gain control of a slow moving ball |
CCompositePath | Represents a motion path made up of a series of Paths |
CConstPathIterator | |
CCubicBezierControlPoints | |
CDirectPathTargetCommand | |
CDirectTargetPathPlanner | Simple path planner that generates a straight-line path from the start instant to the goal, ignoring all obstacles |
CDynamicObstacle | |
CEmptyAngleCommand | |
CEmptyCommand | |
CEscapeObstaclesPathPlanner | This planner finds a path to quickly get out of an obstacle |
CFaceAngleCommand | |
CFacePointCommand | |
CIndependentMultiRobotPathPlanner | Plans paths for a collection of robots using a SingleRobotPathPlanner for each |
CInterceptCommand | |
CInterceptPlanner | Planner which tries to intercept the path ball as quickly as possible Whether this means moving and stopping in the path of the ball or completely driving through and "slapping" the ball |
►CInterpolatedPath | Represents a motion path as a series of {pos, vel} pairs |
CEntry | Each entry in InterpolatedPath is a MotionInstant and the time that the robot should be at that position and velocity |
CLineKickCommand | |
CLineKickPlanner | Planner which plans a path to line kick a ball |
CMotionCommand | |
CMotionInstant | This class represents a robot's motion "state" at a given time, including position and velocity |
CMultiRobotPathPlanner | Interface for Path Planners that plan paths for a set of robots |
CPath | Abstract class representing a motion path |
CPathTargetCommand | |
CPivotCommand | |
CPivotPathPlanner | Plans a path that pivots around and kicks a stationary ball |
CPlanRequest | Encapsulates information needed for planner to make a path |
CRoboCupStateSpace | Represents the robocup field for path-planning purposes |
CRobotInstant | This class represents a robot's motion and rotation "state" at a given time, including position, velocity, angle, and rotationVelocity |
CRotationCommand | |
CRRTConfig | |
CRRTPlanner | Given a start point and an end point and some conditions, plans a path for a robot to get there |
CSettleCommand | |
CSettlePathPlanner | Planner which tries to move around the ball to intercept it |
CSingleRobotPathPlanner | Interface for Path Planners |
CTargetVelPathPlanner | Plans a path that brings the robot to the given velocity as fast as possible |
CTrapezoidalPath | Represents a straight-line path with a trapezoidal velocity profile |
CTuningPathCommand | |
CTuningPathPlanner | Simple path planner that breaks everything |
CWorldVelTargetCommand | |
►Ntest_ball | |
CMoc_Ball | |
CTestBall | |
►Ntest_circle_near_ball | |
CMoc_Ball | |
CTestCircleNearBall | |
►Ntest_config | |
CTestConfig | |
►Ntest_constants | |
CTestConstants | |
►Ntest_field | |
CMoc_Robot | |
CTestField | |
►Ntest_fsm | |
►CMyFsm | |
CState | |
CSubState | |
CTestFsm | |
►Ntest_opponent | |
CTestOpponent | |
►Ntest_passing | |
CTestPassing | |
►Ntest_play_registry | |
CTestPlayRegistry | |
►Ntest_role_assignment | |
CTestRoleAssignment | |
►Ntest_shooting | |
CTestShooting | |
►Ntriangle_pass | |
►CTrianglePass | A demo play written during a teaching session to demonstrate play-writing Three robots form a triangle on the field and pass the ball A->B->C->A and so on |
CState | |
►Nwhich_half | |
►CWhichHalf | |
CState | |
CAutoName | Inherit from this class to get a name() function that will return the name of the class |
CBall | Our beliefs about the ball's position and velocity |
CBallBounce | |
CBatteryProfile | Calculates a battery's charge level given its voltage using a model of its discharge curve |
CBatteryWidget | Draws a battery given a battery level value from 0 to 1 |
CCamera | Contains all the kalman balls/robots for the specific camera |
CCameraBall | Wrapper for the protobuf observation |
CCameraFrame | Simple non-protobuf object representing a camera frame |
CCameraRobot | Wrapper for the protobuf observation |
CChipKickEstimator | Takes a kick event and tries to match a parabolic model to the trajectory |
CConfigBool | |
CConfigDouble | |
CConfigInt | |
CConfigItem | Base class for items in configuration: this is constructed through functions in the Configuration class which ensure new items are added to the tree properly |
CConfigurable | |
CConfigurableImpl | Template for making configurables the implementing object is responsible for handling configuration |
CConfiguration | Static variable for the program, extremely general |
CContext | |
CDebugDrawer | |
CExceptionIterator | |
CFastKickDetector | Detects extremely fast kicks in the case where the 5 or more samples required by the slow kick detector would take too long to collect and still allow time to react to the ball |
CField_Dimensions | This class contains constants defining the layout of the field |
CFieldView | Class that performs drawing of log data onto the field |
CFIRFilter | A basic FIR filter of variable type with float coeffs |
CFlatKickEstimator | TODO: Takes a kick event and tries to match a non-chip kick model to the trajectory |
CGamepadController | Logitecch Gamepad/Joystick used to control robots |
CGamepadJoystick | Logitecch Gamepad/Joystick used to control robots |
CGameState | Holds the state of the game according to the referee |
CGradient1DConfig | Config data for a Gradient Ascent 1D optimizer Can be intitialized through the constructor or through obj.attribute style initialization |
CGradientAscent1D | Gradient Ascent in 1 Dimension with Temperature Works for all functions that are continous with a specified derivative function Only finds the closest local max |
CJoystick | Used for manually controlling robots |
CJoystickControlValues | |
CKalmanBall | Filtered ball estimation for a single camera |
CKalmanFilter | Abstract class that should be inherited from to create specific kalman filters |
CKalmanFilter2D | |
CKalmanFilter3D | |
CKalmanRobot | Filtered robot estimation for a single camera |
CKickEvaluator | Finds the best position to kick to and the chance of success |
CKickEvent | Contains all the useful information for a kick Like: Who kicked, when, what are the ball positions since etc |
CLogger | The Logger stores and saves the state of the game at each point in time |
CLogViewer | |
CMainWindow | Main gui thread class |
CMotionConstraints | This class contains the motion constraints that the high-level logic sets for a robot |
CMotionControl | Handles computer-side motion control |
CNelderMead2D | Nelder-Mead in 2 Dimensions Works for all functions that are continous Finds local / global max depending on size of the simplex Can be extended to work in N dimensions |
CNelderMead2DConfig | |
CNetworkRadio | Interface for the radio over regular network interface |
CNewRefereeModule | The ref module listens to a port for referee packets over the network |
CNewRefereePacket | A packet we received over the network from ssl-refbox |
COpponentRobot | A robot that is not on our team |
COurRobot | A robot on our team |
CParallelGradient1DConfig | Config data for a Parallel Gradient 1D optimizer Can be intitialized through the constructor or through obj.attribute style initialization |
CParallelGradientAscent1D | Starts multiple "Gradient Ascent 1D" (GA1D) at various start points Combines two single GA1D's together when they are near the same X value |
►CProcessor | Brings all the pieces together |
CStatus | |
CProtobufTree | |
CPythonFunctionWrapper | |
CRadio | Sends and receives information to/from our robots |
CRefereeTab | |
CRobot | |
►CRobotConfig | Configuration per robot model |
CChipper | |
CDribbler | |
CKicker | |
CPID | |
CRobotConstraints | |
CRobotPose | Contains robot motion state data |
CRobotStatus | Provides per-robot overrides for a robot Should be updated for hardware revision |
CRobotStatusWidget | Shows the status of a single robot |
CRobotWidget | Presents an image of a robot with errors drawn in red |
CRotationConstraints | |
CSimFieldView | |
CSimRadio | Radio IO with robots in the simulator |
CSlowKickDetector | Accurately detects kicks by robots using 5 or more samples in history |
CSpaceNavJoystick | Joystick class for using a SpaceNavigator 3d mouse for controlling the robots |
CStripChart | |
CStyleSheetManager | A static class to help manage stylesheets for soccer |
CSystemState | Holds the positions of everything on the field |
CTeamInfo | |
CTimeout | This is a simple timeout timer |
CVisionFilter | Uses a seperate thread to filter the vision measurements into a smoother velocity/position estimate for both the ball and robots |
CVisionFilterConfig | Contains all the global vision config variables |
CVisionPacket | |
CVisionReceiver | Receives vision packets over UDP and places them in a buffer until they are read |
CVisionState | Snapshot of the state of all objects in vision at a specific time |
CWindow | Open shot from a point to a target segment |
CWindowEvaluator | Calculates open shots from a point to a target |
CWorld | Keeps list of all the cameras and sends camera data down to the correct location |
CWorldBall | Best estimate of the true ball position using the kalman balls from each camera |
CWorldRobot | |