Environmental Robotics Challenge

ENVIROBOT

Autonomous survey robot navigating a 1.5m arena for measuring water turbidity and soil moisture across four terrain sectors.

// system.architecture

From arena to insight

01

Navigate the Arena

The robot autonomously sweeps a 1.5m octagonal arena using a lawnmower pattern — dividing four terrain sectors: sandpaper, wet soil, grass, and sand. Dead-reckoning via encoder odometry fused with IMU heading keeps position accurate without GPS.

ESP32TURBIDMOIST0° DIAGNOSTIC90° NEUTRAL
02

Deploy Sensors

A single MG996R servo controls two arms. Rotating to 0° deploys the SEN0189 turbidity probe into diamond-shaped water slots. Rotating to 180° presses the capacitive soil sensor onto reddish-brown disc markers. 90° is the neutral travel position.

{ "run_id": "run_001",
"total_duration_s": 427,
"sectors_completed": 4,
"samples": [
{ "type": "WATER", "value_ntu": 42.3 },
{ "type": "SOIL", "value_pct": 68.5 }
]
}
Map ReplayNTU ChartHeatmap
03

Data to Dashboard

All 12 measurements log to SPIFFS in structured JSON — run_id, timestamp, sector, terrain, NTU or moisture %. The ESP32 hosts a REST API at /data. Drop the file into the visualiser for instant arena replay, charts, and sector analysis.

[ sample output ]

Four sectors. 12 measurements.

Each sector logged independently — compare turbidity and moisture across terrain types.

S1Sandpaper
Water Turbidity
42.3 NTU
Moderate
Soil 1
68.5%
Soil 2
71.2%
S2Wet Soil
Water Turbidity
89.1 NTU
Moderate
Soil 1
82.3%
Soil 2
79.8%
S3Grass
Water Turbidity
31.2 NTU
Clean
Soil 1
45.6%
Soil 2
48.9%
S4Sand
Water Turbidity
55.7 NTU
Moderate
Soil 1
22.1%
Soil 2
19.8%

ENVIROBOT · Environmental Robotics Challenge · ToTheTrashcue