Route planning bridges strategy and code — a well-planned route that never works reliably is worse than a simple route that succeeds every time.
VRC Push Back: 12×12 ft field, 15-second autonomous period, 1:45 driver control, 30-second endgame.
Skills autonomous: teams may start in any legal red alliance position and have 60 seconds to score independently.
Each team gets up to three driving skills matches and three autonomous coding skills matches. This means each event gives you three attempts to set your best skills score — plan accordingly.
The AWP (Autonomous Win Point) requires completing specific tasks published in the game manual each season.
Your baseline autonomous must always complete the AWP condition at 95%+ reliability. Everything else is bonus.
Match autonomous boundary rules: robots may not contact opponent’s starting tiles, field elements starting in the opponent’s zone, or game objects in protected zones.
Think of your match autonomous in three tiers, from safest to most aggressive:
Before every match, confirm with your partner:
| Action | Points | Est. Time | Pts/sec | Priority |
|---|---|---|---|---|
| Score near element (close to goal) | 3 | 1.5s | 2.0 | High |
| Score far element (travel required) | 3 | 4.0s | 0.75 | Low |
| End-game action (climb/park) | Variable | 3–8s | Depends | High if worth >15 pts |
| Control zone bonus | Bonus | — | Free if on route | Always include |
| Element far off optimal route | Any | +6s detour | Very low | Usually skip |
With three runs per event, you can be strategic about which routes you attempt:
Use a printed top-down field diagram (published by VEX in the game manual appendix) to plan on paper before touching the code.
Starting position precision is critical — small errors compound through the entire route.
Draw the robot’s center path from start to first element, to goal, to next element, etc. Label each waypoint with:
Before writing any code, push the robot along the planned route by hand in the pit.
Time-budget your route before coding it.
After finalizing a route, create a “route card” — a single index card or laminated sheet that the drive team keeps at the field:
PATH.JERRYIO works best for teams with odometry (position tracking) — it outputs X/Y coordinates that assume the robot knows its position on the field. For EZ Template teams without odometry, its primary value is as a planning visualization tool rather than a code generator:
pid_drive_set() and pid_turn_set() values in your EZ Template codeTeams running LemLib can use PATH.JERRYIO to generate smooth odometry-based paths visually.
chassis.drive_distance() and chassis.turn_angle() with sensor stops — simpler and more maintainableThis is beyond the scope of most middle school teams using EZ Template, but it is the direction the most competitive high school teams move toward as they advance.
VRC foam tiles vary between fields. Older tiles are more compressed, producing less friction. Brand-new tiles have slightly different texture. Your robot’s drive PID was tuned on your gym’s tiles — at competition, those same values may produce a different distance. Mitigation: test on your competition field’s tiles during the practice window before the event. If driving long or short, adjust the target distance in code before the first match.
Where two tiles meet, there is a small seam that can deflect the drive slightly. Competition fields are assembled by volunteers and the seams are not always perfectly aligned. A route that crosses many tile seams accumulates small heading errors. Mitigation: use the IMU for heading correction (EZ Template does this automatically). Run your autonomous on the event field during practice time and verify the ending position.
If your robot starts 0.5 inches further left than intended, a movement that was supposed to end at a goal may miss it by 0.5–1 inch at the end of a 36-inch drive. For tight scoring sequences, this matters. Mitigation: use a physical reference — robot back corner against the tile edge, robot side against the perimeter wall. Develop a consistent pre-match placement ritual and practice it.
Game elements are placed manually before each match. The game manual specifies their starting positions, but human placement has tolerance. An element that should be at a specific coordinate may be 0.25–0.5 inches off. Mitigation: design your intake approach with a wider collection window. Drive slightly past the element’s expected position if your intake can catch it on the way. Never build a route that requires hitting a precise element location with no margin.
Drive PID performance changes with battery voltage. A 12.0V battery produces different motor output than a 12.5V battery at the same power command. Early in the day with a fresh battery, your robot may drive slightly faster and overshoot. Late in the day or after many runs, a lower battery may cause undershoot. Mitigation: fully charge batteries before every skills run. Run autonomous only on batteries at 12.4V or above. Consider adding a battery voltage check at the start of autonomous and adjusting drive speed accordingly.
The IMU must calibrate while the robot is completely stationary. If the robot is placed on the field and then bumped or moved after calibration, heading will be off. Competition venues also sometimes have vibration from other matches running nearby. Mitigation: calibrate the IMU as the last step before the match starts. In EZ Template, chassis.initialize() calls IMU calibration automatically in the initialize() function. Verify the IMU shows calibrated on the Brain screen before stepping back from the robot.
Route planned on paper. Now code it with sensor conditions so it runs consistently at competition.
⚡ Sensor-Based Autonomous →