Go to Post You people are weird... Now if you'll excuse me, I have some code to debug and I need to figure out where to get tank tracks. - sciguy125 [more]
Home
Go Back   Chief Delphi > Technical > Programming
CD-Media   CD-Spy  
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 04-27-2010, 11:44 AM
gvarndell's Avatar
gvarndell gvarndell is offline
Software Engineer
AKA: Addi's and Georgie's Dad
FRC #1629 (GaCo)
Team Role: Parent
 
Join Date: Jan 2009
Rookie Year: 2008
Location: Grantsville, Maryland
Posts: 350
gvarndell has a reputation beyond reputegvarndell has a reputation beyond reputegvarndell has a reputation beyond reputegvarndell has a reputation beyond reputegvarndell has a reputation beyond reputegvarndell has a reputation beyond reputegvarndell has a reputation beyond reputegvarndell has a reputation beyond reputegvarndell has a reputation beyond reputegvarndell has a reputation beyond reputegvarndell has a reputation beyond repute
Re: Statistics on top 20 teams?

Quote:
Originally Posted by slavik262 View Post
You didn't account for the rest of my post. As I said, depending on what you do with those threads affects performance. Obviously you'd want a separate thread if you're blocking for some input. Besides, that wasn't the overall point of my post.
Fair enough.
Just didn't want any misconceptions about multi-tasking clouding the thinking of the young 'uns.
__________________
Robots never, ever, ever, ever break -- The Robot Repairman (Backyardigans)
  #2   Spotlight this post!  
Unread 04-27-2010, 02:47 PM
Ether's Avatar
Ether Ether is offline
systems engineer (retired)
no team
 
Join Date: Nov 2009
Rookie Year: 1969
Location: US
Posts: 7,997
Ether has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond reputeEther has a reputation beyond repute
Re: Statistics on top 20 teams?

Quote:
Originally Posted by slavik262 View Post
We had a huge bug with the watchdog tripping this year because our extra threads were hogging too much CPU time.
Would you please elaborate on this? What exactly was the bug?


Quote:
Originally Posted by slavik262 View Post
you can play around with task priority or cause your tasks to sleep when they're not needed to make up for it in performance (i.e. have a task that updates your PWM outputs sleep the length of the Victor/Jaguar update speed).
Can you give a couple of examples of 2010 FRC breakaway functionality which would require (or even benefit from) changing task priority?

In the 2010 FRC LabVIEW framework, all user-created periodic tasks have the same priority, and they are preemptively time-slice multitasked by the O/S. Running these periodic tasks at a reasonable rate, as you suggested, frees up the CPU so that it should have enough throughput to service all the tasks you need, no?

~
  #3   Spotlight this post!  
Unread 04-27-2010, 02:37 PM
Joe Ross's Avatar Unsung FIRST Hero
Joe Ross Joe Ross is offline
Registered User
FRC #0330 (Beachbots)
Team Role: Engineer
 
Join Date: Jun 2001
Rookie Year: 1997
Location: Los Angeles, CA
Posts: 8,547
Joe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond reputeJoe Ross has a reputation beyond repute
Re: Statistics on top 20 teams?

We used LabVIEW. We did most of the work in telop this year, as we didn't have any control loops. Last year, we mostly used telop to set set-points and ran the control loops in periodic tasks (separate thread).

Our autonomous was structured into discrete VIs that had their own while loop in each one running from autonomous independent. We could then string these VIs together very much like lego programming. For example, we had a drive until ball detected, followed by a kick, followed by drive until ball detected in parallel with wait for 2 second kick retract. It was very easy to move those around as needed.

We had no problems with WPILib. We used Jaguars for most things with PWM control. Programming computers were team supplied.

The only sensor we used in competition was an analog current sensor on our ball herder to detect when a ball was captured. We played with the vision system and had it tracking at home, but didn't have a chance to integrate it into the rest of our code. We used the tracking part without modification, but changed the auto-aiming to fit the rest of the structure of our code.

We had 4 wheel, 4 CIM motor drive, with two pneumatic tires and 2 omni-wheels. Frame was aluminum tube, welded. Almost all fabrication was manual. Kicker was completely pneumatic using a pre-charged cylinder. We did hang, from the top bar There are no wenches on our team or robot (no winches either). We used a lead screw powered by a CIM to hang. We had a single powered roller on top, and an un-powered roller on the bottom that the ball spun against.

We did a custom LabVIEW dashboard, but we only used a little for debugging, and not really in a match. We only used the kit joysticks. After having problems with the provided hub during build season, we bought our own USB hub. We did not use the cypress.

Most of the problems that I helped other teams with were with loose wires, so make sure everything is tight, and that you periodically check your wires, especially in a high impact game like breakaway.
  #4   Spotlight this post!  
