Philosophies on design reuse

For the first time, our team has managed to do some serious development work during the off-season. We have debated internally about how best to utilize what we have learned while staying both within the letter and the spirit of the design reuse rules. I’m a “newish” mentor, (starting my third year). My reading of the rules from the past two years is that there is a rule prohibiting design reuse, immediately followed by a bunch of examples of how to get around that rule. My reading of cheif delphi postings, and supported by the posting below, is that design reuse is a common practice among top tier teams, including numerous chairman’s award winning teams. As these are the teams FIRST holds up as examples to emulated, would any of the others be willing to describe their design reuse practices, and how you do this legally? I’d be much happier if the rule were just changed to: “Using previous designs is acceptable. All fabrication must be done after the start of build season.” This seems to be a truer reflection of what actually happens.

I’m not entirely sure why it hasn’t yet, but designs should really move over the the software reuse rules with the caveat that no physical fabrication used on the competition robot is done prior to kickoff.

The software reuse rules are (generally) that you may reuse your software/algorithms as long as they are openly available to others.

(Offtopic: I think you intended to edit your original post but made a new topic instead :slight_smile: )

My interpretation of that rule is that you can use previous concepts, but say you design a chassis that is completely perfect and use it one year. You cannot rebuild the exact same chassis (down to the same exact holes) in each part and use it the next year. One theoretical exception is if you make the chassis COTS, in which case yes, you can reuse the same exact design. Otherwise, you’d have to modify the chassis in some way (which you most likely would given the difference in the rest of the robot).

Simply put, you can reuse concepts, but not finalized designs. You can do general design before kickoff, but you still have to (read should) do some design and modification after kickoff.

Any preseason work that we do only serves to inform the decisions we make during the season. There’s always something we want to tweak, improve or change from what we’ve done in the past. I suspect that’s true of most teams, but for some, the changes are small and go unnoticed by a majority of observers.

Now here’s a question - how small a change is too small? If you did a paint job on one design and didn’t do it for the other, is that a legal change?

Prior to 2007, the rules only specified that fabrication had to be done during the build season:

Thus, it used to be legal to take a CAD drawing of last year’s robot and make another copy. As FIRST has struggled to define what it means to “build a robot”, this restriction has gotten tighter. While I don’t think teams are intentionally breaking the rule, older teams are more likely to have the old mindset where detailed design reuse was completely legal.

The newest set of rules (2012) are straightforward.

Robot elements designed or created before the Kickoff presentation, including software, are not permitted.

The example even goes so far as to mention programming, and that teams should not copy over large chunks of code from year to year.

So the rules are straight forward and the intent is clear. Follow them to the best of your ability, and make your Grandmother proud.

This is a bit of a tough area to come up with a hard “Rule” on - there’s an entire spectrum of what many would consider “reuse”, and no obvious gap that would separate acceptable from non-acceptable.

First, lets cover the obvious - If you build something before the season starts, you can’t use it. Period. End of story (in 2012, at least… we need to wait a few days to make sure things haven’t changed for this year!). All parts on the robot must have actually been built this season.

Now, what about the not-so-obvious? Let me give you some examples.

In 2008 we used an elevator. That elevator was held together using small plates with bearings on either side. The plate got bolted to one section of the elevator, and the bearings would then ride up and down the next section. It worked out well for us, and in 2011 we did almost exactly the same thing. I say almost, because the elevators were quite different. For the part that matters here, 2008 used 1x2 box tubing, 2011 used 1x1 box tubing. So, our plates were 1" smaller in 2011. Reuse of a design concept? Yes. Reuse of a design? No. There were differences (although the difference is minimal), and there was no CAD or specific design tolerances - we just built it and eyeballed where the holes should be each time.

How about another example… in 3 of the past 6 years we’ve used a 6 wheel, drop center design. Every time we used KoP wheels in the middle, with Omni wheels on the corners. They were all chained together, and chains run up to the gearbox included in the KoP for that particular year. We ended up with something that was virtually identical each year. Reuse of a design concept? Definitely. Reuse of a design? Technically, no. There was no specific design we reused. It was built with the KoP chassis and parts given to us (except for the omni wheels), which meant that things naturally turned out pretty similar. There are only so many ways to chain together a pair of wheels!

One last example. This year, you want to use CIMple boxes instead of the provided ToughBox Mini’s. So, you pull them off last year’s robot and stick them on. Reuse of a concept? Not really. Reuse of a design? Again, not really… However, the CIMple boxes, if I remember right, come unassembled. So, reusing them in this way is technically illegal, as they aren’t in their COTS condition (you would have to disassemble them and reassemble for it to be legal). For my team, we often reuse gear boxes from one year to the next (especially BaneBots ones). While you can approach it and think “taking them apart and putting them back together to meet the technical definition of the rule sucks”, it’s much better to think “We should take them apart, clean them, and understand what sort of wear goes on during the season. do we need to replace any gears? What happened to the grease that was in the gearbox, and why does it look nasty now?”. It turns into a learning experience where the students not only get the same experience they would if purchased new, but additional experience they wouldn’t have gotten otherwise.

For me personally, I draw the line for my team by asking the question “what did you learn doing that?” If you can say the students learned something the first time it was built (off-season or previous year) that wasn’t learned re-building it, then you have a problem. Many times, if we want to “reuse” a previous design, we’ll look at it, figure out the good and the bad, and look for ways to improve it.

This off-season, our team built 2 arms that work in different ways on 2 vex robots we threw together (we’ve never built an arm before). If we decide to build a robot with an arm once the game is released, you can bet those two arms will be front and center to aid in our design, and we might end up with something that looks pretty similar to one or the other.

Except for the blue box mentioning…

I would argue that CAD designs “made public” should also count as COTS.

Rewriting code that instead could be reused (outside of educational purposes) or designed for reuse in the first place is a “bad thing” and should not be encouraged (in my opinion).

To what extent? (further explanation)

To be fair to Cory (that post is from 2007), every time I’ve looked at 254’s 'bots at champs (every year since '07) there’s probably very little that goes through no re-design of some sort due to new considerations.

Needless to say, there are many varied opinions.

My team uses pre-season items as prototyping platforms. Often times we’ll have the entire drive train CAD’ed on the day of kickoff, just because we understand our simple drive trains that well. Then we fab the production drive train – it’s often similar to the prototype but it’s never been identical. Only one part last year wound up being identical to the same part on 2011’s robot, but that was after a design derivation and not a duplication. Seems to be within the spirit, even if we didn’t open-source our robot.

I believe we actually changed the parts in question a bit in 2008.

In all seriousness, even if you had a part that did not change at all there are endless ways you could change the design so it’s not being reused. You could change the CAM file that generates the G-code to run the machine. You could make trivial dimension changes. You could issue a new drawing revision for some minor callout. You could change radii used on pockets/edges. The list goes on and on.

It’s really a silly rule because FIRST is unwilling and probably more importantly unable to outline what qualifies as changing the design enough for them to be OK with it. It’s also silly because anything you would re-use exactly as it was from the year before/offseason/etc is most likely a completely trivial part that would gain you no competitive advantage by designing up front.

The rule quite obviously exists to prevent you from designing an entire system of your robot before kickoff and then implementing it immediately, but you really can’t design a system that can be used wholesale with no changes, because you have no idea what it needs to do.

Bravo, not only is the team really moving forward by learning valuable things, they have a mentor (you) who is asking for a community opinion on something that is admittedly a grey area. We need more mentors like you.

We re-use the same drivetrain concept every year, but redesign it to accommodate whatever transmissions, wheels, and manipulators needed for the game. We don’t actually design it before we know what the game is, but it generally has 2 side plates forming a drive assembly (1 for each side) and a frame connecting each assembly into a chassis.

