|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
|
|
Thread Tools | Rate Thread | Display Modes |
|
|
|
#1
|
|||
|
|||
|
A new step in collaboration: FIRST Programmers' Guild
This is an idea I've had floating around in my head for months, and was encouraged to formalize and post about by a few friends.
As many of you know, students and mentors have created various suborginizations within FIRST to aid in communication, increase knowledge shared between teams, and just make the whole FIRST experience better for everyone. Some of these groups include the "Western Region Robotics Forum" and "East Coast Driver's Union" I would like to suggest a new group to everyone, one that can not only raise general knowledge of its subject among its members, but also help the entire FIRST community. 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 ) As many of you know, every year teams are given the basic tools to create a program that will run a robot under autonomous and driver control. At the beginning of the build, expectations for provided subsystems are high, but often flop due to lack of programming support and time on teams. (example: the vision system )FIRST provides teams with a robot's "basic needs" code wise. We are also able to access driver programs for different sensors and applications. Most people have a great grasp on how all of these things work, and the understanding of how to utilize them to accomplish their ideas, but get stuck on the actual implementation and debugging of said subsystems. For example, my team had plans for a "navigation" system which could keep track of absolute robot position, and had all the code written and working on the EDU-RC. But, the project ultimately fell through when trying to debug this system on the FRC controller in too short of a time span. Now imagine, if my team's programmers was working with other teams student and programmers and mentors on a "default" navigation driver which was tested and proven, we could spend more time on actually implementing this system for a successful autonomous program, rather than spending the time we did on debugging. In addition to working together on publicly available systems, the FPG would work to increase the skill and competitiveness of rookie teams. We would invite rookie programmers into the group, with hopes of their education and creation of a successful and powerful robot user code. With suppliers such as Andy Mark, and the FPG providing new and exciting "default" codes, you may see many rookie teams in the future making more complex machines, such as omni directional drive bases. If we can provide teams with a stronger base to work with, they will be able to springboard off of that to new and exciting things some people never thought possible. I would like to get some engineers on this website interested in this project, and hopefully work with students to get it up and running. Programmers are given the great resource of Chief Delphi to ask experienced engineers questions, but why ask questions when you can work hand in hand with these engineers with the same goals in mind. I think if the task of FIRST programming is given an easier learning curve, and there are engineers and experienced students there to work with rookies, more students will be inspired to pursue a career in computer sciences and will decrease the current overpowering ratio of mechanical: programming student interests. There’s power in numbers, and this group could possibly change the way programming is looked at in FIRST, and hopefully increase the respect for programmers. There’s power in numbers, and this organization could definitely help the future of FIRST. Comments/Questions? Last edited by Tom Bottiglieri : 28-03-2005 at 21:38. |
|
#2
|
|||||
|
|||||
|
Re: A new step in collaboration: FIRST Programmers' Guild
I can talk to my boss and get us some hosting at Sevaa
![]() |
|
#3
|
||||
|
||||
|
Re: A new step in collaboration: FIRST Programmers' Guild
This is an excellent idea. The area of control systems is one of the most important aspects of robotics today, and is the basis of "true" robotics - where everything is completely automated, with no driver control (a direction in which FIRST has gradually been leading us to, with the introduction of autonomous mode). Unfortunately, with the time constraints of the build season, it's also the area that receives the least attention. Only a small minority of teams, those who are able to completely finish their robot a week or more before the build deadline, have enough time to debug their code. This year the bar has been raised higher, as a result of FIRST's leveling the playing field by not allowing programming during the competition season, outside of events and fix-it windows.
Now, FIRST and Kevin Watson have made a much appreciated attempt to make things easier for the programmers, by providing a lot of autonomous code. But in my experience it is very difficult to adjust and optimize this code for a particular robot and navigation system - you have to either take all the code or leave it. My team chose to leave it, instead opting for a very complex navigation system, using all sorts of sensors and object avoidance and object entering algorithms. Needless to say, the code's still not debugged yet and the robot hasn't done anything yet in autonomous. All this to say that I agree with Tom, in that if that we were to form this FIRST Programmers Guild and develop code that can be used by any team to the effect of providing them with a working autonomous mode, it would certainly result in seeing more robots achieving results during autonomous mode. Going by FIRST's ideals in the advancement and sharing of technical knowledge, I would much rather see 1000 bots running some of the same code, and performing well in autonomous mode, than only 50 or so performing well with their own code. ... So count me in (I'll even share my team's top-secret algorithms, if it would help), and I hope many of you fellow programmers do the same. ![]() Last edited by Pat Fairbank : 28-03-2005 at 22:32. |
|
#4
|
|||
|
|||
|
Re: A new step in collaboration: FIRST Programmers' Guild
I have some stuff I wouldn't mind sharing, but my auto. code is something that would just confuse people more then necessary. I do have some code which auto-determines joystick deadbands though.. thats always fun
![]() But, count me in. |
|
#5
|
||||
|
||||
|
Re: A new step in collaboration: FIRST Programmers' Guild
Count Team #217 In.
Although this is my last year as a team member, I hope to be around a few more yet. Since I'm also student head this year.... I can definitely put some traditions in that the rest will have to follow.... ![]() As much as we love our code.... and we really do love it a lot. We'd be more than happy to join a 'programming community' for other programmers. Taking up on that, come visit our code presentation @ Nationals! I'll see if I can build some suspense up on that..... release some teasers and the like. ![]() PM me if you're DYING to see some of our code..... ![]() The strongest way to get this started might be to have a meeting @ Nationals for programmers and then also get releases of code in the coming weeks. Last edited by dm0ney : 29-03-2005 at 01:02. |
|
#6
|
||||
|
||||
|
Re: A new step in collaboration: FIRST Programmers' Guild
In respose to earlier, I think that the most underrated part of the competition is the creation of a solid control system. I also think that this is a great idea. A programming group could help prevent the complete craziness of 5 different default codes at the beginning of this year; one DDT, one camera, one IFI, . . .
|
|
#7
|
||||
|
||||
|
Re: A new step in collaboration: FIRST Programmers' Guild
I envision a repository of modules that could be placed into the default code?
Say different steering modules Instead of having anything quite concrete in default code from IFI, have comments saying insert choice of steering here and go on from there. Also maybe a graduated default code base? Start with one with the comments said above with a dead-reckoning auton. Release a version that has more instructions for pid, encoders, et all In terms of modules: Steering Module: Pick Tank, Truck, Car, Crab, anything and you insert the code either into where the comments said or into the project. Albeit, the code should NOT be 100% completed but maybe 75% so the rookie programmer can fully understand it to complete it. |
|
#8
|
||||
|
||||
|
Re: A new step in collaboration: FIRST Programmers' Guild
Agree, plus, with a good forum (maybe even a section of programming at ChiefDelphi?) we could help out rookie (and not so rookie) programmers.
Also, I have set up a FIRST CVS repository, not only could the base modules be in CVS, we could also offer a seperate CVS space to each team. |
|
#9
|
||||
|
||||
|
Re: A new step in collaboration: FIRST Programmers' Guild
Quote:
I think it might help the cause if we were linked to CD but have an offsite repository of code? I think so far we've established that /********************************************** * Important! */ A) Meeting @ Nationals minimum? B) Graduated Code Releases maybe? C) Downloadable OPENSOURCE Modules D) Dedicated Forums / Site /********************************************** * Extras follow */ E) Programmers Are Most Alive At Night (The Time When We Finally Get The Robot) F) Both of us are RUNNING with this thread on high gear... ![]() |
|
#10
|
||||
|
||||
|
Re: A new step in collaboration: FIRST Programmers' Guild
Yeah, we might also want to consider a "driver" database, IO code for common components, hall effect sensors, encoders, potentiometers, steering wheels, and so on.
|
|
#11
|
|||
|
|||
|
Re: A new step in collaboration: FIRST Programmers' Guild
Quote:
|
|
#12
|
|||
|
|||
|
Re: A new step in collaboration: FIRST Programmers' Guild
I'm defnitely in on this one. This year I was a rookie FIRST programmer (I have a fair bit of outside experience), and more or less first year with the robot (last year I did only design at the beginning, then left). I can not begin to explain the amount of time that it took for me to get through the default code and figure out how to get it onto the robot and how to set up deadbands (I hadn't found CD at that point). This completely destroyed the window that I had for debugging the vision system, and that ended that.
So I wholeheartedly agree that such a guild would be a phenomenal idea. Unfortunately I won't be at nats this year (I couldn't keep the date free, will be there next year), but if there is anything that you guys need (I run a hosting service with my own dedicated servers and could offer up space/bandwidth/cvs/whatever if you guys need it, unless you have something). Next year I was planning on doing an independent study in embedded systems (aka FIRST robotics programming ), and I should be working on a number of proof of concepts and code tidbits.I would suggest that the code repository is mainly pseudo-code, with the really complicated parts perhaps being written out in C. This way rookie programmers can start to get an idea what programming is all about by more or less writing their own code, not just by inserting missign bits and pieces in a template. I'd really like to see the quality of code loaded on most robots include, and I think that the FPG is a step in the right direction. |
|
#13
|
|||||
|
|||||
|
Re: A new step in collaboration: FIRST Programmers' Guild
I'm in. I've envisioned something like this for a long time, but had no time to talk about it. Great job Tom.. you da man. I joined my team without any C programming knowledge. During the first week of build I quickly took up some C books and learnt the format. And then I was faced with the challenge to program a complicated control system, which I ended up getting help with, but it was a great experience regardless. I hope this project goes well
-Bharat |
|
#14
|
|||||
|
|||||
|
Re: A new step in collaboration: FIRST Programmers' Guild
I like the idea of modules. You can have a drive system module, grabber module, arm module, etc.
All you would have to do is customize the module we make with your own input variables, and plug it into a default code we make at the beginning of each season. This will give you basic functionality that'll let you expand on and make more complex control systems. We should definetly meet at Nationals, and get a count of who's in as well as assign positions (President, Vice-President, Etc.) |
|
#15
|
|||||
|
|||||
|
Re: A new step in collaboration: FIRST Programmers' Guild
Quote:
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 |
![]() |
| 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 |