Skip to content
Stephen Just edited this page Jul 13, 2024 · 4 revisions

Short link: https://tinyurl.com/xbotedu

The goal of the FRC curriculum is to enable new members on the programming team to learn how to code robot specific features. By the end, you'll know how write the program for a robot that can be driven around by a human with joysticks as well as start adding some more sophisticated drive logic.

Table of Contents

Format

The curriculum is broken down into a series of challenges that will walk you through adding different chunks of functionality to a robot project.

These challenges are setup to enable you to do them without needing access to a physical robot (so for instance you could do them at home away from the robot lab). This is accomplished with unit tests that will verify your code has the expected outcome and let you know if something is wrong/missing.

Challenges

Beginner

Tackle these in order:

  1. Setting up your environment
  2. Basic Robot Principles
  3. Tank Drive
  4. Altering Tank Drive
  5. Moving to a target position
  6. Rotating to a target orientation
  7. Factories
  8. The Power of Injection
  9. Dependency Injection with Dagger
  10. Upgrading Using the SeriouslyCommonLib
  11. Running XbotEDU on a Real Robot

Intermediate

Now that you've put code onto a robot, we can take what you've learned in the beginner lessons and expand up on it. Take these categories in any order that seems interesting to you.

Rotation (turning) challenges

Translation (forward/backward) challenges

Driving (human control) challenges

Advanced

Making improvements

This curriculum is meant to be a living program that continues to improve/evolve over time. If you run into problems in the challenge descriptions here in the wiki or in the actual code/unit tests please let us know (or better yet, jump in and fix it if you're able).

Additional Topics

Open CV - For those a bit interested into Vision Programming, you can check out this open source computer vision software

WPILib - Documentation for WPILib, which we will be using on the robot

Clone this wiki locally