View Full Version : Programs for the new FRC platform
frcchile
26-12-2008, 14:33
Team #2576
Hello, we are from Chile and we want to know which software can we use to program the new FRC platform.
Can you give us an opinion about which one is the best software for you
Thank you for your help :]
There are two choices.
1. LabVIEW
2. C and C++ (with the help of WindRiver/Eclipse)
I have almost no coding skills, so i think Labview will be easier to pick up for me. But, I've heard good things about both. If you have programmers familiar with c and c++, then WindRiver might be more comfortable to them. Otherwise, i don't think it matters really.
----------------------------
here are some LAbVIEW video's if you decide on that route.
these video's are pretty helpful. You could probably skip the first one if you want.
http://www.lvmastery.com/files/FIRSTDec12_Part1/FIRSTDec12_Part1(2).html
http://www.lvmastery.com/files/FirstDec12_Part2/FirstDec12_Part2.html
http://www.lvmastery.com/files/FirstDec12_Part3b/FirstDec12_Part3b.html
frcchile
26-12-2008, 14:46
Thank you for the quick answer
but the links are wrong ( file not found )
Thanks for help us :yikes:
Vikesrock
26-12-2008, 14:48
These are the correct links
http://www.lvmastery.com/files/FIRSTDec12_Part1/FIRSTDec12_Part1(2).html
http://www.lvmastery.com/files/FirstDec12_Part2/FirstDec12_Part2.html
http://www.lvmastery.com/files/FirstDec12_Part3b/FirstDec12_Part3b.html
Alan Anderson
26-12-2008, 23:54
...which software can we use to program the new FRC platform.
The software you can use will be included along with the control system in the Kit of Parts: LabVIEW for FRC, and a WindRiver C/C++ environment.
Can you give us an opinion about which one is the best software for you
Best for my team is LabVIEW. I don't know what's best for yours.
frcchile
27-12-2008, 08:53
The software you can use will be included along with the control system in the Kit of Parts: LabVIEW for FRC, and a WindRiver C/C++ environment.
Best for my team is LabVIEW. I don't know what's best for yours.
Thanks for your answer, can you say me why labVIEW suits your needs or why they chose
we do not know yet which choose, us would be useful opinions of people who already have made their choice
Thanks
EricVanWyk
27-12-2008, 09:49
If you have a LabVIEW expert, go with LabVIEW. If you have a C/C++ expert, go with C++. If your expert would end up dominating and not allowing the kids to program, go against their strength.
If you don't have a mentor expert, and you truly have a blank slate to work from, I would personally go with LabVIEW. I've stumbled through teaching C++ and LabVIEW (I'm not an expert in either), and I've found that people completely new to programming pick up LabVIEW quicker. However, that is just anecdotal - I'm sure the pendulum swings both ways.
frcchile
27-12-2008, 13:37
If you have a LabVIEW expert, go with LabVIEW. If you have a C/C++ expert, go with C++. If your expert would end up dominating and not allowing the kids to program, go against their strength.
If you don't have a mentor expert, and you truly have a blank slate to work from, I would personally go with LabVIEW. I've stumbled through teaching C++ and LabVIEW (I'm not an expert in either), and I've found that people completely new to programming pick up LabVIEW quicker. However, that is just anecdotal - I'm sure the pendulum swings both ways.
Thank
My team hasnīt an expert member in labview and C/C++, Labview is a new program, the last year we work with other program. Now we be very confused.
you opinion is very important
Thank you for help :D :] :p
LightWaves1636
27-12-2008, 13:52
I would go with LabVIEW, although I wish for a zoom feature, I believe less problems will arise from LabVIEW than WindRiver because CRIO was originally intended for LabVIEW and if issues to occur, troubleshooting will go faster if you use the probe feature. Just some past experience of my fellow mentors applies to this as well.
kyungjin
31-12-2008, 01:38
Real men/women program in text. <That's sooooo gonna be our club's T-Shirt next year though>
Just kidding...
Our team is going to go a different path with WindRiver (C/C++). It might be a bit difficult to pick up at first (even for an acquainted programmer like myself) because it is pretty heavily reliant on Object Oriented Programming but I'm pretty sure, that once you get used to it, we'll be able to have a bit more freedom in terms of some advanced features and quicker implementation (text versus GUI). Finally for me, maybe I'm just wierd, but it's a lot more simple to envision code through text versus graphics. But that's my personal opinion...
koreabell
31-12-2008, 02:20
you'll know you have 2 choices - NI LabVIEW or Windriver Workbench
for our team, we're going to try both at the same time, compare advantages and disadvantages of it.
for this year our main programming code will be based on C++ since i know better about C++ and I'm the main programmer.
the only reason I'm doing both is because the rest of the programming members don't actually know about C/C++, well nothing about programming, and I wanted to let them do it easy way, by looking graphically what's happening.
but if it appears that LabVIEW is better, we are (at least i am) willing to change to labview system beginning next season
by the way, I believe C++ will have more control over it(robot&its mechanism affected directly by software) and it'll give more freedom to programmers
antoineft
31-12-2008, 06:27
Our team has had the controller for the past month and we were in the same spot, wondering whether to go with Labview or C++. We put together sample programs in both languages and tested with last years robot. Not going to say anything about the pre-made WPI libraries as I'd say they are fairly equal. Here's some pro's and con's of each.
C++ PROS's:
1 - Coding is more familiar to older teams
2 - Better chance of finding a C/C++ expert/mentor than a Labview expert
3 - **not 100% sure, but I heard somewhere that C++ runs faster on the cRIO than LabView, don't quote me on that
C++ CON's:
1 - Visual feedback looks archaic when compared to what LabView can do
2 - harder to explain coding to a non-programmer
LABVIEW PROS's:
1 - visual interface (feedback) destroys anything you can do in C++ with the same amount of effort
2 - National Instruments support and tutorials are top notch, everytime I hit a dead end, I just searched on the NI website and found my answer.
3 - from an unbiased point of view, LabView is easier to teach to new programmers and easier to explain (once you get the feel for it, I've found LabView easier to pick up than I did C originally)
4 - **don't quote me again ;) but I can see more control/innovation awards going to teams using LabView this year on the basis that it is new, and showing a cool looking LabView interface to a judge who doesn't have a programming background will "wow" them more.
LABVIEW CON's:
1 - For most teams (including us) this is our first time using LabView
2 - Won't be as much in-depth support from other team experts as most will have 10 years of experience with C type coding, and only 1 year of LabView
3 - The more hard-core text based (old-school) programmers you have on your team, the harder it will be to convince them to use LabView and the more they will complain about it... just my prediction ;)
In the end, we chose LabView. If anyone else has more pro's & con's, I'd love to hear them.
Antoine Trabulsi
Team 2609
Mike Soukup
31-12-2008, 11:18
Can you give us an opinion about which one is the best software for you
Our team decided to program in C++ for multiple reasons.
All the returning students on the software team have become very familiar with C over the past few years and we already have a good curriculum developed to teach the new students C in the first semester. All of the software mentors have ~10 years of experience with C / C++ and we all use it at work so we are extremely familiar with designing and writing C / C++ programs.
We also have a large software team (3 mentors and 10 students) and we typically break up into small teams to simultaneously work on different features. In some cases, this requires different teams to modify the same files and merge them together later. This is trivial with a text based language and SVN, but is impossible with labview's binary file format.
The last reason is that we feel C / C++ is a more useful language for the students to learn than labview. C is an industry standard with compilers for hundreds of chips while labview is a propriety language supported by a single company. We'd rather not teach the students a language that locks them into a single supplier. Labview is typically only used for data acquisition and industrial automation while the uses for C / C++ are endless. Anyone going into a software development career will need to learn C / C++ or a similar language in college. We're giving the students a huge head start by teaching them the concepts and the language before they get there.
Dave Flowerday
31-12-2008, 11:33
C is an industry standard with compilers for hundreds of chips while labview is a propriety language supported by a single company. We'd rather not teach the students a language that locks them into a single supplier.
To further illustrate this point, everyone should note that your Labview license will expire in January 2010. If you don't continue in FRC next year and therefore don't get a new license, all the Labview code you write this year will probably be worthless after that date. Workbench expires too, but since it is C++ code, it can be recompiled with a number of different compilers (including the original compiler that Wind River uses since it's GCC).
The temporary license we're being given to these tools this year is a dirty little secret that I don't see a lot of discussion about. It's another way that we're being short-changed with the new control system (in addition to no longer getting a new one each year). Consider the case in a few years where perhaps they switch to a new control system, and move away from National Instruments. If that happens, then at that point all the robot code that teams have written in Labview will no longer be maintainable unless those teams go off and buy their own Labview license. Maybe this isn't a big deal to most, but we do occasionally go modify the code on our old robots as we use them to test out ideas for a new season, etc.
In short, vendor lock-in == bad IMO.
I am coming at this from the point of view of a complete beginner programmer.(I have been programming for just about 3 weeks, i started with Liberty basic, and tried C++)
when i first downloaded NI's LabVIEW, it looks a bit confusing, but don't let this phase you. after watching about an hour of on-line Tuturals, I was programming. It was that simple! Our head programmer knows both LabVIEW and C++, but... he is a senior, and wont be with us next year, so we decided to go with LabVIEW because of how easy it really is.
With C++ there is a much longer learning curve than LabVIEW, and with it only being 3 days Before Kickoff, i would reccomend LabVIEW if you haven't made a decision yet, or if you have alot of new team members who want to learn programming.
**by no means am i an expert, and take what i write with a grain of salt, again I have only been programming for like 3 weeks, and I have yet to explore what either of the languages can really Do!**
Greg McKaskle
31-12-2008, 20:10
The request was for opinions, and it has been interesting reading them. Most are very well stated. Working for NI, mine may not come as a suprise. Though keep in mind that most engineers at NI use both along with other engineering tools. I do have a few clarifications and counter opinions I'll add though.
... merge ... is impossible with labview's binary file format.
The binary format of LV code is able to be diff'd and merge'd with the appropriate tools. I'm not exactly sure why those weren't included in the kit, but since they weren't, the point is valid. On the other hand, I've worked on large projects using LV and I haven't found myself using diff/merge very often. In large part it is because a VI file contains one function whereas in C++ it usually contains a class implementation or in C it will contain numerous functions. A code collision on unrelated C code in the same file is trivial to merge. A code collision within a single function regardless of the language requires much more thought and attention. In reality, a functional language like LV makes it easier than one with side-effects.
... Labview is typically only used for data acquisition and industrial automation while the uses for C / C++ are endless. Anyone going into a software development career will need to learn C / C++ or a similar language in college. We're giving the students a huge head start by teaching them the concepts and the language before they get there.
This may not be news, but computer science is about much more than learning C/C++. A computer science student will learn a new language or two each semester and some classes won't involve programming at all, but will focus on the mathematics of computing. At this point LV is pretty rare around CS departments, but functional languages are a staple, and domain specific languages, which is how I typically describe LV, are becoming more common.
On the other hand, programming computers is also incredibly common in engineering and science disciplines, and domain specific languages or modeling languages are very common, rivaling the use of C/C++ because they allow for more emphasis on the engineering task and less on the programming task. In the end, just as there isn't one ideal degree, there isn't one ideal programming language.
Greg McKaskle
Greg McKaskle
31-12-2008, 21:48
...
Wow. That was quite the opinion.
As I read it, I imagined NI developers sitting around petting white kitties named Mr. Bigglesworth as they write code and decide how mess with FRC teams.
Until a few years ago, LV was not even licensed -- meaning that an exe was good until the OS or architecture disappeared (which has happened a few times as long as LV has been around). The license manager does restrict usage, but it also offers a solution for anyone caught in the situation mentioned. I'd encourage anyone needing a license to keep a robot alive to contact NI academic and explain the circumstances.
Back to writing code. Here kitty kitty.
Greg McKaskle
The last reason is that we feel C / C++ is a more useful language for the students to learn than labview. C is an industry standard with compilers for hundreds of chips while labview is a propriety language supported by a single company. We'd rather not teach the students a language that locks them into a single supplier. Labview is typically only used for data acquisition and industrial automation while the uses for C / C++ are endless. Anyone going into a software development career will need to learn C / C++ or a similar language in college. We're giving the students a huge head start by teaching them the concepts and the language before they get there.
Interesting. I only partly agree with your view.
We have a mentor (only one, and we are lucky to have him. Our team hasn't had any mentors for the last three years.) who is very familiar with c, so I'm sure my team and i will also be trying out c code as well.
I agree with your viewpoint on the vendor lock in, however I'm using LabVIEW to learn the concepts. From my little experience with either, LabVIEW is easier to understand for me. Once i know the concept's I'm sure the knowledge will transfer over. Besides I'm not the only one from my team who will be working on this. Hopefully we can get the whole team into programming.
also, it's good to have experience with both. Someone who has worked with multiple systems will be better equipped in the world to come that the person who was limited to one. I'm looking forward to working with LabVIEW and C. This doesn't just apply to programming. It could apply to something like computers. I have experience with DOS, Windows, Linux, and MacOSX. I think having experience with all of these will help me.
ComradeNikolai
01-01-2009, 10:56
I'd just like to offer one point which hasn't been brought up yet.
A few of the responses have mentioned that C/C++ would be a superior choice because "that is what you will learn in college," and LabVIEW would not be as good for retained knowledge because of licensing issues, lack of free compilers, and how platform-specific it is. These points are valid, but I would like to offer another, which favors LabVIEW: in many* CS or programming classes, flowcharts are used to teach the logic behind the programming, how different ideas work, etc, and then the syntax is taught separately; by using LabVIEW, you would be teaching yourself the logic behind the programming with immediately visible results at your fingertips. It is the combination of the theory and reality of programming and may actually be the superior tool for instruction in CS.
That having been said, our team is still using C++ as of now: it's what our team is more familiar with, it's the way our minds work; I can't program visually. However, if we face difficulties or limitations with C++, the switch over would not be a hard choice to make.
*I'd say most, but I haven't had exposure to very many. At the least, this is what I have heard, and it makes logical sense for at least lower CS classes.
**I'm the only returning programming team member, but the new kid knows a bit of the syntax and our mentor knows quite a bit from his CS major. Our programming team is small, so teaching the one new kid the language shouldn't be hard.
slavik262
01-01-2009, 14:29
I think both languages are equally valuable to teach. Our team is going with C++ for the following reasons:
1. Our older programmers (myself included) are much more comfortable in C++.
2. In my mind, C++ demystifies the magic of code more than LabVIEW. Yes, LabVIEW is extremely useful in showing the flow of the code as a flowchart, but when you see the list of commands executing line-by-line, you get a more accurate feel of "what's going on", at least in my mind.
3. While development time may be slower and debugging may not be as simple, the Wind River workbench has an extremely good set of debugging tools.
4. C++ allows for more customization of what you plan on doing, at least as far as I'm aware. To be honest, I haven't done much work in LabVIEW so I can't speak for it at length.
vBulletin® v3.6.4, Copyright ©2000-2017, Jelsoft Enterprises Ltd.