Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   Programming (http://www.chiefdelphi.com/forums/forumdisplay.php?f=51)
-   -   Programming teams (http://www.chiefdelphi.com/forums/showthread.php?t=93567)

RoBoTiCxLiNk 13-03-2011 23:33

Programming teams
 
I have been wondering this all season, but I wanted to get an idea of how many programmers there generally are on other teams. So if anyone wants to tell me how many programmers they have on their team, how they manage it, and what their main collaboration method is, I'd be very interested.

Fireball9199 13-03-2011 23:46

Re: Programming teams
 
We have 3 plus a mentor and we mainly use dropbox for collaboration.

RoBoTiCxLiNk 14-03-2011 00:05

Re: Programming teams
 
Our team has 1 programmer, who also does electronics, electrical, and mainly everything digital, and 0 mentors in the field of programming.

BigJ 14-03-2011 00:25

Re: Programming teams
 
We have anywhere from 2-3 mentors and 1-4 students on the control systems team any given year.

Right now we use Mercurial for version control with a repository on Bitbucket. However, it doesn't stay updated because the high school's network doesn't allow https connections to bitbucket, or something. I should talk to the IT guy at the school. However, Merciural is a good source control system when it comes to this, as a central repository is not required.

Alexander Meyer 14-03-2011 00:33

Re: Programming teams
 
We have three programming students and one software mentor. Currently we use Mercurial + BitBucket for source control.

kgzak 14-03-2011 00:48

Re: Programming teams
 
we have 3 programers and 1 mentor. This year we could have the potential to write the best code we have ever had but we haven't had a chance to get the robot.

RoBoTiCxLiNk 14-03-2011 00:53

Re: Programming teams
 
Quote:

Originally Posted by kgzak (Post 1039052)
we have 3 programers and 1 mentor. This year we could have the potential to write the best code we have ever had but we haven't had a chance to get the robot.

Number 1 problem when programming: the builders dont recognize you as needed for the robot to run. They expect us to just program the whole bot and when THEYRE done, we just 'tweak' a few things and its miraculously running. The robot doesnt need to be built in 6 weeks, it needs to be built AND programmed. If i had had time with the 'bot', things wouldve gone much differently...

kgzak 14-03-2011 01:06

Re: Programming teams
 
Quote:

Originally Posted by RoBoTiCxLiNk (Post 1039057)
Number 1 problem when programming: the builders dont recognize you as needed for the robot to run. They expect us to just program the whole bot and when THEYRE done, we just 'tweak' a few things and its miraculously running. The robot doesnt need to be built in 6 weeks, it needs to be built AND programmed. If i had had time with the 'bot', things wouldve gone much differently...

Exactly. What our team does is program something that should work and when we run it on the robot the first time and it doesn't work people get mad. This year our code is basically our code for our robot last year, so it really didn't advance as that much. Our autonomous is the only really new thing this year.

RoBoTiCxLiNk 14-03-2011 01:19

Re: Programming teams
 
Quote:

Originally Posted by kgzak (Post 1039064)
Exactly. What our team does is program something that should work and when we run it on the robot the first time and it doesn't work people get mad. This year our code is basically our code for our robot last year, so it really didn't advance as that much. Our autonomous is the only really new thing this year.

Yea, i managed to get the robot working within a few hours of getting to our first regional. and that hour was spent updating netbeans to work with the updated cRIO that was updated literally probably the night before it left. What i was happy about this year was that we managed to salvage last years chassis and built an electronics board that could be taken on and off and used on either chassis, new or old. problems were that, while programs worked on one, no two robots are exactly alike.

EHaskins 14-03-2011 01:23

Re: Programming teams
 
We have one student who is also respnsible for all electrical and control system issues. I'm there as a mentor, but he knows what he's doing.

kgzak 14-03-2011 01:24

Re: Programming teams
 
Quote:

Originally Posted by RoBoTiCxLiNk (Post 1039075)
Yea, i managed to get the robot working within a few hours of getting to our first regional. and that hour was spent updating netbeans to work with the updated cRIO that was updated literally probably the night before it left. What i was happy about this year was that we managed to salvage last years chassis and built an electronics board that could be taken on and off and used on either chassis, new or old. problems were that, while programs worked on one, no two robots are exactly alike.

Yeah, we attempted the same thing. we actually have 2 cRIOs but once the code goes on the other robot it still needs tweaking.

Jeremy Germita 14-03-2011 01:28

Re: Programming teams
 
We have 8 people on the subteam who CAN program.
4(Myself included) people who DO program.
These four usually do the control system stuff, also.
We have one mentor helping us in programming, one mentor keeping us focused :P.

For collaboration and version control, we use Subversion and Google Code(http://code.google.com/p/frc399-2011-code-james-bot/)

One thing that really annoyed me this build season is the delay in the robot completion. We give the manufacturing team 4 weeks to build it. They give it to us 3 days before ship. As soon as we plug in, they start bugging us. "Did you get it working yet??!?"
</rant>

RoBoTiCxLiNk 14-03-2011 01:29

Re: Programming teams
 
Quote:

Originally Posted by kgzak (Post 1039079)
Yeah, we attempted the same thing. we actually have 2 cRIOs but once the code goes on the other robot it still needs tweaking.

Oh 2 cRIOs? lucky :p we just had to move the electronics board back and forth the few times i got to test the real robot out.

RoBoTiCxLiNk 14-03-2011 01:35

Re: Programming teams
 
Quote:

Originally Posted by jeremypg399 (Post 1039086)
We have 8 people on the subteam who CAN program.
4(Myself included) people who DO program.
These four usually do the control system stuff, also.
We have one mentor helping us in programming, one mentor keeping us focused :P.

For collaboration and version control, we use Subversion and Google Code(http://code.google.com/p/frc399-2011-code-james-bot/)

One thing that really annoyed me this build season is the delay in the robot completion. We give the manufacturing team 4 weeks to build it. They give it to us 3 days before ship. As soon as we plug in, they start bugging us. "Did you get it working yet??!?"
</rant>

I probably shouldn't keep responding to people's posts but this has happened to me both years i've programmed. Last year was worse though, for breakaway, we literally finished building the robot AT the regional. And our programming team can't make demands such as robot completion dates, 1 person vs. an entire team of builders doesnt go over to well. I'm content with occasionally using the robots chassis for motor testing and et cetera, but the other 99% of the time I'm just experimenting with sensor algorithms and new driver stations and systems. If i had the robot 2 weeks prior to ship i could have a flawless auton. but the bot would be less than flawless so i let them take care of that. And its always the same nagging with getting it to work as soon as theyre done, dont you love it :)

DiscoKittyPrime 14-03-2011 02:43

Re: Programming teams
 
We have two people on programming this year with one mentor. Last year we didn't have a mentor and it was my first year being the main programmer and we didn't get the robot to program until the friday of our first regional about two hours before our first match. We had the ability to test the code once after downloading it before it made it to the field which is why they had to drive the robot backwards the first match. We didn't get all the functionality finished until near the end of the regional because there was always something to be fixed on the robot.

This year went a little better. We essentially kidnapped last year's chassis and hoarded it for us to get programming work done and tested for the chassis along with the chassis allowed us to add more sensors. Some of the mentors were pushing to put our cRio on the robot two weeks before the end of build purely to have it on there and we pretty much had to stand our ground and hide away the cRio. When we got to competition, they realized how much better off we were as far as programming is concerned this year compared to last year because we had the base to program. Next year, we are keeping the entire robot together and using both the chassis from breakaway and the entire bot from this year for the programming team.

As far as code sharing, we only have a team laptop and the laptop of the programming mentor. We would work on code on the team laptop and then when we got that particular thing working, we would copy it over by emailing the text file and adding what was new into the actual program for the robot which was kept on the mentor's laptop and shared on a google docs that is owned by myself.

RoBoTiCxLiNk 14-03-2011 03:28

Re: Programming teams
 
If posting in a forum is too daunting for people, I set up a small little survey people can fill out about their programming team... You know, if they want to...

EDIT: forgot the link: https://spreadsheets0.google.com/emb...xxOFM0Y nc6MQ

notmattlythgoe 14-03-2011 07:41

Re: Programming teams
 
We usually have 4 programmers on the subteam and 2 mentors. If your team has the funds to spare to get a second cRio I highly suggest it. Not only can you continue to program while the mechanical teams are working, but after the robot ships you still have something to work with.

Egg 3141592654 14-03-2011 08:28

Re: Programming teams
 
One of these threads...

Our team is always short programmers.For the first time in over 4 years, we had another programmer besides myself on the team that co-programmed the robot with me. Granted we always have 4 programmers beginning every year, the other three usually give up after the third day and switch to assembly.

cybiko123 14-03-2011 09:15

Re: Programming teams
 
We have three programmers and a couple mentors, but the mentors are usually busy with other subteams. We're using SVN for version control.

Robby Unruh 14-03-2011 09:45

Re: Programming teams
 
I'm the only one, but we do have an underclassman "in training". :D

Owen Meaker 14-03-2011 10:33

Re: Programming teams
 
Currently I am the only programmer for the past two years (we were a rookie team last year). However, after the competition I will train a junior before I graduate so our team isn't at a disadvantage next year. After a flash drive problem a week ago, I have switched the code to a dropbox folder, which should provide collaboration for the future.

I have typically had around a week to program the robot before ship date, so I can get most of the code working, and tweak it before competition. But as I like to say, Thursday is first day of competition AKA last build day AKA first day programmers have time with the robot.

plnyyanks 14-03-2011 15:36

Re: Programming teams
 
We have two programmers and one mentor who doesn't show up as much as he used to. Needless to say, we're relatively self sufficient. Thankfully, we both know what we're doing and don't need too much guidance. For collaboration, we usually just use a flash drive/email.

MathFreak 14-03-2011 15:52

Re: Programming teams
 
We have 2 Programmers (a grade 11 guy and me) and 1 coolest mentor.
We usually see in person, but when we need to talk, we chat on Skype or email.

kenavt 14-03-2011 16:03

Re: Programming teams
 
On Team 2337, we have three people who know programming. There is the main programmer, our pneumatics expert who primarily does programming but not as much as the first guy, and myself, who is basically in-training. (3)

There is another person who primarily does the electrical systems, but the three of us chip in when necessary because two of us started with electrical systems, and then moved on to programming. When the electrical board has to physically be put together, many people from the mechanical and off-robot sections help. (1+)

For mentors, we have two former team members in college, both of whom do programming and electrical work. They rarely come, however, because they are rarely needed. We used to have a professional mentor, but he had to quit do to job demands. (2)

On our team, we find this is enough to get things done. We could automate more things, or make our autonomous programs more complex, but we are adequate for the moment.

At the moment, we don't have a collaboration system set up, other than passing around files on flash drives. Dropbox has been discussed, but not yet implemented.

demosthenes2k8 14-03-2011 16:11

Re: Programming teams
 
Our team has 10 people with programming knowledge who actually have written something on the robot. We manage our team through the use of Google Code, which, in addition to storing our Mercurial repository, allows us to make Wiki pages with documentation and information, and Issues to keep track of who is assigned which tasks and their status.
We share code using that repository, or simply HG Pull from each other with an ethernet cable.

Chris is me 14-03-2011 16:39

Re: Programming teams
 
Quote:

Originally Posted by RoBoTiCxLiNk (Post 1039091)
I probably shouldn't keep responding to people's posts but this has happened to me both years i've programmed. Last year was worse though, for breakaway, we literally finished building the robot AT the regional. And our programming team can't make demands such as robot completion dates, 1 person vs. an entire team of builders doesnt go over to well. I'm content with occasionally using the robots chassis for motor testing and et cetera, but the other 99% of the time I'm just experimenting with sensor algorithms and new driver stations and systems. If i had the robot 2 weeks prior to ship i could have a flawless auton. but the bot would be less than flawless so i let them take care of that. And its always the same nagging with getting it to work as soon as theyre done, dont you love it :)

On behalf of that mechanical part of the team - we're sorry. I used to be a programmer in competition, and it sucks getting the robot with 6 hours, or less, to code it.

One solution I've seen done before is a virtual robot model, but I have no idea how that works. Could someone explain that to me?

Alex.Norton 14-03-2011 18:42

Re: Programming teams
 
Quote:

Originally Posted by Chris is me (Post 1039466)
One solution I've seen done before is a virtual robot model, but I have no idea how that works. Could someone explain that to me?

The entire idea is to create a piece of software that pretends to be the robot and will hopefully respond correctly when the robot controls are activated. The problems that you run into doing this on a first bot is that an accurate physics model is needed for a lot of the debugging. I'm not completely sure, but I think labview has something that can do this type of accurate physics modelling.

For example if you wanted to program a closed loop control of an arm, one would need a full model of the arm, the gearbox with accurate efficiency losses and a very accurate model of how the motor responds to different voltages and currents.

If you want an analogous example, I use a virtual machine to do all of my programming. This is a piece of software that runs another operating system inside of mine, and this second operating system has no idea that it isn't running on real hardware. Same basic idea since the robot code should have no idea that it isn't running on a real robot since the virtual one should ideally respond identically. The virtual machine that I do my coding in has the advantage that all network and graphics drivers are automatically supported and I don't have to worry about browsing the net since there is no way to harm the base operating system. Similarly with the robot, you can't hurt the robot while your doing your basic testing. It is much safer to watch a virtual robot run into the wall instead of the actual robot (after all, electrons do so much less damage when they hit things ;) )

Kyoshirin 14-03-2011 19:45

Re: Programming teams
 
We have One main programmer, two people who can program but not as adeptly (myself included), and two underclassmen that are learning it at the moment. And zero programmer mentors.
Normally we build the program as we put parts on the robot, so we can test the program as we go. Unfortunately, that always leaves us no time to make and/or test autonomous.

MagiChau 14-03-2011 19:58

Re: Programming teams
 
We have 6 programmers including myself that also have some expertise in electrical. We have a mentor able to guide us along especially when we have no idea what we are doing.

davidthefat 14-03-2011 20:02

Re: Programming teams
 
1 person with 8 years of programming experience, another with 6 years(me), and I am not sure about the third one, but he is one brilliant fellow. There are the other stragglers that really never did anything at all.

I will be training up 3 freshmen, we will actually have female programmers next year :o.

MagiChau 14-03-2011 20:08

Re: Programming teams
 
Quote:

Originally Posted by davidthefat (Post 1039619)
1 person with 8 years of programming experience, another with 6 years(me), and I am not sure about the third one, but he is one brilliant fellow. There are the other stragglers that really never did anything at all.

I will be training up 3 freshmen, we will actually have female programmers next year :o.

You are going to teach them all to abuse if then statements like proper programmers should right? :)