Unread 04-27-2010, 06:08 PM
apalrd's Avatar
apalrd apalrd is offline
More Torque!
AKA: Andrew Palardy (Most people call me Palardy)
VRC #3333
Team Role: College Student
 
Join Date: Mar 2009
Rookie Year: 2009
Location: Auburn Hills, MI
Posts: 1,347
apalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond reputeapalrd has a reputation beyond repute
Re: Statistics on top 20 teams?

Quote:
Originally Posted by Joe Ross View Post
Our autonomous was structured into discrete VIs that had their own while loop in each one running from autonomous independent. We could then string these VIs together very much like lego programming. For example, we had a drive until ball detected, followed by a kick, followed by drive until ball detected in parallel with wait for 2 second kick retract. It was very easy to move those around as needed.
I wrote a system almost identical to this, motivated by how easily the LEGO kids I mentor can write code. I had VI's to do control on speed for distance, kick, set kick recoil distance, and a few others that I rarely used. The distance control did P control on Speed (in feet/seconds).

We have a policy of integrating sensors into our design. We try to automate the more direct robot control functions to allow the driver and operator to focus on driving, which generally means the fewest button presses necessary to perform a task. We generally don't do much based on time, but some functions have (e.g. a double-action claw in 2007 would trigger the upper claw 10ms after the lower one, and the roller on this robot would kill the roller after 5 iterations after collection and reset after 20 iterations).
__________________
Kettering University - Computer Engineering
Kettering Motorsports
Williams International - Commercial Engines - Controls and Accessories
FRC 33 - The Killer Bees - 2009-2012 Student, 2013-2014 Advisor
VEX IQ 3333 - The Bumble Bees - 2014+ Mentor

"Sometimes, the elegant implementation is a function. Not a method. Not a class. Not a framework. Just a function." ~ John Carmack
  #5   Spotlight this post!  
Unread 04-27-2010, 03:18 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,182
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: Statistics on top 20 teams?

Programming

What language did they use?
C++

Threaded code or just poll in the teleop loop?
We just did everything sequentially in the TeleopPeriodic calls from WPILib.

Did they do something in autonomous? If so, what worked?
Our auto mode was set up so you could select a "main" and secondary function. Main functions included :
- Far Zone, Kick 3, With Bounce
- Far Zone, Kick 3, No Bounce
- Mid Zone, Kick 2, Straight on'
- Mid Zone, Kick 2, From Angle
- Near Zone, Wait and plow
- Do Nothing

Secondary Functions Included:
- Cross Bump and kick (5 ball mode)
- Cross Bump and wait
- Cross 2 bumps
- Block the tunnel
- Back up and drive to center of field (to steal opponents missed shots)
- Do Nothing

The secondary functions were smart enough to know what to do based on the first function... so 'Block the tunnel' worked from the far zone and the middle zone without having to explicitly tell it to. Everything worked. We kicked 5 balls in auto many times and made 3 from the far zone a few times.

What problems did you encounter, if any, with WPILib?
None. It seemed solid.

Did you download the sources and rebuild WPILib/CanJaguarLib?
No.

CAN or PWM control?
PWM. We only used IFI Victor speed controllers.

Did you use the Classmate for programming your robot or student/school supplied computers?
We did not use the classmate for development.


Robot Design

What sensors were used?
- Encoder on drive for distance measurement/control
- Yaw gyro for angular control and "drive straight" correction
- Pitch gyro for controlling the autonomous bump traversal
- Encoder on kicker to control winch for multi-distance kicks
- Encoder on ball grabber to sense when we had control of a ball
- Multiple limit switches on hanging arm used for controlling deployment and automatically starting/stopping the hanging

Did you use the vision system?
No.

What drive system?
8 wheel drive. 4" cantilevered wheels. 2 speed (w/ neutral) + power take off drive gearbox

How many motors?
4 CIM to drive. These were also used to hang and self right (which was never used)
1 CIM for kicker winch
1 FP + clutch for ball grabber

What material was used for the frame (Aluminum, steel, unobtanium)?

6061 Alum

How did they control the ball?
Pincher roller with high torque clutch on top roller.

Energy storage for kicker (elastic, pneumatic, motor driven, etc.)?
Trampoline springs. Winch driven by CIM with ratchet and pawl. Dog gear + piston release.

How did you cut your parts (water jet, LASER, mill, hand tools,etc.)?
Most plates initially cut on water jet, finished on CNC mill. CNC mill used for most everything else.

Did you hang? If so, what wenching approach did you use?
Vertical bar. Used power take off from drive for lift with ratchet+pawl to keep suspension.


The Driver Station

Did you reprogram your dashboard code?
Yes. We just added a bunch of indicators to push out sensor values for quick debugging. We used the legacy driver station console lines to print out info about and select our auto mode.

Did you use external controls beyond your joysticks?
We used analog joysticks for the driver and 100% custom controls for the operator. Everything ran through the cypress board.

