Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   Technical Discussion (http://www.chiefdelphi.com/forums/forumdisplay.php?f=22)
-   -   Philosophies on design reuse (http://www.chiefdelphi.com/forums/showthread.php?t=110343)

ToddF 02-01-2013 14:01

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.

Quote:

Originally Posted by apalrd (Post 1206503)
I think you're completely missing the point about developing drivetrains, and using designs from the design shelf.

When we build prototype drivetrains pre-season, we have several goals:
-Design exercise for everyone involved
-Better performance in any number of categories (turning performance and weight are most commonly optimized) than what we have now
-Find a way to manufacture it easily using our resources
-Create a list of lessons learned that we would change the next time we built a similar drivetrain.

We built a nice development platform in the 2010 off-season. We ended up with an 8wd Dual Drive articulating rear wheel cantilever live axle chassis, with fully automated articulation (all written in C on the IFI processor) and Toughboxes that went around 11fps. We used kit wheels (2008 gray style) because we had a lot of them. We had a lot of things we wanted to learn, so we designed it to test all of them:
-Could we get away with thinwall (1/16th") box tube?
-Would our 2-plate bearing carrier work?
-Would the dynamic performance of the articulating drivetrain be better than a flat 8wd? We also wanted to develop algorithms for this since it worked well in initial tests.
-Would our method of chain tensioning work? We were slightly concerned about the lack of dynamic tensioning on the articulating wheels, and wanted to prove it.

We learned a lot. If, in 2011, we wanted to build a wide robot, it would not have been very hard to use the lessons learned from previous designs to build something good. We put the test chassis on our design shelf (figuratively, it was physically left in the basement), and decided it might be useful in the 2011 season (which it was). When we took the design off the shelf for season use, we also had a list of things we didn't like that we would change, changed them all, and modified it to fit our design goals for that season.

Most of the design in a design from the design shelf is not the exact length and width of the chassis. Had we been required to build a smaller or larger robot, we could have taken the wheel module assembly and located it anywhere along the frame rail, and adjusted the frame rail as necessary, or even added or subtracted wheels easily. To change the length and width, a total of four pieces would be made differently. All of the 'tough' design work was already done, in designing the wheel module assemblies. Those would not change, even as the robot dimensions change.

What's cool about that is we already have the 'stock' engineering done. For a specific game, once we decide we are building a skid-steer robot, and we make a general mechanism package model (large rectangles of space reserved for mechanisms, and optimal hard mounting points), we can CAD the frame rails or panels, and drop in the wheel module model we already have, and make it.


Basically, what I'm saying is that it's not hard to change the dimensions of a shelf design to fit another set of requirements.


BigJ 02-01-2013 14:16

Re: Philosophies on design reuse
 
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 :) )

nathan_hui 02-01-2013 14:21

Re: Philosophies on design reuse
 
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.

Madison 02-01-2013 14:29

Re: Philosophies on design reuse
 
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.

nathan_hui 02-01-2013 14:32

Re: Philosophies on design reuse
 
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?

StevenB 02-01-2013 15:13

Re: Philosophies on design reuse
 
Prior to 2007, the rules only specified that fabrication had to be done during the build season:
Quote:

Originally Posted by FRC 2006 Game Manual
... But absolutely no fabrication or assembly of any elements intended for the final robot is permitted prior to the Kick-off presentation. Any MECHANISMS assembled prior to the Kick-off presentation may be used for prototyping or educational purposes, but MAY NOT be used on the final ROBOT.

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.

Tom Line 02-01-2013 15:40

Re: Philosophies on design reuse
 
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.

Jon Stratis 02-01-2013 15:41

Re: Philosophies on design reuse
 
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.

BigJ 02-01-2013 15:44

Re: Philosophies on design reuse
 
Quote:

Originally Posted by Tom Line (Post 1206567)
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.

Except for the blue box mentioning...

Quote:

Originally Posted by Blue Box
Example: A different team develops a similar solution during the fall, and plans to use the
developed software on their competition Robot. After completing the software, they post
it in a generally accessible public forum and make the code available to all teams.
Because they have made their software generally available (per the definition of COTS, it
is considered COTS software and they can use it on their Robot).

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).

JesseK 02-01-2013 18:51

Re: Philosophies on design reuse
 
Quote:

Originally Posted by BigJ (Post 1206569)
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.

Cory 02-01-2013 20:19

Re: Philosophies on design reuse
 
Quote:

Originally Posted by JesseK (Post 1206684)
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.

DonRotolo 02-01-2013 20:23

Re: Philosophies on design reuse
 
Quote:

Originally Posted by ToddF (Post 1206529)
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.

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.

DampRobot 02-01-2013 21:20

Re: Philosophies on design reuse
 
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.

jvriezen 02-01-2013 21:25

Re: Philosophies on design reuse
 
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.

ajlapp 02-01-2013 21:39

Re: Philosophies on design reuse
 
Quote:

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.


All times are GMT -5. The time now is 13:32.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi