Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   Programming (http://www.chiefdelphi.com/forums/forumdisplay.php?f=51)
-   -   A new step in collaboration: FIRST Programmers' Guild (http://www.chiefdelphi.com/forums/showthread.php?t=36692)

JoeXIII'007 29-03-2005 15:52

Re: A new step in collaboration: FIRST Programmers' Guild
 
I'm in, but only if what we make open to the general FIRST community is just concepts and not code (like Ben stated above). This is because you can't just give out or put out code like it was worthless pieces of script. It's valuable stuff. However, if we give out concepts, which is like stone before it is sculpted into a statue, then we not only provide clues into how to go about the task, but also we create a HUGE think tank. As an example, someone may put out a flow chart or pseudo-code. Here's what probably happens:

1. Programmers will look at the code
2. They will think about it, and tweak it if needed.
3. They will have to find a way to put it into code, and therefor creating an explosion of ideas, innovations, etc.

Code in my opinion should only be given out if it is demonstrating a technique, and that code shouldn't have any relation to any robot. Otherwise, don't even think about it.

On a side note, I'm also involved with another project, the URC (Ultimate Robot Challenge) video game, so my involvment with this can't be too much. Thanks.

-Joe

Tom Bottiglieri 29-03-2005 16:10

Re: A new step in collaboration: FIRST Programmers' Guild
 
Quote:

Originally Posted by JoeXIII'007
I'm in, but only if what we make open to the general FIRST community is just concepts and not code (like Ben stated above). This is because you can't just give out or put out code like it was worthless pieces of script. It's valuable stuff. However, if we give out concepts, which is like stone before it is sculpted into a statue, then we not only provide clues into how to go about the task, but also we create a HUGE think tank. As an example, someone may put out a flow chart or pseudo-code. Here's what probably happens:

1. Programmers will look at the code
2. They will think about it, and tweak it if needed.
3. They will have to find a way to put it into code, and therefor creating an explosion of ideas, innovations, etc.

Code in my opinion should only be given out if it is demonstrating a technique, and that code shouldn't have any relation to any robot. Otherwise, don't even think about it.

On a side note, I'm also involved with another project, the URC (Ultimate Robot Challenge) video game, so my involvment with this can't be too much. Thanks.

-Joe

I agree that giving out ideas and not actual code would be beneficial, but I also know that many teams dont have a dedicated programmer or programming support. Because of this, the time needed to go from concept to finsihed product is often non existent.

Maybe we can do this in "steps." We could have a section of the site be dedicated to default codes for different drive base set ups, and code modules. These would be worked on by teams of programmers, probably a student or 2 paired up with an engineer. The modules could range anywhere in difficulty from an easty function that will have an arm drive to a preset pot position to a more difficult driver that would accept a script created with a GUI to control autonoumous mode.

The teams could be formed something like this: a rookie programmer, a veteran programmer, and an engineer or adult mentor. When working on a project, the rookie could prepare flowcharts and documentation on what this module will do, and how it does it. At the same time, the older programmer and adult would work hand in hand to create the module. As more projects are completed, users would move up in rank, based on the quality of their past work and their own opinions of their readyness (does that make sense?
;) )

While educating rookie programmers the basic skills needed to create a control system for a robot is important, I also believe we should work to provide modular drivers that will give every team a fair chance. For example, this year would have been the opportune time to release a module which instructs the user on how to mount the camera, then takes in a few robot based parameters.. and essentially would drive the robot to the vision tetra. Not many teams were able to accomplish this task in competetion, yet I would like to believe more were on the brink of completetion, but could not finish because they wasted too much time setting up the framework of their program.

So to summarize what I just said: We can use a "Level" system where users could get different kinds of information or modules based on their experience and effort levels.

Mike 29-03-2005 16:31

Re: A new step in collaboration: FIRST Programmers' Guild
 
I was thinking about what everyones been saying, but not sure how to word it. I honestly don't want to give out the code i've worked on for weeks and just have another team copy/paste and do just as good a job. There needs to be some kind of protection against this.

The level system is a good idea, but I don't think it can really solve this problem. We need something along the lines of pseudo-code, but i'm not exactly sure what. We'll have to think about this in order to get this program being successful.

Now that we've established that we want to do this, we need to go to the next step. We have to get a site, install phpBB on it, or get a sub-forum here. I'd rather go the site route as it would let us have our own portal/more freedom. How are we gonna go about getting this done? We need to organize a site admin, moderators, who the site will be in the name of, etc. Once that is done I'll talk to Randy at Sevaa.com and get us some space.

Goobergunch 29-03-2005 17:04

Re: A new step in collaboration: FIRST Programmers' Guild
 
I don't have anything much to add here except for the "count me in" thing.

Regarding comments about code-sharing: I don't mind sharing my autonomous mode from this year as it's robot-specific dead reckoning. It's an ugly if-else cluster with a bunch of numbers that I fine-tuned on Thursday evening of the Chesapeake Regional (didn't have any time to do autonomous during build). The concept behind the code is moderately portable, but you'd have to change the PWM outputs and alter the various constants before it would work on your robot.

I'll also be talking to the guy who's going to be programming next year's Friarbot about this; his proposed autonomous code was a lot more method-oriented than mine (although it's never been tested).

Any way an IRC/AIM/MSN chat could be arranged? I won't be at nationals (my school seems to think that funding a new weight-training center is more important than robotics), and I'm not the only one in this thread that won't be. Anybody's welcome to stop into #Friarbot on irc.esper.net (and I'm on the Tigerbolt channel a lot), but we'd probably want some kind of more dedicated room for this.

vtrehan 29-03-2005 17:50

Re: A new step in collaboration: FIRST Programmers' Guild
 
Count Team 1241 in aswell.

I also feel that sharing a direct code is not the best way to go, as it not only make the hard work seem worthless, but itll also be a nuisance for any team without dedicated programmers to use it directly on their robot. I would instead distribue flowcharts and pseudo codes.

AIBob 29-03-2005 17:55

Re: A new step in collaboration: FIRST Programmers' Guild
 
Count me in, although this is my last year of high school, I will still be doing things for FIRST over the internet next year.
I will be willing to help documenting the default code in a more clear manner, and I would be willing to make some simple code and explanations (but not actual code, so the programmers know what they are doing before they have a greatly programmed robot - they need to learn on their own, we can only hand them simple stuff, they have to do the rest) of how to do more complicated code. I'll be at nationals, and I would like to come to this meeting whenever it happens.

dm0ney 29-03-2005 19:35

Re: A new step in collaboration: FIRST Programmers' Guild
 
Might all of the programmers pool and write docs / whitepapers on coding techniques / modules?

Instead of releasing code, we could run an off season services much like most programming text books:

Present case studies / tasks for other programmers to solve. Say we give them some code for a tank steer and say we are now running the robot backwards, please flip the direction the robot moves as well as sides.

Starting there, we can do coding exercises to write a scripting command that could move the robot so many inches forward, BUT having the command and drives be previous projects?

This way the programmer would start with code they've written and as they complete more, they get more. In this way, it becomes partly a person's ambition and commitment to coding that results in better coding practices.

If we start out with basics such as mapping joysticks to pwms and then adding deadbands, smoothings, etc.... a rookie programmer who started a month or more before build season could have fundamentals in place to start the ball rolling.

Much like choosing a track or style in an RPG, you can choose programming challenges (autonomous, oi controls, low-level drive, arms) and at the end of the day have a complete code set written.

The challenges must be real enough that one can learn from them, but somehow made so the code cannot be used on the real robot since build season is build season.

The veteran programmers who have said 'I'm in' (including me) might check code from rookies as well as a way of teaching, once a rookie has gone through the first X programs, they must start checking program 1 for rookies and so on.

This way, the skills of programming are worked on but the MORE important skills of documenting, reading another persons code, and understanding code and being able to debug are developed too.

Pat Fairbank 29-03-2005 20:21

Re: A new step in collaboration: FIRST Programmers' Guild
 
I'm not quite convinced that the pseudo-code would be the best way to go - in my experience, programmers know for the most part exactly how a program needs to be written, structure-wise, in order for it to do what they want. The thing that usually keeps them from putting working code on the field is the lack of time to get rid of all the little bugs in the functions. On the other hand, I agree that providing code that is functional right out of the box would not be beneficial at all to programmers who are trying to develop their skills.

What I suggest, then, is that the FPG provide two things: Firstly, an easy way to get direct support from knowledgeable programmers. Secondly, a collection of code libraries, not at all implemented in the default code, which can be used for such things as position tracking, navigation, and driver control. I would liken these libraries to any other shared library in the open-source world - take the Windows APIs, for example. The Windows functions are provided to you for free, are relatively free of bugs (ok, maybe Windows is a bad example here :D), and no-one likes to fiddle around in assembly with software interrupts (except me, of course ;)), but you still need to have a pretty extensive knowledge of how the APIs work and a good amount of programming know-how to be able to implement them properly.

