Skip to content

Co processing

mjhealy edited this page Sep 26, 2019 · 6 revisions

These provide an option for off-loading some processing from the Rio (e.g., for lights, vision control, etc.), which can make it easier to get stuff done.

Note that the co-processors are only allowed by FIRST to perform certain types of tasks. In particular, they are generally not allowed to control motors, etc., since they're not directly hooked into the Field Management System.

Arduino

These are effectively microcontrollers (a small computer on a single integrated circuit) that come in lots of different configurations, ranging from single chips (e.g., the Arduino Nano, or even a single processor that needs additional circuitry to work) all the way up to single-board computers of not unreasonable size and flexibility. There's also a lot of options for add-on daughterboards (or "shields", as they're called in the Arduino community) that can expand an Arduino's capabilities.

The primary programming language for the Arduino is a dialect of C/C++. It is reasonably easy to learn the basics, and you can do a surprising amount of stuff fairly quickly, particularly given the large number of additional libraries that are available as open source.

Hardware is available from lots of vendors, and since the hardware design was open-sourced, there are a lot of clones/knock-offs available at different price points. (We've had good luck with hardware made by SunFounder and purchased from Amazon, such as this Mega and Uno.

Price points generally range from under $5 to about $50, usually depending on a combination of the vendor (caveat emptor), the number of pins available to interface with the real world, and the amount of memory (flash and/or RAM) available for run-time use.

Raspberry Pi

Where the Arduino is more or less a microcontroller, the Raspberry Pi is effectively a fully-fledged general purpose computer, capable of running desktop Linux (or other operating systems, including a version of Microsoft Windows).

As a result, the Pi can be used as a very powerful co-processor on a robot, able to handle much more complicated tasks than can an Arduino, including fairly sophisticated image/sensor processing. Writing programs for the Pi can be done on a desktop/laptop computer and turned into executable code using a cross-compiler, or by writing/compiling them directly on the Pi, itself.

Quasics has used Raspberry Pi hardware to run digital signage in the pits at competition, displaying photos from outreach events, etc. In the 2019 challenge, we used one for the first time on board a robot, where we used it to provide camera streaming support to the driver's station.

Clone this wiki locally