davidthefat 14-03-2011 20:15

Re: Programming teams
 
Quote:

Originally Posted by MagiChau (Post 1039622)
You are going to teach them all to abuse if then statements like proper programmers should right? :)

Actually, I am almost scared of if statements with more than 3 if then statements. :rolleyes: I try to keep them at 2 or under. Or, in fact, even eliminate them. Well personally I think that comes with experience. Or it might just be my strange personality. I try to find that one equation that can do a whole bunch of if then statements can do. That is why I had so many feuds with the other programmer; he tries to code high level and I try to code the lowest level I can.

I think programming styles differ from one person to another. I was a if then statement spammer in my earlier years; but I just changed somehow. But I always stay away from recursive functions or anything like that. My mind functions more efficiently with equations rather than whatever you call recursive functions.

edit: This is what I mean; my drive code:
Code:

if(y <= pow(x, 2)/3 + 0.2 && y >= pow(x, 2)/-3 - 0.2)//pow is x^2 It is the dead zone for zero point turning. We can live with the else statement.
{
pwm1 = x * 127 + 128;
pwm2 = x * 127 + 128;
}
else
{
pwm1 = (pow(y, 3) * 127 + 128) + (pow(x, 3) * 70);//x^3
pwm2 = (pow(y, 3) * 127 + 128) - (pow(x, 3) * 70);
}
regulate();//Just makes sure it does not go out of range


