After our experiences in Amarillo the 2019 competition season accelerated rapidly for the Robowranglers. While we talked about having “3 whole weeks to iterate and improve before Dallas” the time passed in the blink of an eye. There is never enough time to do everything, and we had plenty of stuff left unfinished.
Something else interesting happened during that time. For the first time ever, FRC came to our small town! The #HouseOfBlack hosted the FIRST in Texas Greenville District event!
Robotics has been a major part of the Greenville community for as long as I’ve been here. The Greenville School District (GISD) has ensured that EVERY student has the opportunities to participate on a competition robotics team. There are literally hundreds of VEX Robotics teams in Greenville (both VRC and VIQC). Of course, for almost 30 years the Robowranglers have been the capstone of Greenville’s STEM programs.
Something that we’ve never had? An FRC event in our small town.
On March 22-23 Greenville ISD hosted the FIRST in Texas Greenville District. I’m proud that the administration at GISD, FIRST in Texas, and “The Boss” made this happen. I was shocked by how much the local community came out to support this event.
I won’t lie… it was a little weird to be at work on a Friday knowing that there was a district event happening 5 minutes down the road. (Yes, I still had to work that day. Yes, I did watch a few matches on the webcast).
As I said before, the school district hosted the event, the Robowranglers volunteered at the event, but we didn’t RUN the event (And I was rightly kept FAR away from any type of leadership regarding the event).
The Robowrangler shop was not part of the event (it is on the other side of the building) but we had plenty of visitors. The Boss brought a few tours through. I’m thankful that we were able to showcase our facility, and I’m glad people seemed to enjoy seeing it. (I still can’t believe the incredible home GISD and the City of Greenville have built for us).
It was kind of funny, there were definitely people who came down just to see "what we were working on”. There were folks with their noses literally pressed against the windows, looking into the lab during our closed-door sessions. OF course, we hid all the good stuff when people were around. Mostly, all they just got to see us doing was a little driver practice.
What did we do MOST since Amarillo? Driver practice!
We were basically unpracticed going into our first district event (and I think it showed in our performance). Since then, we’ve had hours and hours of practice time in different types. If I break it down, there are essentially 7 different types of Robowrangler driver practice:
1. Learn & Tune the Robot - Give the drivers a chance to "get a feel for it" and learn the basic scoring motions. This involves lots of iteration, and we probably do as much tweaking as we do practicing. This type of practice is where we'll adjust tension on springs, change scoring geometry, move wheels, etc... We're "tuning the whole package" - changing the way the drivers do things, adjusting code, adjusting the mechanical system... all of this evolves together.
2. Drills. Wax-ON, Wax-OFF. - We just play until the motors are too hot to run, the battery dies, or the robot breaks.
"Score hatches until you can do it with your eyes closed." We design lots of different types of these drills, and switch them up. These type of drills also contribute to the tuning described in #1, but mostly are designed to develop “muscle memory” for the drivers.
3. Undefended 2-minute Drills // Time-Trials - We usually have a few scoring sequences we run through for a given robot, and we just hit them by ourselves on the field. Sometimes we do these as time-trials, where we see how fast our driveteam can complete a given sequence. Sometimes this is about doing a set sequence as fast as possible in which case we analyze the driver performance to see how to speed it up through "more efficient driving". Sometimes this is about tuning a specific sequence, in which case we switch actions around to see what helps the drivers do it faster.
This is part of the larger "how do we score the most points possible, in the given time" optimization. Eventually, we handicap ourselves in our sequence to make sure we can play with a partner who is also doing something useful. "Yep... we're much faster if we go from left to right... but then we get in our 3rd robot's way while they're trying to do the thing."
4. 1v1 Defense Drills - We let our backup driver beat the hell out of our driver while they do #3 using one of our "mule" robots. (Like X018 or X019: https://johnvneun.com/blog/2018/1/4/the-robowrangler-x000-projects)
5. Multi-Robot Drills / Scrimmages - Sometimes we invite other teams over to our field to practice. We practice working together with teams, and benchmark ourselves against others. We introduce our mule robots, and practice multi-robot drills to beat the defense.
6. Trick Plays - Sometimes we come up with cute stuff and practice it "just in case." We had a whole playbook last year for beating (or attempting to beat) 254. I'm very happy we didn't need any of it.
7. Benchmarking - We time the performance of top robots from around the world, and we play against them. We have humans act out their cycles and see how we match up. This was really useful last year for "are we able to own the scale against 254 + 1323 if we're partnered with 118" type practice.
These drills get layered on over the course of the season. We never stop doing any of them, and bounce back and forth depending on what we feel like improving.
Before Amarillo - we were only doing #1. It was nice to actually do some wax on - wax off work. I’m always amazed how much better the drivers can get with a few hours of drill work.
Of course, practice isn’t the only thing we worked on. We are always looking to make the robot better. Top priorities after Amarillo?
Autonomous Mode Improvements
We wanted to dial in our 2-disc auton options and hadn’t had enough time to play with it. We struggled with reliability in Amarillo, but by the end had one which seemed to get the job done.
Redesign the Disc Grabbing “Beak”
Two major issues. First - the beak can’t hold a disc at the start of the match. For Amarillo we had little mini-fingers to hold the disc while still staying inside the robot’s frame perimeter. I was very grumpy about this (more grumpy than usual). These fingers were a pain, and caused much of our auton inconsistency.
Second - we made an error during our field construction. Our loading stations didn’t have the lexan back-plate behind the disc. When we got onto a real field, the fingers of our disc grabber would press into this back plate and it would keep them from closing. Instead of “drive in fast, grab disc, drive out fast” our driver had to slowly back up until the fingers would close, then gently pull out of the loading station. Ewwwww.
What did we do to fix this?
We changed the geometry of the beak linkage itself to have increased closing force at the beginning of its motion, and added bearings at the tips of the fingers for reduced friction on the back plate.
We also changed the geometry of the 4-bar linkage which holds the beak. Now the 4-bar would be at “pickup” height when the 4-bar was in, and extend upwards and forward with it out. This meant for loading, we’d pull into the loading station with the 4-bar back, and extend it forward as we grabbed the disc. This worked really well with one of our other iterations… a self-aligning mechanism (which unfortunately didn’t make it onto the robot for competition usage).
What else did we do?
We worked on some stuff for our end-game climber. More details on this are in my Texas State Championship update post. I’m excited that Overhang finally lives up to it’s name.
That’s not a long list for iteration, but it included two entirely new subsystems (alignment device + endgame) plus redesigns on the ball-claw, 4-bar, and beak. The weeks flew by.
We did our unbag time on Wednesday and Thursday, then went into Dallas Friday afternoon.
How did I feel? Untested.
We had done a lot of iteration, and tested various pieces of it… but I felt like we hadn’t seen the whole thing working together.
Each year we struggle to keep momentum going after a milestone. After bag day, it seems like we never have the practice robot ready for driver practice. After competitions it seems like we don’t get MOVING on our desired path fast enough.
We did our Amarillo Post Mortem. We set clear direction. And just like normal - we did not move quickly.
Going into Dallas, we had a bit of an issue… some of us didn’t actually know if we made the robot better. When we decided to leave off the self-alignment device, it took the wind out of our sails.
Dallas - A Rough Start
Going into the Dallas District, we still felt very strong. The team list had a few big hitters on it, and a few sleepers… but in general, it felt like a pretty “easy” event. We had won Amarillo. We had demonstrated lots of firepower. We felt good about the robot’s consistency, and had even made changes.
We were a little bit cocky.
We started the season 18-0 bringing our official win streak to 34 straight (a Robowrangler record).
I was a little bit cocky.
We joked about how the first match in Dallas would probably be a loss. there was even a $1.48 bet made on the outcome between The Boss and our driver.
Yes, match 1 was a loss… and match 3… and match 4.
“Jeez John, what’s going on down there? I wanted to check in and saw you guys are 1-3.”
At one point, we decided to try a “blind side” loading station. Turned out… that was NOT a good idea.
In another match, we had a partner get 36 points in penalties (turns out, I’m not the best coach when it comes to “watching to see if the ref is flagging us”). That penalty drawing partner told us “don’t worry, we’ll fix the problem for the next match” - at which point Garrison leaned over to tell me “they’re against us in the next match”.
Not a great start.
Good news? We hit our first auton disc in all these matches. We climbed in all these matches. WE CAN BUILD ON THIS.
What was the problem? Hard to tell. Was it bad luck? Certainly we had some bad luck, but we also seemed to be underperforming in a big way… Was it driver error? Was it the robot?
I started to think it was the beak. Previously, if we came in misaligned to the loading station we could “scrape” the beak across the front of the disc until it popped into the hole. With this new version, the beak would end up prying itself open and getting a bad grab. It also seemed like we’d get a good grab, but as we pulled away from the loading station the disc would rip out of the beak. “Whaaaa? That’s new….”
By Friday evening, we started to realize it was definitely something with the robot. This isn’t something which happens often with the Robowranglers, but we had iterated backwards. We changed things and made them WORSE.
“But JVN… does this mean continuous improvement is a bad thing? Should we stop iterating?”
No. Continuous improvement is fantastic, as long as you have time to test the improvements! Remember, we’re here to optimize the balance between limits and wants. If we’re limited in the time we have to test - we should be careful not to reach too far trying to be “better”.
How did we fix it? First we had to figure out the REAL problem. What exactly was causing the issues?
We identified two major issues. The first, was our pickup. We’d been trying to pickup from the loading station with the 4-bar back. This meant the beak had very little compliance when we approached the station. We think maybe that “give” is what allowed the beak to scrape into the hole, and handle misalignment during grabs. It may also have helped with the “lift out” as we drove away from the station. (As the robot backed up, the 4-bar would push forwards and up, while also flexing a little bit - this probably helped the disc pop out of the loader).
We fixed this by adjusting the 4-bar position - we added spacers to the pneumatic cylinders actuating the 4-bar, such that the “extended” position was still low enough to grab out of the loading station.
Our second major issue? When we changed the beak linkage geometry to increase the holding force at the beginning of it’s closing travel, we decreased the holding force when it is fully grabbed. We also introduced some additional slop into the system. These two things contributed to create… more dropped discs.
How’d we solve this one? We really couldn’t. We didn’t find any easy way to tweak this on-site in Dallas. We basically told the driveteam “ok, it’s as good as it’s gonna get… deal with it.”
They dealt with it.
Of course, we also started looking ahead. Our plan for Dallas was to be “done” with the robot iteration. We were scheduled to play back-to-back with Dallas Week 5 and then Texas State Championship Week 6. To make it worse, Dallas was a Saturday-Sunday event. We’d have only two days (and no unbag time) to get things ready in time for TX States.
So, we had some folks start CADing a new beak solution right there at the event. At one point I looked up from a match debriefing and saw James Tonthat working on Solidworks with a crowd of people standing behind him watching. (I don’t think he enjoyed CAD with an audience…)
Making it Work
I’m incredibly proud of the way the team rallied in this situation. Everyone stayed focussed on their jobs, and just adapted to the new constraints. “Ok, we have some new limitations… we’re not happy about them… can we make it work anyways?”
As things went on, we got closer and closer to the top of the rankings. Being one of the few robots at this event that could climb to level 3, and being really the only robot who could get a rocket RP was helpful. It only took a few 4RP matches and some solid play in our other matches to rise quickly through the rankings.
It turns out, it didn’t matter.
We DID climb to #1 seed by the end of qualification, and selected Team 6672 - Fusion Corps. These guys were the ones we were chasing all weekend, and it turns out if they had gotten #1 seed they would have picked us. Still - it’s nice to be #1 seed and control your destiny.
JVN Said So…
Funny story about Fusion Corps. A few of their folks came over to chat with us on Saturday night as we were packing up. Their coach told me: “Thanks for your help with our climber. We changed that motor out and it’s working a lot better now.”
I hadn’t talked to them at all, but this wasn’t out of the ordinary.
JVN: “Ohh I’m glad our guys were able to help. I wasn’t involved, but I guess one of the other wranglers helped you out?”
6672: “It turns out one of the motors was bad. We thought it was something to do with code, so we kept testing it and testing it - which just made the motor worse. Your recommendation to change it out was absolutely right. Fixed all the issues.”
JVN: “Okay cool - glad our guys told you that.”
6672: “What do you mean… your guys?”
JVN: “I guess… what do YOU mean?”
6672: “You were mentioned by name. They told us this was your recommendation.”
JVN: “Well… that’s weird. This is the first I’ve heard anything about this.”
6672: <Looking at each other puzzled> “One of our kids told us ‘JVN said to change the motor’ so we did it.”
(At this point Garrison and The Boss are trying not to completely lose it as they listen to this exchange).
JVN: “I didn’t say that.. but I guess I’m happy he made the right recommendation in my name?”
As 6672 walked away, Garrison said he heard them say “That kid is in BIG trouble…”
148 Never Has Fun & “Are We Dumb?”
You know the moment when I knew I’d love playing with 6672? We didn’t talk a lot about elimination strategy. We had a quick meeting, then I went to grab lunch with the team in the stands. The next interaction I had with them was right before eliminations started.
“Hey… I want to check with you guys. How would you feel about me coaching one of the quarterfinal matches wearing a T-rex costume?”
“Frankly, we’d be upset if you DIDN’T do it…”
I’ve always joked about coaching in one of those inflatable T-Rex costumes. During the lunch break, I asked my Human Player Andy “Hey… you think you could get one of those costumes?” He seemed disinterested at this point. (This is part of a running joke where Andy somehow accomplishes ridiculous and hilarious feats for me). “If you get it for me… I’ll coach an elimination match wearing it.”
He took off running, and to no one’s surprise, came back 10 minutes later with one of the costumes under his arm. A few of us went down into a back hallway, and I tried it on. It sucked. It was hot. Hard to breathe. I had limited mobility. This is Fine.
I went out to the field during the lunch break and stood in the driver station. “Ok, I can see well enough… I can make this work. Let’s do this.”
Side Note: A field volunteer came to check on me to make sure I wasn’t the 148 human player. They said if I was the human player, I would have been practicing illegally on the field during the break. I am (thankfully) not a human player.
“You guys cool with me coaching in a t-rex costume?” I asked the head ref. I asked the FTA. “As long you wear safety glasses and we can see your driver badge.”
Let’s do this.
Before Quarterfinal 1 I “suited up” snd walked out to the field in my new coaching apparel. People seemed to think it was pretty funny. I’ve never had so many pictures taken of me. I was talking strategy and someone interrupted saying “someone wants to talk to you by the side of the field”. So I went over and there was a young boy (2ish) who wanted to meet the T-Rex. We shook hands and posed for pictures. (And up in the stands one of my students was heard to remark: “I didn’t know JVN had a heart”).
Then someone from 5411 asked me to “Go see our T-Rex” - so I walked down the field and met up with another dinosaur. I made some mascot “you’re going down” type gestures, and then he put his dukes up. It didn’t end the way I expected…
Can you imagine what was going through the Boss’ head? I mean, that’s probably a kid in there - so the lead engineer of 148 just punched out a kid in he middle of a robotics event? That’s probably NOT okay, right?
In my defense - I didn’t connect with any thing but inflatable head. There was NO physical contact. I heard later that he just tripped over his own shoelaces… The crowd lost their minds.
Did I end up coaching QF1 in a T-Rex costume?
We had a long field delay due to some radio issues with our robot. After a weekend of “no radio problems” for some reason we started seeing serious connection issues during the eliminations. I was doing my usual “talk to the FTAs and get things figure out” but unfortunately I was wearing a dinosaur suit… It made things very difficult.
“I’m having trouble taking you seriously…” - Rachel (3005, FTA)
“How is that different from normal?” - JVN
At one point I went back to the driver station to talk to our partners and I heard a strange “choking” noise. Then I noticed my head start to sag. (Not my real head, my dino-head.)
“Hey…. I think my fan is dying? GET ME OUT OF THIS THING!”
Turns out, an air-tight costume is difficult to breathe in, when the air supply is broken.
Imagine… Imagine that we didn’t have the radio connection problem. Imagine that the costume deflated on me mid-match. I think that radio delay saved my life.
“Here Lies John Vielkind-Neun - He died as he lived… yelling at students wearing a dinosaur suit.”
The Boss meets The Bossi
The Robowranglers got a visit from Don Bossi at this event. He seemed really impressed by The Boss and talked to her for a long time. (Makes sense, she’s pretty darn impressive).
I’m really happy we got a chance to tell him about our Middle School Pilot Program, and how we’ve now got a 6th grader as our Human Player. He was really happy to hear about it. Maybe more teams will do stuff like this?
As I said, we seeded #1 and picked 6672. Rounding out our alliance was FRC 3282. This was a pretty standard alliance. 148 placed panels, and drew the defense while scoring in the rocket. 6672 filled the cargo ship. 3282 played defense. 6672 would climb to level 3, so 148 was left alone to score a few more balls late in the match. We ran that bread-and-butter strategy all through the elims. Sometimes it was ugly, other times it worked great - but it was enough to get the W’s.
It was fantastic to play with both of these teams.
3282 has been around since 2010 and this is only the 2nd time they’ve played in the eliminations (the other time being in 2012).
6672 is a great up-and-coming Texas team. We REALLY enjoyed playing with them. They were incredibly consistent all weekend long and made our alliance selection VERY easy. Working with them felt very natural, and laid-back.
Our alliance ended up going 6-0 in eliminations, and emerged as Dallas District Champions.
More like HeartAttackWranglers
Unfortunately, our luck didn’t change when we got to the elimination rounds. We spent almost every match struggling with some form of electronics gremlin. In the two finals matches, we had a damaged encoder which caused our auton to fail. We didn’t notice, because with all the other gremlins we thought there was something else going on.
There were a few matches where we literally had a small mountain of discs in front of the loading station from our bad pickups.
I apologized to 6672 at one point - “I’m so sorry. I swear we’re not usually like this. Thank you for being the rock keeping this alliance together.” - “No problem, just mention us in the blog.”
Yeah… THAT won’t be an issue. I’m eager to see how 6672 does at Worlds in a few weeks. I have high expectations…
It’s kinda weird to write this… since I already know what happened next. Even before the award ceremony was over in Dallas, the team was moving forward full speed.
We initiated our full “Change the Oil” protocol on the robot, removing and replacing many of the core electronic components. (FRC is expensive. We cannot afford lost matches because of electrical gremlins in a fickle control system… Sometimes the only way to be sure is to replace everything.)
The new beak design which was begun at the event in Dallas was finished and manufactured late that night. The components would be assembled during robotics class the next day and tested the following night.
We began fabrication on the last piece of our end-game mechanism.
We started enhancing our autons.
And… we began scouting for Texas State Championship. Which would begin in only 3 days.
This is Fine.