Go to Post I predict the champion drive teams at each event of the 2011 season will consist of vertebrates. - Taylor [more]
Home
Go Back   Chief Delphi > FIRST > General Forum
CD-Media   CD-Spy  
portal register members calendar search Today's Posts Mark Forums Read FAQ rules

 
Reply
Thread Tools Rating: Thread Rating: 4 votes, 5.00 average. Display Modes
  #91   Spotlight this post!  
Unread 16-06-2015, 18:15
Ether's Avatar
Ether Ether is offline
systems engineer (retired)
no team
 
Join Date: Nov 2009
Rookie Year: 1969
Location: US
Posts: 8,086
Ether has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond repute
Re: On the quality and complexity of software within FRC

Quote:
Originally Posted by notmattlythgoe View Post
I'm saying that you shouldn't be spending a bunch of extra time optimizing loops and building adaptable code with the assumption that you'll need that optimization or need to adapt it in the future. In most (not all) cases it will be a wast of time and money.
Was that last sentence intended to extend the scope ?

"Waste of money" sounds like you are talking about something other than just an FRC robot.


Reply With Quote
  #92   Spotlight this post!  
Unread 16-06-2015, 18:17
Ether's Avatar
Ether Ether is offline
systems engineer (retired)
no team
 
Join Date: Nov 2009
Rookie Year: 1969
Location: US
Posts: 8,086
Ether has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond repute
Re: On the quality and complexity of software within FRC

Quote:
Originally Posted by evanperryg View Post
...
Hi Evan. If you've got a couple of minutes, there's some unfinished business over on your "Blown CIM" thread.


Reply With Quote
  #93   Spotlight this post!  
Unread 16-06-2015, 18:35
evanperryg's Avatar
evanperryg evanperryg is offline
IT'S THE BUMP N' DUMP
AKA: Evan Grove
FRC #4536 (The Minutebots)
Team Role: Mentor
 
Join Date: Apr 2013
Rookie Year: 2011
Location: Minneapolis, MN
Posts: 656
evanperryg has a reputation beyond reputeevanperryg has a reputation beyond reputeevanperryg has a reputation beyond reputeevanperryg has a reputation beyond reputeevanperryg has a reputation beyond reputeevanperryg has a reputation beyond reputeevanperryg has a reputation beyond reputeevanperryg has a reputation beyond reputeevanperryg has a reputation beyond reputeevanperryg has a reputation beyond reputeevanperryg has a reputation beyond repute
Re: On the quality and complexity of software within FRC

Quote:
Originally Posted by Ether View Post
Hi Evan. If you've got a couple of minutes, there's some unfinished business over on your "Blown CIM" thread.


I'm sorry... what are you talking about?
__________________
FRCDesigns Contributor | "There is only one corner of the universe you can be certain of improving, and that's your own self." -Aldous Huxley
2012-2016 | FRC Team 2338: Gear it Forward
2013
Wisconsin Regional Winner 2014 Midwest Regional Finalist 2015 Midwest Regional Chairman's Award, Finalist, Archimedes Division Champion, IRI Semifinalist 2016 Midwest Regional Chairman's Award, Finalist, Archimedes Division Gracious Professionalism Award, R2OC Winner
2015 | FTC Team 10266: Mach Speed
2015
Highland Park Qualifier Winner, Motivate Award
2017-???? | FRC Team 4536: The Minutebots

Thanks to the alliances and friends I've made along the way: 33 74 107 111 167 171 234 548 1023 1089 1323 1625 1675 1732 1756 2064 2077 2122 2202 2358 2451 2512 2826 3936 3996 4039 4085 4241 5006 5401 5568 5847 5934
Reply With Quote
  #94   Spotlight this post!  
Unread 16-06-2015, 18:44
kylestach1678's Avatar
kylestach1678 kylestach1678 is offline
Registered User
AKA: Kyle Stachowicz
FRC #1678 (Citrus Circuits)
Team Role: Programmer
 
