OCCRA
Go to Post It's only messy if you allow it to be. - Jay H 237 [more]
Home
Go Back   Chief Delphi > Technical > Programming
CD-Media  
portal register members calendar search Today's Posts Mark Forums Read FAQ rules

 
Closed Thread
Thread Tools Rate Thread Display Modes
  #1   Spotlight this post!  
Unread 03-28-2005, 09:27 PM
Tom Bottiglieri Tom Bottiglieri is offline
Registered User
FRC #0254 (The Cheesy Poofs)
Team Role: Engineer
 
Join Date: Jan 2004
Rookie Year: 2003
Location: San Francisco, CA
Posts: 3,305
Tom Bottiglieri has a reputation beyond reputeTom Bottiglieri has a reputation beyond reputeTom Bottiglieri has a reputation beyond reputeTom Bottiglieri has a reputation beyond reputeTom Bottiglieri has a reputation beyond reputeTom Bottiglieri has a reputation beyond reputeTom Bottiglieri has a reputation beyond reputeTom Bottiglieri has a reputation beyond reputeTom Bottiglieri has a reputation beyond reputeTom Bottiglieri has a reputation beyond reputeTom Bottiglieri has a reputation beyond repute
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 : 03-28-2005 at 09:38 PM.
  #2   Spotlight this post!  
Unread 03-28-2005, 09:30 PM
Mike's Avatar
Mike Mike is offline
Registered User
FRC #0237 (Sie-H2O-Bots (See-Hoe-Bots) [T.R.I.B.E.])
Team Role: Programmer
 
Join Date: Dec 2004
Rookie Year: 2004
Location: Watertown, CT
Posts: 1,002
Mike has a reputation beyond reputeMike has a reputation beyond reputeMike has a reputation beyond reputeMike has a reputation beyond reputeMike has a reputation beyond reputeMike has a reputation beyond reputeMike has a reputation beyond reputeMike has a reputation beyond reputeMike has a reputation beyond reputeMike has a reputation beyond reputeMike has a reputation beyond repute
Re: A new step in collaboration: FIRST Programmers' Guild

I can talk to my boss and get us some hosting at Sevaa
  #3   Spotlight this post!  
Unread 03-28-2005, 10:30 PM
Pat Fairbank's Avatar
Pat Fairbank Pat Fairbank is offline
Circuit Breaker
FRC #0254 (The Cheesy Poofs)
Team Role: Engineer
 
Join Date: Mar 2003
Rookie Year: 2001
Location: San Jose, CA
Posts: 2,159
Pat Fairbank has a reputation beyond reputePat Fairbank has a reputation beyond reputePat Fairbank has a reputation beyond reputePat Fairbank has a reputation beyond reputePat Fairbank has a reputation beyond reputePat Fairbank has a reputation beyond reputePat Fairbank has a reputation beyond reputePat Fairbank has a reputation beyond reputePat Fairbank has a reputation beyond reputePat Fairbank has a reputation beyond reputePat Fairbank has a reputation beyond repute
Send a message via MSN to Pat Fairbank
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.
__________________
Patrick Fairbank
Team 254 | Mentor (2012-)
Team 1503 | Mentor (2007-2011)
Team 296 | Alumnus (2001-2004) | Mentor (2005-2006)

patrickfairbank.com

Last edited by Pat Fairbank : 03-28-2005 at 10:32 PM.
  #4   Spotlight this post!  
Unread 03-28-2005, 10:46 PM
devicenull devicenull is offline
Robot? We need a robot?
no team
 
Join Date: Sep 2004
Rookie Year: 1234
Location: n/a
Posts: 359
devicenull is just really nicedevicenull is just really nicedevicenull is just really nicedevicenull is just really nicedevicenull is just really nice
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   Spotlight this post!  
Unread 03-29-2005, 12:36 AM
dm0ney's Avatar
dm0ney dm0ney is offline
Will Code For Food (Food Optional)
AKA: Deepak Mishra
None #0217 (The ThunderChickens)
Team Role: Alumni
 
Join Date: Jan 2005
Rookie Year: 2004
Location: Shelby Twp., MI
Posts: 48
dm0ney will become famous soon enough
Send a message via AIM to dm0ney
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.
__________________

Alumni
Team #217, The ThunderChickens



Student, Class of 2009
California Institute of Technology



Last edited by dm0ney : 03-29-2005 at 01:02 AM.
  #6   Spotlight this post!  
Unread 03-29-2005, 12:47 AM
CJO's Avatar
CJO CJO is offline
Emeritus Pain in the $@#$@#$@#
AKA: Christopher J. O'Connell
None #1097 (Site 3 Engineering)
Team Role: Alumni
 
