2014 FRC Software Component Overview
The 2014 FRC Control System consists of a wide variety of mandatory and optional software components designed to assist you in the design, development and debugging of your robot code, control robot operation, and provide feedback to assist with troubleshooting. For each software component this document will provide a brief overview of its purpose, a link to the package download if appropriate, and a link to further documentation where available.
LabVIEW FRC 2014
LabVIEW FRC 2014, based on National Instruments' LabVIEW 2013, is the development environment for LabVIEW, one of the three officially supported languages for programming an FRC Robot in 2014. LabVIEW is a graphical, dataflow-driven language. LabVIEW programs consist of a collection of icons, called VIs, wired together with wires which pass data between the VIs. The LabVIEW FRC 2014 installer is distributed on a DVD found in the Kickoff Kit of Parts or can be downloaded from here, the language specific update can be found here. A guide to getting started with the LabVIEW FRC 2014 software, including installation instructions can be found here
FRC Robot Simulator
The FRC Robot Simulator is a component of the LabVIEW programming environment that allows you to operate a predefined robot in a simulated environment to test code and/or Driver Station functions. It utilizes a LabVIEW code project as the robot code and communicates with the FRC Driver Station for robot control and the FRC Default Dashboard for robot feedback. The FRC Robot Simulator is installed with LabVIEW FRC 2014. Information on using the FRC Robot Simulator can be found by opening the Robot Simulation Readme.html file in the LabVIEW Project Explorer.
Wind River Workbench
Wind River Workbench is the supported development environment for C++, one of the three supported languages used for programming an FRC robot in 2014. C++ is an object-oriented text based programming language. A program in C++ (for FRC) consists of a number of header (.h) and implementation (.cpp) files. The Wind River Workbench installer is distributed on two DVDs found in the Kickoff Kit of Parts and is not available for download, the C++ Workbench Update can be found here. A guide to getting started with C++ for FRC, including installation of Wind River Workbench, can be found here.
Netbeans is the primary supported development environment for Java, one of the three supported languages used for programming an FRC robot in 2014. Java is an object-oriented text base programming language. A program in Java (for FRC) consists of one or more .java files contained in one or more packages. The Netbeans IDE can be downloaded here. It is recommended to install the language specific updates through Netbeans in order to be automatically notified of updates, if manual installation must be used, the plugins can be found here. A guide to getting started with Java for FRC, including the installation and configuration of Netbeans can be found here.
FRC Driver Station
The FRC Driver Station software is the only software allowed to be used for the purpose of controlling the state of the robot during competition. This software contains the code necessary to send data to your robot from a variety of input devices such as joysticks, gamepads, the Cypress FIRSTTouch IO Board, and the Microsoft Kinect. It also contains a number of tools used to help troubleshoot robot issues such as status indicators and log file creation. The FRC Driver Station is included in the NI FRC 2014 Update found here, More information about the FRC Driver Station software can be found here.
FRC LabVIEW Dashboard
The FRC LabVIEW Dashboard is the default dashboard program installed with, and automatically launched by, the FRC Driver Station. The purpose of the Dashboard is to provide feedback about the operation of the robot. The FRC Default Dashboard serves as a an example of the types of feedback teams may want from their robot. It includes a tabbed display that can switch between viewing an image from a camera on the robot, a Kinect skeleton or a display of NetworkTables variables, a display of information regarding the joysticks and drive motors, an indicator of the robot IP and battery voltage, and a second tabbed display that can switch between examples of custom indicators and controls, a test tab for use with the Driver Station Test Mode and a Checklist tab that teams can use to enter a custom checklist to complete before each match. The FRC Default Dashboard is included in the NI FRC 2014 Update. More information about the FRC Default Dashboard software can be found here.
The SmartDashboard is an alternate dashboard application written in Java. The SmartDashboard automatically creates a widget for each variable sent from the Robot sent using the SmartDashboard class or VIs. These widgets can be configured to a number of preset display types, or users can create custom extensions in Java. Vision extensions are available for the SmartDashboard which allow it to display images from the Axis camera on the robot. The SmartDashboard is included in the C++ and Java language updates (enabled by clicking the C++ or Java buttons respectively on the Setup tab of the Driver Station). The Vision extensions and a standalone installer for the SmartDashboard (for use by LabVIEW teams or installing on a DS without the C++ or Java programming environments) can be found here. Note that teams may need to install the Java Runtime Environment to use the SmartDashboard on computers not set up for Java programming. Additional documentation on the SmartDashboard can be found here.
LiveWindow is a mode of the SmartDashboard, designed for use with the new Test Mode of the Driver Station. LiveWindow allows the user to see feedback from sensors on the robot and control actuators independent of the written user code. More information about LiveWindow can be found here.
There is a new version of SmartDashboard this year that teams may choose to use. The previous version will still be installed by the language updates for C++ and Java and the Standalone Vision installer and will be launched by using the C++ and Java buttons on the DS. The new version is based on the JavaFX framework and includes new widgets, an easier system for customization (using JavaFX CSS), tabs and a record/playback feature that will allow for recording of video and Network Tables variables to be played back on the dashboard later. More information about SFX can be found here.
FRC 2014 cRIO Imaging Tool
The FRC 2014 cRIO Imaging Tool is a software tool used to format and setup an cRIO-FRC or cRIO-FRCII device for use in FRC. The tool detects any cRIO device on the network, reports the current MAC, name, IP and Image version and indicates if the modules are installed in the correct locations. The tool allows the user to configure the software language, CAN plugin, enable/disable NetConsole, and set the virtual DIP-switches (cRIO-FRCII only) without formatting the device. If the device is being formatted the Device Name and Team ID can also be changed. The FRC 2014 cRIO Imaging Tool is installed as part of the NI FRC 2014 Update. Additional instructions on imaging your cRIO using this tool can be found here.
Setup Axis Camera
The Setup Axis Camera utility is a LabVIEW program used to configure an Axis 206, M1011, M1013 camera for use on the robot. The tool takes a factory reset camera connected directly to the computer and configures the IP, username and password, anonymous access, and default framerate and compression (for use with the SmartDashboard or other access methods). The Setup Axis Camera tool is installed as part of the NI FRC 2014 Update found here. Instructions for using the tool to configure the camera are located here.
NetConsole for cRIO
NetConsole for cRIO is a LabVIEW program that, combined with enabling the plugin on the robot with the cRIO Imaging Tool, allows for remote access to the serial console on the cRIO over the network. This allows the user to view diagnostic output from the cRIO, WPILib and any print statements they have added to their code as well as provide input to the serial console. The NetConsole for cRIO tool is installed as part of the NI FRC 2014 Update. Additional information and instructions for using the NetConsole for cRIO utility are available here.
FRC Driver Station Log Viewer
The FRC Driver Station Log Viewer is a LabVIEW program used to view logs created by the FRC Driver Station. These logs contain information such as battery voltage, trip time, CPU% and robot mode, as well as events such as joystick removal. The FRC Driver Station Log Viewer is included in the NI FRC 2014 Update. More information about the FRC Driver Station Log Viewer and understanding the logs can be found here.
Robot Builder is a tool designed to aid in setup and structuring of a Command Based robot project for C++ or Java. Robot Builder allows you to enter in the various components of your robot subsystems and operator interface and define what your commands are in a graphical tree structure. Robot Builder will then verify that you have no port allocation conflicts and can generate a wiring table indicating what is connected to each port as well as C++ or Java code. The code created generates the appropriate files, constructs the appropriate objects and adds LiveWindow code for each sensor and actuator, but does not write any of the actual Subsystem or Command methods. The user must write the appropriate code for these methods for the robot to function. Robot Builder is installed with the C++ or Java language specific updates (found in the WindRiver/WPILib and sunspotfrcsdk/tools directories respectively). Note that teams may need to install the Java Runtime Environment to use the Robot Builder on computers not set up for Java programming. More information about Robot Builder can be found here. More information about the Command Based programming architecture can be found here.
Network Tables Viewer
The Network Table Viewer is a utility used to view, modify and add to the contents of the Network Tables for debugging purposes. It displays all keys currently in the Network Table along with the value and Sequence Number and can be used to modify the value of existing keys or add new keys to the Table. The Network Table Viewer is included in the C++ and Java language updates (found in the WindRiver/WPILib and sunspotfrcsdk/tools directories respectively). LabVIEW teams can use the Variables tab of the LabVIEW Dashboard to accomplish this functionality. Note that teams may need to install the Java Runtime Environment to use the Network Tables Viewer on computers not set up for Java programming. Additional documentation on the Network Table Viewer can be found here.
BDC-COMM is a software utility used to configure, update and test Black Jaguar motor controllers over the Serial/CAN interface. This tool can be used to update the Black Jaguar firmware, set the Board ID, and set configuration values such as the fault time and soft limits. The tool can also be used to control, and report the status of, an individual Jaguar in the various modes for testing. BDC-COMM is installed as part of the NI FRC 2014 Update or can be downloaded from here.
FRC Bridge Configuration Utility
The FRC Bridge Configuration Utility is a tool used to configure the D-Link DAP-1522 radio for practice use at home. This tool sets the appropriate IP, and network settings for proper network connection, as well as the QOS settings required to mimic the bandwidth limiting and packet prioritization experience on the FRC playing field. The FRC Bridge Configuration Utility is installed with the 2014 NI FRC Update. Instructions on using the FRC Bridge Configuration Utility to configure your radio can be found here.
FRC Kinect Server
The FRC Kinect Server is a software tool that interfaces with a Microsoft Kinect device and provides the information to the FRC Default Dashboard and Robot via the Driver Station. The FRC Kinect Server utilizes the Microsoft Kinect for Windows SDK's skeleton capabilities in order to provide both raw skeleton data and processed pseudo-joystick data to the dashboard and robot. The FRC Kinect Server is available here. Additional information about the FRC Kinect Server, including installation instructions is available here.