R14 in the FRC game manual states that code and designs need to be published before the season if they are to be reused.
“Making public” probably just requires posting on GitHub or a team website, but many people (including myself) still share on CD prior to Kickoff.
This is a (hopefully) less aggressive attempt at a thread to centralize these pre-kickoff design and code postings. I know that I feel weird making a standalone thread for our team’s work this close to kickoff, but I still do want to share our materials on CD.
Personally, I love seeing what other teams have worked on over the off-season (see similar-ish thread from last year), and you never know just how many people you may inspire by posting your designs and code
So if you want to, definitely share what you’ve got here. And if people disagree with the premise of this thread or have suggestions for improvement, please let me know.
(Team 8 will be posting our stuff here in a few days, winter break makes us slow)
I shared it in another post, but Pearadox last year did electronic scouting for the first time. I’m a fan but there’s still significant room for improvement as we were not able to adequetely take advantage of all the main points of doing electronic scouting - quick and easy data aggregation.
Code: https://github.com/Pearadox/Scout-5414
Set up: 7 kindles (purchased on black friday or cyber monday or whatever for relatively cheap, plus some green kiddie protectors because I don’t trust them not to fall at competition). 1 was the “scout master”, and the other 6 were scouters. I believe the scout master assigned teams to scouts 1-6 and was where the data was sync’d. There was also a “pit scout” mode where they could take pictures and log information about the robots. I also typically had a kindle with me that I could pull up data as well going into a match. There were lots of nice little features that I can’t quite recall at the moment.
We also set up this for ourselves: https://github.com/Pearadox/YG_Alliance - I didn’t use this directly but I think this was for our student representative out on the field to pull up data on teams and have them in our desired sort and could remove teams after being selected. I think.
Team 3184 keeps all of our code public. Recent developments include a pure pursuit simulator and robot implementation, custom dashboard improvements, and updates to our Python framework.
Adding the screen that enables the Scouting Lead to verify that full data has been submitted by each scout was incredibly helpful
Adding the screen that enables the Scouting Lead to verify that full data has been submitted by each scout was incredibly helpful
Internet-over-Bluetooth for 6 devices off of two cellular devices (a phone and an Internet-enabled tablet) is very, very frustrating, with the connection getting dropped frequently
Internet-over-Bluetooth is basically impossible at World’s (4,000 people in a convention center, and I guarantee 3,995 of them are actively using Internet on their phones/tablets/other connected devices)
Training the Pit Crew in how to interpret the data that is saved is important before competition (“what is the difference between blank and zero in this field?”)
Choosing the data to collect is difficult, and needs to be flexible enough to make late-in-the-season changes
We will be iterating on the version released above, this year. The amount of iteration will depend on how much I (the mobile app dev mentor) will need to help with robot code mentoring. The more the others can handle that, the more time I’ll be able to devote to working on the app. Unfortunately, our team is smaller this year, so I do not anticipate having students to work with me on the app modifications. I hate to take it from a mentor+student app to a mentor-only app, but maybe I’ll be able to find some students on other teams who would like to collaborate on the open-source application. Contact me if you know such a student: [email protected].
I have registered scouting.mobi to start writing up content to help students learn how to implement the app on their own devices, and customize the app for their needs. There is no content there, yet, but depending on how the season goes, there may be some content there soon.
If you are going to reuse the CAD (ie take the file and build it during the season), then it needs to be publically accessible (on a team website or in a CD post for example).
If you are just going to reference the CAD (ie open it up and look at it, take measurements, then make a modified version from scratch), then it can stay private.
The absolutely critical item in this post is the one single word I bolded. “Modified”. If you were to NOT modify the CAD, and it was not posted publicly, even if you re-CADed the entire thing, I would consider that you violated the rule (your LRI might think differently). This also goes for code/wiring diagrams.
Basically: If you make changes, feel free to use a private file as a reference. But if you aren’t making changes, make sure it’s publicly available.
For anybody not aware, there was at one time a rule that certain things had to be retyped if made outside the allowed times…
I don’t know about you, but commenting out and uncommenting, to me, isn’t modification. It depends on how many rules hairs you want to split. I’m aware you can make an argument either way, though.
Now, the other question, which I really hate to bring up: If you copy/paste the code from your private repo, and it’s not public, are you (or your teammates of all ages) comfortable with signing paperwork that says that you followed the rules, even with that rule on the books?
IMO, simply removing functioning code and putting it right back in, without changing it, isn’t going to be enough of a modification. That being said, I can see how it could be to other people. It’s not a question of which hairs get split, it’s who splits them.
Should someone reach for the LRI meme, or should somebody ask some pointy questions in Q&A in about a week and a half?
For a CAD example of the “make public” clause, a team could CAD their robot in the free version of OnShape. Yet they are under no obligation to send anyone the search terms or direct links to the design.
Just for a second consider that it’s a meme because of how absurd some of this is. We’re discussing the hypothetical enforcement of a rule that hasn’t been announced but requires teams to take past action to not be guilty of breaking it. Short of a time machine, how’s a team supposed to do that? Strikes me as the FRC equivalent of an ex post facto law.
We are assuming that a rule that has been constant for about as long as I’ve been in this game (and I’ll just remind everybody that that’s longer than some of your freshmen have been alive) could make some sort of change. Naturally, all rules every year have that risk. This one… maybe less than most.
I disagree that teams must take past action to not be guilty of breaking the rule, however. What I find is that teams must take CURRENT (as in: during build season) action to only use items that 1) are public information or COTS as of the beginning of build, loosely defined as ‘any random person can obtain it even if they have to go digging a bit’ or 2) are developed to their current form during the build season (for example, by modifying the code to fit the current robot).
The PAST action comes when teams, in order to ensure that they don’t have to reinvent the vision system, take action to make sure that their vision systems fall under 1. No team is required to do this–but in that case, the team must take option 2. Whether, for example, retyping code would count… well, I could go into the past ridiculousness of some of the FIX-IT WINDOW rules, but that’s beside the point. Mainly, I suppose, this is a precautionary measure–but much like buying pool noodles, you can’t go wrong by doing it.
The annual reminder is, essentially, to give as many teams as possible a chance to do less work.
And with that out of the way, you can expect a dramatic reading of our off-season code sometime soon, complete with an interpretive dance of the CAD sufficient to reproduce the designs using motion capture technology. We will be performing it live, publicly at our lab. Everyone is invited to attend.