Go to Post Remember: "It's not the strongest that survive, but the most adaptable to change" - Daniel_LaFleur [more]
Home
Go Back   Chief Delphi > Technical > Programming
CD-Media   CD-Spy  
portal register members calendar search Today's Posts Mark Forums Read FAQ rules

 
Closed Thread
Thread Tools Rate Thread Display Modes
  #1   Spotlight this post!  
Unread 16-07-2013, 21:50
howellrobotics howellrobotics is offline
Registered User
FRC #4776 (S.C.O.T.S. Bots)
 
Join Date: Jul 2013
Rookie Year: 2013
Location: Howell, MI
Posts: 2
howellrobotics is an unknown quantity at this point
Programming Advice for Newer FRC Team?

Hello,

We are a newer FRC team (Ultimate Ascent was our first season) and we are currently trying to decide what programming language to use for next season, so that we can begin training students. We used LabVIEW last year and had some issues with it, although these were likely due to our being rookies, and are considering changing to C++ or Java. We have access to good resources for all three languages, so mentorship is not a problem. What languages do your teams teams use and why? Pros & cons? Any and all advice or input would be greatly appreciated!

Thanks,

Howell High School FIRST Robotics
The S.C.O.T.S. Bots - Team 4776
"Service, Character, Opportunity, Teamwork, Spirit"
  #2   Spotlight this post!  
Unread 16-07-2013, 21:57
DonRotolo's Avatar
DonRotolo DonRotolo is offline
Back to humble
FRC #0832
Team Role: Mentor
 
Join Date: Jan 2005
Rookie Year: 2005
Location: Atlanta GA
Posts: 7,019
DonRotolo has a reputation beyond reputeDonRotolo has a reputation beyond reputeDonRotolo has a reputation beyond reputeDonRotolo has a reputation beyond reputeDonRotolo has a reputation beyond reputeDonRotolo has a reputation beyond reputeDonRotolo has a reputation beyond reputeDonRotolo has a reputation beyond reputeDonRotolo has a reputation beyond reputeDonRotolo has a reputation beyond reputeDonRotolo has a reputation beyond repute
Re: Programming Advice for Newer FRC Team?

We use LabView because mentors have experience with this language. We are considering Java, because that is what the High School teaches students (the Mentors would have to get up to speed here).

We have found that any language can do anything you might want, but the amount of support offered for FRC teams varies.
__________________

I am N2IRZ - What's your callsign?
  #3   Spotlight this post!  
Unread 16-07-2013, 22:02
iv597 iv597 is offline
Mentor + Game Announcer/MC
AKA: Josh Klar
FRC #3138 (Innovators Robotics)
Team Role: Mentor
 
Join Date: Apr 2013
Rookie Year: 2013
Location: Vandalia, OH
Posts: 18
iv597 will become famous soon enough
Re: Programming Advice for Newer FRC Team?

Quote:
Originally Posted by howellrobotics View Post
Hello,

We are a newer FRC team (Ultimate Ascent was our first season) and we are currently trying to decide what programming language to use for next season, so that we can begin training students. We used LabVIEW last year and had some issues with it, although these were likely due to our being rookies, and are considering changing to C++ or Java. We have access to good resources for all three languages, so mentorship is not a problem. What languages do your teams teams use and why? Pros & cons? Any and all advice or input would be greatly appreciated!

Thanks,

Howell High School FIRST Robotics
The S.C.O.T.S. Bots - Team 4776
"Service, Character, Opportunity, Teamwork, Spirit"
We at Innovators Robotics use C++ on grounds of it being "closer to the metal" without the overhead of Java, and because it was what the original programming team in 2010 knew to use. Between C++ and Java, though, if overhead isn't something you care about, it's often a wash. Plenty of support from CD and other programmers in both. Arguably easier to get new kids in if using Java, though it's still not *that* big of a gap.

