View Single Post
  #2   Spotlight this post!  
Unread 12-06-2014, 22:01
Cel Skeggs Cel Skeggs is offline
Robot Software Manager Alumnus
AKA: Previously known as Colby
FRC #1540 (The Flaming Chickens)
Team Role: Alumni
 
Join Date: Feb 2013
Rookie Year: 2009
Location: Portland, Oregon, USA
Posts: 107
Cel Skeggs is a glorious beacon of lightCel Skeggs is a glorious beacon of lightCel Skeggs is a glorious beacon of lightCel Skeggs is a glorious beacon of lightCel Skeggs is a glorious beacon of lightCel Skeggs is a glorious beacon of light
Re: Challenge problem: 'ladder of abstraction' iterative design in FRC

That article brings up a number of interesting points! I know that we would have had significantly better autonomous modes if this kind of system were available and used this past season.

On the technical side of implementing these kinds of features, I'm not quite sure how it would be done well. If you try to abstract out time, you'd really have to run the entire program through (in 1:1 time) and record the results, as resuming from arbitrary states in complex robot code... probably would be extremely complicated to do. If you tried to speed this up, then the program could very easily "break the abstraction" (intentionally or not) and reference System.currentTimeMillis() (or the equivalent call in C++) which would cause different behavior unless you managed to figure out every single hole like that in the system.

I suppose that adding recording functionality to existing emulation platforms might be the easiest way to provide a basic level of this kind of functionality. I might try to add this onto the CCRE's emulator this summer, and if I do I'll report how useful it seems to be.

EDIT: Something that would make this kind of iteration easier would be to have Compile on Save work in NetBeans and another application to update the code within the running application, as this could let us modify code in real time in an emulator.
__________________
Software manager alumnus. Developer of the CCRE, a powerful robot code framework based on dataflow and composibility.
Refer to as she/her/hers. Years of FRC: 2012, 2013, 2014, 2015, 2016. FLL for a few years beforehand.
Team 1540: The Flaming Chickens | Portland, Oregon | Twitter | Facebook

Last edited by Cel Skeggs : 12-06-2014 at 22:03. Reason: Added an extra section