Go to Post You worry about your team. Let other people worry about their own teams. - pfreivald [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

 
Reply
Thread Tools Rate Thread Display Modes
  #1   Spotlight this post!  
Unread 13-06-2016, 11:59
JonKiddy JonKiddy is offline
Programming Mentor (Java/C++)
FRC #4930 (Electric Mayhem)
Team Role: Mentor
 
Join Date: Jul 2014
Rookie Year: 2013
Location: Buffalo, NY
Posts: 9
JonKiddy is an unknown quantity at this point
How many days do your programmers get with a fully built robot before stop build day?

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?

Last edited by JonKiddy : 13-06-2016 at 15:19.
Reply With Quote
  #2   Spotlight this post!  
Unread 13-06-2016, 12:03
BigJ BigJ is offline
Registered User
AKA: Josh P.
FRC #1675 (Ultimate Protection Squad)
Team Role: Engineer
 
Join Date: Jan 2007
Rookie Year: 2007
Location: Milwaukee, WI
Posts: 945
BigJ has a reputation beyond reputeBigJ has a reputation beyond reputeBigJ has a reputation beyond reputeBigJ has a reputation beyond reputeBigJ has a reputation beyond reputeBigJ has a reputation beyond reputeBigJ has a reputation beyond reputeBigJ has a reputation beyond reputeBigJ has a reputation beyond reputeBigJ has a reputation beyond reputeBigJ has a reputation beyond repute
Re: How many days do your programmers get with a fully built robot before stop build

We design, test, and prototype code with other systems or older robots. Our experiences with a "fully assembled" robot, by which I mean the robot we intended to have on Stop Build Day, range from around 5 days to -5 days (practice bot being fully assembled around a week later) I would say the normal time over the past 10 years I've been involved is a 2 day average.
Reply With Quote
  #3   Spotlight this post!  
Unread 13-06-2016, 12:31
FrankJ's Avatar
FrankJ FrankJ is offline
Robot Mentor
FRC #2974 (WALT)
Team Role: Mentor
 
Join Date: Feb 2011
Rookie Year: 2009
Location: Marietta GA
Posts: 1,911
FrankJ has a reputation beyond reputeFrankJ has a reputation beyond reputeFrankJ has a reputation beyond reputeFrankJ has a reputation beyond reputeFrankJ has a reputation beyond reputeFrankJ has a reputation beyond reputeFrankJ has a reputation beyond reputeFrankJ has a reputation beyond reputeFrankJ has a reputation beyond reputeFrankJ has a reputation beyond reputeFrankJ has a reputation beyond repute
Re: How many days do your programmers get with a fully built robot before stop build

We give the robot to the programmers on day 1. After the code is done and tested, we build the rest of the robot. Even doing this way, the programmers seem to want to change every thing after the robot is built. On a more serious note, the robot is never complete until close to stop build. We assign channels & IO as early as possible and stick to them. We have a second roborio with a test bed to test programming concepts.
__________________
If you don't know what you should hook up then you should read a data sheet
Reply With Quote
  #4   Spotlight this post!  
Unread 13-06-2016, 12:46
SoMe_DuDe904's Avatar
SoMe_DuDe904 SoMe_DuDe904 is offline
Minnesota Lead Game Announcer
AKA: Nate
FRC #2169 (KING TeC)
Team Role: Alumni
 
Join Date: Dec 2006
Rookie Year: 2007
Location: Minnesota
Posts: 37
SoMe_DuDe904 is a splendid one to beholdSoMe_DuDe904 is a splendid one to beholdSoMe_DuDe904 is a splendid one to beholdSoMe_DuDe904 is a splendid one to beholdSoMe_DuDe904 is a splendid one to beholdSoMe_DuDe904 is a splendid one to behold
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 done by the programmers; talons aren't on the stated channels, wires aren't connected, etc. 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 where we really do the majority of the programming, but I'd rather be testing on our 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?
This sounds pretty normal for most teams. I know my team likes to build a shadow bot along side the main bot. This allows them to tweak code and play with it as the students are building the robot. They also then have something to mess with in the dead time between build and competition.

I know this isn't conducive to teams with minimal funding or newer teams that are just trying to put a working robot on the floor. If that is the case, then you really want to aim for a design early in the process that will give your programmers 4 days to a week with a fully functioning robot and multiple weeks with bits and pieces (assigning channels and IO, playing with motors and pneumatics, ect.). Programming is super important to the success of the robot.
__________________
Nate
Lake Superior / North Star / MSHSL - Lead Game Announcer
GO-FIRST - Alumni

KING-TeC - 2169
Reply With Quote
  #5   Spotlight this post!  
Unread 13-06-2016, 13:02
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,934
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: How many days do your programmers get with a fully built robot before stop build

Quote:
Originally Posted by JonKiddy View Post
...
Most of that day ends up being an electrical/mechanical QA session done by the programmers; talons aren't on the stated channels, wires aren't connected, etc. ...
You don't have to wait until the last minute to check these things. As soon as every wire/cable get put into place, check it. If it doesn't match the spec, either tell the assembler to fix it, or decide to change the spec (and your code).

Quote:
Originally Posted by BigJ View Post
We design, test, and prototype code with other systems or older robots. ...
Do this, "ignore" the mechanical parts of the old robot. and just ensure that the logic in your new code can make the right devices twitch in the correct sequences when that new code is given the correct sequences of inputs from a driver station, or from sensors. If the old (or FTC, VEX, Arduino, ...) robot has usable sensors, that is nice. If not, buy spare sensors (or at least spare cables), steal sensors off of this new robot, and/or create dummy sensors (in software) that inject recorded/simulated data into your new code.

Also, put lots of info into simple "configuration" files. Using those, practice moving your codes' core functions/objects from one robot to another by (mostly) only changing the configuration files. The result should evolve into an architecture (one that actually works in robots, in addition to looking pretty on whiteboards) that separates the stuff the robot and drive station mechanical teams might get wrong from the stuff the software team might get wrong; and the fixes for any mechanical mistakes should be (mostly) simple configuration file edits.

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
Reply With Quote
  #6   Spotlight this post!  
Unread 13-06-2016, 13:24
virtuald's Avatar
virtuald virtuald is offline
RobotPy Guy
AKA: Dustin Spicuzza
FRC #1418 (), FRC #1973, FRC #4796, FRC #6367 ()
Team Role: Mentor
 
Join Date: Dec 2008
Rookie Year: 2003
Location: Boston, MA
Posts: 1,051
virtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant futurevirtuald has a brilliant future
Re: How many days do your programmers get with a fully built robot before stop build

We utilize the pyfrc simulator extensively, so that we can test the code's logical functionality before the actual robot gets built.
__________________
Maintainer of RobotPy - Python for FRC
Creator of pyfrc (Robot Simulator + utilities for Python) and pynetworktables/pynetworktables2js (NetworkTables for Python & Javascript)

2017 Season: Teams #1973, #4796, #6369
Team #1418 (remote mentor): Newton Quarterfinalists, 2016 Chesapeake District Champion, 2x Innovation in Control award, 2x district event winner
Team #1418: 2015 DC Regional Innovation In Control Award, #2 seed; 2014 VA Industrial Design Award; 2014 Finalists in DC & VA
Team #2423: 2012 & 2013 Boston Regional Innovation in Control Award


Resources: FIRSTWiki (relaunched!) | My Software Stuff
Reply With Quote
  #7   Spotlight this post!  
Unread 13-06-2016, 14:25
Cash4587's Avatar
Cash4587 Cash4587 is offline
Mentor
AKA: Cooper Cash
FRC #4587 (Jersey Voltage)
Team Role: Coach
 
Join Date: Mar 2013
Rookie Year: 2013
Location: United States
Posts: 301
Cash4587 has much to be proud ofCash4587 has much to be proud ofCash4587 has much to be proud ofCash4587 has much to be proud ofCash4587 has much to be proud ofCash4587 has much to be proud ofCash4587 has much to be proud ofCash4587 has much to be proud of
Re: How many days do your programmers get with a fully built robot before stop build

I'm not sure how we've been successful dong this, but in the past 4 years, 0 days. We have yet to finish and bag a complete robot. In the past 3 seasons our programmers have been able to squeeze in enough to make us competitive on our practice robot and at competition. I have never been more proud of them this year when they wrote vision code almost entirely at a regional.
Reply With Quote
  #8   Spotlight this post!  
Unread 13-06-2016, 15:20
MamaSpoldi's Avatar
MamaSpoldi MamaSpoldi is offline
Programming Mentor
AKA: Laura Spoldi
FRC #0230 (Gaelhawks)
Team Role: Engineer
 
Join Date: Jan 2009
Rookie Year: 2007
Location: Shelton, CT
Posts: 305
MamaSpoldi has a brilliant futureMamaSpoldi has a brilliant futureMamaSpoldi has a brilliant futureMamaSpoldi has a brilliant futureMamaSpoldi has a brilliant futureMamaSpoldi has a brilliant futureMamaSpoldi has a brilliant futureMamaSpoldi has a brilliant futureMamaSpoldi has a brilliant futureMamaSpoldi has a brilliant futureMamaSpoldi has a brilliant future
Re: How many days do your programmers get with a fully built robot before stop build

Quote:
Originally Posted by JonKiddy View Post
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 done by the programmers; talons aren't on the stated channels, wires aren't connected, etc. 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 where we really do the majority of the programming, but I'd rather be testing on our 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?
Our goal is always to have the robot functioning about a week before Bag Day, but... this rarely happens. In the last few years the software group has gotten the robot anywhere from 1 to 4 days before bag day. But often we are able to get in some testing of individual mechanisms as they are completed. This comes from working cooperatively with the electrical and mechanical teams. Or more specifically, from everyone realizing that by working together we get a better result that benefits the whole team.

Realistically, assigning channels to devices is generally the least of your worries. Changing the device channel is a simple task, the testing of more complex algorithms for controlling mechanisms with sensors, etc. require more time with an actual mostly-functioning robot. The first step in tuning our control systems requires system ID data to be gathered. This is a non-optional step in allowing the code to be properly implemented and mechanism to be properly controlled. And this data cannot be gathered without a functional system.

But this does not mean that the programmers just sit around doing nothing until it is built. You don't have to wait until the systems are completed to talk to the designers about how it is expected to work and begin working on the code that will control them. Certainly many constants, etc will need to be defined and/or tweaked after the robot is ready but there is a large amount of coding that can be performed in the meantime. For example, the classes for each mechanism are defined and implemented with the framework for the control system expected including options for calculating the components that will be used as part of the control system (e.g. previous position values, velocities, and accelerations). Yes, it is often true that while we are writing code for the expected mechanism the entire idea is scrapped and re-designed which often requires the software to be mostly or completely re-designed as well but the original effort is still a helpful learning experience especially for novice programmers.
__________________
Reply With Quote
  #9   Spotlight this post!  
Unread 13-06-2016, 15:22
GreyingJay GreyingJay is offline
Robonut
AKA: Mr. Lam
FRC #2706 (Merge Robotics)
Team Role: Mentor
 
Join Date: Mar 2015
Rookie Year: 2015
Location: Ottawa, Canada
Posts: 769
GreyingJay has a reputation beyond reputeGreyingJay has a reputation beyond reputeGreyingJay has a reputation beyond reputeGreyingJay has a reputation beyond reputeGreyingJay has a reputation beyond reputeGreyingJay has a reputation beyond reputeGreyingJay has a reputation beyond reputeGreyingJay has a reputation beyond reputeGreyingJay has a reputation beyond reputeGreyingJay has a reputation beyond reputeGreyingJay has a reputation beyond repute
Re: How many days do your programmers get with a fully built robot before stop build

How many days?? More like how many minutes

We were just about able to finish the robot before bag and tag, so the software team had very little time with the finished robot before it went into the bag (literally minutes). However, the practice robot was finished a couple of days after that and the software teams had several days, shared with the drive team, to practice and optimize code. And throughout the build season, the teams had many weeks of access to a driving Kit of Parts chassis (but only a stand-in manipulator bolted on).

We made things a bit easier by dividing the software into functional chunks.
- basic driver and manipulator control, using the Java Command Based Robot - team of 3 students
- autonomous commands, sensor fusion and calibration (gyro, encoder PID etc) - team of 3 students
- pan/tilt servo control of on-board camera for vision tracking - one student
- Raspberry Pi running our custom TrackerBox software for target tracking - team of 4-5 students

This division of labour allowed groups to work without everyone needing to use the drive base at the same time. It wasn't perfect, of course, and we will adjust for next year. There was a mad dash at the last minute to do "systems integration" and combine all these products into one, final piece of robot code. This is where we way underestimated the time needed. We were actually still scrambling to integrate our software well into qualifications during our first regional at GTR Central. All our practices, and the start of quals, we were actually still running our hastily written "test" code which had none of the autonomous or vision code. Between matches we would deploy our integrated codebase and continue debugging it.

By Q22 we finally had it functioning, and the students made the (wise) decision to lock it down and use what we had for the rest of the weekend rather than risk additional "live" system testing and tweaking. Between GTR Central and North Bay we spent many hours fine tuning the robot code further, including adding and tweaking all our autonomous routines.
__________________
"If I'm going to mentor someone, I'm going to be involved in their life as a positive force." -Mechvet

Last edited by GreyingJay : 14-06-2016 at 10:50.
Reply With Quote
  #10   Spotlight this post!  
Unread 13-06-2016, 16:07
Alan Anderson's Avatar
Alan Anderson Alan Anderson is offline
Software Architect
FRC #0045 (TechnoKats)
Team Role: Mentor
 
Join Date: Feb 2004
Rookie Year: 2004
Location: Kokomo, Indiana
Posts: 9,112
Alan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond reputeAlan Anderson has a reputation beyond repute
Re: How many days do your programmers get with a fully built robot before stop build

What is this "fully built robot before stop build" of which you speak?

TechnoKats programmers get access to the robot regularly during build. Closed-loop control system tuning is often an important part of the robot's ability to perform. In some years, we've actually gone so far as to reserve an entire day each week where software has priority access, and the only "build" work permitted on the robot is to fix hardware problems discovered (or occasionally created) by the software group. The mechanical group gets to keep busy making replacement or upgrade parts, or working on the practice robot.
Reply With Quote
  #11   Spotlight this post!  
Unread 13-06-2016, 16:44
bigbeezy's Avatar
bigbeezy bigbeezy is offline
Registered User
AKA: Bryan
FRC #2338 (Gear it Forward)
Team Role: Coach
 
Join Date: Dec 2006
Rookie Year: 2005
Location: Oswego, IL
Posts: 310
bigbeezy is a splendid one to beholdbigbeezy is a splendid one to beholdbigbeezy is a splendid one to beholdbigbeezy is a splendid one to beholdbigbeezy is a splendid one to beholdbigbeezy is a splendid one to beholdbigbeezy is a splendid one to beholdbigbeezy is a splendid one to behold
Send a message via AIM to bigbeezy
Re: How many days do your programmers get with a fully built robot before stop build

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.

Kids, well people really, are used to cramming for a deadline. So making an artificial one about a week out tells your mechanical kids that things need to be assembled and electrical that things need to be wired. Not 100% done, not pretty, just functional so that programming can get some of their work moving forward. I haven't done this specifically, but we do use our Week 0 event as this artificial deadline. Basically, we are inviting a ton of people and we need something to show and its the only time when we have our full field assembled. Does it put more pressure on us earlier? Yes, but in doing so we give ourselves time to figure out what things work and where we need to really focus for the final 3 days.

2015 we were really good about getting programming on the robot early and often. Had things pretty much fully operating during week 5. 2016 not so much...
__________________
Team 1592 Bionic Tigers -- Driver 2005-2008
Winner - Florida Regional 2005
Finalist - Newton Division 2007
Winner - Colorado Regional 2008
Florida State University - BS Mechanical Engineering
Team 2338 Gear it Forward -- Mentor/Drive Coach 2013-Present
Winner - Wisconsin Regional 2013
Chairman's Award - Midwest Regional 2015
Winner - Archimedes Sub-Division 2015
Chairman's Award - Midwest Regional 2016
Reply With Quote
  #12   Spotlight this post!  
Unread 14-06-2016, 06:20
EmileH's Avatar
EmileH EmileH is online now
it's not a water game, ok?
AKA: Emile Hamwey
FRC #1058 (PVC Pirates) & SLFF (NE Way You Want It)
Team Role: Programmer
 
Join Date: Dec 2014
Rookie Year: 2011
Location: New England
Posts: 532
EmileH has a brilliant futureEmileH has a brilliant futureEmileH has a brilliant futureEmileH has a brilliant futureEmileH has a brilliant futureEmileH has a brilliant futureEmileH has a brilliant futureEmileH has a brilliant futureEmileH has a brilliant futureEmileH has a brilliant futureEmileH has a brilliant future
Re: How many days do your programmers get with a fully built robot before stop build

Here's what I've always tried to do with my team to save programming time while not restricting the mechanical team.

Say it's 2016 and we have two manipulators that require complex programming: an intake with a motor with PID to angle the intake and a catapult shooter powered by surgical tubing, winched down by another motor using PID.

This method does require a few extra mechanical kids in your shop to build these subsystems.

(this would be around week 2-3, once the design of the robot is just about complete and machining has begun)

Prototype both of those subsystems fairly accurately with wood (doesn't have to be exactly like your robot but similar enough that you can test as you would on the real robot), and while your mechanical team is assembling the real robot, use a spare RoboRIO or another set of electronics to get the feel of how those complex subsystems behave and then start writing some software. Doing this will make programming the real thing much easier as you technically can just copy and paste the software and make minor tweaks.

The reason we never prototype drivebases is because they're always the same...tank drives are quite simple to program, and you can use the same code every time you need to use a tank drive. The only instance in which a drivebase would be prototyped would be if it's a holonomic or a complex system (swerve, kiwi, mecanum, etc.)
__________________
2016-present: High School Student, FRC 1058 PVC Pirates
2016: RiverRage 20 Champions, Battle of the Bay 3 Champions

2013-2015: Middle School Student, FRC 3467 Windham Windup

Last edited by EmileH : 14-06-2016 at 09:01.
Reply With Quote
  #13   Spotlight this post!  
Unread 14-06-2016, 07:33
GeeTwo's Avatar
GeeTwo GeeTwo is offline
Technical Director
AKA: Gus Michel II
FRC #3946 (Tiger Robotics)
Team Role: Mentor
 
Join Date: Jan 2014
Rookie Year: 2013
Location: Slidell, LA
Posts: 3,577
GeeTwo has a reputation beyond reputeGeeTwo has a reputation beyond reputeGeeTwo has a reputation beyond reputeGeeTwo has a reputation beyond reputeGeeTwo has a reputation beyond reputeGeeTwo has a reputation beyond reputeGeeTwo has a reputation beyond reputeGeeTwo has a reputation beyond reputeGeeTwo has a reputation beyond reputeGeeTwo has a reputation beyond reputeGeeTwo has a reputation beyond repute
Re: How many days do your programmers get with a fully built robot before stop build

If our programmers needed a fully built robot before bag day to get any work done, we'd just sit there on the carpet.

They usually have a couple of days with a fully built (though subject to change) drive platform around week 4, but now that we're building two robots, we're tweaking our manipulators right up to competition. In 2015, we were "fully built" before bagging. In 2016, the key pneumatic cylinders for our launcher had not yet been received at bagging - they absolutely were installed on the competition robot on Thursday.
__________________

If you can't find time to do it right, how are you going to find time to do it over?
If you don't pass it on, it never happened.
Robots are great, but inspiration is the reason we're here.
Friends don't let friends use master links.
Reply With Quote
  #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
  #15   Spotlight this post!  
Unread 14-06-2016, 08:36
gerthworm's Avatar
gerthworm gerthworm is offline
Making the 1's and 0's
FRC #1736 (Robot Casserole)
Team Role: Mentor
 
Join Date: Jan 2015
Rookie Year: 2015
Location: Peoria, IL
Posts: 62
gerthworm has a spectacular aura aboutgerthworm has a spectacular aura about
Re: How many days do your programmers get with a fully built robot before stop build

Our team structure is the same. It's varied year to year, but what I've found from my 6 total years of doing robotics for various organizations: The robot is never truly finished. No matter how good or professional your other teams are, there is always something to be improved. Presuming people are enthusiastic about perfection, getting the robot for some quality software time is pretty hard.

We found two modes of operation were really useful this year:
1) mini-sprints: In parallel, the robot is constructed, and software is written. Major milestones (drivetrain written, manipulator added, etc.) are marked in software version control. As soon as the robot is mostly functional, there is a joint effort where software loads on a new program, does some tests, makes some observations. As soon as software knows what to do, they get off the robot and give mechanical & electrical a time estimate till the next time they need the robot (5 minutes? 15? an hour?). Mechanical/electrical then do whatever tasks they can in that timeframe, and get back out of the way for software to do their next iteration. Working like this allowed us to make lots of small mechanical tweaks that made a big difference at the end of the day.

2) Shift-based work: For longer software projects, such as tuning shooter/intake sequencing or autonomous routines, Software just needs the robot for a long stretch of time with little interference. These things were accomplished "after-hours" - effectively, non-software teams went home to get some sleep, and software came in later to get done what needed to happen. Most mentors stuck around for the whole time, but this allowed the students not to be super burdened. I'm hoping to improve how we organize this this year with better up-to-the-minute communication of schedule, as a mechanical failure has great potential to hose up pre-set meeting plans.
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 14: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