Team 1676-2006 Source Code Released!

I have just editLink Removededit and now anyone is free to look at it and use it in there own robots as long as they keep there code under the terms of the GPL. This code is fully functional and the only known bugs are in the gear tooth sensor code which we hope to have worked out soon. We will have at least two more releases(pre and post Palmetto) hopefully fixing the gear tooth sensor and adding more autonomous modes. The code is fairly well commented and is based off of Kevins advanced camera code. Any comments are welcome. This also may be useful to teams looking to do programming on Linux since all of this code was written on Linux and has a fully functional Makefile(although it must be edited to work on your computer).

editLink in volation of Kevin’s License.

Looks pretty solid. I’m just skimming through it now and it looks great. It took me a while to figure out what exactly you were using the gear tooth sensor for and the lookup table confused me at first. I guess that’s what I get for ignoring some comments :stuck_out_tongue:

The lookup table is used because the tilt angle the camera is at and what the cannon is at needs to be different. When we designed it we decided that it would be faster and easier to use a look up table and manually put the data in. We recently look up all tilt actions because we found from the trenton regional that leaving the tilt at one angle usally works(once you get the right one). We use the gear tooth sensor(which we are still debugging) to make sure the balls are not fired faster then 12 m/s.

Thanks for clearing that up nukem :slight_smile:

Uh, Take a look at the header in all the camera code…

  • COMMENTS: This is the “bells and whistles” version of tracking.c
  • 		You are free to use this source code for any non-commercial
  • 		use. Please do not make copies of this source code, modified
  • 		or un-modified, publicly available on the internet or elsewhere
  • 		without permission. Thanks.

Yeah, it’s sort of nit-picky, but I think you may be stuck with just showing diffs unless you get special permission.

You need to include the GPL in your distribution and follow the following instructions for applying it to your program: How to Use GNU Licenses for Your Own Software - GNU Project - Free Software Foundation

Here are other things to read: Licenses - GNU Project - Free Software Foundation

As other people mentioned, you are violating Kevin’s license agreement by posting his files. His license agreement also is in direct conflict with the GPL, so he need to license his code under the GPL for you to be able to license your code under the GPL. Just getting him to give you permission to post it doesn’t remove the conflict.

Additionally, it’s unclear what license the IFI default code is under, so you cannot just assume that it’s safe to distribute that either. It would be a good question to ask IFI in their forums.

Also, in your README file you state this:

Team 1676 has decided to release is source code to its robot in order to help other teams programming theirs or for any one else interested. It is released under the terms of the GPL so you are welcome to modify and use this under your own robot but you must release the source code on your teams page and give us credit. As well as Kevin Watson for writing the original code.
(Emphasis mine)
This is not how the GPL works: if another team uses your GPLed code in their robot, the only time they would be responsible for releasing the code and any changes they made is if they were to distribute the compiled binary. If they keep it to themselves and only running on their robot, they do not have any obligation to release the code. See this for further information.

Do we have any clarification on the licensing issues? I would like to host our code on sourceforge, but can’t with all of this confusion…

Well, my license is simple: 1) Don’t use my code for commercial (i.e., for profit) purposes. 2) Don’t post it elsewhere on the net.

I sent this private message to “nukem” several days ago, which has been ignored:

Before I do something more heavy-handed, I should ask the team managment to do something about this. Is there anyone else from team 1676 here?


Kevin, I am not from the team in question, but I was considering also posting our source online. However, since you have not allowed this, I have not done so, and have kept it internal to the team’s use only.

My question is this, if we were to use excerpts or diff’s of the files from the standard version that you have posted on your website, would this be allowed? That way people can still see what changes we have made, but it would only show changes, it would not show the entire code.

I have posted a diff between two different versions of your code before, here on the message boards, for other programmers to use, but would it be okay to do so on the teams website, or any other website for that matter?

Seems reasonable to me. Sure, go ahead.


If there were a license or copyright for the IFI default code,
it would be visibly present somewhere in the zip archive.
Thats one of the many neat things about copyrights,
you have to show them in order to have them, and once you
release a code without them the cat is out of the bag,
so to speak.

IFI is to be applauded for handling their default code, for teams
to make use of and share as a community, in this manner…

Eugene Brooks

I would check with IFI on that first… Check out the bottom of any IFI page…

Copyright © 2002-2004, Innovation First, Inc.

I would also do some more research on that before you say things like IFI doesn’t have a copyright on their code…

From here

From my understanding, unless they explicitly say they release the copyright on their code, it is NOT public domain.

Notwisthstanding the post in wikipedia, the authoritative document that
it is, any intellectual property lawyer will tell you that if you want to
defend a copyright on your code, your first step is to include the
copyright in every source file, explaining terms of use that you intend
to defend. I know this because I have dealt with intellectual property
lawyers on such matters. This is the standard practice in the industry
for computer code, and it is not to be confused with the standard
practice for phonograph records.

I did not say that IFI had released their code into the public domain.
That usually entails a copyright notice explicitly indicating such handling,
something that I am also familiar with and use now and then. I did
use the term, the cat is out of the bag, and I think that common sense,
if not case law, prevails here.

IFI releases their code as a template for teams to use, and obviously
from their actions (or lack thereof), does not find teams sharing modified
snippets of their code objectionable as this is the purpose of the FIRST
robotics activity. This is to be applauded and I applaud it. Not to
worry, when I see indications that I should change my view, I will
post the adjustment…

Eugene Brooks

Copyright 2006, Eugene D Brooks III. This is my opinion, which can
be copied and shared in any form desired, but only I get to change it.

Ehhh, not so much. Any works transmitted over the internet receive an automatic copyright to their original other, per the DMCA.

This code will be off the internet in a few hours. Nothing to worry about - their programmer just did not go on CD for a while so I brought this to his attention.

Sorry about that, we weren’t aware of the issue until your post. As Bharat mentioned, it will be addressed immediately. The short version is just as Bharat wrote: ‘nukem’ just wasn’t on CD for a while, and did not see your message.


Sorry about all this, I have been away from cd for awhile working on other things. Anyway I posted the code thinking it would be a gracious and professional thing to do trying to help other teams with our source code. I only included Kevin’s code so people could download the code all in one place. I looked in the readme, and for a license file, both which did not mention anything about not releasing the code but I did not think to look in the source code itself (my code is in separate files so I rarely look at Kevin’s stuff). Anyway the code is hidden now on the project page.

Sourceforge has a policy of only deleting project files on a case by case basis, I have put in an urgent request for the files to be deleted Sourceforge. I hope in the future Kevin, the FIRST foundation, and the FIRST community will take a GNU approach to things, but until then I will do my best to get the code removed from the site as quickly a possible.

If you know his reasoning, it’s easy to understand why he doesn’t want it released: