Scoring

Full Rubric (100 points)

# Category Points Key criteria
1 Technical Measurement Performance 30 Both mandated sensors active; readings within ±10% of reference; top band requires independent navigation
2 Data Output & Visualisation 10 Legible, labelled units (NTU, %); graph or log; available immediately after run
3 Build Quality & Workmanship 5 Robust structure; tidy insulated wiring; manoeuvrability
4 Innovation & Engineering Design 10 Novel solutions; 3-min Day 1 pitch; iteration evidence
5 Robot Aesthetics 5 Finish, branding, professional look
6 Closing Night Case Competition 40 Data-driven argument; tradeoffs; Q&A; teamwork
Total 100

Official rulebook section headers contradict this table (Cat 1: 40 vs 30; Cat 6: 25 vs 40; Cat 3: 10 vs 5). The table totals 100 and is treated as authoritative; confirmation has been requested from the organisers. Under any reading, Cat 6 is the largest single category.

Category 1 bands (from the rulebook)

Points Descriptor
23–25 Both sensors within ±10%; robot navigates independently, full run
18–22 Both sensors active; one within ±10%; minor navigation assistance
12–17 One valid sensor, or both outside ±10%
5–11 Unreliable readings; significant intervention
0–4 No valid measurement

Implication: an RC robot with two accurate, calibrated sensors lands in the 18–22 band. Autonomy buys the last ~3–7 points of Cat 1 — calibration accuracy is worth more than autonomy.


Deductions

Infraction Penalty
Prohibited component installed −10 pts or disqualification
Run exceeds 8-minute limit −5 pts
Pre-loaded or hardcoded sensor data Cat 1 and Cat 2 zeroed (and DQ risk)
Arena surface damage −5 pts per incident

Priority Order

Cat 6 (40) ≥ Cat 1 (30) > Cat 2 (10) = Cat 4 (10) > Cat 3 (5) = Cat 5 (5)

Time budget follows points: presentation practice and sensor calibration before anything else.


Per-Category Strategy

Cat 1 — Technical Measurement (30 pts)

  • Both SEN0189 and Capacitive v2.0 are mandated — substituting either risks penalties up to DQ.
  • Calibrate against references before Testing Day; verify morning-of. See Calibration.
  • RC mode with operator sector-tagging gives clean, correctly-labelled data.

Cat 2 — Data Output (10 pts)

  • Primary judged output: live_plot.py — matplotlib live table + labelled NTU/moisture charts on the laptop (§4.6's own named example) + samples.csv (a second approved format).
  • Serial prints every sample with units — the always-on fallback.
  • results.json at 192.168.4.1/data within seconds of run end (clock frozen at End Run — no idle-time inflation).
  • Webapp visualiser is the showcase layer only; written approval would be needed to present it as the official output.

Cat 3 — Build Quality (5 pts)

  • Wiring cable-tied, terminals insulated, sensors on rigid mounts.
  • Accessible power switch — officials can order instant power-down.
  • Wheels sized for grass/sand; L298N ventilated.

Cat 4 — Innovation (10 pts)

Real, defensible innovations (judges probe — never claim hardware that isn't on the robot):

  1. Seesaw arm — one servo deploys two sensors; replaces two actuators.
  2. Debounced collision guard — the ultrasonic cut is hysteretic and debounced (OBSTACLE_TRIP_HITS consecutive in-range pings to trip, OBSTACLE_HYST_MM further to clear), so one HC-SR04 glitch can't stop the robot and a bare threshold can't chatter. The decision logic is a pure function in collision.h, unit-tested on the host by arduino/tools/test_collision.cpp.
  3. Median-of-60 sampling window — every reading is the median of ~60 ADC reads over 3 seconds; the rulebook's own "multi-sample averaging" example, done one better (spike-proof).
  4. Failsafe engineering — WiFi dead-man stop (500ms without a repeated command halts the motors), edge-triggered collision cut with an active short-brake so the robot stops dead rather than coasting, and a sample interlock that stops the motors before the servo moves.
  5. Operator-tagged sector labels — the operator selects S1–S4 on the RC page before each sample, so every reading carries a label a judge can verify by eye; ⌖ REZERO recovers the dead-reckoned pose after an official re-centres the robot.
  6. Self-contained data pipeline — robot serves its own RC page from flash and a live /samples feed; matplotlib live table + CSV on the laptop; JSON drag-drops into an offline visualiser with arena replay.

Cat 5 — Aesthetics (5 pts)

  • Team name/branding on chassis; consistent cable colours; clean sensor mounts.

Cat 6 — Case Competition (40 pts)

See the Competition Guide — 1-hour prep plan, argument template, Q&A bank.


Day 1 — 3-Minute Innovation Pitch Outline

Time Content
0–35s Seesaw arm: one servo, two sensors, half the failure modes
35–70s Pond safety: operator stops short and samples with the arm; debounced ultrasonic guard prevents forward collisions
70–105s Self-hosted firmware: RC-only, phone RC over the robot's own AP; RC, diag and data pages all served from flash
105–140s Engineering depth: median-of-60 sampling (spike-proof); calibrated voltage divider; dead-man + active-brake failsafes
140–180s Data pipeline: live matplotlib table + CSV during the run; JSON → offline visualiser with replay; buffer for questions