Electrical

Programming

The first step in choosing which language to program your FRC robot is to find students and mentors with programming experience. If they have extensive experience in one of the languages supported by FRC, then that is probably the best one to choose.

LabVIEW

LabVIEW programs are collections of “virtual instruments,” or vi’s. Each vi consists of a front panel--with switches, knobs, graphs, and indicator lights—and a block diagram consisting of data wires that connect to basic logic elements and other vi’s. Data flows into a vi, where it’s modified, and flows out again.
  • Positive
    • In general, easier to people who have not programmed because it presents the information graphically
    • More user friendly for beginners
    • Adding even complex meters and controls to the front panel is easy.
    • Easy to debug
    • Real-time analysis without re-downloading the code
    • Data can be probed while running.
    • Example code for the sensors and motors includes wiring diagrams
    • Does not require a separate development environment. The vi is the development environment.
    • Is inherently multi-tasking. The user does not have to control threads.
    • Automatic memory management
  • Downside
    • Slow uploading time to the robot
    • Fewer people are familiar with LabVIEW and its dataflow computing than are familiar with C++ or Java.
  • Resources

C++

C++ and Java are both derived from C. They are the most commonly used programming languages in the world.
  • Positive
    • Fast uploading time to the robot
    • Familiar language to some people
    • Easy for experienced programmers to build sophisticated programs
  • Downside
    • The FRC C++ system uses the Eclipse/WindRiver development environment, which is extremely complicated. There is a steep learning curve required just to figure out how to use it.
    • Harder to debug
    • Hard to get data back in a visual format that is easy to understand
    • Debugging requires recompiling the code.
    • Multiple threads are controlled by the programmer rather than the system.
    • User must manage memory. Easy to have memory leaks.
  • Resources

JAVA

  • Positive
    • Fast uploading time to the robot
    • Familiar language to many people especially because of Computer Science classes provided in some schools
    • Easy for experienced programmers to build sophisticated programs
    • Automatic memory management
  • Downside
    • Harder to debug
    • Hard to get data back in a visual format that is easy to understand
    • Easier to debug than C++
    • Multiple threads are controlled by the programmer rather than the system.
  • Resources

Python

  • Positive
    • Familiar language to some people. Widely used in academic & scientific communities
    • In many ways, it is easier to use than C++ or Java.
    • Errors do not crash the robot.
  • Downside
    • Need to write extra code for it because very little pre-written code
    • Must be familiar with C++ in order to use some features and to modify code
    • More obstacles to overcome and much more challenging because not an official language of FIRST

Other Factors

  • Consider what languages your team already knows and what computer & mentoring resources are available to you.
    • Robot programming is different from other code so regardless of previous knowledge, there will be substantial learning involved.
    • All robot programming involves working with hardware: reading sensors and running motors, cameras, & pneumatic solenoids. There is no “pure” programming.
Upcoming Events:

No upcoming events for the week!

Click here to view more events.
S M T W T F S
   1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30

FIRST

MVRT would like to thank:
A special thanks to all sponsors for supporting MVRT!

Winner of the 2012 Championship Website Award
Winner of the 2012 Sacramento Website Award
Winner of the 2011 Silcion Valley Website Award
Winner of the 2011 Seattle Cascade Website Award
Winner of the 2010 San Diego Website Award
Winner of the 2009 Sacramento Website Award
Winner of the 2008 Championship Website Award
Winner of the 2008 Davis Regional Website Award
Winner of the 2008 Silicon Valley Website Award
Winner of the 2007 Davis Sacramento Website Award
Winner of the 2006 Silicon Valley Website Award
Valid XHTML 1.0 Strict Valid CSS! Valid RSS Cynthia Tested!