Skip to content

Subsystems

Hamzah Aslam edited this page May 20, 2017 · 4 revisions

A subsystem represents a specific part of the robot’s full functionality. All of the logic and direct calls to WPILIB are handled in the subsystem. A subsystem can have multiple commands associated with them via require(), but only one command of a subsystem can be enabled at a time. The issuing of commands is handled by a running Scheduler instance. Default commands are automatically scheduled if set using setDefaultCommand().

ArmLifter

(unused since 2nd competition of season)

This subsystem deals with the mechanism of lifting the robot entirely off the ground using a high bar for a leverage. ArmLifter consists of two DART Linear Actuators with CIMs and potentiometers. The CIMs on the actuators are controlled by two Victor/Victor SP Speed Controllers. This subsystem was not in use after the second district championship. The commands MoveArms (default), LowerArms (unused), and RaiseArms (unused) are associated with ArmLifter.

DriveTrain

The purpose of this subsystem is to provide the robot with maneuverability using the four gearboxes attached to six pneumatic tires. The gearboxes are powered by the four Victor SP Speed Controllers and CIM motors. WPILIB’s arcadeDrive() was supplied with two axis (left and right thumbsticks of an Xbox One controller) for driving and turning inputs. DriveTrain schedules the FineWheelCtrl command by default. The other commands include WheelCtrl (unused), InvertWheelCtrl (unused), DriveFixed, DriveDefense, and Rotate (unused).

Hooker

The Hooker subsystem refers to the latching-hook mechanism (later changed to extensions) at both ends of Reagan’s arms. This mechanism is powered by air outflow control to pneumatic cylinders from a double solenoid. The OpenCylinder and CloseCylinder commands are mapped to the A and X buttons of an Xbox 360 controller, respectively.

IntakeMech

This subsystem consists of a snowblower motor connected to a Victor. The purpose of this is to allow the robot to intake spherical game pieces, specifically whiffle balls as boulders for FIRST Stronghold. The LB (left bumper) on the Xbox 360 controller is used to take in these balls and RB (right bumper) is used to push the ball out. The IntakeMech subsystem has the following commands: IntakeMtr, IntakeMtrDir (unused), PickUpBall (unused).

Sensor

(unused)

The intent of the Sensor subsystem was to use it to analyze values collected from ultrasonic (proximity) sensors and a gyroscope and behave the robot accordingly both for autonomous and teleop mode. An additional light signal was planned to be added to signify if the robot was in the “goldilocks position” to shoot into the goal. This subsystem had no commands.

Shooter

The Shooter subsystem handles the mechanism responsible for launching boulders (ball game pieces) at the high goal of the opposing alliance’s castle. This mechanism is composed of two Mini CIM motors which rotate the flywheels at high velocities in order to generate enough force to shoot the boulders at the desired location. The RT (right trigger) of the Xbox 360 controller is used to shoot at respective speeds. There are two commands associated with this subsystem: Shoot (default) and ShootAuto (unused).

VisionTrack

This subsystem is responsible for calling a script on the roboRIO which executes mjpg-streamer. This program allows the camera(s) plugged into the USB port(s) of the roboRIO to be streamed to the Driver Station Laptop. The StreamCam command is the only command of this subsystem and is scheduled by default.

Clone this wiki locally