The code for the robot that will be presumably used at Boiler Bot Battle '19. This has been refactored from 2019-Robot to utilize TimedRobot over command-based.
ControllerWrapper
andButtonWrapper
represent reimplementations of the former functions provided byButton
- To map a button, you can reference the
bA
(read: button A) ordN
(read: d-pad north) objects underControllerWrapper
- Map buttons using lambdas (anonymous functions):
() -> Robot.manipulator.toggle()
Helper.deadzone()
should pretty much never be used if you're referencing aControllerWrapper
, that functionality's built in
- To map a button, you can reference the
TurnToAngleGyro
probably will never be tuned, so don't use itManipulator
references both the ball and hatch intakes
- All coding standards apply!
- When creating a subsystem, implement most subsystem-related functionality within it. Seperate classes are discouraged but sometimes necessary (see
TurnToAngleGyro
)- If there's a PID, make it part of the subsystem
- Any subsystems with periodic methods should be handled with an
update()
method called inrobotPeriodic()
- Use
enum
s when representing multi-state systems (seeElevatorPosition
) andboolean
s when representing two-state systems (see tilt brake)- Please don't use multiple booleans to represent the same system
- Some sensors should be singletons (see
Camera
) and some shouldn't (seeIRLimit
) -- use your own discretion