So, in your case, if you use the basic concept, but adjust the material choice, drilled holes, and other details to fit your game-specific design, you should be OK.

If you really want to use the exact design, you must not unless you publish the details (e.g., a dimensioned drawing, CAD files, etc) sufficient for other teams to duplicate it - by posting it publicly* you have made it COTS, and therefore OK to use.

It is a judgment call. Your kids will learn something from how you approach this. Make your grandmother (who knows both the rules and the intent better than all of us) proud.

*In a reasonable easy place to find it, not hidden somewhere, of course.

To me, this is the type of ethical dilemma that is an intentional grey area. It’s like deciding to have a highly sponsor fabricated robot or a team where the mentors have a more hands on approach. It’s something up to the team, and FIRST isn’t going to regulate it at all. (Please don’t let this devolve into a Student Build vs. Mentor Built thread…)

If your team decides that it’s illegal or unethical to design things before the season, that’s your decision. Just know that you’ll be competing against teams that do, and FIRST isn’t going to do much about it.

Cory, I respect your team, and I don’t mean to call you out, but your drivetrain is so similar year to year that certain interpretations of the rules would rule out your type of design reuse. My personal opinion it’s in the best interests of FIRST to allow this type of reuse of design (keeps kids working, thinking, designing, learning, and inspired year round). And, like Cory mentioned, parts can easily have superficial changes to make them legal under certain rules readings. So, it’s not as illegal to reuse designs as some would have us think.

Teams that design before the season, whether they actually use this design in season or not, have a advantage. They will know how to design, and they might just have a few good ideas ready to go.

Numerous times the topic of re-using something fabricated from a previous year (we often have had a non-functional robot by the next build season and reuse COTS components) there is always a student who says something like

“Why can’t we just re-use the bumper fabric with our team numbers already on them, how will ‘they’ know ?”

I then proceed to explain to them (or get them to realize) that ‘they’ are (in part) the judges and inspectors at the competition and did they notice that one of their mentors is a Lead Robot inspector and two other mentors are Inspectors?

Its hard to get the notion across that there really is no ‘they’ and ‘us’-- we are all part of the big FRC family.

In all seriousness, even if you had a part that did not change at all there are endless ways you could change the design so it’s not being reused. You could change the CAM file that generates the G-code to run the machine. You could make trivial dimension changes. You could issue a new drawing revision for some minor callout. You could change radii used on pockets/edges. The list goes on and on.

It’s really a silly rule because FIRST is unwilling and probably more importantly unable to outline what qualifies as changing the design enough for them to be OK with it. It’s also silly because anything you would re-use exactly as it was from the year before/offseason/etc is most likely a completely trivial part that would gain you no competitive advantage by designing up front.

The rule quite obviously exists to prevent you from designing an entire system of your robot before kickoff and then implementing it immediately, but you really can’t design a system that can be used wholesale with no changes, because you have no idea what it needs to do.

Exactly.

You must spread some Reputation around before giving it to Cory again.

Hate when this happens…

-RC

The thing is, at this stage, I’m sure that 254 doesn’t need any existing information about their drive from their old robots and could ‘design’ it again – where design is taken to mean that they’ll create all digital and physical assets from nothing – in a trivial amount of time. Perhaps they already do. Does redoing the work of making part models and writing gcode constitute a new design? Do they have to arbitrarily move holes, change tolerances, or alter the shape of some component to arrive at a new design?

If you accept the latter option as the definition of a new design, which is to say that teams must make parts materially different from year to year, I don’t believe that anyone outside of these teams is qualified to make a judgement about whether it’s changed. So, why bother?

I don’t think you can expect to regulate what it means to reuse a ‘design’. The better approach, and that which I think FIRST has so far followed, is to create a competitive environment that rewards systems and strategies that are specialized to game tasks.

I’m entirely in agreement with Cory on this point.

