Recent Updates

  • Updated on: Apr 04, 2016

    Debugging a robot program

    A debugger is used to control program flow and monitor variables in order to assist in debugging a program. This section will describe how to set up a debug session for a Java FRC robot program.

  • Updated on: Feb 22, 2016

    Adding custom components

    RobotBuilder works very well for creating robot programs that just use WPILib for motors, controllers, and sensors. But for teams that use custom classes, RobotBuilder doesn't have any support for those classes, so a few steps need to be taken to use them in RobotBuilder.

    Manual RobotBuilder
  • Often it is desirable to get feedback from the robot back to the drivers. The communications protocol between the robot and the driver station includes provisions for sending program specific data. The program at the driver station that receives the data is called the dashboard.

  • Updated on: Feb 01, 2016

    Target Info and Retroreflection

    This document describes the Vision Targets from the 2016 FRC game  and the visual properties of the material making up the targets. Note that for official dimensions and drawings of all field components, please see the Official Field Drawings

  • Updated on: Jan 25, 2016

    Overview of RobotBuilder

    Creating a program with RobotBuilder is a very straight forward procedure by following a few steps that are the same for any robot. This lesson describes the steps that you can follow. You can find more details about each of these steps in subsequent sections of the document.

    In addition to the text documentation provided here, a series of videos about RobotBuilder and many other FRC Robotics Engineering topics is also available.

    Manual RobotBuilder
  • Updated on: Jan 24, 2016

    PID Tuning with SmartDashboard

    The PID (Proportional, Integral, Differential) is an algorithm for determining the motor speed based on sensor feedback to reach a setpoint as quickly as possible. For example, a robot with an elevator that moves to a predetermined position should move there as fast as possible then stop without excessive overshoot leading to oscillation. Getting the PID controller to behave this way is called "tuning". The idea is  to compute an error value that is the difference between the current value of the mechanism feedback element and the desired (setpoint) value. In the case of the arm, there might be a potentiometer connected to an analog channel that provides a voltage that is proportional to the position of the arm. The desired value is the voltage that is predetermined for the position the arm should move to, and the current value is the voltage for the actual position of the arm.

  • Updated on: Jan 09, 2016


    While many of the numbers for the Vision Processing code can be determined theoretically, there are a few parameters that are typically best to measure empirically then enter back into the code (a process typically known as calibration). This article will show how to perform calibration for the Color (masking), and View Angle (distance) using the NI Vision Assistant. If you are using C++ or Java and have not yet installed the NI Vision Assistant, see the article Installing NI Vision Assistant.

  • Updated on: Jan 09, 2016

    Identifying and Processing the Targets

    Once an image is captured, the next step is to identify Vision Target(s) in the image. This document will walk through one approach to identifying the 2016 targets. Note that the images used in this section were taken with the camera intentionally set to underexpose the images, producing very dark images with the exception of the lit targets, see the section on Camera Settings for details.

  • Updated on: Jan 09, 2016

    Camera Settings

    It is very difficult to achieve good image processing results without good images. With a light mounted near the camera lens, you should be able to use the provided examples, the dashboard or SmartDashboard, NI Vision Assistant or a web browser to view camera images and experiment with camera settings.

  • Updated on: Jan 07, 2016

    Driver Station Input Overview

    The FRC Driver Station software serves as the interface between the human operators and the robot. The software takes input from a number of sources and forwards it to the robot where the robot code can act on it to control mechanisms.