1. 1. Intro
    1. 1.1. Setup
    2. 1.2. The FTC Framework
  2. 2. Starting Out
    1. 2.1. A Starter Program
      1. 2.1.1. Robot Config
      2. 2.1.2. TeleOp Program
      3. 2.1.3. Compile and Install
  3. 3. Operation Modes
    1. 3.1. Base Operation Mode
    2. 3.2. abstract teleop
    3. 3.3. abstract autonomous
    4. 3.4. tuning the servo presets
    5. 3.5. selecting options for autonomous
  4. 4. The State Machine
    1. 4.1. EVStates factory class
    2. 4.2. EVEndConditions factory class
    3. 4.3. EVStateMachineBuilder
    4. 4.4. the State interface
    5. 4.5. Simple State Machine
    6. 4.6. Custom States
    7. 4.7. Custom StateMachineBuilder
    8. 4.8. Custom EndConditions
    9. 4.9. states with built-in end conditions
    10. 4.10. separate end conditions
    11. 4.11. linking end conditions with next states
    12. 4.12. states with flexible end conditions
    13. 4.13. factory class for states
    14. 4.14. factory class for end conditions
    15. 4.15. conveniently building a statemachine
    16. 4.16. running the state machine
    17. 4.17. dead-zone interface and factory class
  5. 5. Hardware
    1. 5.1. control loop interface
      1. 5.1.1. PID controller
      2. 5.1.2. proportional controller
    2. 5.2. Motors and Movement
      1. 5.2.1. the Motor interfaces
      2. 5.2.2. creating motors and continuous servos
      3. 5.2.3. grouping motors
      4. 5.2.4. [BROKEN] driving mecanum wheels
      5. 5.2.5. [BROKEN] control of mecanum wheels
    3. 5.3. Sensors
      1. 5.3.1. analog sensors
      2. 5.3.2. averaging analog sensors
      3. 5.3.3. digital sensors
      4. 5.3.4. line sensor
      5. 5.3.5. double line sensor
      6. 5.3.6. color sensor
      7. 5.3.7. line finder
    4. 5.4. gamepad button edge detection and joystick scaling
  6. 6. Utilities
    1. 6.1. Math
      1. 6.1.1. angle unit class
      2. 6.1.2. distance unit class
      3. 6.1.3. time unit class
      4. 6.1.4. velocity unit class
      5. 6.1.5. angular velocity unit class
      6. 6.1.6. 2-D Vectors
      7. 6.1.7. 3-D Vectors
      8. 6.1.8. value limiting functions
    2. 6.2. Debugging
      1. 6.2.1. global telemetry
      2. 6.2.2. step timer for logging
      3. 6.2.3. file utilities
      4. 6.2.4. file logging
      5. 6.2.5. storing values in a file
    3. 6.3. Primitives
      1. 6.3.1. InputExtractor
      2. 6.3.2. digital edge detection
      3. 6.3.3. analog scaling
      4. 6.3.4. function interface and factory class
      5. 6.3.5. passing results between threads
      6. 6.3.6. team color
      7. 6.3.7. timing a match
        1. 6.3.7.1. simple timer
    4. 6.4. Setting Options
      1. 6.4.1. adding more conversions to the OptionsFile
  7. 7. Evlib [WIP]
    1. 7.1. Importing Into Your Project
    2. 7.2. Sample Code
    3. 7.3. Using EVLib Minimally
    4. 7.4. Logging Example
    5. 7.5. Robot Configuration
    6. 7.6. Basic TeleOp Program
    7. 7.7. Basic Autonomous Program
    8. 7.8. Customizing StateMachineBuilder
    9. 7.9. Servo Presets
    10. 7.10. Adding Servos to the Configuration
    11. 7.11. Adding Servos to TeleOp
    12. 7.12. Adding Servos to Autonomous
    13. 7.13. Vuforia and OpenCV Beacon Color Detection
  8. Evlib Feature Index [WIP]

FTC Programming with ElectronVolts

Additional Features

EVLib includes the state-machine-framework, so all the features of the state-machine-framework can be used from EVLib.

  • the Motor interfaces
  • creating motors and continuous servos
  • grouping motors
  • driving mecanum wheels
  • control of mecanum wheels
  • servo configuration
  • servo speed control
  • abstract opmodes
  • abstract teleop
  • abstract autonomous
  • tuning the servo presets
  • selecting options for autonomous
  • gamepad button edge detection and joystick scaling
  • EVStates factory class
  • EVEndConditions factory class
  • EVStateMachineBuilder
  • analog sensors
  • digital sensors
  • frame grabbing with OpenCV
  • image processing with OpenCV
  • line sensor
  • double line sensor
  • color sensor
  • line finder
  • averaging analog sensors
  • global telemetry
  • step timer for logging
  • file utilities
  • [[LineSensorArray]] that uses the i2c SparkFun Line Follower Array
  • frame grabbing with Vuforia
  • image processing with Vuforia
  • [[Joystick Recorder]] for "playback" in autonomous

Planned Features

  • [[TaskWeb]] to manage executing and moving between multiple tasks on the field
  • [[Particle Detection]] for autonomous recollection
  • [[Position Tracker]] to read encoders for position info and return to a set location after driving