Join Date: Feb 2003
Location: Latrobe (over the rainbow), CA
Posts: 217
CJO will become famous soon enoughCJO will become famous soon enough
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, . . .
__________________
Team 1097 -- Site 3 Engineering
~~~~~~~~~~~~~~~~~~~~
2003 Sacramento Rookie All Star
2003 Silicon Valley Rookie All Star
2004 Sacramento Engineering Inspiration Award
2004 Sacramento Visualization Award
2004 Outstanding Volunteer Award (G. Glasser)
2004 Silicon Valley Sportsmanship Award
2004 National Visualization Runner Up
2004 Cal Games Finalist
2005 Sacramento Sportsmanship Award
2005 Sacramento #1 seed
2005 Sacramento Finalist

2005 Silicon Valley Sportsmanship Award
2005 Silicon Valley #1 Seed
2005 Silicon Valley Finalist

  #7   Spotlight this post!  
Unread 03-29-2005, 01:02 AM
dm0ney's Avatar
dm0ney dm0ney is offline
Will Code For Food (Food Optional)
AKA: Deepak Mishra
None #0217 (The ThunderChickens)
Team Role: Alumni
 
Join Date: Jan 2005
Rookie Year: 2004
Location: Shelby Twp., MI
Posts: 48
dm0ney will become famous soon enough
Send a message via AIM to dm0ney
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.
__________________

Alumni
Team #217, The ThunderChickens



Student, Class of 2009
California Institute of Technology


  #8   Spotlight this post!  
Unread 03-29-2005, 01:14 AM
CJO's Avatar
CJO CJO is offline
Emeritus Pain in the $@#$@#$@#
AKA: Christopher J. O'Connell
None #1097 (Site 3 Engineering)
Team Role: Alumni
 
Join Date: Feb 2003
Location: Latrobe (over the rainbow), CA
Posts: 217
CJO will become famous soon enoughCJO will become famous soon enough
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.
__________________
Team 1097 -- Site 3 Engineering
~~~~~~~~~~~~~~~~~~~~
2003 Sacramento Rookie All Star
2003 Silicon Valley Rookie All Star
2004 Sacramento Engineering Inspiration Award
2004 Sacramento Visualization Award
2004 Outstanding Volunteer Award (G. Glasser)
2004 Silicon Valley Sportsmanship Award
2004 National Visualization Runner Up
2004 Cal Games Finalist
2005 Sacramento Sportsmanship Award
2005 Sacramento #1 seed
2005 Sacramento Finalist

2005 Silicon Valley Sportsmanship Award
2005 Silicon Valley #1 Seed
2005 Silicon Valley Finalist

  #9   Spotlight this post!  
Unread 03-29-2005, 01:29 AM
dm0ney's Avatar
dm0ney dm0ney is offline
Will Code For Food (Food Optional)
AKA: Deepak Mishra
None #0217 (The ThunderChickens)
Team Role: Alumni
 
Join Date: Jan 2005
Rookie Year: 2004
Location: Shelby Twp., MI
Posts: 48
dm0ney will become famous soon enough
Send a message via AIM to dm0ney
Re: A new step in collaboration: FIRST Programmers' Guild

Quote:
Originally Posted by CJO
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.
CVS is very good stuff. We have our personal CVS server that we use.

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...
__________________

Alumni
Team #217, The ThunderChickens



Student, Class of 2009
California Institute of Technology


  #10   Spotlight this post!  
Unread 03-29-2005, 01:40 AM
CJO's Avatar
CJO CJO is offline
Emeritus Pain in the $@#$@#$@#
AKA: Christopher J. O'Connell
None #1097 (Site 3 Engineering)
Team Role: Alumni
 
Join Date: Feb 2003
Location: Latrobe (over the rainbow), CA
Posts: 217
CJO will become famous soon enoughCJO will become famous soon enough
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.
__________________
Team 1097 -- Site 3 Engineering
~~~~~~~~~~~~~~~~~~~~
2003 Sacramento Rookie All Star
2003 Silicon Valley Rookie All Star
2004 Sacramento Engineering Inspiration Award
2004 Sacramento Visualization Award
2004 Outstanding Volunteer Award (G. Glasser)
2004 Silicon Valley Sportsmanship Award
2004 National Visualization Runner Up
2004 Cal Games Finalist
2005 Sacramento Sportsmanship Award
2005 Sacramento #1 seed
2005 Sacramento Finalist

2005 Silicon Valley Sportsmanship Award
2005 Silicon Valley #1 Seed
2005 Silicon Valley Finalist

  #11   Spotlight this post!  
Unread 03-29-2005, 05:44 AM
Tom Bottiglieri Tom Bottiglieri is offline
Registered User
FRC #0254 (The Cheesy Poofs)
Team Role: Engineer
 
Join Date: Jan 2004
Rookie Year: 2003
Location: San Francisco, CA
Posts: 3,305
Tom Bottiglieri has a reputation beyond reputeTom Bottiglieri has a reputation beyond reputeTom Bottiglieri has a reputation beyond reputeTom Bottiglieri has a reputation beyond reputeTom Bottiglieri has a reputation beyond reputeTom Bottiglieri has a reputation beyond reputeTom Bottiglieri has a reputation beyond reputeTom Bottiglieri has a reputation beyond reputeTom Bottiglieri has a reputation beyond reputeTom Bottiglieri has a reputation beyond reputeTom Bottiglieri has a reputation beyond repute
Re: A new step in collaboration: FIRST Programmers' Guild

