![]() |
|
|
FIRST leaders have selected the NI CompactRIO embedded control platform as the controller for the 2009 FIRST Robotics Competition. This article provides a high-level overview of how CompactRIO communicates with external devices and how it transfers information to and from the onboard real-time processor.
Figure 1. The Robotics System Architecture with the New NI cRIO-FRC
The cRIO-FRC is the core of the robotics control system. It combines several hardware components in a compact form factor to provide processing and connectivity on a stand-alone platform. A customized version of the CompactRIO programmable automation controller, the cRIO-FRC will be offered for the 2009 FIRST Robotics Competition. This device combines a real-time controller and field-programmable gate array (FPGA) in a single unit. CompactRIO hardware components include:
Embedded real-time processor - an industrial 400 MHz Freescale MPC5200 processor that provides deterministic execution of code on the Wind River VxWorks real-time operating system
FPGA - a programmable hardware unit that offers control and low-level processing for the I/O interfaces
Figure 2. CompactRIO delivers rugged measurement and processing on a single platform.
Data Transfer To and From the Onboard Real-Time Processor
Fast communication throughout the system is ensured by DMA transfers from the FPGA to the real-time controller that occur over a high-speed PCI bus. The DMA engine transfers data directly from the FPGA to the onboard memory of the real-time controller. This frees up the processor to focus on other tasks like signal processing and analysis, data logging, and communication. Figure 3 illustrates the layout of the CompactRIO architecture.
Figure 3. Overview of Data Transfer within CompactRIO
A host PC or laptop provides:
A development environment for LabVIEW or C-based programming, which run on the CompactRIO real-time processor
Wireless debugging for both C and LabVIEW programs
The ability to create a customized user interface to display data from a robot
Figure 4. A laptop or host PC provides a user interface for programs running in real time. The user interface in this figure was created with LabVIEW.
A driver station, which controls the robot, connects to both the host PC and a wireless access point via Ethernet. The driver station includes:
An LCD to display robot information
USB ports that connect to input devices such as joysticks
Additional I/O that allows students to use
digital and analog input pins on the driver station to build their own controls
Communication to a driver station or laptop is implemented with 802.11 wireless Ethernet and two wireless access points. Wireless Ethernet provides:
Communication between the robot and the driver station
Wireless programming, debugging, and robot control
A camera is for image acquisition. CompactRIO processes the acquired data on the real-time processor and routes images to the host PC for display. The camera connects directly to CompactRIO with an Ethernet cable.
The NI C Series I/O modules listed below interface with external devices such as sensors and actuators. For more information on these modules, see the cRIO-FRC specifications.
NI 9403 – 32-channel, 5 V/TTL, sinking/sourcing digital I/O module
NI 9201 – 8-channel, ±10 V, 500 kS/s, 12-bit analog input module
NI 9472 – 8-channel, 24 V logic, 100 µs, sourcing digital output module
Figure 5. NI offers interchangeable C Series modules to connect to a variety of sensors and actuators.
Digital and analog sidecars connect actuators and sensors to the NI 9403 digital I/O module and the NI 9201 analog input module.
Specific sensors and actuators are yet to be determined. They will be comparable to those available in previous competitions.
Aren't the 5 and the 1 on the topology picture in the wrong spots? 1 is supposed to be the cRIO and 5 is supposed to be the camera according to the document. Not a big deal, but still...
This is a good start for an overview document. I would hope soon the digital/analog sidecar schematics are released as soon as possible (even if they are just the early versions).
I would also like lots links to the datasheets for the ethernet camera, MPC5200 and the FPGA (similar to the cRIO-FRC specifications page).
The same goes for software API, windriver, vision library links would be a great addition to this page.