To sum up, while just providing 100% functional robot code would be bad, providing pseudo-code wouldn't help much either since the debugging time problem would still be there, so in my opinion providing unimplemented but completely tested libraries would be the most effective compromise.

As for the meeting issue, maybe a Wednesday night meeting in Atlanta wouldn't be the best idea, considering many people won't be there (I'll either be at the de-crating itself or still on the bus from Montreal). It might be easier to schedule an IM session sometime.

JamesBrown 29-03-2005 21:02

Re: A new step in collaboration: FIRST Programmers' Guild
 
I would like in, sounds like a great resource that we would be building, As for Psuedo vs. real code I would suggest atleast basic code be supplied, I taught my self to program dead reckoning by copying a block of code onto the EDU bot and then changing things untill I knew what to do, In this case psuedo code would have done me little good.

James

AIBob 30-03-2005 10:46

Re: A new step in collaboration: FIRST Programmers' Guild
 
Quote:

Originally Posted by dm0ney
Might all of the programmers pool and write docs / whitepapers on coding techniques / modules?

Instead of releasing code, we could run an off season services much like most programming text books:
...
Starting there, we can do coding exercises to write a scripting command that could move the robot so many inches forward, BUT having the command and drives be previous projects?

I like the idea, I would be willing to help put together some sort of interactive program that would help people learn how to code, debug, document, questions, problems (coding exercises), etc..
Anyone who helps with it could set it up so that it is like a virtual mentor, for people that are not fortunate enough to have programming mentors, it could give hinds and ideas, and not actually code things, but teach them how to program, it would be a big project to do this sort of program, but probably worth it for all of the rookie programmers on FIRST.
...It wouldn't be quite giving them pseudo-code or real-code, only hints of how to program, so they do not spend a large amount of time on a simple program, and they learn enough so they can do more complicated code.

Astronouth7303 30-03-2005 16:00

Re: A new step in collaboration: FIRST Programmers' Guild
 
(I thought I had posted already, but I didn't see it)

Count me in!

As far as a repository goes, try frCoder. It's a repository started by SilverStar (to replace his previous one). Currently, it's reminding me of a warehouse (think big, empty). I've posted some stuff there, but it needs a lot more.

I'll probably post my code in a whitepaper again. My motors code I'll probably GPL and put in frCoder.

JakeGallagher 30-03-2005 16:20

Re: A new step in collaboration: FIRST Programmers' Guild
 
Quote:

Originally Posted by Tom Bottiglieri
This group would be known as the "FIRST Programmer's Guild" (if anyone can think of a better name, please feel free to submit it :) )

I like the idea of the guild, and if I knew anything about programming at all, I would love to join it. But as for the name--how about changing Guild to something else like:
Group
Collection
Cluster
Guild
Association
Society
League
Federation
Alliance
Coalition
Partnership
Amalgamation
Combine
Society

Personally, I like alliance and socitey...Think about that, the FIRST Programmer's Alliance...the FIRST Programmer's Society...mmm

The Lucas 31-03-2005 13:49

Re: A new step in collaboration: FIRST Programmers' Guild
 
I'm in. I like the pseudo-code idea. If we just provide blocks of code then people who use them might just throw them into their code and expect them to work. It may not work because they did not setup the input and outputs correctly or something else (like the Default_Routine) overwrites the result. We can provide examples of how to translate pseudo-code into real code. Since they do the translation themselves, they will learn more about coding (just like the "Teach a man how to fish" proverb).

Kingofl337 31-03-2005 15:51

Re: A new step in collaboration: FIRST Programmers' Guild
 
Being a rookie programmer in the FIRST competition I believe I can assist you in what would be helpful to me. Being I only took one C class in high school 5 years ago. Its a little fuzzy on how things work together.

Default Code that is supplied is very good even for a rookie.
The problem I had is installing modules into the default code.
So, basically any modules provided or created by FIRST or site
member need to clearly documented on how to install them into
the default code. Doing so would both teach the installation process
but also help with simplicity and debugging issues.

jazzsaxman1988 31-03-2005 20:55

Re: A new step in collaboration: FIRST Programmers' Guild
 
Count 404 in... What could possibly be done during the offseason is to post code from the previous year, analyze the flaws in the coding, and look more at the theory behind what made certain robots so successful, and others less so. Just a thought...


All times are GMT -5. The time now is 07:24.

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