FTCLib ports many WPILib ideas to FTC: subsystems, commands, geometry types, and tuned controllers. It removes a large amount of boilerplate once your robot has more than two mechanisms.
What it providesLink to this section
- Command-based scheduler with subsystem requirements.
- PIDFController, ProfiledPIDController, and feedforward helpers.
- GamepadEx with button triggers and debouncing built in.
- Geometry (Pose2d, Rotation2d, Translation2d) shared with path libraries.
GamepadEx driver = new GamepadEx(gamepad1);
driver.getGamepadButton(GamepadKeys.Button.A)
.whenPressed(new InstantCommand(intake::collect, intake))
.whenReleased(new InstantCommand(intake::stop, intake));