Quote:
Originally Posted by dm0ney
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.
This is exactly the mindset I have. The way I figure, if teams dont have to spend the time they do getting their base code debugged and working, they can spend more time working on more advanced systems.
  #12   Spotlight this post!  
Unread 03-29-2005, 06:24 AM
JonBell JonBell is offline
Registered User
None #0546 (Technotics)
Team Role: Programmer
 
Join Date: Mar 2005
Rookie Year: 2004
Location: CT
Posts: 79
JonBell is just really niceJonBell is just really niceJonBell is just really niceJonBell is just really niceJonBell is just really nice
Send a message via AIM to JonBell
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   Spotlight this post!  
Unread 03-29-2005, 08:53 AM
Bharat Nain's Avatar
Bharat Nain Bharat Nain is offline
Registered User
no team
Team Role: Alumni
 
Join Date: Jan 2004
Rookie Year: 2003
Location: New York
Posts: 2,004
Bharat Nain has a reputation beyond reputeBharat Nain has a reputation beyond reputeBharat Nain has a reputation beyond reputeBharat Nain has a reputation beyond reputeBharat Nain has a reputation beyond reputeBharat Nain has a reputation beyond reputeBharat Nain has a reputation beyond reputeBharat Nain has a reputation beyond reputeBharat Nain has a reputation beyond reputeBharat Nain has a reputation beyond reputeBharat Nain has a reputation beyond repute
Send a message via AIM to Bharat Nain Send a message via MSN to Bharat Nain
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
__________________
-= Bharat Nain =-

Whatever you do, you need courage. Whatever course you decide upon, there is always someone to tell you that you are wrong. There are always difficulties arising that tempt you to believe your critics are right. To map out a course of action and follow it to an end requires some of the same courage that a soldier needs. Peace has its victories, but it takes brave men and women to win them. - Ralph Waldo Emerson
  #14   Spotlight this post!  
Unread 03-29-2005, 09:17 AM
Mike's Avatar
Mike Mike is offline
Registered User
FRC #0237 (Sie-H2O-Bots (See-Hoe-Bots) [T.R.I.B.E.])
Team Role: Programmer
 
Join Date: Dec 2004
Rookie Year: 2004
Location: Watertown, CT
Posts: 1,002
Mike has a reputation beyond reputeMike has a reputation beyond reputeMike has a reputation beyond reputeMike has a reputation beyond reputeMike has a reputation beyond reputeMike has a reputation beyond reputeMike has a reputation beyond reputeMike has a reputation beyond reputeMike has a reputation beyond reputeMike has a reputation beyond reputeMike has a reputation beyond repute
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   Spotlight this post!  
Unread 03-29-2005, 10:12 AM
dm0ney's Avatar
dm0ney dm0ney is offline
Will Code For Food (Food Optional)
AKA: Deepak Mishra
None #0217 (The ThunderChickens)
Team Role: Alumni
 
Join Date: Jan 2005
Rookie Year: 2004
Location: Shelby Twp., MI
Posts: 48
dm0ney will become famous soon enough
Send a message via AIM to dm0ney
Re: A new step in collaboration: FIRST Programmers' Guild

I think scheduling a meeting say Wednesday night while those other three members are uncrating the robot @ Nat'ls might be the BEST time for us to meet.
Feedback? It seems Tom is our main mentor right now, so Tom?

I know that once Thursday comes, programmers will be working quite hard all day and then by Friday and Saturday, it'll be TOUGH to get us out of the stands / pits / watching the matches.

Back to the arm modules...
this year we had a tcr_joint struct with accessors, mutators that we applied to two of our joints ((linear) shuttle / (rotate) four_bar). I think that as programmers, we should all look through our code and see what modules we can pull with minimal ease.

As I see it, the most important thing to this is going to be documentation either with the most complex code or pseudocode so that many programmers can hit the ground running.

I know that our code makes heavy use of pointers, structs, and the like.
Back to the graduated codes... might we also have a ranking system in place on this repository of difficulty of coding / understanding / experience?

We will also want to try and have modules be modules with same implementations because I know supposing a joint module is used like ours and then another joystick module is used from another team, there could be problems in controls.

Another thing we should try and work into are implementing macros into these modules so as a way of graduation maybe, you can enable or disable macros in code.
__________________

Alumni
Team #217, The ThunderChickens



Student, Class of 2009
California Institute of Technology


Closed Thread


Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Programmers what is your feild job? CyberWolf_22 General Forum 16 04-08-2004 04:01 PM
[moderated] Collaboration Brandon Martus General Forum 43 03-21-2004 08:51 PM


All times are GMT -5. The time now is 10:21 PM.

The Chief Delphi Forums are sponsored by Innovation First International, Inc.


Powered by vBulletin®
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi