View Single Post
  #14   Spotlight this post!  
Unread 14-06-2016, 08:03
Chris Hibner's Avatar Unsung FIRST Hero
Chris Hibner Chris Hibner is offline
Eschewing Obfuscation Since 1990
AKA: Lars Kamen's Roadie
FRC #0051 (Wings of Fire)
Team Role: Engineer
 
Join Date: May 2001
Rookie Year: 1997
Location: Canton, MI
Posts: 1,488
Chris Hibner has a reputation beyond reputeChris Hibner has a reputation beyond reputeChris Hibner has a reputation beyond reputeChris Hibner has a reputation beyond reputeChris Hibner has a reputation beyond reputeChris Hibner has a reputation beyond reputeChris Hibner has a reputation beyond reputeChris Hibner has a reputation beyond reputeChris Hibner has a reputation beyond reputeChris Hibner has a reputation beyond reputeChris Hibner has a reputation beyond repute
Re: How many days do your programmers get with a fully built robot before stop build

Quote:
Originally Posted by JonKiddy View Post
Hello. I'm the lead programming mentor for Team 4930 and I'm looking for some advice. Our team isn't using any formal methodology/model for programming but I'd like to introduce students to Agile/Waterfal/Scrum/etc. However, after thinking about it some more I've realized that none of those may work due to how our team builds the robot.

We have a design team that CADs the robot, a mechanical team that puts it together, an electrical team that wires it up, and then the programming team does it's thing. Well, in reality it isn't that simple, usually the programming team gets the robot on the last Saturday before stop build day and it becomes a "get it working!!" day, rather then a real workflow. Most of that day ends up being an electrical/mechanical QA session. Then a rush to deliver a programmed robot after QA. After stop build day more programming sessions occur without a robot until our first competition. This is when the majority of the programming happens, but I'd rather be testing our code on a robot before we see if it works at competition.

I'm guessing this is normal? How much time does your programming team have with a fully built robot before stop build day?
You can unit test all of your software on a PC prior to getting the robot if you architect your software to allow it. This is a great introduction to how software is developed in the real world (at least for embedded systems, which your robot is).

The architecture to do this is quite simple: do NOT allow any calls to the IO from within your software unit. The inputs should stand alone, and the outputs should stand alone, and then they are passed in and out of your control functions/classes. All things that you're not sure of should be made constants that can be tuned once you get your robot. Then you only need to write a quick wrapper to your function to fully exercise the function in Visual C++ Express or a Java environment on a PC. The only thing you need to do once you get your robot is test your IO, tune your constants, and fix the issues in which your control strategy assumptions don't match reality.

We've been doing software that way for years, and it works great. It's also a great introduction for the students to embedded programming, since just like the robot we never get the real hardware until it's way too late.



Quote:
Do teams have any dedicated "programming only" days? For instance, you say that no matter what the Wednesday before Bag programming gets the robot for the night. No matter the state of the robot, that build day is for programming only.
We do. The Sunday before ship is "Autonomous Day". We use the entire day to tune the autonomous control loops and tweak in the autonomous routines. Unfortunately, quite often not all of the robot features we need are done on that day, but we can at least get all of the sensors and control loops dialed in.
__________________
-
An ounce of perception is worth a pound of obscure.
Reply With Quote