Tips for smooth event performance? And a characterization question

Now that we are beginning to learn how to implement trajectories, vision, and PID, I started thinking about strategies at events. I realize that when we come to events with a clear plan, things go much smoother.

This line of thinking brought me to a few questions.

  1. What are some tips you all would not mind sharing for a smooth event experience?

The thing I feel we could offer is that when we can get a stable connection to the robot early in the pit, everything else goes much better. Sometimes it works perfectly, but many times we need to troubleshoot. When we follow proceedures, this too goes better.

Another thing is effective connections. Power Poles have helped the reliability of our robots emensely.

  1. How do you all use that time they give teams on the field?

Do you tune vision (we will either be using a Limelight or Photon)?
Do you take measurements and adjust trajectories?
Do you do something else?

3)How much do you think the carpet affects characterization for trajectories (our current bot has a mecanum drivetrain. We will probably either go with that or standard Kitbot six-wheel)? Our new shop has a tile floor.

1 Like

I’ve never had a smooth event, but some things that have made everything a lot smoother include:
#1 - A super pit. I cannot overstate how much smoother the event is when you can just roll in 2-3 carts, and know where every single thing is and have easy access to everything

#2 - see #1. Yep, it’s that important

#3 - a prematch checklist, preferably laminated or on a whiteboard

You might need to re-characterize on the practice field iirc – the best thing to do is just go to another team who has a carpet and characterize on there well before comp


Keep a surplus of batteries charged and charging, keep your battery and other electronics easily accessible, make your bumpers quick and easy to change (bumper latches), and make your pit as quick and easy to set up as possible (973’s super pit) to help maximize time out on the practice field at the beginning of an event and minimize the time spent huddled over the bot between matches.

Edit: Also carry spares of all your COTS components (especially electronics) and as many fully assembled mechanism’s as you can fit within the weight limit (prioritize your intake and other mechanisms that are liable to face frequent impact loads). When the time comes, you can just replace the whole mechanism, sans the assembly and/or repair time that might force you to miss out on a match.


Wait I think I might have been wrong on the characterization thing I haven’t done drive characterization in a while so I don’t remember whether surface affects it, I’d ask some of the wpilib people on here


I thank both of you. I feel the mecanum debate has been rehashed ad-nauseum. The team made the conscious choice knowing all the risks as far as that goes, and we have decided upon mecanum based on numerous factors, and they have become better drivers, programmers, builders, designers, and strategists because of that. Even if it was for just that reason, I would support it. So, I would rather stick to the topic (though the correlation is well pointed out).


Success at events, and smooth event operation starts at kickoff, honestly. Good strategic design and knowing your teams limits is an essential trait. Especially when contextualized against peers and their picking choices, this unfortunately isn’t always rational, and like others said mecanum will get a ding most likely. Ignoring that though:

  1. Checklist always, checklist often. Test every subsystem that needs to be tested, ensure they all work, battery swaps, bumper swaps, etc. Revise as needed.
  2. Break early break often. The sooner your robot is abused and endures the sooner you know how to fix it at competition.
  3. Don’t fix too much. Seriously. If the robot works don’t let your pit-crew dive neck-deep into it and need to be called out to a match in an inoperable state.
  4. Design mechanisms such that six minutes is all you need to fix or legally render them inert.(minimum match turnaround).
  5. Plan to go the whole way. Even if you miss playoffs having enough batteries that are good, enough spares (given #2 especially) to avoid a breakdown being debilitating and event / season ending.
  6. Practice practice practice. As like with #4 and #2, your drive team needs to be reliable, practiced, and have grace under pressure. Push their buttons in the shop when practicing, mimic the competition environment so they’re not shocked when things go wrong on field. Quick thinking is what got 330 a championship in 2016 and that type of recovery cannot be overstated.
  7. Plan alternate paths (especially in districts. You can play local or you can play meta. Some of us go into playoffs knowing we won’t get past semis so we maximize our odds of getting maximum district points for advancement past that event).

And then also this cheatsheet I wrote a bit ago. Hope this helps.


I went to an event once. Two years ago.

  • Stay organized!! Batteries? Charger? Are kids aware of the way the pit is set up? Can they find things easily and quickly? Are you stocked up on spare mechanisms (if you can afford it)? Consumables? Plans for when x part breaks? Have you designed your mechanisms to be easily repairable? (ex. not needing to remove another mechanism to service another generally). Don’t forget your Battery Beaks and have a planned cycling of batteries so every match starts as fresh as possible.

  • Practice! If your driver has driven your robot for the past two weeks, programming has had it for a week +, and you run hard in your shops, less surprises on the day of competition. Week 0s are great! Just have to finish you robot in time :slight_smile:

  • Bring your spare control system if you have it. It hurts us more times that I can count.

  • Watch events before yours, get a vibe for the best strategies of the game and the “meta?” of the game, plan, and execute. Practice, practice, practice.

  • Plan out your scouting extensively, know what you want in an alliance partner, know how you fit into an alliance, etc… Never end up at the top with no data and only going of what one students claims to have seen during a match. Have your kids practice scouting on Week 0 events, improved our data accuracy.

  • Stick to the plan and what you know works.

  • Program in a good testing sequence. Never been a big fan of “why isnt our robot moving?”.


Back in 2019, I made a preflight checklist based (loosely) on the procedures we use at work. We printed a bunch of these, and one had to be completely filled out before each match. Each line would be initialed, not just checkmarked, by a student to show that they had personally done that thing.
2019-systems-check.pdf (52.3 KB)

Having the filled-out forms also helps answer post-competition questions like, “Why did we slow down near the end of that match? Is that battery bad?”


Yeah, just edited that part out.


I do understand running mecanum for the IR@H challenges, and think its a great programming and controls exercise at the very least, but would seriously recommend reconsidering if you plan to play at any in-person events this offseason, just for the ability to pivot to defense if necessary as a third pick. Granted, I would consider a well-driven mecanum drive to be superior functionally to a badly driven skid-steer, defense be damned. Just do what works best for you, and stick to it (and tighten all of your load-bearing and Loctite-free bolts before every match). Hope this helps!

1 Like

I’ll note that practice was handed to us on a silver platter. Look at the 2016 LAR finals.
I don’t think we specifically practiced that maneuver, even after the original incident. It was mostly the operator being familiar with the interlocks they needed to bypass.

Not saying you should rely on that, but practice to the point that you can tell exactly what needs to happen to go from robot doing A to robot doing B before even beginning to execute it.
330 used a bunch of presets that dramatically increased cycle speed when things went right, but the operator then had to know their way around well enough when we got thrown for a loop. I think we used literally every input on a 360-style gamepad from like 2012 onwards.
Consider not doing that if it can be avoided lol.
Our practice hours were easily in the hundreds every season.

Also nobody has mentioned this yet, but the snacks tote is absolutely necessary. You need calories, and they need to be within arm’s reach. There’s a picture of me on Reddit with bags of Goldfish on my picklist clipboard.


I agree with almost everything that’s been posted above.

In addition, it’s important to compete a lot. Go to multiple off-seasons if you can make it work. If you’re in the regional system and can afford it go to two or more regionals. Districts you already get two events, week 7 district champs regions can fit in a third event easier than teams in week 6 or earlier district champs. In general just getting experience at events helps with learning how to repair things, how matches flow, how to interact with volunteers and more. All of this gets your team more prepared for when things inevitably don’t go as planned.

Another point is to get to know other teams. Knowing where to turn for help instead of needing to put out a general pit request can save a lot of time. Which teams have the tools you may need, components you may need to borrow, use the same programming language and may be able to help fix a weird problem can all make events go smoother.


You can even go a bit deeper than this, and intentionally build/program your robots in a similar manner to other teams (ofc, not to the extent that it harms your design or the learning process). Everybody uses 5/32 rivets on a 1" hole pattern? If you forget your rivet box or spare predrilled extrusion somebody is guaranteed to have it. Maybe all the local teams use Photon vision on a Raspberry pi instead of the defacto Limelight. You might get more help with the more common system.

A lot more things are solidly standardized now, like #25 chain, 1/2" hex and bearings, 4 6 and 8" wheels, Versaplanetaries, etc. Don’t be that team that desperately needs a keyed 1/2" round shaft.

When our logitech gamepads wore out, I intentionally bought USB Xbox 360 pads, as many teams used either that exact controller or a compatible one. Thankfully things never came to that, but we were in a situation the previous year where we almost had to remap all of our buttons before a match b/c the spare pad couldn’t be found.

I could go on for a reeeeeeally long time about all the “event optimization” decisions you can make (you need 2 Battery Beaks at champs, trust me), but I’ll let others chime in.


I’m actually curious on this one. Do tell.

1 Like

Static IP on major system -

  • Robot (RoboIO)
  • Main Drive Station
  • Backup Drive Station
  • Reserve IPs for any other IP based services/functions (co-processor, ip cam, etc).

Make sure Main/Backup Drive Station was fully patched with Windows’s patches the Wednesday before event. [And then can set a pause until after the event].

Make sure both Main and Backup Drive Station has plenty of disk space (logs are very important to help troubleshoot any issues).

Vision - pray the lighting is similar to how you had it back at your workspace - use GRIP to simulate/sequence through as much as possible what your own vision processing pipeline is like. If at all possible, set aside a special GRIP tuning machine [Backup Drive Station is the prefect use case here if you want to keep your Main one clean/clear of any dev tools]. Save each color/shape profile into its own file so you can do a quick check on them.


Many teams fail at events because they try to do too much. If you’re a week before your first event and you don’t have some major mechanism working, consider the amount of time you have left and how it should be best spent.

Getting a half-working version that fails often and takes up the majority of your time in troubleshooting and repair is going to hurt your performance. If your other opportunity is to practice, and make sure the mechanisms you DO have on the robot are working well, then most of time you’re better off making sure the things you have aren’t going to break.

Don’t go into the competition with a huge plan and list of items that are going to stretch your capabilities. Go in with a reasonable plan, keep it simple, and don’t plan to spend every minute you have. Because things will come up during the competition that require your attention.

Go in prepared. If you know you rely on a vision system, then you should have practiced calibrating it. Spending a week calibrating at your home field and then expecting to replicate that work in the 20 minutes you have on the competition field prior to practice matches isn’t going to happen.

Practice calibrating. Practice adjusting autos. Be ready to compete. It’s a very rare team that can go in and totally rebuild their robot or add a major mechanism. Don’t go into the event trying to be a hero. Go in understanding your limitations.

1 Like

The effect is bigger on the effective trackwidth than on ks, kv, or ka. Generally you can get away with tuning on tile, but it’s always best to do it on carpet if possible.


The assumptions here are that you are:

  1. On the practice field literally whenever possible, which is reasonable for a competitive team
  2. Not taking like 20+ batteries to champs and can just roll around with charged ones all day long
  3. The champs layout is still hot garbage from a walking perspective, but even before that

You will end up at the point where the “battery kid” becomes a thing. The battery kid is “running” dead batteries from the the robot in the practice field line back to the pit, and fresh batteries back to the robot. They are also running fresh batteries to the queue when you’re going from the practice field directly to your match.

A solution here is to just give a single Battery Beak to the battery kid, right?

Doesn’t quite work out like that in practice, as the robot should never be without a battery. You can’t take out the dead battery and rely on a fresh one being back by the time your (practice) match starts. Now your situation is a battery in the robot, a battery or two in the cart, and X number between the robot and the pit, and in the pit charging.

If the battery kid has the one Battery Beak, and you swap a battery in the robot while they are not with the robot, you now run the risk of putting a dead battery in the robot. Sure, you can use lil color coded battery flags, or special battery spots on the cart. Sometimes the battery kid doesn’t have time to unplug the battery and let it sit for a few minutes to make sure they’re not just reading the surface charge*, or whatever else could happen so you can’t trust the “charged” batteries.

The long and short is that the battery should be checked the moment before it goes into the robot.
If the robot -and thus the robot-tied Battery Beak- is not in the pits (assumption 1) whoever is pulling a battery off the chargers needs a Beak as well. A 12.8v and 13.4v battery are both “charged” on many chargers, but we typically consider 12.8 to be dead.

There are some ways you can sort of get around this, like wiring one of those awesome LED voltage indicators into the robot or into your charging setup. On the robot is great sanity check, but ain’t nobody got time for that in the 30 seconds before a match starts and there are 3 batteries sitting in the cart and you need to pick one. Alternatively, a Batthawk (no load applied like with the Beak) can go in the cart to quickly sort out your best option in the moment.

This is a very long-winded way to say you need a Battery Beak and at least one other battery measuring device. It’s a lot easier if those are just two Battery Beaks.

*this is also a hint of a broader discussion where the student isn’t at fault if the process can be blamed. Sometimes you end up in a hairy spot where cutting corners pays off, and you make the call to cut those corners. If you know what corners you’re more likely to cut, you can design the process to have specific checks in place.
Here, the corner cut is not waiting those 2-3 minutes to let the surface charge settle if you need a battery right now. Our standard procedure to accurately determine the most charged battery involves that 2-3 minute “cooldown period”. Beaking straight off our good chargers can read as high as 14.2v, and then as low as 12.6 a few minutes later. The transit time from pit to queue can substitute for that waiting period, and you just text the battery kid to bring the 2-3 highest batteries they can find ASAP. You Beak your best option (sometimes literally on the field), which can now be accurately determined, and the rest go back to chargers.

Wow. There are so many incredible pieces of information here. I do not know where to begin.

Thank you all for your answers. So many of the tidbits here are things that were never on our radar, and I feel just exploring a few of them will make us (and hopefully others) a stronger team.

The super-ordinate takeaways are for me right now, are these.

  1. Organization is key. This is true of each aspect of the performance at the event.
    Tools and Supplies
    A vision of how the team meshes with aliances
    and many more things
  2. Planning your season so you are ready for the event. We rarely finish building our robot by the time our first event date arrives, in doing so, we are missing an opportunity to come as a practiced and prepared team. I feel this is going to be more of an issue in the future as our veterans with experience move on to bigger and better things, and more of our current members will have less experience at events (our team has not been to an event since the Fall of 2019)

Also, Static IP FTW to prevent network errors.

So many things. All of which are helpful.

Tangent but yeah. Don’t be in that position or this might happen:


Full disclosure, we did that once. Our first year. We messed up a conversion in auto and ended up saturating our drivetrain. It was definitely the worst mistake we have ever made at an event, but it was quite bad.