FIRSTwiki The FIRST Robotics encyclopedia

cRIO-FRC

The following information is outdated, but is retained for historical reasons

The FIRST Robotics Competition (FRC) adopted the CompactRIO (cRIO) control system for advanced robotics for its 2009 through 2014 seasons. In 2010, the cRIO-FRC was joined by the smaller, lighter and cheaper cRIO-FRC II. In 2015, it was replaced by the NI RoboRIO. The cRIO-FRC from National Instruments can be programmed in LabVIEW, C++ or C.

Programming

Code was cross-compiled on a separate computer then uploaded over the network by the programming environment.

LabVIEW

The cRIO was programmable from National Instrument’s own environment, LabVIEW. A demonstration of how LabVIEW was used with the FIRST Robotics Competition robots was provided by NI (link not found).

C++

In addition, the cRIO was be programmable in C or C++ with a library developed by Worcester Polytechnic Institute called WPILib. API documentation generated during active development can be viewed: WPI Robotics Library Documentation (2009).

C

Wrappers around the C++ library were provided. [1]

Hardware

The Compact Rio contains a PowerPC processor and reprogramable FPGA processor which was programmed by FIRST for the events. It ran VxWorks, a POSIX certified, real-time operating system.

Modules

The cRIO-FRC had slots for eight interchangeable modules. New modules were supplied each year to teams. The modules by themselves only have a D-Sub connector, so PWM or other wiring connections are made available through a breakout board that either screws into the module (used with the NI 9201 and NI 9472 modules), or a sidecar that is seperate from the module and connected by a cable (used with the NI 9403 module).

There were three modules used:

Key features

  • 32-bit real-time processor
  • 802.11 pre-n wireless ethernet
  • FPGA I/O control
  • Programmable in C, C++, and LabVIEW
  • Wireless debugging
  • Laptop dashboard
  • Intelligent robotics algorithms
  • Real-time vision processing
  • 50G shock rating
  • Easier connectivity
  • More sensor choices
  • More I/O lines