Anupam Goli 14-03-2011 22:14

Re: Programming teams
 
Our team has 2 programmers (me and one other person), and I am also the electronics person (wired the robot myself). No mentors. We also have 1 other person who is not a programmer, but is very good at math who usually derives the math equations, and we write them into algorithms. (we have a ridiculous double jointed arm that would extend the 84" perimeter, so we had to derive an equation that took two angles and constantly checked if the position of the arm was out of bounds).

I'll train a junior next year before I leave, but I sort of feel proud that i did the wiring and half the programming myself. I had no documentation other than standard FRC documentation and the previous year leader left almost nothing to go off other than the completed robot (with no sensors or anything other than a compressor and 4 pwm jags) and half-working code.

taichichuan 15-03-2011 00:39

Re: Programming teams
 
Our team has 2 mentors and 8-10 students. We use SVN and google groups for collaboration. We've been pretty lucky this year with some good code written by the students and the opportunity to test major subsystems before the robot shipped. Still lots of code that needs to be tested before the New Orleans Regional, but at least there is code for most of the systems that has sort of been tested.

We write in C++. Unfortunately, most of our students had little or no experience in writing code when we started the pre-season. We spent the first several months of the school year teaching them coding concepts, variable types, control structures and giving them test problems that could be run on their PCs. We also went through all of the control systems, sensors types and how they interact. It was a lot of work, but most of the students stepped up to the plate.

Fortunately, only a couple of the students are seniors. So, with any luck, we'll get several of them back for next season.

Businessman41 15-03-2011 01:00

Re: Programming teams
 
Our team has three members in the computer/electronics squad. I am the only one who has consistently come, and therefore am the only one who knows how everything works as a whole. Therefore, I do all the programming and the other two watch and provide insite and point out mistakes I miss.


All times are GMT -5. The time now is 04:09.

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