Go to Post It's official: we've run out of things to talk about. - Jessica Boucher [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 29-10-2011, 10:20
apalrd's Avatar
apalrd apalrd is offline
More Torque!
AKA: Andrew Palardy (Most people call me Palardy)
VRC #3333
Team Role: College Student
 
Join Date: Mar 2009
Rookie Year: 2009
Location: Auburn Hills, MI
Posts: 1,347
apalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond repute
Re: What Language To Use?

In team 67's case, they had two independent groups programming (no common programmers). They had so many people interested in programming that a single team would have been too large to be reasonably productive (I fully agree with this opinion - Too many programmers on a project of this size is a bad thing).

I talked with 67's lead LV programmer from that year. After talking with him, about LabVIEW, he made no mention of any interaction with the C++ guys at all.
__________________
Kettering University - Computer Engineering
Kettering Motorsports
Williams International - Commercial Engines - Controls and Accessories
FRC 33 - The Killer Bees - 2009-2012 Student, 2013-2014 Advisor
VEX IQ 3333 - The Bumble Bees - 2014+ Mentor

"Sometimes, the elegant implementation is a function. Not a method. Not a class. Not a framework. Just a function." ~ John Carmack
  #2   Spotlight this post!  
Unread 29-10-2011, 12:18
flameout flameout is offline
AKA Ryan Van Why
FRC #0957 (SWARM)
Team Role: Alumni
 
Join Date: Sep 2009
Rookie Year: 2009
Location: Oregon
Posts: 168
flameout is a name known to allflameout is a name known to allflameout is a name known to allflameout is a name known to allflameout is a name known to allflameout is a name known to all
Re: What Language To Use?

In 2010, we started off using Java. However, we wanted to use the camera tracking code, and somewhere in the native libraries or WPILibj, it was crashing (I recall getting some sort of error in Netbeans's debug console).

Therefore, early on, we switched to LabVIEW. This worked great, until the end of build season, at which point... -- the camera stopped working again (after updating the cRIO image). We also experienced issues with code downloads (the only available workaround was to reimage before every download).

As our code that year was relatively simple (because the default vision worked out of the box), it was within our capabilities to have coded in both languages (and C++ too, for that matter). Had we done so, we could've switched languages away from LabVIEW -- likely solving the code download issue (since Java and C++ use FTP, and LabVIEW doesn't AFAIK) as well as possibly restoring camera function.

I am considering writing code in multiple languages this year -- even if we only get vision (assuming it exists in the next game) working in one or two languages, it'll still be driveable should we encounter a killer bug in one of the cRIO's images.

Of course, this means nothing if you don't have programming time to spare -- after choosing a "main" language, don't sacrifice the quality or performance of your main code just to work on the backups.

Just my 2¢.
  #3   Spotlight this post!  
Unread 29-10-2011, 12:31
apalrd's Avatar
apalrd apalrd is offline
More Torque!
AKA: Andrew Palardy (Most people call me Palardy)
VRC #3333
Team Role: College Student
 
Join Date: Mar 2009
Rookie Year: 2009
Location: Auburn Hills, MI
Posts: 1,347
apalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond repute
Re: What Language To Use?

Quote:
Originally Posted by flameout View Post
We also experienced issues with code downloads (the only available workaround was to reimage before every download).
This is a common problem involving user code taking up too much of the processor (as the bootloader runs in low priority, it can not run at all if the user code does, say, vision all the time). The solution is to flip the "No App" switch, reboot, then download. It has nothing to do with the cRio image (although an update could've increased processing requirements somewhere to put your code over the edge, so to speak).

Quote:
Originally Posted by flameout View Post
As our code that year was relatively simple (because the default vision worked out of the box), it was within our capabilities to have coded in both languages (and C++ too, for that matter). Had we done so, we could've switched languages away from LabVIEW -- likely solving the code download issue (since Java and C++ use FTP, and LabVIEW doesn't AFAIK) as well as possibly restoring camera function.
The real reason that LV dosen't reboot the processor to restart the code - It talks to the bootloader, which then restarts the user code. This allows for much faster code development while using the "Run" from Robot Main, as you don't have to reboot each time. When the LV user code is using too much of the processor, the bootloader can't run, and bad things happen (in the user code too - usually it struggles to run the lower priority user code, probably the cause of your vision issues).
__________________
Kettering University - Computer Engineering
Kettering Motorsports
Williams International - Commercial Engines - Controls and Accessories
FRC 33 - The Killer Bees - 2009-2012 Student, 2013-2014 Advisor
VEX IQ 3333 - The Bumble Bees - 2014+ Mentor

"Sometimes, the elegant implementation is a function. Not a method. Not a class. Not a framework. Just a function." ~ John Carmack
  #4   Spotlight this post!  
Unread 29-10-2011, 13:26
flameout flameout is offline
AKA Ryan Van Why
FRC #0957 (SWARM)
Team Role: Alumni
 
Join Date: Sep 2009
Rookie Year: 2009
Location: Oregon
Posts: 168
flameout is a name known to allflameout is a name known to allflameout is a name known to allflameout is a name known to allflameout is a name known to allflameout is a name known to all
Re: What Language To Use?

Quote:
Originally Posted by apalrd View Post
This is a common problem involving user code taking up too much of the processor (as the bootloader runs in low priority, it can not run at all if the user code does, say, vision all the time).
I went back and looked at the thread that discussed the issue -- apparently, a LabVIEW issue nuked the vision, causing it to consume 100% of the processor (I say vision because, from what I recall, nothing else could possibly have taken up a significant amount of execution time, unless the LabVIEW update contained a compiler bug (which I doubt due to the nature of the updates)).

We did not change our code at all when we updated LabVIEW, so that rules out a mistake on my part.

I apparently missed the No App DIP fix -- the post came two days later, so I probably either forgot to check the thread or subscribe to it (we wouldn't have done any further programming after this point until regionals).

Thanks for the help.

Note: I still feel my point about using multiple languages (iff you have the resources to) holds, even if this one instance turned out to be a solvable problem (it would've been nice to just switch languages, rather than needing to scramble for a last-minute solution).
  #5   Spotlight this post!  
Unread 29-10-2011, 12:31
davidthefat davidthefat is offline
Alumni
AKA: David Yoon
FRC #0589 (Falkons)
Team Role: Alumni
 
Join Date: Jan 2011
Rookie Year: 2010
Location: California
Posts: 792
davidthefat has much to be proud ofdavidthefat has much to be proud ofdavidthefat has much to be proud ofdavidthefat has much to be proud ofdavidthefat has much to be proud ofdavidthefat has much to be proud ofdavidthefat has much to be proud ofdavidthefat has much to be proud ofdavidthefat has much to be proud of
Re: What Language To Use?

Here is my two cents: do not get caught up in the whole "which" language debate in the first place. Just pick one. The language you use will not affect performance of the robot (unless you are doing some memory intensive calculations and need to optimize). What is important is the way you think and come up with a solution. Regardless of the language, the solution is the most important thing here. Different languages will not hinder your ability to come up with that solution; chances are, you won't be using features specific to one language. For example, pointers; every object other than primitives in Java are essentially pointers. Don't be immature and say "oh, but I want to use pointers, so I must use C++". No. You also probably will not need inline assembly either. Java just makes memory management easier too. If your java program has a memory leak, you are doing something very wrong...
__________________
Do not say what can or cannot be done, but, instead, say what must be done for the task at hand must be accomplished.
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 01:06.

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