View Full Version : Team 1676-2006 Source Code Released!
I have just *edit*Link Removed*edit* 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).
*edit*Link in volation of Kevin's License.
Spencer E.
20-03-2006, 22:54
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 :p
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.
Spencer E.
21-03-2006, 14:00
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 :)
devicenull
21-03-2006, 18:04
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.
SoftwareBug2.0
22-03-2006, 02:14
Uh, Take a look at the header in all the camera code...
Yeah, it's sort of nit-picky, but I think you may be stuck with just showing diffs unless you get special permission.
Joe Ross
22-03-2006, 14:53
I have just uploaded our code to sourceforge (https://sourceforge.net/project/showfiles.php?group_id=155777&package_id=182502) 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.
You need to include the GPL in your distribution and follow the following instructions for applying it to your program: http://www.gnu.org/licenses/gpl-howto.html
Here are other things to read: http://www.gnu.org/licenses/licenses.html#TOCGPL
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.
Dave Flowerday
22-03-2006, 15:22
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 (http://www.gnu.org/licenses/gpl-faq.html#GPLRequireSourcePostedPublic) 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...
Kevin Watson
25-03-2006, 11:42
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:
Hi, I just read your post regarding the posting of your team's code to sourceforge, which is great except you've included my code in the .zip file, which is expressly forbidden in the header of each of my source files. Sorry, but I must ask you to remove my code from your distribution. I know this makes me sound like a jerk, but I put a considerable amount of time into my code and I really don't want it used in commercial, for profit, software, which is allowed under the GPL. If I allow one person to post the code with my knowledge, It weakens the copyright attached to my code. You are, of course, free to distribute your code with a pointer to my website where they can retrieve the remainder of the build.
-Kevin WatsonBefore 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
X-Istence
25-03-2006, 16:30
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?
Kevin Watson
25-03-2006, 20:28
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.
-Kevin
eugenebrooks
25-03-2006, 21:06
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.
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
devicenull
26-03-2006, 11:14
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..
In the past, in some jurisdictions such as the USA, a work would enter the public domain with respect to copyright if it was released without a copyright notice. This was true prior to March 1, 1989 (according to the USA Copyright office), but is no longer the case. Any work (of certain, enumerated types) receives copyright as soon as it is fixed in a tangible medium.
From here (http://en.wikipedia.org/wiki/Public_domain)
From my understanding, unless they explicitly say they release the copyright on their code, it is NOT public domain.
eugenebrooks
26-03-2006, 17:45
I would check with IFI on that first.. Check out the bottom of any IFI page..
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 (http://en.wikipedia.org/wiki/Public_domain)
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.
Thats one of the many neat things about copyrights,
you have to show them in order to have them,
Ehhh, not so much. Any works transmitted over the internet receive an automatic copyright to their original other, per the DMCA.
Bharat Nain
26-03-2006, 18:58
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.
DonRotolo
26-03-2006, 19:11
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
Kevin,
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.
Don
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.
devicenull
26-03-2006, 22:14
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:
I guess I should explain why I don't want entire copies of my code available elsewhere on the 'net. Two years ago, I posted some code that was later modified and posted on a team's website (team A). Another team (Team B) used the modified version of the code on their robot, but had problems because the modified code had a bug introduced by team A. Team B e-mailed me and said that my code didn't work for them and asked if could I help find the bug. Well, this was during the 2004 six week build period and I was at work when I got the e-mail. Not seeing how the bug could possibly happen and worried that many teams were having the same problem, I left work early so that I could go home and try to reproduce the bug on a real controller. Well, after a few frustrating hours trying to reproduce the bug, I found out that Team B used Team A's modified code, where the bug was found. The point I'm trying to make is that it's much easier for me (and others here on CD) to help diagnose problems if I know that the team started with a build that I know works on my hardware.
-Kevin
You just need to make sure you clearly state that if you use a fork of a piece of software that you can only goto the place you got it from not the place they got it from. In the open source community you always work up, for example if I had a problem with gaim I would file a bug with gentoo(my distro) and if they couldnt resolve it and gentoo developers decided it was a gaim problem it would be resolved upstream and I would then file a bug with gaim. The Linux kernel has a definition were you can defined what extra version it is(like if your using the gentoo patches its call 2.6.16-gentoo). All the code needs is a version definition and state in the readme that if you redistribute the code you need to change that to your team number.
Also keep in mind that Kevin stated on this thread that patch files were ok. There are three problems with that.
1. If you look in a patch file parts of the original code are in the actual patch file not just the the newly added code.
2. Under what was said in the pervious post by devicenull people will still go back to Kevin I dont think that distributing a patch file instead of the full source would make any difference.
3. Sooner or later some teams are going to include a script file in there zip file that will look like this
wget http://kevin.org/frc/frc_camera.zip
cat camer_code | team_xxxx.patch -p1
vBulletin® v3.6.4, Copyright ©2000-2017, Jelsoft Enterprises Ltd.