View Single Post
  #12   Spotlight this post!  
Unread 21-04-2007, 03:04
Mr. Freeman Mr. Freeman is offline
Put better title here.
AKA: Kellan
no team (CSM Robotics)
Team Role: Programmer
 
Join Date: Jan 2006
Rookie Year: 2005
Location: Colorado
Posts: 198
Mr. Freeman is a splendid one to beholdMr. Freeman is a splendid one to beholdMr. Freeman is a splendid one to beholdMr. Freeman is a splendid one to beholdMr. Freeman is a splendid one to beholdMr. Freeman is a splendid one to beholdMr. Freeman is a splendid one to behold
Re: Engineering Failure Analysis

I think that this has more to do with software issues, but no one on the team is really sure what exactly is going on here. (We managed to fix this, but we don't know why what we did worked.)

The mechanism for releasing our ramps works by pulling a pin out of two holes in two pieces of metal spaced about 1.5 cm apart. This pin holds in place two pieces of string that are attached to our ramps, which are spring loaded. Thus, pin comes out - ramps fall down. The pin is pulled out by means of a servo mounted above the pin. (See the attached image for a better description. Blue is the servo, green is the link from the servo arm to the pin, Black is the pin, red represents the loops of string attached to our ramps)

On practice day, the ramps on our robot started deploying right after the field switched into teleoperated mode. At first, we thought that we didn't properly set the mechanism and that something shifted out of place when we started driving.
However, the ramps did the same thing in our next match. We double checked to make sure that none of the buttons on the joysticks were linked to the ramp controls. I had also switched out a joystick for a button box so we switched back to the joystick in case there was a wiring problem with the button box. Same problem.
We thought that maybe our driver was hitting the ramp release button thinking it was something else so we talked to him and confirmed that he wasn't hitting the wrong switch.
We took our robot to the practice field and had the driver start shaking it like crazy, the ramps didn't deploy. We couldn't recreate the problem outside of the competition field.

We had absolutely no idea why our ramps were deploying. I thought that it might have something to do with switching from autonomous mode to disabled mode to teleoperated mode, I don't know why this would have anything to do with our ramp mechanism though because we do nothing in autonomous mode and disabled mode disables your robot. We didn't have a dongle (we did have one, but it broke before competition. I guess really small wires weren't made to support a lot of strain, whoops) so we couldn't test this theory.

We looked through the code and saw that we initialized the servo to 255 (which is the position which keeps the pin in, 0 pulls it out) and not 127, like the motors. We searched the code for every alias for that servo output and nowhere is it modified (except for the function that is supposed to release the ramps). We never programmed the servo to actively drive to 255 after initialization though, so we decided to add code to do that, both in teleoperated mode and in autonomous mode. Somehow, this works. We don't know why, but it works. The pin stayed in during the match until we flipped the switch that releases the ramps.

Does anyone have any idea as to why this would happen?
Attached Thumbnails
Click image for larger version

Name:	servo_diagram.jpg
Views:	86
Size:	34.0 KB
ID:	5472  
__________________
"Time is an illusion, lunchtime doubly so."
-Douglas Adams
“Why is it that I can walk into Wal-Mart and buy boxes of bullets and black powder, but I can’t buy potassium perchlorate to do science because it can also be used to make explosives?”
-Theodore Gray