Any problems in getting the USB to behave?
Sometimes the cypress board would not be recognized by the DS software and we would have to restart the computer or restart the CyProgMini (or whatever) windows service to get it to work.

Also, after a restart the cypress board would lose its configuration data. If we did not start the robot AFTER the driver station was up and running, the correct I/O configuration (which was set from the robot) would not get pushed to the board, and everything would default to a floating input. This one was particularly tricky to figure out.

Did you use any unusual controls like WiiMotes, XBox controllers, etc.?
No.

Did you feel that the Classmate was fast enough?
Not at all. Boot up times were terrible. We wasted so much time waiting for things to boot and sync.
  #6   Spotlight this post!  
Unread 04-28-2010, 08:29 PM
RobertG RobertG is offline
Registered User
FRC #0294
Team Role: Alumni
 
Join Date: Jan 2009
Rookie Year: 2007
Location: United States
Posts: 15
RobertG will become famous soon enough
Re: Statistics on top 20 teams?

Programming:
  • Language: C++
  • Threaded code or just poll in the teleop loop: We had most of our code in a loop with the exception of the PID controllers
  • Did they do something in autonomous?: We had nine autonomous modes. Our autonomous code essentially would kick everything in its path until it reached a certain distance. We also could drive over the bump and wait a few seconds for the air tanks to pressurize. At the championship we usually kicked three from the far zone and went over the bump.
  • What problems did you encounter, if any, with WPILib?: We encountered a few problems with the vision code.
  • Did you download the sources and rebuild WPILib/CanJaguarLib?: We made a few modifications to WPILib.
  • CAN or PWM control?: CAN. This allowed us to sense the increase in current from the pincher motor when we had the ball.
  • Did you use the Classmate for programming your robot or student/school supplied computers?: Team supplied computers.

Robot Design:
  • What sensors were used?: Encoders on the kicker gearbox and drivetrain, VEX Limit Switches to calibrate the kicker gearbox encoder, and current sensors in the CAN Jaguars
  • Did you use the vision system?: Yes. We mounted the camera below the bumpers so our drivers and coach could see the balls.
  • What drive system?: 6 wheel tank
  • Wheels?: 7 inch tractrion
  • How many motors?: 4 cims for the drive train, 1 cim for the pincher, 2 Fisher Prices for the kicker
  • What material was used for the frame (Aluminum, steel, unobtanium)?: Aluminum
  • How did they control the ball?: A pincher with rubber splicing tape
  • Energy storage for kicker (elastic, pneumatic, motor driven, etc.)?: Rubber sheeting
  • Did you hang?: No

The Driver Station
  • Did you reprogram your dashboard code?: We used a custom dashboard for a fast (30fps) video feed. I believe we found it on Chief Delphi.
  • Did you use external controls beyond your joysticks?: No
  • Any problems in getting the USB to behave?: No, except once during the finals on Newton when it refused to recognize the stop button.
  • Did you use any unusual controls like WiiMotes, XBox controllers, etc.?: No, although we did use a heads up display to signal ball possesion and whether our kicker was ready to fire.
  • Did you feel that the Classmate was fast enough?: I did not notice any delays during robot operation.

Any techniques that you feel might be beneficial to others in the future?: Secure the CAN bus cables. During one match a stray wire or hose depressed a tap allowing the cable to come out. Also, during the Newton finals we had watchdog errors most likely because a CAN bus cable (still secured by its tab) had come out slightly.

Quote:
I'm just looking to try to collect a "lessons learned" from this year's competition. I'll collate the results and post them back to CD.
I am not sure what lessons we could learn from just this data. I suggest collecting data from as many teams as possible so you can attempt to control for variables or at least have results to compare the top 20 teams with.

Last edited by RobertG : 04-28-2010 at 08:32 PM.
  #7   Spotlight this post!  
Unread 04-29-2010, 03:46 AM
taichichuan's Avatar
taichichuan taichichuan is offline
Software Mentor
AKA: Mike Anderson
FRC #0116 (Epsilon Delta)
Team Role: Mentor
 
Join Date: Feb 2010
Rookie Year: 2010
Location: Herndon, VA
Posts: 328
taichichuan has much to be proud oftaichichuan has much to be proud oftaichichuan has much to be proud oftaichichuan has much to be proud oftaichichuan has much to be proud oftaichichuan has much to be proud oftaichichuan has much to be proud oftaichichuan has much to be proud oftaichichuan has much to be proud oftaichichuan has much to be proud of
Send a message via AIM to taichichuan
Re: Statistics on top 20 teams?

Well, I'm looking for trends. What do many of these teams have in common? Essentially, if there are common characteristics for these top teams, then this is something that others might like to know to improve for future competitions.

For instance, I was not aware of the whole mechanum wheel thing. Seeing that only 1-2 teams have ever made it to the finals with mechanum wheels should give a robot design team some cause for pause. It's not that a superior design won't prevail, but perhaps starting out with mechanum may not be a good idea when facing a challenge like Breakaway.

We've been getting some great responses so far. I'm on the road at the moment. So, when I get back home, I'll start collating the data and get some preliminary information back to the group. Thanks and keep the data coming!

Mike
  #8   Spotlight this post!  
Unread 04-29-2010, 07:28 AM
sgreco's Avatar
sgreco sgreco is offline
Registered User
AKA: Steven Greco
FRC #2079
Team Role: Mechanical
 
Join Date: Jan 2008
Rookie Year: 2007
Location: Millis
Posts: 1,031
sgreco has a reputation beyond reputesgreco has a reputation beyond reputesgreco has a reputation beyond reputesgreco has a reputation beyond reputesgreco has a reputation beyond reputesgreco has a reputation beyond reputesgreco has a reputation beyond reputesgreco has a reputation beyond reputesgreco has a reputation beyond reputesgreco has a reputation beyond reputesgreco has a reputation beyond repute
Re: Statistics on top 20 teams?

Here are the drivetrain trends. I see a trend for skid steers. I left blank information that I either didn't know or couldn't find.

2010
67 – 8 WD long
177 – 8 WD long (articulated is sets of two, front and back)
294 - 6WD long

2009
67 - 6WD wide
111 - 4 wheel crab (non-coaxial), wide
971 - 6WD wide

2008
1114 - 6WD long
217 - 6WD long
148 - three-wheeled crab (coaxial), nonagon-shaped robot

2007
177 - 6WD long
987 - 6WD long
190 - 6WD long

2006
217 - 6WD long
522 - Treads, long
296 - 2WD long, Omnis in front

2005
67 - three-wheeled crab (non-coaxial). Flop bot.
330 - 6WD long
503 – 4WD long, omniwheels in rear


2004
71 - 4WD long
494 - 4WD long
435 - 2WD long, with casters in front

2003
111 - Four-wheeled non-coaxial crab (with dropdown skid for turning)
469 – 4WD Long
65 - 4WD Wide

2002
71 - 4WD flop bot with casters in front
173 - 4WD long
66 – 4WD long

2001
71 - ?
294 - ?
125 - ?
365 - ?
279 - ?

2000
255 - ?
232 - ?
25 - ?

1999
176 - 4WD long w/ Omnis in front
1 - tank treads, long
48 – 4WD, long

1998
45 – 4WD long with Omnis in front.

1997
71 - ?

1996
73 - ?

1995
100 - ?

1994
144 - ?

1993
148 - ?

1992
126 - ?

(I just compiled the information from this thread http://www.chiefdelphi.com/forums/sh...ad.php?t=77412)

Last edited by sgreco : 04-29-2010 at 02:52 PM.
  #9   Spotlight this post!  
Unread 04-30-2010, 10:00 PM
akeisic's Avatar
akeisic akeisic is offline
Systems and Strategy Mentor
AKA: Andrew Keisic
FRC #4201 (The Vitruvian Bots)
Team Role: Leadership
 
Join Date: Jan 2007
Rookie Year: 1999
Location: Redondo Beach, CA
Posts: 82
akeisic is a name known to allakeisic is a name known to allakeisic is a name known to allakeisic is a name known to allakeisic is a name known to allakeisic is a name known to all
Re: Statistics on top 20 teams?

2001
71 - ?
294 - 4WD-long. And still functioning today! :-D
125 - ?
365 - ?
279 - ?
__________________
Mentor: FRC 4201 - The Vitruvian Bots

Awards with FRC 294 - Beach Cities Robotics
2014: LA FRC Champions
2012: LA FRC Finalists
2011: San Diego FRC Finalists
2010: San Diego FTC Finalists, San Diego FRC Champions, LA FRC Finalist, FRC World Champions
2009: LA FRC Finalist
2008: San Diego FRC Champions, LA FRC Finalist, LA FTC Champions, LA VCR Champions,
2007: San Diego FRC Finalist, San Diego FTC Champions, FTC World Champions
  #10   Spotlight this post!  
Unread 04-30-2010, 10:27 PM
akeisic's Avatar
akeisic akeisic is offline
Systems and Strategy Mentor
AKA: Andrew Keisic
FRC #4201 (The Vitruvian Bots)
Team Role: Leadership
 
Join Date: Jan 2007
Rookie Year: 1999
Location: Redondo Beach, CA
Posts: 82
akeisic is a name known to allakeisic is a name known to allakeisic is a name known to allakeisic is a name known to allakeisic is a name known to allakeisic is a name known to all
Re: Statistics on top 20 teams?

Programming:
What language did they use?
C++

Did they do something in autonomous? If so, what worked?
1: Start far, kick 3 (no bounce)
2: Start far, kick 3 (with bounce)
3: Start far, kick 3 (no bounce), go over bump
4: Start far, kick 3 (with bounce), go over bump
5: Start mid, kick 2
6: Start mid, kick 2, back up, turn toward center
7: Start near, kick 1
8: Start near, plow into net
9: Start near, kick 1, back up, pause 5 sec, move forward, kick anything in path

In all modes we used current sensing to detect the ball and set the maximum distance. This was enormously helpful as we could easily adjust the starting position of the robot and distance from the ball without having to worry. We used mode 1 and 3 the most.

CAN or PWM control?
CAN. We had some trouble with the tan jaguars losing their identity, but fixed those with a patch. It definitely cleans up wiring, but you MUST ensure the wires are secure. If you lose 1, you lose them all! This is why we didn't move in the 2nd match of Newton finals. We're talking about using PWM for drive and CAN for auxiliary for next year.

Did you use the Classmate for programming your robot or student/school supplied computers?
The team recently purchased a dedicated programming laptop.

Robot Design:
What sensors were used?
Jaguar current sensing for the intake roller, encoders on left and right drive train, encoder for kicker winch system, 2 limit switches for kicker zero and kicker max.

Did you use the vision system?
Yes! - but not the way you would think. We mounted our camera below our bumper so we could see behind those pesky bumps. It was especially helpful in the far end of the field. It also helped us see directly below the drivers station.

What drive system?
6WD with a 0.100" lowered center wheel. The center wheel was driven directly and the front/back by a single loop of chain.

Wheels?
7" traction wheels - Thank you Northrop Grumman!

How many motors?
Drive: 4 CIMs
Intake: 1 CIM
Kicker winch: 2 FP
Pneumatics: 2 for 2 speed transmission, 1 for ratchet release

What material was used for the frame (Aluminum, steel, unobtanium)?
Welded aluminum. Mostly 1/16" wall, but 1/8" where we needed it.

How did they control the ball?
Pincher design with friction clutch and center back stop. We pulled balls away from many teams - including 1114 and 1902.

Energy storage for kicker (elastic, pneumatic, motor driven, etc.)?
flat elastic pulled back by winch and released by ratchet.

How did you cut your parts (water jet, LASER, mill, hand tools,etc.)?
Hand, band saw, mill, lathe, water jet, CNC mill

Did you hang?
No.

The Driver Station
Did you reprogram your dashboard code?
Not to my knowledge.

Did you use external controls beyond your joysticks?
We had a heads up LED display, but no external controls

Anything else?
Any techniques that you feel might be beneficial to others in the future?
Ensure you have a battery load tester. While we tested our batteries in the lab (plotting the full drain of the battery), having a battery load tester in the pits is crucial. We disposed of 3 batteries after the championship because they were beyond their life! We couldn't climb over the bump during the finals in LA because of bad batteries.
__________________
Mentor: FRC 4201 - The Vitruvian Bots

Awards with FRC 294 - Beach Cities Robotics
2014: LA FRC Champions
2012: LA FRC Finalists
2011: San Diego FRC Finalists
2010: San Diego FTC Finalists, San Diego FRC Champions, LA FRC Finalist, FRC World Champions
2009: LA FRC Finalist
2008: San Diego FRC Champions, LA FRC Finalist, LA FTC Champions, LA VCR Champions,
2007: San Diego FRC Finalist, San Diego FTC Champions, FTC World Champions
  #11   Spotlight this post!  
Unread 05-01-2010, 12:57 AM
jspatz1's Avatar
jspatz1 jspatz1 is offline
Registered User
AKA: Jeff
FRC #1986 (Team Titanium)
Team Role: Mentor
 
Join Date: Jan 2008
Rookie Year: 2007
Location: Lee's Summit, MO
Posts: 831
jspatz1 has a reputation beyond reputejspatz1 has a reputation beyond reputejspatz1 has a reputation beyond reputejspatz1 has a reputation beyond reputejspatz1 has a reputation beyond reputejspatz1 has a reputation beyond reputejspatz1 has a reputation beyond reputejspatz1 has a reputation beyond reputejspatz1 has a reputation beyond reputejspatz1 has a reputation beyond reputejspatz1 has a reputation beyond repute
Send a message via AIM to jspatz1
Re: Statistics on top 20 teams?

1986: Curie #3 seed and finalist

Programming:
What language did they use?

Labview
Threaded code or just poll in the teleop loop?
huh?
Did they do something in autonomous? If so, what worked?
We could score all balls in any single zone from any position. Same basic program for each zone, just changed aim angle (robot orientation), kick strength, and number of kicks for each position. Our swerve drive allowed us to advance to each ball and maintain proper aim angle. Good success rate. We scored 3 several times.
What problems did you encounter, if any, with WPILib?
None
CAN or PWM control?
PWM
Did you use the Classmate for programming your robot or student/school supplied computers?
Other computers
Robot Design:
What sensors were used?

Potentiometer on kicker pivot to measure drawback
Magnetic encoder (KOP) on swerve steering to give absolute wheel orientation
Horizontal gyro to measure robot orientation
Verticle gyro to measure tilt on bumps and provide input to bump auto-pilot
Magnetic switch on kicker cylinder to sense extend position
Microswitches on ball magnet roller to signal ball possession
Did you use the vision system?
Tried to for autonomous. Gave up on it...too slow. We had momentary vision aiming that the driver could use on demand.
If so, what modifications did you have to make to the code?
I don't know that.
What drive system?
4 wheel crab/swerve, CIM motors within the modules. Wide format.
Wheels?
6" AM Plactions.
How many motors?
4 CIMS - drive, 1 CIM - steering, 1 FP w/ modified gearbox - ball magnet roller
What material was used for the frame (Aluminum, steel, unobtanium)?
3" aluminum C-channel, .875 dia x .055 wall aluminum tubing
How did they control the ball?
Foam pool noodle ball magnet roller, spin the ball against the carpet. Worked well.
Energy storage for kicker (elastic, pneumatic, motor driven, etc.)?
Pneumatic retract with elastic kick. We could release the kicker at any point of drawback which provided infinitely variable kick strength. This proved to be very advantagous.
How did you cut your parts (water jet, LASER, mill, hand tools,etc.)?
Water jet, mill, bandsaw
Did you hang?
No. We chose to keep scoring goals.

The Driver Station
Did you reprogram your dashboard code?

Yes
Did you use external controls beyond your joysticks?
Yes, we duplicated several pushbottun functions that were also on the joystick so either driver could do them. Kicker strength throttle pot. was external from the joystick.
Any problems in getting the USB to behave?
Yes, often. I/O board and sometimes joystick would loose connection.
Did you use any unusual controls like WiiMotes, XBox controllers, etc.?
No. Joystick, pushbuttons, potentiometer. We did have an audible buzzer that signaled ball possession.
Did you feel that the Classmate was fast enough?
No.
Anything else?
Any techniques that you feel might be beneficial to others in the future?

Facing our goals at all times with a crab drive was a big advantage for us.
__________________

Last edited by jspatz1 : 05-01-2010 at 11:36 AM.
  #12   Spotlight this post!  
Unread 05-06-2010, 12:56 PM
taichichuan's Avatar
taichichuan taichichuan is offline
Software Mentor
AKA: Mike Anderson
FRC #0116 (Epsilon Delta)
Team Role: Mentor
 
Join Date: Feb 2010
Rookie Year: 2010
Location: Herndon, VA
Posts: 328
taichichuan has much to be proud oftaichichuan has much to be proud oftaichichuan has much to be proud oftaichichuan has much to be proud oftaichichuan has much to be proud oftaichichuan has much to be proud oftaichichuan has much to be proud oftaichichuan has much to be proud oftaichichuan has much to be proud oftaichichuan has much to be proud of
Send a message via AIM to taichichuan
Summary: Top Team statistics!

Hi Gang!

Preface

OK, thanks to all those folks who responded. I started this thread to see if there were any common characteristics of the teams that experienced a modicum of success in this year's competition. By asking a series of questions (next year I'll try SurveyMonkey instead), I tried to gather some info to determine what might give a team some guidance as to what technologies they should try to come up to speed on. Obviously, there was no control group or attempt to be a rigorous scientific survey. The sample size was way too small for that to be sure. This is because many teams just stop paying attention after the build season comes to a close.