Absent guidance from FIRST, there is no standard for defining a change. If you paint the part differently, is that a design change? Different colour? Different composition? Different number of coats? Different method of application leading to different surface finish? Which functional characteristics are considered and which are neglected? To what degree must a design change be intentional, and/or consequential? What if you intend to make a change (as evidenced by your latest drawings), and then don’t make the change—so that the part is now identical to a pre-season revision?

If you go down this road, there is no bright line, and thus there will inherently be inconsistency in interpretation. If FIRST accepts the inconsistency and its consequences, they ought to clearly say so. But if that inconsistency is incompatible with their stated motivations (I believe that it is), then they shouldn’t make rules in this fashion. (Inconsistency in the rules adds the potential for conflict, so unless it is counteracted by a significant benefit, it should be avoided.)

As I see it, FIRST should reconsider its intent: allow teams to design (and prototype) whatever they want before the build season, even if the design is destined for the final robot. That way there are no issues regarding what individual custom components remained the same through the pre-season and in-season design processes, despite being part of assemblies that were reconfigured during the season.

What’s the worst that could happen? Teams could design robots and mechanisms in the hopes of having a suitable game? They could do engineering stuff year-round? Fine with me, and obviously fine with a lot of the more dedicated and more successful teams. Presumably fine with FIRST, too, since they haven’t really done anything effective to curb it.

Additionally, the previous years’ rules were hopeless from an enforcement standpoint because (in the general case) it is not practical for an official to evaluate all of the possible elements that could have been changed on moderately complex systems. Indeed, in nearly every case, the officials have no access to the previous designs (whether in schematic or constructed form) at all. The proposal I outlined above doesn’t remedy this entirely, but simplifies the task considerably, because it then comes down to a simple question that can be much more clearly understood and answered by the team: “did you fabricate or modify any robot parts before the build season began?” (Granted, that is dependent on a good definition of fabrication/modification, but that’s already covered for the most part in the rules.) Instead of the inspector having to evaluate the robot based on the dates of design changes, they evaluate it based on dates of modification. Modification is much more of a momentous event than design revision, and since it is more likely that any given team member will be aware of it, it’s harder for them to forget or lie about at inspection. (And perhaps more importantly, if the team member does forget/lie, they’re more likely to be called out on it by a fellow team member later on—so violators lose the shield of plausible deniability among the people whose approval they value most.)

Besides, my position is that (in a typical FRC game, rather than universally) an inspector should be giving the teams the benefit of any plausible interpretation within the rules. The teams are not the source of unclear rules, and they should not be penalized for successfully following a reasonable interpretation of those rules. (As a result, inter-event inconsistency sometimes ensues, but it is typically balanced by the fact that the teams are able to play, unburdened by surprise modifications, having complied with the apparent letter of the rules.)

We learn things as we go along in FRC. What we learn enables us to design better machines faster. It sounds like you learned a lot in the off-season. Never be afraid to embrace what you have learned, and use that knowledge on your machine.

I guess my suggestion, however, would be that the off-season and previous season knowledge should be stored in a human, or group of humans, rather than in a data file. After all, FIRST isn’t really about the robot.

So in the event that the game that is announced on Saturday is perfectly suited for your off-season design, then just sit down at your computer, start with a blank CAD file, and re-create your design from scratch.

It might be identical to the off-season design, but you will have done the work during build season… you’ll simply have done it faster, with more confidence and less troubleshooting because of experience you gained in the off season. By demonstrating your knowledge of a good design you’ll not only be within the letter of the rule, but also the spirit of the rule.

Most likely, however, you’ll find yourself making a few tweaks here and there to improve the off-season design or customize it for the game… I mean, what are the odds you’d build something so perfectly that it couldn’t be improved upon a little bit?

Jason

I’ve never quite understood how FRC enforces this rule in the first place. Programming, for example: how does FRC know when you’ve copied code from last year?

Has anyone actually been disqualified for this? It seems more like a moral guideline then an actual rule.