Upcoming Events:
Error 406 - Not Acceptable
Generally a 406 error is caused because a request has been blocked by Mod Security. If you believe that your request has been blocked by mistake please contact the web site owner.
Full event list
Error 406 - Not Acceptable
Generally a 406 error is caused because a request has been blocked by Mod Security. If you believe that your request has been blocked by mistake please contact the web site owner.
FIRST® Robotics Competition (FRC®)
Control System/Programming Resources
Control System Specifics
Pick a year...any year...
FRC Control System 2015-2021 |
FRC Control System 2009-2014 |
FRC Control System 2004-2008 FRC Control System 1995-1996 |
FRC Control System 2000-2003 FRC Control System 1993-1994 |
FRC Control System 1997-1999 FRC Control System 1992 |
Prior to 2000 the FIRST control systems were loaned to the teams only for the duration of the competition season and had to be returned after the last competition. In 1992 the robots ran tethered to the operator controls. In 1994 the system was a wireless one made by Motorola and had 6 control channels, each of which was Forward/Stop/Reverse. The FIRST IFI control system appeared in 1999, but had to be returned to FIRST at the end of the competition season. In 2000 teams got to keep their control systems and the off-season events were born.
The FIRST Robotics Competition (FRC) control system has several smaller, mini-robot cousins designed and manufactured by Innovation FIRST Inc. (IFI). These can be used to develop software that ports quite easily to the full-sized robot controller and to prototype simple mechanical design concepts. The Vex system is the basis for a robotics competition all it's own.
Vex 2006-2008
Compatable with the full-size FRC control systems from 2004-2008
Edu 2003-2005 PIC version
Compatable with the full-size FRC control systems from 2004-2008
Isaac 16 Edu 2003 pBasic version
Compatable with the full-size FRC control systems from 2000-2003
Edu-Vex-FRC Specs Comparison 2000-2008
Generic Algorithms, Sensor Specifics, General Examples, Topics of Interest
PID Control Theory
"One of the more difficult programming problems to solve in FIRST robotics is accurate control of systems. For example in the 2006 Game ("Aim High") robots used a low-resolution digital camera with a serial output to track a green light. A series of globally accessible variables allowed the robot program to access the results of that tracking while processing. Now here’s where control theory comes in, in order to target the goal with a shooter mechanism we need some way to get it there. Many people recommend PID and this paper goes over the basic math and principles behind using it. It’s meant to be a general overview to help you to develop your own PID control programming."PID Control Theory Rev. 3 (, 38.6 KB)
Gyroscope Programming
One of the more common sensors in FIRST Robotics is the Gyro, also known as a Gyroscope, Angular Rate Sensor, and Yaw Rate Sensor. The uses for them are plentiful, from detecting tipping, to making accurate turns, to driving in a straight line.Gyro Programming for FRC Robots Draft (, 55.2 KB)
Integer Math
The FIRST Robotics Competition robot controllers up through 2008, as well as, the Vex and Edu mini-robot controllers do not have floating-point processors, so all math is performed as interger math. Floating-point values, e.g., 3.14159, can be used, but what really happens behind the scenes is the compiler includes software that computes real numbers using integer math. That means integer math is much more efficient (many times faster) than floating point math.Integer math has it's pitfalls that you should be aware of.
Integer Math for FRC Robots (, 44 KB)
Lookup Tables
Lookup tables are simple ways to take advantage of a table of data, so the data can be easily used in calculations. Examples include complex functions that can be reduced to a table for quick and easy reference, such as, sine/cosine values or points describing an ellipse or complex curve. It could also be a simple table of indexes into some database or something similar. Just for purposes of explanation a lookup table to convert a joystick that a driver is moving to change the robot motor response is shown. This particular example also touches on adjusting the drive table to match the characteristics of the Victor 884 sprrd controller.Lookup Tables for FRC Robots (, 122 KB)
Control Buttons
Not the kind you wear, but the ones the driver pushes, and I don't mean knowing how to press your teacher's buttons either. A pretty simple topic, so simple most people don't think much about it. Tell me though how does a button work in code? How do you make a button toggle on/off or act like a deadman switch and only react when you let go of a trigger?Pressing Buttons on an FRC Robot (, 45 KB)
Rangefinders
Okay, so you have a rangefinder – ultrasonic, IR, whatever – what do you do with it? Let’s say you already have your rangefinder hooked up and you’re getting readings from it. You can tell something is in front of you and how far away it is to the inch. Now what? Who is your robot going to tell? What can your code do with that? Here's a brief practical application or two for rangefinders.Practical Applications-Rangefinders for FRC Robot (, 178 KB)
Programming Workshops
ChiefDelphi Whitepapers:
Search for keyword "Programming"
Suggested References & Reading:
- The C Programming Language, Brian Kernighan & Dennis Ritchie
- The C Answer Book, Clovis Tondo & Scott Gimpel (a companion to the above book with solutions to the exercises in that book))
- Programming Robot Controllers (Robot DNA Series) by Myke Predko
- Robot Programming : A Practical Guide to Behavior-Based Robotics by Joe Jones, Daniel Roth
- Physical Computing -- Dan O'Sullivan & Tom Igoe, Thomson Course Technology, 2004
Get Microsoft Excel Viewer
Get Microsoft PowerPoint Viewer
Get WinZip