In this effort, I was just trying to get a feel for where folks found success that we all could learn from.

Results

I've collated the responses and here they are:

The language in use was pretty evenly split between C/C++ and Labview with 58% using C/C++. None of the respondents used Java.

Only a couple of teams knew what threads were. The Labview code uses threads internally. But, only 20% of the respondents were using threaded techniques consciously. Given the move to multi-core processors in the embedded industry, knowing what a thread is and how to use it is pretty important. As mentors, we should probably do something about this knowledge gap...

All of the respondents operated in autonomous mode and the majority scored in this mode. Many had multiple "plays" that they could run from different field positions. The majority used closed loop encoders to determine position from a known starting point.

Most of the respondents had little or no trouble with WPILib functionality. However, a couple of teams did rebuild the library and fix minor nits. Nonetheless, many commented on the poor documentation and lack of examples of the WPILib services.

66% of the teams used PWM for motor controls. Of those that used CAN, the biggest concern was losing a CAN cable lost the entire CAN bus from that point forward in the chain. However, the current sensor capability on the CAN-enabled Jaguars was used by several teams for ball detection.

No one used the ClassMate for development. In general, the comments indicated that the ClassMate had issues with lengthy reboot times, USB connectivity problems and an inability to keep up with the data that was being thrown at it. Most development was done on personal laptops or school-provided PCs.

As for sensors, the general trends were for the use of closed-loop control of robot position and speed. Wheel encoders were used by most teams (70%). Only 25% of the respondents used gyros. None reported use of accelerometers. There were limit switches used for the hang feature and broken-beam sensors for detecting the ball. No, IR or SONAR ranging was used.