I might also recommend RobotPy and the Lua interpretter + WPILib that are floating around CD. The interpretters run as C/C++ modules, therefore being legal to run on the cRIOs, and the ease of writing either of those languages is great (I know both extensively from working on web development projects in Python and working with tons of open source in Lua, and I have to admit they're in my "top favorite" list for languages). Very fast to write, and very fast to teach newbies. Also not sitting through compile times for your one-liner changes would be a nice sanity item (If I recall RobotPy will auto-reload code when a new version is pushed over the FTP link, meaning you have near-instant response from hitting Save to seeing the outcome).
  #4   Spotlight this post!  
Unread 16-07-2013, 22:03
vinnie's Avatar
vinnie vinnie is offline
Registered User
FRC #3309 (Friarbots)
Team Role: College Student
 
Join Date: Oct 2010
Rookie Year: 2010
Location: Los Angeles / Anaheim
Posts: 107
vinnie has a reputation beyond reputevinnie has a reputation beyond reputevinnie has a reputation beyond reputevinnie has a reputation beyond reputevinnie has a reputation beyond reputevinnie has a reputation beyond reputevinnie has a reputation beyond reputevinnie has a reputation beyond reputevinnie has a reputation beyond reputevinnie has a reputation beyond reputevinnie has a reputation beyond repute
Re: Programming Advice for Newer FRC Team?

We use Java, so that is what I would recommend.
The first advantage to Java is that it is the language used in the AP Computer Science course, so if your school offers that some students may have Java experience from the class.

Java tends to be more friendly to beginner programmers because of the garbage collection function of the JVM. If you're not familiar with it, it automatically reclaims memory used by objects that no longer have any references to them. This abstracts something complicated like memory management so an inexperienced programmer can focus more on the logic than making sure they don't have any memory leaks. Most FRC applications are probably simple enough that memory leaks aren't an issue, however.

Another advantage to Java (and I believe C++ as well) is dramatically faster deployment times compared to LabVIEW. I spoke to a member from Code Orange, who uses LabVIEW and he said that their deploy times ranged from 5-10 minutes, and I have heard similar stories from other teams. Here I was complaining about 30-45 seconds for Java

The main disadvantage to Java in FRC is that the cRIO JVM is Java ME, which is based on Java 1.3, so doesn't have a bunch of new features like generics.
__________________
Student (3309) 2010-2013
Mentor (597) 2014
Mentor (3309) 2013-Present
  #5   Spotlight this post!  
Unread 16-07-2013, 22:38
howellrobotics howellrobotics is offline
Registered User
FRC #4776 (S.C.O.T.S. Bots)
 
Join Date: Jul 2013
Rookie Year: 2013
Location: Howell, MI
Posts: 2
howellrobotics is an unknown quantity at this point
Re: Programming Advice for Newer FRC Team?

Quote:
Originally Posted by vinnie View Post
I spoke to a member from Code Orange, who uses LabVIEW and he said that their deploy times ranged from 5-10 minutes, and I have heard similar stories from other teams. Here I was complaining about 30-45 seconds for Java
Yes, this is one of the issues we encountered at our first competition. We didn't leave enough time for the code to deploy (we had made a last-minute update) during our first match, so we had no programming and were dead in the water, so to speak. It was taking us 15-20 minutes to deploy code, although that could've been due to our code being written rather inefficiently. (VIs galore!)
  #6   Spotlight this post!  
Unread 17-07-2013, 03:14
OWilliamson's Avatar
OWilliamson OWilliamson is offline
Registered User
FRC #2594 (NASKCO)
Team Role: Mentor
 
Join Date: Feb 2012
Rookie Year: 2012
Location: Idaho
Posts: 115
OWilliamson is a glorious beacon of lightOWilliamson is a glorious beacon of lightOWilliamson is a glorious beacon of lightOWilliamson is a glorious beacon of lightOWilliamson is a glorious beacon of light
Re: Programming Advice for Newer FRC Team?

Our team has always programmed with Labview in the past. In our opinion it is very straight forward and people have been able to pick it up very quickly. I know that some people have complained about being somewhat limited when it comes to certain applications, but we have been able to do everything that we have wanted to with it. I have also been able to find a lot of support for it, and there are quite a few tutorials floating around online which can help a ton.

We also used to have horrible deploying time until this year. In years past we only used the Classmate as the programming laptop, and as a result deploying would take an eternity. This year we finally got a new laptop and our deploys have been very fast, with the complete code deploying in less than a minute. I think the laptop had an i3 processor with 16 GB of RAM and 2 SSD's. That may be a little overkill, but that is just what we decided to go with. I know that it isn't always possible to get a brand new laptop, but you will most likely see a speed increase no matter what language you decide to go with.

There is nothing wrong with trying out other programming languages, but if you do that I would make sure that your programmers know that language very well by the time the season rolls around. It is not fun to have to learn a new language in season as well as getting competition worthy code.
__________________


2015: Utah Regional - Quarter-Finalists (3374 & 4158)
2014: Utah Regional - Semi-Finalists (1619 & 399)
2013: Utah Regional - Quarter-Finalists (1332 & 3562)
2012: Utah Regional
  #7   Spotlight this post!  
Unread 17-07-2013, 07:52
Greg McKaskle Greg McKaskle is offline
Registered User
FRC #2468 (Team NI & Appreciate)
 
Join Date: Apr 2008
Rookie Year: 2008
Location: Austin, TX
Posts: 4,756
Greg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond reputeGreg McKaskle has a reputation beyond repute
Re: Programming Advice for Newer FRC Team?

The deploy times of LabVIEW last year were miserable due to bugs in the compile cache. Advanced optimization features and a bit of human error caused deployment to a controller with a running startup app to recompile everything it saw. The bugs have been fixed and the FRC use-case is better understood with the RT development teams. I apologize for the bad experience.

To your questions about languages, my advice would be to try and gain experience in multiple languages. Ideally with a mentor, pick some problems, and code the solution in the trial languages. Debug it with the tools. Modify it a few times, explain how the solution works to someone else. Experiment and learn what works for your team. Then go deeper on one of them. All are good choices.

Greg McKaskle
  #8   Spotlight this post!  
Unread 19-07-2013, 14:44
Jacob Bendicksen's Avatar
Jacob Bendicksen Jacob Bendicksen is offline
Figuring out what's next
no team
Team Role: Alumni
 
Join Date: Apr 2013
Rookie Year: 2012
Location: United States
Posts: 771
Jacob Bendicksen has a reputation beyond reputeJacob Bendicksen has a reputation beyond reputeJacob Bendicksen has a reputation beyond reputeJacob Bendicksen has a reputation beyond reputeJacob Bendicksen has a reputation beyond reputeJacob Bendicksen has a reputation beyond reputeJacob Bendicksen has a reputation beyond reputeJacob Bendicksen has a reputation beyond reputeJacob Bendicksen has a reputation beyond reputeJacob Bendicksen has a reputation beyond reputeJacob Bendicksen has a reputation beyond repute
Re: Programming Advice for Newer FRC Team?

We use Java, but other than the fact that the computer science classes at our school I couldn't tell you why.
__________________
jacobbendicksen.com | @jacobbendicksen

Yale University Class of 2020

Team 1540 | 2012-2016
7 Chairman's Awards, 6 other awards, 2015 Dean's List Finalist, 1 event win, 2 finalist finishes. Thanks for an amazing ride.
  #9   Spotlight this post!  
Unread 20-07-2013, 19:12
ekapalka's Avatar
ekapalka ekapalka is offline
Registered User
FRC #3216
 
Join Date: Dec 2012
Location: Bermuda
Posts: 277
ekapalka has a spectacular aura aboutekapalka has a spectacular aura about
Re: Programming Advice for Newer FRC Team?

I would recommend C++. Deploy times are around 1 minute (or less), the environment is easy to set up (albeit you need the LabView disc and two WindRiver ones), and it's pretty easy to learn (even if you have no programming experience). Unless you have people who know LabView, I wouldn't recommend it. LabView experts are like truffles; they're really hard to find, and worth a fortune. C++ and Java programmers are more common (no offence!). The C++ deploy times were my favourite part. We created our entire Autonomous programme in-between matches at the competition this year.
  #10   Spotlight this post!  
Unread 20-07-2013, 21:21
MichaelBick MichaelBick is offline
Registered User
FRC #1836 (MilkenKnights)
Team Role: Alumni
 
Join Date: Oct 2011
Rookie Year: 2010
Location: Los Angeles
Posts: 734
MichaelBick has a brilliant futureMichaelBick has a brilliant futureMichaelBick has a brilliant futureMichaelBick has a brilliant futureMichaelBick has a brilliant futureMichaelBick has a brilliant futureMichaelBick has a brilliant futureMichaelBick has a brilliant futureMichaelBick has a brilliant futureMichaelBick has a brilliant futureMichaelBick has a brilliant future
Re: Programming Advice for Newer FRC Team?

We use java primarily because that's what our AP comp sci students know. You should pick a language that your programmers know best. Otherwise it doesn't matter, although C++ and Java deploy times are nice.
__________________
Team 1836 - The Milken Knights
2013 LA Regional Champions with 1717 and 973
2012 LA Regional Finalists with 294 and 973
To follow Team 1836 on Facebook, go to http://www.facebook.com/MilkenKnights
To go to our website, go to http://milkenknights.com/index.html
  #11   Spotlight this post!  
Unread 21-07-2013, 19:13
uboat uboat is offline
Registered User
AKA: Mike Ulinski
FRC #1781
Team Role: Mentor
 
Join Date: Oct 2007
Rookie Year: 2007
Location: Chicago
Posts: 7
uboat is an unknown quantity at this point
Re: Programming Advice for Newer FRC Team?

Since you have support in all 3 languages I would recommend you use what will help the students in the long run. We used LabVIEW a couple of seasons but have programmed with Java the last 2. We switched mainly because we had a number of students interested in pursuing computer science degrees. Not to say you won't learn about standard programming methodologies with LabVIEW however being familiar with Java (or C++) and learning about Object Oriented programming will give them a leg up in college.
  #12   Spotlight this post!  
Unread 21-07-2013, 22:18
Charles Boehm's Avatar
Charles Boehm Charles Boehm is offline
Build Team Lead, Weapons Officer
AKA: Charles
FRC #2175 (The Fighting Calculators)
Team Role: Leadership
 
Join Date: May 2013
Rookie Year: 2013
Location: Minnesota
Posts: 56
Charles Boehm is a jewel in the roughCharles Boehm is a jewel in the roughCharles Boehm is a jewel in the rough
Re: Programming Advice for Newer FRC Team?

Our team has been using LabVIEW for the last few years but this summer we have been trying to make the change to C++. Somewhere in the process it rendered one of our team laptops unusable for sometime(I don't know the details on what it was), i'm not saying don't use it, but be careful.
  #13   Spotlight this post!  
Unread 23-07-2013, 12:49
kuyan kuyan is offline
Registered User
FRC #4666 (Robowolves)
Team Role: Communications
 
Join Date: Apr 2013
Rookie Year: 2013
Location: Roseville, CA
Posts: 3
kuyan is an unknown quantity at this point
Re: Programming Advice for Newer FRC Team?

Our team is/was in a similar position. Ultimate Ascent was our first season, and we were a LabView shop. I'm not on the programming team, but as I understand it, we stayed away from Java/C++/et al. and close to LabView because LabView seemed simpler and the other languages seemed more daunting and a bit lower-level than we needed.

There's already a load of better advice above this post, so I'll keep this short. Whichever language you decide to use, you need to have a mentor with experience in that area. There are forums, IRC channels, etc. that you can go to if you need help, but it's not the same as having someone with specific experience on-site. Especially with the lower-level and more complex languages like C++.

In short, you really need someone on the team who's been bitten by everything your programming language can bite you with.
  #14   Spotlight this post!  
Unread 23-07-2013, 13:16
BigJ BigJ is offline
Registered User
AKA: Josh P.
FRC #1675 (Ultimate Protection Squad)
Team Role: Engineer
 
Join Date: Jan 2007
Rookie Year: 2007
Location: Milwaukee, WI
Posts: 947
BigJ has a reputation beyond reputeBigJ has a reputation beyond reputeBigJ has a reputation beyond reputeBigJ has a reputation beyond reputeBigJ has a reputation beyond reputeBigJ has a reputation beyond reputeBigJ has a reputation beyond reputeBigJ has a reputation beyond reputeBigJ has a reputation beyond reputeBigJ has a reputation beyond reputeBigJ has a reputation beyond repute
Re: Programming Advice for Newer FRC Team?

We use Java because that's what the mentors prefer and because the AP classes use Java.

An FRC Java environment has a couple more benefits too -- it's (low-effort) cross-platform (Linux or Mac users can easily integrate into the team), and a simple Netbeans+plugins IDE setup is 10 min or less depending on your download speed
  #15   Spotlight this post!  
Unread 23-07-2013, 15:31
Ilovepineapples's Avatar
Ilovepineapples Ilovepineapples is offline
Pineapple Enthusiast
no team
 
Join Date: Jul 2013
Rookie Year: 2007
Location: United States
Posts: 28
Ilovepineapples is a splendid one to beholdIlovepineapples is a splendid one to beholdIlovepineapples is a splendid one to beholdIlovepineapples is a splendid one to beholdIlovepineapples is a splendid one to beholdIlovepineapples is a splendid one to beholdIlovepineapples is a splendid one to beholdIlovepineapples is a splendid one to behold
Re: Programming Advice for Newer FRC Team?

In my experience with programming FRC robots I have found LabView to be the easiest language to pickup if you have little/no experience. The interactive tutorials and exmaples that teams and NI have posted will allow you to get your robot up and running reliably pretty fast. The one downside is that NI LabView tends to not be as powerful as C++/Java.

To put it in perspective you generally see LabView being used for testing in the Manufacturing industry whereas you will see Java/C++ used more in the Development process for the Engineering/Defense Industry.

Also as a note most high school classes that give college credit (Known as AP classes in MN) will teach students Java. With the knowledge I learned in FRC I was able to take the java AP exam without actually taking the class in high school.
Closed Thread


Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT -5. The time now is 03:30.

The Chief Delphi Forums are sponsored by Innovation First International, Inc.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi