Recent Updates

  • Updated on: Sep 12, 2014

    Setting up the robot project

    The RobotBuilder program has some default properties that need to be set up so the generated program and other generated files work properly. This setup information is stored in the properties for robot description (the first line).

    Manual RobotBuilder
  • Running your benchtop testing program while tethered to the Driver Station via ethernet or USB cable will confirm the the program was successfully deployed and that the driver station and roboRIO are properly configured.

  • Updated on: Sep 06, 2014

    Pneumatics Control Module

    The Pneumatics Control Module (PCM) is a CAN-based device that provides complete control over the compressor and up to 8 solenoids per module. The PCM is integrated into WPILib through a series of classes that make it simple to use. The examples shown here are for Java programs, the C++ classes have the same names except for the method capitalization, following the same conventions as used throughout the rest of WPILib.

    Moving from the old Compressor and Solenoid classes should be fairly easy. The closed loop control of the Compressor and Pressure switch is handled by the PCM hardware and the Solenoids are handled by the upgraded Solenoid class that now controls the solenoid channels on the PCM.

    An additional PCM module can be used where the modules corresponding solenoids are differentiated by the module number in the constructors of the Solenoid and Compressor classes.

  • Commands and Subsystems each are created as classes. The plugin has built-in templates for both Commands and Subsystems to make it easier for you to add them to your program.

  • Updated on: Aug 08, 2014

    Creating a robot project

    Create a command-based robot project by using one of the template projects that are provided with the Eclipse plugins.

  • Updated on: Aug 06, 2014

    WPILib Sensor Overview

    The WPI Robotics Library supports the sensors that are supplied in the FRC kit of parts, as well as many commonly used sensors available to FIRST teams through industrial and hobby robotics suppliers.

  • Updated on: Aug 06, 2014

    Actuator Overview

    This section discusses the control of motors and pneumatics through speed controllers, relays, and WPILib methods.

  • Updated on: Jul 23, 2014

    Measuring Bandwidth Usage

    On the 2013 FRC Field (and at home when the DAP-1522 is configured using the FRC Bridge Configuration Utility) each team is limited to 7Mb/s of network traffic (see the FMS Whitepaper for more details). The FMS Whitepaper provides information on determining the bandwidth usage of the Axis camera, but some teams may wish to measure their overall bandwidth consumption. This document details how to make that measurement.

  • Updated on: Jul 01, 2014

    GearsBot information

    GearsBot is a simple demo robot that is used to demonstrate writing WPILib programming. There are two sets of talks using it available on youtube: one with RobotBuilder and the other with just NetBeans. The example program provided is very similar to the code written in those talks, but it does have a few extra features to make it more simulation friendly.

    There are two major differences for supporting simulation. The first is

    taking advantage Encoder.setDistancePerPulse() and the AnalogPotentiometer to convert the readings into meaningful units such as feet and degrees. The simulator returns values in these more meaningful units by default and by

    21converting the readings from the real robot to these units the code can be written at a higher level that runs in both simulation and on the real robot. The second major difference is that the PID values are different on the real robot and on the simulated robot. While it would be ideal if they could be the same, the reality is that the model isn’t accurate enough and for

    better performance they use different PID values.

    All of the other code is the same, so it’s one codebase that can be run in

    two different ways. In order for the code to know whether or not it is run- ning on the real robot or in simulation, there are two convenience methods: Robot.isReal() and Robot.isSimulation() which return booleans. Any code that is specific to either the real or the simulated robot is wrapped in an if statement with a call to one of these methods so that it only runs in the right configuration.

  • Updated on: Jul 01, 2014

    PacGoat information

    PacGoat is FRC Team 190’s robot that competed in the 2014 season. The code distributed for the example is a modified version of what ran on the actual robot, so as to be realistic as possible in simulation. There are some differences:

    • The operator interface and commands have been simplified to work on a PS3 controller as opposed to needing multiple joysticks.
    • It has been updated to use 2015 WPILib API, including Simulation support, non-module based port numbers, etc
    • Refactoring, comments and general cleanup.
    • Some features, such as compressors and some sensors aren’t supported properly in simulation yet.
    • The firing mechanism in simulation is currently simplified to a single pneumatic cylinder.