Recent Updates

  • Updated on: Jan 20, 2023

    Choosing a Base Class

    The base class is the framework that the robot code is constructed on top of. WPILib offers two different base classes, as well as a third option which is not technically a separate base class.

  • Updated on: Jan 20, 2023

    Default Commands

    In some cases you may have a subsystem which you want to always be running a command no matter what. So what do you do when the command you are currently running ends? That's where default commands come in.

  • Updated on: Jan 20, 2023

    Your Second Program and beyond

    By now you've learned how to code and deploy your first Java program. This article highlights additional resources as you look to add features and move beyond the basics presented so far.

  • Updated on: Jan 20, 2023

    Your Second Program and beyond

    By now you've learned how to code and deploy your first C++ program. This article highlights additional resources as you look to add features and move beyond the basics presented so far.

  • Updated on: Jan 20, 2023

    Adding Commands and Subsystems - Java

    A newly created command based robot project will have a set of default files and packages that were provided by the template. Using these files will make it easy to extend the default program into a custom robot program for your application.

  • Updated on: Jan 20, 2023

    Creating a robot project - Java

    This article is about command based programming in Java, if you are programming in C++ click here to skip ahead to learning about subsytems.

  • Updated on: Jan 20, 2023

    Constructing the robot program

    Sample program for driving a simple robot with a Mecanum drive, wrist and elevator both with potentiometer feedback, and a gripper that operates open-loop by time. This is the sample that was developed for the 2013 World Championship Conference session.

    Manual RobotBuilder
  • Updated on: Jan 20, 2023

    What is Command based programming?

    WPILib supports a method of writing programs called "Command based programming". Command based programming is a design pattern to help you organize your robot programs. Some of the characteristics of robot programs that might be different from other desktop programs are:

    • Activities happen over time, for example a sequence of steps to shoot a Frisbee or raise an elevator and place a tube on a goal.
    • These activities occur concurrently, that is it might be desirable for an elevator, wrist and gripper to all be moving into a pickup position at the same time to increase robot performance.
    • It is desirable to test the robot mechanisms and activities each individually to help debug your robot.
    • Often the program needs to be augmented with additional autonomous programs at the last minute, perhaps at competitions, so easily extendable code is important.

    Command based programming supports all these goals easily to make the robot program much simpler than using some less structured technique.

  • Updated on: Jan 20, 2023

    Light codes on control system components

    Many of the components of the FRC Control System have indicator lights that can be used to quickly diagnose problems with your robot. This guide shows each of the hardware components and describes the meaning of the indicators. Photos and information from Innovation FIRST and Cross the Road Electronics.

  • This document describes how to rewrite a simple autonomous into a command based autonomous. Hopefully, going through this process will help those more familiar with the older simple autonomous method understand the command based method better. By re-writing it as a command based program, there are several benefits in terms of testing and reuse. For this example, all of the logic is abstracted out into functions primarily so that the focus of this example can be on the structure.