|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
| Thread Tools | Rate Thread | Display Modes |
|
#16
|
|||
|
|||
|
Re: Programming goofs!
Alright, so this year (2011 Build Season), as lead programmer of Team 263, we were working on our robot's arm. We had a ridiculously large gear ratio, and the arm generated a lot of torque. Our adviser said to put in a limit switch, that way we can program it to stop before it overdid itself pushing downwards. I said to him, "naah no need it will be fine...". Lesson learned, basically, I didn't realize that our arm was still trying to go down, on the last few days before the end of build season, and because I hadn't noticed, the arm bent a heavy steel rod, which completely dumbfounded some of the mechanical members of the team, how the arm managed to do that. Not only did the mistake stop there, the captain then tried to pry the sprocket off the bent side of the steel rod to salvage it, in turn bending the metal sprocket, and again in turn our other mechy team member, helping the captain, stood on the frame above the wheel, causing the axle to come loose. So my mistake essentially bent a steel rod, bent a metal sprocket, and make a wheel axle come loose, all on the last 2 days of build season.
![]() |
|
#17
|
|||
|
|||
|
Re: Programming goofs!
Not so much programming, more of a "D'oh!"
This year at NJ we brought the robot back to the pit after a match and had to put it on its side to fix some chain problems. They got it worked out and asked me to start it up and test it. We had tank drive set up. So I run the code and push the right joystick, and the right side works. Then a push the left annnnndddd....nothing happens About a half hour later, after pulling out jaguars, switching out pwms and ports on the sidecars, checking code, rechecking, and making new code, I found an unplugged usb cord. It was the joystick. |
|
#18
|
||||
|
||||
|
Re: Programming goofs!
When testing code mount the robot on stands. We were testing autonomous or something and then we enabled. The robot flew off the cart onto the ground bending mini bot deployment on the last couple days before ship date.
One of our programming traditions is summing up our meetings in the form of limericks. So you know the watchdog? Well on team 578 last year we had problems with it so many times so we decided to rename the watch dog and called it now the watch kitty. Long story well this year we named the watch dog watch whale whale watch. |
|
#19
|
|||
|
|||
|
Re: Programming goofs!
I don't know if anyone remembers this, but it did make YouTube temporarily.
Last year, at FLR, went ahead and tried vision code for the first time. It seemed to work at home, so we bundled it up and sent it. I guess we were wrong - in our first practice match, we ended up spinning in rapid ccw circles. I still don't know the cause - I didn't have time to debug it at comp, due to other huge issues - Like the radio not working half the time (!). Caused a mechanical failure, I suppose, too - our left(?) drive chain came off. |
|
#20
|
|||
|
|||
|
Re: Programming goofs!
Here's a story I heard from one of our mentors from 2002(??? whichever one had lunacy-style moveable goals):
We had this goal grabber-thing that twisted 90 degrees after being placed on one of the posts of the goal. Really cool, we managed to pull the entire opposing alliance around while they were all holding onto this same goal . But anyways, the grabber itself was powered by a motor and had limit switches to hold it at the ends. Well one day the programmer decides it would be a great idea to do some debugging by removing the limit switch code. The robot enables, and the thing spins out of control, catches on some of the electrical wires, and manages to tear up most of our electronics board!Another story: Last year during elims at FLR, the head programmer decides to take one last shot at autonomous. He builds it, tests it on the cart tethered, and sends it out for a match, where the robot just sits there. Seeing that (again) it didn't work, he goes and removes autonomous from the code and redeploys. We go out for our next match, only to find that the robot successfully scores in autonomous! And now for this year's autonomous mode: I had 5 minutes on the practice field at FLR to write autonomous before elims started. I'm sitting there, programming frantically, when I finish a download and go run autonomous. Well, the robot runs normally for about 1 second, after which it runs backwards in high gear at max speed! I practically kill the e-stop button, and the robot stops about 1 foot away from a rookie programmer! Turns out I forgot to tell the drive controller that it needed to send an update to the jaguars ![]() |
|
#21
|
||||
|
||||
|
Re: Programming goofs!
In 2008 at Lone Star, our robot was supposed to make 3/4 of a lap, but instead our power kept shorted out and it restarted the program an we slammed the wall at full speed went up on three wheels (of 6) and turned around, went full speed back and nailed our team mate who didn't have a autonomous mode. Our robot was unharmed and hitting the wall the second time it fixed the short. We one the Motorola Quality award and the judges told us that was why, because other robots would of broke down after that kind of hit.
|
|
#22
|
|||||
|
|||||
|
Re: Programming goofs!
For the 2005 game, Triple Play, we had six reliable autonomous paths that would pick up a vision tetra from the appropriate spot and place it on the center goal for a double bonus. We had a camera that would reliably find vision tetras. We just didn't have a working bit of code to connect the two. So we defaulted to the path that picked up a tetra from front center and placed it. It always worked, if that's where the tetra happened to be. I figure it was only going to take a couple of hours of programming on Thursday at the regional to get the camera to choose the path.
At the same time, the white KOP joystick we used for our operator that year proved to be noisy and unrepeatable enough that we decided to replace it. The high-quality arcade-style joystick we purchased was installed in our driver station, and we discovered that its output was only about half of the possible range. That would have made our arm move much too slowly for effective game play, so the first thing I did to the code when we got to the regional was to multiply the motor control value by two before sending it to the PWM output routine. The joystick worked great, and everyone was happy. Our first practice match came up. The vision tetra was randomly placed in exactly the place our autonomous was going to try to pick it up. The team was ready to awe the venue with our fantastic autonomous performance. When the match began, our robot raised and extended its arm, drove to the tetra, picked it up...and proceeded to throw it into the air and thrash the arm wildly up and down, making the whole robot bounce. The drive team hit the emergency stop. I immediately realized that the arm PID had been totally thrown out of whack by the extra doubling at the end. I spent the next half hour trying to retune it to account for the change in system gain, without success, then figured out that I could put everything back the way it was before and just double the joystick value on the way in instead of doubling the motor value on the way out. I am not sure what exactly happened at that point. I probably restored the code from the wrong backup, because the autonomous code totally failed and never worked again. After most of the day without success, the team leader eventually decided we needed something quick that worked, so our great tetra-placing scripts were discarded and our robot spent the rest of the season bumping the hanging tetras off the corner goals for a one point score in autonomous. |
|
#23
|
||||
|
||||
|
Re: Programming goofs!
Once in 2010 Breakaway competition, our autonomous code "shorted out" and our robot ran at full speed at a graceful curve and slammed into another robot, flipping it over.
The other team forgave us... |
|
#24
|
||||
|
||||
|
Re: Programming goofs!
Quote:
Basically, it's a thin line between admitting you're wrong and making an argument of why your right so poorly put together it can't be taken apart any more, making it just about as good as a solid one. On an somewhat unrelated note, I do remember something in '08 where we knocked down all 3 of the opposing alliances driver stations in possibly 2 consecutive matches during autonomous. All I can say is that, while they were quite professional about it, they weren't horribly pleased my our sudden movement of the entire field. |
|
#25
|
||||
|
||||
|
Re: Programming goofs!
This year, at our first regional, my biggest mistake was. It wasnt even my fault but what happened is that me (lead and only programmer) and the only other person on the team who knows what 'program' is, were sitting in the pits writing autonomous code. After our last match of the day, I assumed the kid would be alright, seeing as how he might occasionaly be an airhead, he can wield anything (be it hammer, keyboard, crimper, you name it) and instantly look like hes meant for it. looking over the code that night in the hotel, I cleaned up much of the teleop code we had (under the drivers specifications), and didnt think about looking at the auton. the next day, in our first match, i looked at the program while waiting in line for our robot to be set up on the field and notice he had a very buggy piece of autonomous in the default case. asking him about it right there (me and him are the drivers), he said he couldnt get it to download, so i wasnt worried. After we set up the robot and were waiting in the drivers area, waiting for the countdown ("red alliance, ready? blue alliance, ready? GO!). All of a sudden our bot (on a far side) just zooms out of its starting position in a nice arc all the way across our half of the field and makes it to the robot across from us (which also had autonomous, but worked) and cuts it right off, slamming into our side and messing both our autonomous up. after the switch to teleop, our robot was just stuck spinning in circles in and out of the lane, continually getting lane violations. all because a bug went achoo, and changed a variable that diverted the initial autonomous switch case.
|
|
#26
|
||||
|
||||
|
Re: Programming goofs!
I'm gonna beat RyanN to it, but he can explain this video.
|
|
#27
|
||||
|
||||
|
Re: Programming goofs!
Quote:
Also, a 1-to-5 pushing match was fun. Our robot took 0 damage that match. |
|
#28
|
||||
|
||||
|
Re: Programming goofs!
Instantiated the analog autonomous mode selector object in the wrong channel, so the cRIO could never read an autonomous mode besides 0 which is make the robot sit still. Oops.
|
|
#29
|
|||
|
|||
|
Re: Programming goofs!
When i was tweaking the programed positions on our teams arm I accidently wrote to the the arm motors twice over at the same time causing the arm to go crazy and lock its self in place. they tried to move it again by pressing the button and caused the wrist motor to internally lock, and broke one of the sprockets on the arm, it cracked in half, at the same time. this all happened 5 minutes before we went out on field for our first match.
|
|
#30
|
|||
|
|||
|
Re: Programming goofs!
I first tested our new autonomous on the competition field at our regional last year. I forgot that a positive voltage setting to the wheels means the robot goes backwards. I don't think I'll ever see a robot again accelerate full speed backwards over a bump, catch airtime, and land on the ground, back-wheels first. Oh, and then we proceeded to turn the wrong because of the erroneous values, cross the median, and get 11 penalties and a red card by the end of autonomous. Woohoo.
|
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|