NI Home
Cart Cart | Help
Company Events Academic NI Developer Zone Support Solutions Products & Services Contact NI MyNI

Tutorial: C / C++ Programming for the 2009 FRC Control System

VERSION 3 Published

Created on: Apr 16, 2008 4:48 PM by NI FIRST - Last Modified:  Apr 24, 2008 5:29 PM by NI FIRST

 

 

 

Here is information from Worcester Polytechnic Institute (WPI) on the WPILib.

 

The WPILib is a complete open source library that provides a simple, intuitive framework that makes it easy to write programs for your robot in either C/C++ or LabVIEW. Additionally, because it is open source, teams have the ability to "look under the hood" and experienced programmers can easily adapt code to meet their own complex needs.

 

To learn more about the features and support for the WPILib, download the attached PDF and visit the WPI website.

 

 

 

Goals of the C / C++ System

 

 

 

 

  • Reduce the barrier to entry for new teams - easy programs are easy to write

  • Enable arbitrarily complex programs for experienced teams

  • Easy to create reusable components

  • Can be updated to a new version with no team robot code changes

  • No secrets "under the covers" - everything visible

  • Teams have the ability to support themselves

 

Robot Environment

  • National Instruments CompactRIO

  • 128mb RAM 400mhz PowerPC

  • FPGA (Field Programmable Gate Array) for hardware support of sensors

  • WindRiver VxWorks real-time operating system

  • Full support of multi-tasking real-time programs

  • WindRiver Workbench

  • Based on industry standard Eclipse Integrated Development Environment

  • Full "on-chip" debugging/downloading support over Ethernet or 802.11 connection

  • Extensive C or C++ development tools and libraries

  • WPILib C/C++ Library

  • Similar level of abstraction to easyC / WPILib (current versions)

 

C/C++ library

  • Library functions available from C or C++

  • Teams have the opportunity to learn about and use object oriented programming techniques

  • Ability to write mixed C and C++ programs

  • C and C++ have equivalent functionality

  • Framework to support competition programs

  • Automatic or manual sequencing of Autonomous and Teleoperation code

  • Runs on top of VxWorks with full support for real-time features

  • Parity between C/C++ and NI LabVIEW libraries

 

Why Open Source

  • Teams will have a better understanding of the code since they have access to the source

  • Allowing teams to contribute makes for a more standardized code base that would be more acceptable to everyone

  • Community ownership since there is no hidden proprietary code

  • Multi-team projects and team contributed improvements now easy - final works available to the

 

FIRST community

  • Teams can more easily extend and adapt code to their own application

 

Open Source Community Project

  • Community model

  • Modeled after other open source projects like Linux

  • Small group of "committers" from the community that make decisions about disposition of new code

  • We want to encourage FIRST Community contributions and reviews

  • Support for software through the FIRST community

  • All C/C++ library code on SourceForge server

  • Free read access to all source code

  • Teams will have a better understanding of the code since the source is available

  • Derived works are OK

 

WPILib Support for Robot Programs

  • Classes for all commonly used devices through the FPGA

  • Camera / Image processing

  • A/D Converter

  • Speed controls with user-settable profiles

  • Gyro

  • Accelerometer

  • Driver Station

  • Speed controls motors

  • Relays

  • Solenoids

  • Counters & Gear tooth sensors

  • Encoders

  • Timing

  • and more...

 

Classes for high level robot operation:

  • Driving: based on a robot definition

  • Arcade steering

  • Tank steering

  • Holonomic (Mecanum chassis)

  • Compressor / pressure sensor

  • Driver station communications

  • More to come...

 

Exception handling Support

  • WPI / FIRST / NSF Collaborative Web Site

  • Designed to encourage teams helping teams

  • Developing tutorials and sample code

 

Schedule and Availability (tentative)

  • Fall access to source code and knowledge base

  • Final version available with 2009 electronics kit

 

Related Resources

FIRST Robotics Resource Center

FIRST Robotic Competition Resources

 

 

Downloads:
Average User Rating
(0 ratings)




There are no comments on this document

More Like This

  • Retrieving data ...