EnviroBot Documentation

Competition: EnviroBot Environmental Robotics Challenge | Strategy: RC-first, autonomy as stretch goal


System Overview

EnviroBot is a two-component system:

1. Robot — ESP32-based differential-drive rover. Driven by remote control (phone joystick over its own WiFi AP), with an autonomous wander mode as a stretch goal. Collects 12 environmental measurements (4 water turbidity + 8 soil moisture) and outputs structured JSON.

2. Web Platform — Next.js application on Cloudflare Pages. Documents the project, visualises run data, and serves as the competition showcase.


Competition Quick Reference

Parameter Value
Testing Day Thursday 30 July (W9) — inspection + measurement run + robot assessment
Closing Night Friday 31 July, 5–9pm — case competition presentation
Run time limit 8 minutes maximum (−5 pts if exceeded)
Required measurements 12 total: 4 water turbidity + 8 soil moisture
Arena Octagonal, ~1.5m diameter, 4 terrain sectors
Max score 100 points across 6 judging categories

Scoring Summary

# Category Points
1 Technical Measurement Performance 30
2 Data Output & Visualisation 10
3 Build Quality & Workmanship 5
4 Innovation & Engineering Design 10
5 Robot Aesthetics 5
6 Closing Night Case Competition 40
Total 100

Note: The official rulebook contains a scoring inconsistency in section headers. The table above totals correctly to 100 and is treated as authoritative (confirmation requested from organisers). Cat 6 (Case Competition, 40 pts) is the single highest-weight category — presentation prep is not optional.

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
Arena surface damage −5 pts per incident

Why RC-First

The rulebook explicitly permits remote-controlled robots. Full autonomy affects only the top band of Category 1 ("navigates independently") plus some Innovation credit. The robot has no wheel encoders, so coordinate-accurate autonomous navigation is not achievable — RC driving with operator sector-tagging is the reliable path to accurate, well-labelled data. Autonomous wander mode exists as a demonstrable stretch goal.


Arena Layout

         Outer octagon wall (~1.5m diameter, dark timber)
        ╱──────────────────────────────────────╲
       ╱  S1: Sandpaper (beige) │ S2: Wet Soil  ╲
      ╱   ◇ water  ● soil       │  ● soil ◇ water ╲
     │    ● soil               ─┼─         ● soil  │
      ╲   S3: Grass (green)   ─ ─  S4: Sand        ╱
       ╲  ◇ water  ● soil       │  ● soil ◇ water ╱
        ╲─────────────────────────────────────────╱

◇ = water slot (diamond-shaped, RECESSED — a wheel trap, never drive over)
● = soil disc (reddish-brown circle)
No walls between sectors — boundary = terrain surface change
Outer wall is the only physical barrier — detected by VL53L0X
Sector Position Terrain
S1 Top-left Sandpaper
S2 Top-right Wet soil
S3 Bottom-left Grass
S4 Bottom-right Sand

Terrains are listed in the rulebook as examples only — confirm the actual surfaces on Testing Day and update TERRAINS[] in data_logger.cpp.


Documentation Map

Section Contents
Hardware Real BOM, pin assignments, power rails, dual I2C buses
Navigation RC procedure, autonomous FSM, position estimation limits
Sensors Turbidity (voltage divider), soil moisture, colour, distance
Calibration Pre-competition calibration for every constant in config.h
JSON Schema Frozen run data format — visualiser depends on exact fields
Scoring Full rubric, deductions, per-category strategy
RC & Communications WiFi AP, HTTP protocol, RC page
Competition Guide Day 1 pitch, Day 2 prep plan, argument template
Inspection Checklist Pre-run and pre-presentation checklists
Rules Key competition rules from the official rulebook