Before the robot is used
Safety: Learn identifies a teaching example only. Do not deploy or enable this lesson as competition-ready code. It has no result-age gate, distinct-frame validation, or wall guard, and manual powers are written before the Square override. Physical review must precede any separately authorized wheels-clear demonstration. Use an operator and supervisor at STOP, clear the mechanism, and isolate power for inspection. Releasing Square can resume manual driving.
Required hardware & dependencies
- Four mecanum drive motors named front_left_drive, front_right_drive, back_left_drive, and back_right_drive; verify each configured name against its physical cable and wheel.
- FTC Robot Controller, Driver Station, secure battery, and a notebook. Motor direction settings are specific to the source and mounting, not universal wiring instructions.
- Limelight 3A configured as limelight, expected AprilTag pipeline 0, accurate tag sizes and camera setup.
- Verified ID 30-45 target layout with -6.5/-2.75/+2.75/+6.5 inch sticker positions and matching halves; paired gamepad exposing Square and LeftBumper.
Source remains AprilTagTeleOp.blk. Dependencies are the FTC SDK's native Limelight 3A Blocks, device limelight, four exact motor names, a verified AprilTag pipeline 0, and the source's ID/offset layout. No helper ZIP is provided. Enabled metadata and a Learn label do not authorize physical operation; review freshness, coordinate conventions, wheel signs, and safety separately.
Robot setup checklist
- Inspect AprilTagTeleOp.blk using supported native FTC/ Limelight Blocks. Resolve missing device/API blocks before considering hardware work; no invented support bundle is required by this page.
- Verify pipeline contents, physical tag layout, camera pose-axis convention, and literal source projection signs. The term triangulated in source telemetry does not establish field localization accuracy.
- Review FL/BL/BR REVERSE, FR FORWARD, RUN_WITHOUT_ENCODER, and the +/-0.24 front-right alignment bias. Do not copy the autonomous direction profile here.
- Plan paper traces for stale results, missing halves, and Square release. Enabled metadata and a Learn label do not replace an independent freshness/safety assessment.
90-minute teaching sequence
- 0-15 min
Map IDs, matching halves, sticker middles, and endpoint destinations.
Look for: One tag from each matching half, not simply any two tags.
- 15-40 min
Calculate signed endpoint corrections, literal trig projections, midpoint range, and bearing.
Look for: Meter/inch consistency and source Y projection with sin(yaw).
- 40-60 min
Trace manual power writes, Square overrides, and target reselection.
Look for: Students preserve the stronger front-right command and distinguish held override from target lock.
- 60-90 min
Audit telemetry nesting, missing freshness checks, and safety claims; complete quiz and exit ticket.
Look for: No-row, not-visible, stale-data, and zero-command statements are not confused.
Observation notebook
Notebook: one scan's evidence and one loop's final requests| Visible IDs / result evidence | Available halves | Selected center / tx | Square | Final FL / FR / BL / BR |
|---|
| 30 and 31; age unverified | Red first only | None | Held | 0 / 0 / 0 / 0 |
|---|
| 30 and 37; worked pose | Both red | Red / +3 degrees | Held | 0.18 / -0.24 / 0.18 / -0.18 |
|---|
| Both centers; red = blue range | Both alliances | Red / +2 degrees | Held | 0 / 0 / 0 / 0 |
|---|
Also record raw manual input separately. Mark result age as unverified in this source, and note whether the cluster-display branch actually ran.
Troubleshooting · stop before investigating
- Tags show ranges but no red center exists.
- Check for at least one ID 30-33 AND one ID 34-37 in the same scan. Multiple tags from one sticker do not replace the other half.
- Cluster rows disappear while manual driving.
- Inspect the actual nesting: rows are added only in held-Square found-and-centered behavior. Do not invent a camera failure from absent rows.
- Alignment changes alliance while Square remains held.
- That follows per-loop reselection. Record red and blue ranges and the strict comparison; this sample has no held target lock.
- A target pose or command sign looks wrong.
- Keep the robot stopped. Verify camera-space axes, the literal yaw/pitch projection, motor mapping, and FR bias; do not patch signs blindly.
- Display seems current but follows an old image.
- A latest-result call is not a freshness guarantee. Review frame age and deduplication requirements separately; do not approve physical operation from this scan alone.
Exit ticket & assessment
- Explain why IDs 30 and 31 cannot make a red center.
- Calculate the source's correction at yaw 90 and pitch 0.
- Describe Square release and one missing safety check.
Assessment: Pass requires correct ID grouping, signed unit conversion, literal projections, selection ties, and final override powers. Students must also identify missing age validation and the conditional cluster rows; an educational label is never accepted as safety evidence.
Extension challenge: Sketch a non-deployed design for a single output stage with explicit result age and target-lock evidence. Separate proposed improvements from what the authentic Blocks currently do.
Teacher key · discuss after students predict
Two R1 corrections
At zero angles sticker X adds 6.5/39.3701, about 0.16510 m; R4 X adds 13/39.3701, about 0.33020 m. They have different destinations.
Midpoint practice
The supplied endpoints average to (0.10,0,1) m: range about 39.57 inches, bearing about +5.71 degrees. Averaging individual ranges is not equivalent.
Override table
Bumper-held full forward gives four 0.35 manual requests. Held Square with no center or tx +2 gives zeros; tx +3 gives 0.18,-0.24,0.18,-0.18. Releasing Square returns to manual 0.35.
Target and freshness
Range pairs 40/35, 30/35, 40/40 choose blue, red, red. Reset flags are scan-local, not a frame-age check. Cluster rows are conditional, not unconditional post-START telemetry.