Skip to content

Features

Ethan Hampton edited this page Feb 26, 2019 · 1 revision

What are some of the features of this library?

Robot

  • Divides robot into subsystems that are all initialized, updated and 'cared for' over the course of the life cycle of a match
  • Takes care of automatically selecting drive subsystem and providing a standard API for any drive system
  • Allows easy manipulation of different configurations of a robot (only drive, drive + arm, all mechanisms)

Autonomous

  • Divides each segment of autonomous into a 'Module' that can be run multiple times in the same autonomous with different configurations (different distances or speeds to drive for example)
  • Each module has a complete and separate life cycle over its life
  • Easy to understand way to create different paths for the robot to follow (for the Rover Ruckus season: where the gold cube is for example)
  • If it works once, it will work every single time

Teleop

  • As a result of other enhancements, dramatically decreases size and complexity of each teleop

General

  • Non-opinionated but also opinionated in certain sections to allow for teams to have as much freedom as possible while still making cross-compatibility easy
  • Generalized specifically for FTC robots to make several assumptions to simplify programming (always will have a drive system, the FTC match life cycle, etc)
  • Used in production for 3+ years on multiple teams (and as a result, multiple examples of code that Ethan approves of to be used anywhere)
  • Can be adopted incrementally. You could port your entire hardware mappings over to FTC_Library, wait a bit, convert some teleop, wait a bit, add some autonomous, wait, add more modules, etc and at every point your code base would continue to work
  • Generally, modules and subsystems can be shared between teams with very little modification required
Clone this wiki locally