Join Date: Dec 2014
Rookie Year: 2015
Location: Davis, CA
Posts: 21
kylestach1678 is a glorious beacon of lightkylestach1678 is a glorious beacon of lightkylestach1678 is a glorious beacon of lightkylestach1678 is a glorious beacon of lightkylestach1678 is a glorious beacon of light
Re: On the quality and complexity of software within FRC

Quote:
Originally Posted by evanperryg View Post
I'm sorry... what are you talking about?
I believe that he may have got the wrong Evan.
__________________

Reply With Quote
  #95   Spotlight this post!  
Unread 16-06-2015, 18:56
evanperryg's Avatar
evanperryg evanperryg is offline
IT'S THE BUMP N' DUMP
AKA: Evan Grove
FRC #4536 (The Minutebots)
Team Role: Mentor
 
Join Date: Apr 2013
Rookie Year: 2011
Location: Minneapolis, MN
Posts: 656
evanperryg has a reputation beyond reputeevanperryg has a reputation beyond reputeevanperryg has a reputation beyond reputeevanperryg has a reputation beyond reputeevanperryg has a reputation beyond reputeevanperryg has a reputation beyond reputeevanperryg has a reputation beyond reputeevanperryg has a reputation beyond reputeevanperryg has a reputation beyond reputeevanperryg has a reputation beyond reputeevanperryg has a reputation beyond repute
Re: On the quality and complexity of software within FRC

Quote:
Originally Posted by kylestach1678 View Post
I believe that he may have got the wrong Evan.
yep, found the other evan...
__________________
FRCDesigns Contributor | "There is only one corner of the universe you can be certain of improving, and that's your own self." -Aldous Huxley
2012-2016 | FRC Team 2338: Gear it Forward
2013
Wisconsin Regional Winner 2014 Midwest Regional Finalist 2015 Midwest Regional Chairman's Award, Finalist, Archimedes Division Champion, IRI Semifinalist 2016 Midwest Regional Chairman's Award, Finalist, Archimedes Division Gracious Professionalism Award, R2OC Winner
2015 | FTC Team 10266: Mach Speed
2015
Highland Park Qualifier Winner, Motivate Award
2017-???? | FRC Team 4536: The Minutebots

Thanks to the alliances and friends I've made along the way: 33 74 107 111 167 171 234 548 1023 1089 1323 1625 1675 1732 1756 2064 2077 2122 2202 2358 2451 2512 2826 3936 3996 4039 4085 4241 5006 5401 5568 5847 5934
Reply With Quote
  #96   Spotlight this post!  
Unread 16-06-2015, 20:38
gblake's Avatar
gblake gblake is offline
6th Gear Developer; Mentor
AKA: Blake Ross
no team (6th Gear)
Team Role: Mentor
 
Join Date: May 2006
Rookie Year: 2006
Location: Virginia
Posts: 1,935
gblake has a reputation beyond reputegblake has a reputation beyond reputegblake has a reputation beyond reputegblake has a reputation beyond reputegblake has a reputation beyond reputegblake has a reputation beyond reputegblake has a reputation beyond reputegblake has a reputation beyond reputegblake has a reputation beyond reputegblake has a reputation beyond reputegblake has a reputation beyond repute
Re: On the quality and complexity of software within FRC

OP wanted to raise the bar for the FRC software quality.