The respondents were split evenly on the use of the vision subsystem. Of the half that used it, it was not used for continuous video. In fact, it was only used sporadically to confirm target was aligned or to see balls when the robot was out of direct sight of the driver. The half that did not use the vision system sited it as being slow and having too many bugs for reliable use. 1 respondent did try to fix some of the issues.

The favored drive systems seemed to be split between 6WD (33%) and 4WD (33%). There were a couple of 8WD and 1 crab/swerve drive robot.

Remarkably, many teams mixed wheel types on their robot. Plaction and Omni were used in conjunction with each other and with pneumatic. Only one respondent used mechanum. One used slick and one use skyway wheels.

66% of the teams used 4 CIM motors to drive the robot. Window motors and FP motors were used for kickers, vacuums, and the roller/pincher assemblies. One team actually had *9* motors on their bot.

The most common frame material was definitely aluminum with only 8% saying that they used a steel frame. Likely due to its scarcity, unobtanium was not used by any team . Issues of welding aluminum meant that teams using aluminum had to have access to experienced aluminum fab facilities or aluminum welders.

66% of the respondents had access to sophisticated water jet or CNC milling equipment to cut their parts. The rest used a hand mill/lathe or hand tools. All of the teams used small hand tools such as band saws etc for smaller parts.

75% of respondents used some sort of ball roller or pincher to control the ball. 25% used a vacuum of some sort with one using a ducted-fan assembly from RC airplanes. I didn't think about that possibility....

50% used elastic tubing or sheets for their kicker. 30% used springs of some sort and the rest used a pneumatic kicking assembly.

50% of the respondents said that their robot hung during competition. Of those, 33% used worm gear or screw drive and the rest used a winch of some sort.

60% reworked the dashboard code in some way. One completely replaced it commenting on the lack of speed of the default code as an issue. Another rewrote the code to be able to collect performance data for pit analysis.

60% did not use any external controls beyond the joystick. Of those that did use external controls, problems with Windows drivers, hot plug issues and Cypress board going off line problems were commonly reported. Joysticks and Logitech gamepads were the most common control in use. What? No VI gloves? A couple of teams added additional instrumentation to their robots in the form of bright LEDs to inform the drivers that the target was aligned, kicker was in position or a ball was in possession.

As for the ClassMate, then general feeling comments were:
1) It took too long to boot. This made it difficult to prepare for the match, or recover in the case that the Cypress unit failed or the FMS failed.
2) The Windows O/S crashed during matches.
3) The USB drivers for the Cypress board were unreliable. Plugging and unplugging wouldn't fix connectivity issues with the Cypress. So much for plug and play.
4) The KOP USB hub was buggy and many teams replaced it.

Thoughts

Naturally, some of these results may be simple correlation and not have a direct cause/effect relationship. Still it was interesting to look at.

If I had to try to draw any conclusions, I'd say that teams should spend some time coming to grips with closed-loop control systems (e.g., for motor control) and aluminum metal working techniques. Many, but not all, of the respondents had access to sophisticated metal cutting techniques. But, hand tools were the rule of the day in the final assembly. This means that we, as mentors, really need to take the time to show the students how best to use these tools safely and effectively.

As to whether you should spend your time learning C++ or Labview, 60% were using C/C++ and the rest were Labview. None of the respondents were using Java. Considering all of the noise made by the WPI folks over the introduction of a Java version of the WPILib, I'm somewhat surprised. But, maybe it's too early to make that judgment at this point. I'll leave you to draw your own conclusions on the language.

The ClassMate was pretty much reviled. It was too slow, required *forever* to boot and suffered from significant USB driver issues. Maybe it was a Windows thing trying to get too much code on a slow processor. But, the netbook market is pretty vibrant and lots of folks are using them. So, I,m not sure if the speed of the ClassMate, the amount of memory, the O/S, or the FLASH storage was the problem. But, clearly, there's a problem.

The other clear output of this exercise is that FIRST teams are very resourceful and imaginative. I saw some very sophisticated drive mechanisms at the competitions -- many of which actually worked . Whether you go for the complex or the simple, there's just nothing like seeing your team's robot go rolling across the field under your control. And, the teamwork that has to happen to deal with the unexpected is nothing short of inspiring.

Thanks and good luck in the future,

Mike

Last edited by taichichuan : 05-06-2010 at 01:25 PM.
  #13   Spotlight this post!  
Unread 05-06-2010, 01:00 PM
Chris is me's Avatar
Chris is me Chris is me is offline
no bag, vex only, final destination
AKA: Pinecone
FRC #0228 (GUS Robotics); FRC #2170 (Titanium Tomahawks)
Team Role: Mentor
 
