For almost every match during the 2015 LA regional, we drove at full speed into the alliance wall during autonomous. We knocked driver stations off the ledge, stabbed an alliance partner that got in the way with our tines and ripped out their electrical system, and bent said tines many times.
We tried making software fixes every match and running a no-op autonomous, but nothing helped. After matches concluded, we realized our mistake. Our drivetrain constructor was calling setSetpoint(0.0) (sets setpoint to zero and enables on-motor-controller position PID) instead of setManual(0.0) (sets voltage output to zero and disables PID). Robot repositioning on the field after power-on gave nonzero encoder values for the drivetrain PID to drive to zero. The no-op autonomous never called setManual() to disable PID, so the PID was left to run.
Here’s the relevant fixup commit with more context: Change autonomous timer, fix Satan bug · frc3512/Robot-2015@84eb1ea · GitHub. In retrospect, I overabstracted and overcomplicated the codebase, and that resulted in subtle, hard-to-find bugs that had a large negative impact on match performance. Main advice I’d give to my high school self would be:
Composition is often superior to inheritance.
Instead of trying to be clever with setSetpoint() and setManual() causing mode changes, make the behavior more explicit.
Use value types instead of pointers.
Try to limit the amount of CTRE wrappers, because it makes the code harder to read and navigate.
We cleaned all that up in future years as an offseason project.
Not just repositioning, we didn’t use a robot cart that year because the bot was so tall and easy to move, so we literally just pushed the robot on its Omni wheels everywhere that year (venue was concrete floors), often turning the robot on well before actually going on the field so the encoder values were hilariously non-zero.
Not really a failure, but our 2023 bot’s battery routinely comes loose and rams into the network switch, which is currently serving as the sole defense the rest of our electrical has from being squished.
It somehow still functions. We cannot replace/remove the switch as the damage is too extensive.
And I thought we had the climb, but then screw clamp failed and took out multiple parts and the springs with it. Took out the climber for the rest of quals.
I’ve shared it before; I may share it again. I know nothing else about what happened at the 2020 Utah Regional since all I’ve seen of it is this clip, but the clip is just so good I end up watching it multiple times a year. https://clips.twitch.tv/TallGenerousWrenchPoooound
Yeah it was tidal Tumble 2021. The shooter fell off, so we climbed on the hangar and used our traversal mechanism to slowly put surely lift the shooter off the ground by It’s umbilical cord so the climb was legal:
Really just an incredible moment.
Moral of the story: use more than 4 bearing stacks for your turret!
Not the only ones that happened to that year… Ouch.
As an aside it’s reassuring to know 254 has run into identical bugs and little failures as the rest of us. (As much as we put 254 on a pillar and joke/hold to a high standard, it’s only humans that make up the team at the end of the day)
Without being able to actually view a match video to verify, BatB qm15? The volunteer in the blue shirt as well as the camera angle and venue floor rule out any inseason comps, and I was at the other two offseason competitions you’ve been to this year, neither of which look anything like this venue. After figuring out the event, the robot lying unmoving in the top right looks quite a bit like 3749. A quick look at TBA reveals that you were in exactly one match with 3749 on the red side at BatB, that being qual match 15. Sorry for the stalking/nerdery, I was just kinda curious.
Back in 2020, our alliance took a pretty nasty spill off the climbing bar. If you look closely, our (2847) climber transformed from a rectangle to a parallelogram due to the fall.
Honestly, the best part is the reactions of the event volunteers in the foreground
At an offseason event, our giant googly eyes fell off in a match. I couldn’t find the eye. Drive team couldn’t find the eye. Not even the field volunteers had seen it. I was getting quite confused as to where it was. Turns out, the googly eye had fallen off into another robot into their intake after a collision. I’m not certain but that might’ve caused a spectacular failure
That clothesline for 2767 in 2020 was a learning experience. There are a variety of
pictures of the damage kicking around on CD for sure.
Certainly a highlight of a very short season. Very good audiance reaction.
(We did have an extra mostly built up, but it was missing the vision electronics, frankly that incident proved to me how resilient of a combo .080" AL sheet and onyx can be )
In 2023, some goofy metal shavings made their way into my former team’s robot and messed with the IMU. When auto started, what was supposed to be a balance auto became a thing where the bot went to the other alliance’s side and started pushing their robots off their charging station…