What are some ways to do that without being too preachy (and without getting dragged into the weeds by topics like what-is-the-the-one-true-code-formatting-style, or the-one-true-way-to-use-a-Hungarian-naming-convention?

Publish some reference designs (several... the number of good ways to do things will be legion) that guide students, and lead them to ask good questions about details, but that don't hand them answers on a silver platter? Students are given physical kit-bot parts. Maybe the kit-bot BOM should include some software parts they can put together to form a basic FRC software system (does this already exist?)?

Perhaps put a few good examples of software requirements specifications in the Kit of Parts?

Create simulators (that expose the appropriate APIs) that students can use when their own team's real equipment is unavailable, or during off-season practice sessions, thereby giving them more development time during build season, and more practice time before build season?

Something else?

Blake
__________________
Blake Ross, For emailing me, in the verizon.net domain, I am blake
VRC Team Mentor, FTC volunteer, 5th Gear Developer, Husband, Father, Triangle Fraternity Alumnus (ky 76), U Ky BSEE, Tau Beta Pi, Eta Kappa Nu, Kentucky Colonel
Words/phrases I avoid: basis, mitigate, leveraging, transitioning, impact (instead of affect/effect), facilitate, programmatic, problematic, issue (instead of problem), latency (instead of delay), dependency (instead of prerequisite), connectivity, usage & utilize (instead of use), downed, functionality, functional, power on, descore, alumni (instead of alumnus/alumna), the enterprise, methodology, nomenclature, form factor (instead of size or shape), competency, modality, provided(with), provision(ing), irregardless/irrespective, signage, colorized, pulsating, ideate

Last edited by gblake : 17-06-2015 at 00:44.
Reply With Quote
  #97   Spotlight this post!  
Unread 16-06-2015, 21:04
notmattlythgoe's Avatar
notmattlythgoe notmattlythgoe is offline
Flywheel Police
AKA: Matthew Lythgoe
FRC #2363 (Triple Helix)
Team Role: Mentor
 
Join Date: Feb 2010
Rookie Year: 2009
Location: Newport News, VA
Posts: 1,721
notmattlythgoe has a reputation beyond reputenotmattlythgoe has a reputation beyond reputenotmattlythgoe has a reputation beyond reputenotmattlythgoe has a reputation beyond reputenotmattlythgoe has a reputation beyond reputenotmattlythgoe has a reputation beyond reputenotmattlythgoe has a reputation beyond reputenotmattlythgoe has a reputation beyond reputenotmattlythgoe has a reputation beyond reputenotmattlythgoe has a reputation beyond reputenotmattlythgoe has a reputation beyond repute
Re: On the quality and complexity of software within FRC

Quote:
Originally Posted by Ether View Post
Was that last sentence intended to extend the scope ?

"Waste of money" sounds like you are talking about something other than just an FRC robot.


I'm talking in a more general world than FRC.
Reply With Quote
  #98   Spotlight this post!  
Unread 16-06-2015, 23:49
Jared Russell's Avatar
Jared Russell Jared Russell is offline
Taking a year (mostly) off
FRC #0254 (The Cheesy Poofs), FRC #0341 (Miss Daisy)
Team Role: Engineer
 
Join Date: Nov 2002
Rookie Year: 2001
Location: San Francisco, CA
Posts: 3,078
Jared Russell has a reputation beyond reputeJared Russell has a reputation beyond reputeJared Russell has a reputation beyond reputeJared Russell has a reputation beyond reputeJared Russell has a reputation beyond reputeJared Russell has a reputation beyond reputeJared Russell has a reputation beyond reputeJared Russell has a reputation beyond reputeJared Russell has a reputation beyond reputeJared Russell has a reputation beyond reputeJared Russell has a reputation beyond repute
Re: On the quality and complexity of software within FRC

Quote:
Originally Posted by gblake View Post
Create simulators (that expose the appropriate APIs) that students can use when their own team's real equipment is unavailable, or during off-season practice sessions, thereby giving them more development time during build season, and more practice time before build season?
I've thought about this one a lot through the years, because I think that this is the biggest obstacle to highly functional (let alone high quality) code. Most teams simply don't have enough time with a functional robot to do effective iterative software development with hardware in the loop.

Simulation encompasses a wide spectrum of approaches, from mocking speed controller class interfaces all the way to doing a full dynamics simulation. The former is useful for debugging logic errors; the latter is required (to some level of fidelity) to actually do closed-loop testing of the program. This year 254 did a little of both for developing and debugging our control algorithms and designing our can grabbers (however, our approach was strongly tied to our use of Java...we built a "fake" WPIlib JAR and swapped it out to do simulated tests).

The problem with simulation beyond just mocking low level interfaces is that teams now need a way to specify their robot configuration to the simulation. This is tedious and error prone in most cases, and very difficult to do accurately (e.g. estimating friction, damping, bending, or inertial properties of robot mechanisms is hard). Even professionally, I've watched many PhDs lose hours of work having to debug configuration issues in their URDF files (a common format for expressing robot topologies). The best solution for FRC would be to provide examples for common FRC mechanisms and COTS drivetrains and let teams go from there...but I worry that the complexity gets large so quickly that if a team can navigate that, well, they are probably not the ones who REALLY need programming help.
Reply With Quote
  #99   Spotlight this post!  
Unread 16-06-2015, 23:58
gblake's Avatar
gblake gblake is offline
6th Gear Developer; Mentor
AKA: Blake Ross
no team (6th Gear)
Team Role: Mentor
 
Join Date: May 2006
Rookie Year: 2006
Location: Virginia
Posts: 1,935
gblake has a reputation beyond reputegblake has a reputation beyond reputegblake has a reputation beyond reputegblake has a reputation beyond reputegblake has a reputation beyond reputegblake has a reputation beyond reputegblake has a reputation beyond reputegblake has a reputation beyond reputegblake has a reputation beyond reputegblake has a reputation beyond reputegblake has a reputation beyond repute
Re: On the quality and complexity of software within FRC

Quote:
Originally Posted by Thad House View Post
This is a very true fact. You can tell the Java libraries for this year were rushed to get finished in time. Also, some of the hacks needed to interface with the native c++ code for the FPGA just look like they could cause more issues. This is the same thing that causes the vision libraries to be slow. It wastes alot of time marshalling the structs between java and c++, and this looks to be what is so slow. We've been trying to alleviate alot of these issues in the DotNet port, and its easier since working with native code is easier, but its still a challenge trying clean up the code to make it faster, yet keeping it running the same code.
Some brave and enterprising young soul might want to try creating libraries that use JNI to implement these interfaces ... if JNI isn't being used already.
__________________
Blake Ross, For emailing me, in the verizon.net domain, I am blake
VRC Team Mentor, FTC volunteer, 5th Gear Developer, Husband, Father, Triangle Fraternity Alumnus (ky 76), U Ky BSEE, Tau Beta Pi, Eta Kappa Nu, Kentucky Colonel
Words/phrases I avoid: basis, mitigate, leveraging, transitioning, impact (instead of affect/effect), facilitate, programmatic, problematic, issue (instead of problem), latency (instead of delay), dependency (instead of prerequisite), connectivity, usage & utilize (instead of use), downed, functionality, functional, power on, descore, alumni (instead of alumnus/alumna), the enterprise, methodology, nomenclature, form factor (instead of size or shape), competency, modality, provided(with), provision(ing), irregardless/irrespective, signage, colorized, pulsating, ideate
Reply With Quote
  #100   Spotlight this post!  
Unread 17-06-2015, 00:48
Thad House Thad House is offline
Volunteer, WPILib Contributor
no team (Waiting for 2021)
Team Role: Mentor
 
Join Date: Feb 2011
Rookie Year: 2010
Location: Thousand Oaks, California
Posts: 1,097
Thad House has a reputation beyond reputeThad House has a reputation beyond reputeThad House has a reputation beyond reputeThad House has a reputation beyond reputeThad House has a reputation beyond reputeThad House has a reputation beyond reputeThad House has a reputation beyond reputeThad House has a reputation beyond reputeThad House has a reputation beyond reputeThad House has a reputation beyond reputeThad House has a reputation beyond repute
Re: On the quality and complexity of software within FRC

Quote:
Originally Posted by gblake View Post
Some brave and enterprising young soul might want to try creating libraries that use JNI to implement these interfaces ... if JNI isn't being used already.
They are all JNI. The issues come from not being able to pass by reference, so passing structs, such as the ones used for vision, still has trouble even with the JNI.

Some of the things that I know are fine, but still make me cringe, involve the use of generics and enums. Since Java on the CRIO did not support either of these, most of the Java code doesn't have them. However, you can tell that some of the new classes do use generics and enums. I know this is fine, but you can tell there is a disconnect between the old and the new code, and something that would be nice would be for somebody to take a month and thoroughly clean it up. I bet with some cleanup to include new features, and maybe some algorithm refactoring, we could get the code much nicer and easier to work with. Maybe they could fix all the spelling and punctuation errors in the comments too
__________________
All statements made are my own and not the feelings of any of my affiliated teams.
Teams 1510 and 2898 - Student 2010-2012
Team 4488 - Mentor 2013-2016
Co-developer of RobotDotNet, a .NET port of the WPILib.
Reply With Quote
  #101   Spotlight this post!  
Unread 17-06-2015, 01:37
SoftwareBug2.0's Avatar
SoftwareBug2.0 SoftwareBug2.0 is offline
Registered User
AKA: Eric
FRC #1425 (Error Code Xero)
Team Role: Mentor
 
Join Date: Aug 2004
Rookie Year: 2004
Location: Tigard, Oregon
Posts: 486
SoftwareBug2.0 has a brilliant futureSoftwareBug2.0 has a brilliant futureSoftwareBug2.0 has a brilliant futureSoftwareBug2.0 has a brilliant futureSoftwareBug2.0 has a brilliant futureSoftwareBug2.0 has a brilliant futureSoftwareBug2.0 has a brilliant futureSoftwareBug2.0 has a brilliant futureSoftwareBug2.0 has a brilliant futureSoftwareBug2.0 has a brilliant futureSoftwareBug2.0 has a brilliant future
Re: On the quality and complexity of software within FRC

Quote:
Originally Posted by evanperryg View Post
We've begun to encounter the issue that WPIlib for Java is poorly coded itself. The libraries relating to vision code are particularly messy. This may be why so many teams opt to build their own libraries entirely. ...
Interesting. The C++ version always gave me the impression that it was written by someone who really wanted to be writing Java.
Reply With Quote
  #102   Spotlight this post!  
Unread 17-06-2015, 06:18
notmattlythgoe's Avatar
notmattlythgoe notmattlythgoe is offline
Flywheel Police
AKA: Matthew Lythgoe
FRC #2363 (Triple Helix)
Team Role: Mentor
 
Join Date: Feb 2010
Rookie Year: 2009
Location: Newport News, VA
Posts: 1,721
notmattlythgoe has a reputation beyond reputenotmattlythgoe has a reputation beyond reputenotmattlythgoe has a reputation beyond reputenotmattlythgoe has a reputation beyond reputenotmattlythgoe has a reputation beyond reputenotmattlythgoe has a reputation beyond reputenotmattlythgoe has a reputation beyond reputenotmattlythgoe has a reputation beyond reputenotmattlythgoe has a reputation beyond reputenotmattlythgoe has a reputation beyond reputenotmattlythgoe has a reputation beyond repute
Re: On the quality and complexity of software within FRC

Quote:
Originally Posted by SoftwareBug2.0 View Post
Interesting. The C++ version always gave me the impression that it was written by someone who really wanted to be writing Java.
That's funny, because I always get the impression that the Java libraries were written by a C++ developer.
Reply With Quote
  #103   Spotlight this post!  
Unread 17-06-2015, 07:11
wireties's Avatar
wireties wireties is offline
Principal Engineer
AKA: Keith Buchanan
FRC #1296 (Full Metal Jackets)
Team Role: Mentor
 
Join Date: Jan 2006
Rookie Year: 2004
Location: Rockwall, TX
Posts: 1,170
wireties has a reputation beyond reputewireties has a reputation beyond reputewireties has a reputation beyond reputewireties has a reputation beyond reputewireties has a reputation beyond reputewireties has a reputation beyond reputewireties has a reputation beyond reputewireties has a reputation beyond reputewireties has a reputation beyond reputewireties has a reputation beyond reputewireties has a reputation beyond repute
Send a message via AIM to wireties
Re: On the quality and complexity of software within FRC

Quote:
Originally Posted by notmattlythgoe View Post
That's funny, because I always get the impression that the Java libraries were written by a C++ developer.
Pretty common in embedded environments.
__________________
Fast, cheap or working - pick any two!
Reply With Quote
  #104   Spotlight this post!  
Unread 17-06-2015, 09:48
evanperryg's Avatar
evanperryg evanperryg is offline
IT'S THE BUMP N' DUMP
AKA: Evan Grove
FRC #4536 (The Minutebots)
Team Role: Mentor
 
Join Date: Apr 2013
Rookie Year: 2011
Location: Minneapolis, MN
Posts: 656
evanperryg has a reputation beyond reputeevanperryg has a reputation beyond reputeevanperryg has a reputation beyond reputeevanperryg has a reputation beyond reputeevanperryg has a reputation beyond reputeevanperryg has a reputation beyond reputeevanperryg has a reputation beyond reputeevanperryg has a reputation beyond reputeevanperryg has a reputation beyond reputeevanperryg has a reputation beyond reputeevanperryg has a reputation beyond repute
Re: On the quality and complexity of software within FRC

Quote:
Originally Posted by Thad House View Post
They are all JNI. The issues come from not being able to pass by reference, so passing structs, such as the ones used for vision, still has trouble even with the JNI.

Some of the things that I know are fine, but still make me cringe, involve the use of generics and enums. Since Java on the CRIO did not support either of these, most of the Java code doesn't have them. However, you can tell that some of the new classes do use generics and enums. I know this is fine, but you can tell there is a disconnect between the old and the new code, and something that would be nice would be for somebody to take a month and thoroughly clean it up. I bet with some cleanup to include new features, and maybe some algorithm refactoring, we could get the code much nicer and easier to work with. Maybe they could fix all the spelling and punctuation errors in the comments too
We're working on it. Among other things, we've also removed three nested while(true)s with no delays, and the notorious error message that swears at you.
__________________
FRCDesigns Contributor | "There is only one corner of the universe you can be certain of improving, and that's your own self." -Aldous Huxley
2012-2016 | FRC Team 2338: Gear it Forward
2013
Wisconsin Regional Winner 2014 Midwest Regional Finalist 2015 Midwest Regional Chairman's Award, Finalist, Archimedes Division Champion, IRI Semifinalist 2016 Midwest Regional Chairman's Award, Finalist, Archimedes Division Gracious Professionalism Award, R2OC Winner
2015 | FTC Team 10266: Mach Speed
2015
Highland Park Qualifier Winner, Motivate Award
2017-???? | FRC Team 4536: The Minutebots

Thanks to the alliances and friends I've made along the way: 33 74 107 111 167 171 234 548 1023 1089 1323 1625 1675 1732 1756 2064 2077 2122 2202 2358 2451 2512 2826 3936 3996 4039 4085 4241 5006 5401 5568 5847 5934
Reply With Quote
  #105   Spotlight this post!  
Unread 17-06-2015, 13:04
Thad House Thad House is offline
Volunteer, WPILib Contributor
no team (Waiting for 2021)
Team Role: Mentor
 
Join Date: Feb 2011
Rookie Year: 2010
Location: Thousand Oaks, California
Posts: 1,097
Thad House has a reputation beyond reputeThad House has a reputation beyond reputeThad House has a reputation beyond reputeThad House has a reputation beyond reputeThad House has a reputation beyond reputeThad House has a reputation beyond reputeThad House has a reputation beyond reputeThad House has a reputation beyond reputeThad House has a reputation beyond reputeThad House has a reputation beyond reputeThad House has a reputation beyond repute
Re: On the quality and complexity of software within FRC

Quote:
Originally Posted by evanperryg View Post
We're working on it. Among other things, we've also removed three nested while(true)s with no delays, and the notorious error message that swears at you.
I would love to see this when you guys get done, or close to done. Maybe some of the fixes would be useful in the other ports as well.

Also, which nested while loops? I haven't noticed any that have caused issues so far, but maybe I just don't remember. I've read too much code lately.
__________________
All statements made are my own and not the feelings of any of my affiliated teams.
Teams 1510 and 2898 - Student 2010-2012
Team 4488 - Mentor 2013-2016
Co-developer of RobotDotNet, a .NET port of the WPILib.
Reply With Quote
Reply


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:41.

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