|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
|
|
Thread Tools | Rate Thread | Display Modes |
|
|
|
#1
|
|||||
|
|||||
|
Re: A new step in collaboration: FIRST Programmers' Guild
As the only programmer (well, person that has actually programmed the robot) for 772 at this point I can say "we're in"
.It's funny that this has come up now, because I was just given a project by one of my teachers (who also happens to be in charge of robotics at the school) that I will spend the rest of the semester on that is meant to train and prepare future programmers for our team, since I am graduating. There are too many "How to program in C" guides and I'd like to take a different approach that's specifically for FIRST. Once it is completed I would be happy to add it to whatever else we have scrounged up. |
|
#2
|
|||||
|
|||||
|
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 |
|
#3
|
|||
|
|||
|
Re: A new step in collaboration: FIRST Programmers' Guild
Quote:
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. |
|
#4
|
|||||
|
|||||
|
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. Last edited by Mike : 29-03-2005 at 16:35. |
|
#5
|
|||
|
|||
|
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. |
|
#6
|
||||
|
||||
|
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. |
|
#7
|
|||||
|
|||||
|
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. |
|
#8
|
||||
|
||||
|
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. |
|
#9
|
||||
|
||||
|
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 ), 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. |
|
#10
|
||||
|
||||
|
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 |
|
#11
|
|||||
|
|||||
|
Re: A new step in collaboration: FIRST Programmers' Guild
Quote:
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. |
|
#12
|
|||||
|
|||||
|
(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. |
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Programmers what is your feild job? | CyberWolf_22 | General Forum | 16 | 08-04-2004 16:01 |
| [moderated] Collaboration | Brandon Martus | General Forum | 43 | 21-03-2004 20:51 |