Join Date: Dec 2008
Rookie Year: 2006
Location: Glastonbury, CT
Posts: 7,589
Chris is me has a reputation beyond reputeChris is me has a reputation beyond reputeChris is me has a reputation beyond reputeChris is me has a reputation beyond reputeChris is me has a reputation beyond reputeChris is me has a reputation beyond reputeChris is me has a reputation beyond reputeChris is me has a reputation beyond reputeChris is me has a reputation beyond reputeChris is me has a reputation beyond reputeChris is me has a reputation beyond repute
Send a message via AIM to Chris is me
Re: Statistics on top 20 teams?

Interesting results.

For what it's worth, though 2791 isn't a top 20 team, we programmed in Java this year and had no code bugs throughout competition. We even had a consistent (albeit extremely simple) autonomous. I think the Top 20 teams just have mentors and student teams already trained in the old languages.

Do consider though how much of that is simple correlation rather than causation. Some stuff (like sensor-driven autonomous modes being more successful) would probably be correct though.
__________________
Mentor / Drive Coach: 228 (2016-?)
...2016 Waterbury SFs (with 3314, 3719), RIDE #2 Seed / Winners (with 1058, 6153), Carver QFs (with 503, 359, 4607)
Mentor / Consultant Person: 2170 (2017-?)
---
College Mentor: 2791 (2010-2015)
...2015 TVR Motorola Quality, FLR GM Industrial Design
...2014 FLR Motorola Quality / SFs (with 341, 4930)
...2013 BAE Motorola Quality, WPI Regional #1 Seed / Delphi Excellence in Engineering / Finalists (with 20, 3182)
...2012 BAE Imagery / Finalists (with 1519, 885), CT Xerox Creativity / SFs (with 2168, 118)
Student: 1714 (2009) - 2009 Minnesota 10,000 Lakes Regional Winners (with 2826, 2470)
2791 Build Season Photo Gallery - Look here for mechanism photos My Robotics Blog (Updated April 11 2014)
  #14   Spotlight this post!  
Unread 05-06-2010, 01:31 PM
taichichuan's Avatar
taichichuan taichichuan is offline
Software Mentor
AKA: Mike Anderson
FRC #0116 (Epsilon Delta)
Team Role: Mentor
 
Join Date: Feb 2010
Rookie Year: 2010
Location: Herndon, VA
Posts: 328
taichichuan has much to be proud oftaichichuan has much to be proud oftaichichuan has much to be proud oftaichichuan has much to be proud oftaichichuan has much to be proud oftaichichuan has much to be proud oftaichichuan has much to be proud oftaichichuan has much to be proud oftaichichuan has much to be proud oftaichichuan has much to be proud of
Send a message via AIM to taichichuan
Re: Statistics on top 20 teams?

Good point on causality vs correlation. I added a comment to the post to that effect.

As for Java, I suspect that few wanted to be the guinea pigs on Java in the first year out. I know a few teams who did try it successfully. I'll add your team to that list.

In the embedded programming space, many of us look at Java as a great way to generate a GUI, but not as something targeting real-time controls due to memory issues, garbage collection delays, inability to access physical devices directly (e.g., no pointers) etc. That being said, the real-time Java folks have been able to get millisecond accuracy for a significant number of applications. That's likely more than fast enough for anything we're doing with FIRST.

Thanks,

Mike
  #15   Spotlight this post!  
Unread 05-06-2010, 06:35 PM
Jamie Kalb Jamie Kalb is offline
Registered User
no team
 
Join Date: Oct 2009
Rookie Year: 2008
Location: Mountain View, C.A.
Posts: 272
Jamie Kalb is a name known to allJamie Kalb is a name known to allJamie Kalb is a name known to allJamie Kalb is a name known to allJamie Kalb is a name known to allJamie Kalb is a name known to all
Re: Statistics on top 20 teams?

Quote:
Originally Posted by Chris is me View Post
For what it's worth, though 2791 isn't a top 20 team, we programmed in Java this year and had no code bugs throughout competition. We even had a consistent (albeit extremely simple) autonomous.
Same story here on 3129. We had a rookie programmer who had taken a short class in Java before the season, and wanted to continue working with it. He picked it up fast.
__________________
Team 3129 Green MacHHHHine Founder, Captain (2009-10), Alumnus, and Mentor (2011-14)

2011-13 VEX World Championship...
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
its official!!!! Michigan Top 64 teams anounced! list up! roboraven15 District Events 16 03-30-2009 02:22 PM
The top 8 teams will be....(2005) Stephen Kowski General Forum 32 04-12-2005 07:26 PM
[OCCRA]: Top Ranking Teams Picking Alliances Lisa Perez OCCRA Q&A 1 11-15-2004 08:31 PM
The top 8 teams will be....(2004) Jessica Boucher General Forum 20 03-24-2004 10:31 PM
Who are your top ten teams? archiver 1999 1 06-23-2002 10:41 PM


All times are GMT -5. The time now is 03:57 AM.

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


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