In order to program a Robot, we look at smaller components working together for specific tasks and program them, these are called subsystems. Together, by programming all the Robot's subsystems, we are able to control the whole Robot. This Subsystem package is meant to contain classes which extend the abstract Subsystem class.
The only abstract method of the Subsystem class is
public void initDefaultCommand() The code for this method is to
call setDefaultCommand(/*new Command()*/) This allows for a command
to be continuously called by the Subsystem. For example, the Drive command
for a Drive Train which runs off joystick control should be the defualt command
of the Drive Train subsystem because it needs to be called continuously. Not
all subsystems need a defualt command, for example a gripper may not need to be
doing anything continuously, so we can just leave the code for the
initDefaultCommand method blank.
There is a variety of possible subsystems which can be used on a robot, and there will always be more since each year's game is so different than previous games. Susbsystems we have used in the past are the Drive Train, ball gripper, elevator, arm, dropwheel, jumpjacks (pistons in back which drop the wheels) and many more. In order to determine what should be a subsystem, it is best to communicate with the mechanical team to determine which mechanisms should work together and which seperately.
© All Rights Reserved.