Solo build · HW + SW Open source · MIT Gravely ZT X 52 · 2026

Autonomous
Zero-Turn Mower

A ground-up retrofit that turns a commercial gas zero-turn into a self-driving, iPad-controlled robot. RTK GPS, LiDAR, cameras, and on-device AI — engineered end-to-end across hardware, firmware, control software, and parametric CAD, and reproducible on any zero-turn by re-measuring a handful of dimensions.

±2cmRTK position
13TOPS on-device AI
24Printed parts
25/25Tests green
3Compute units
Interactive 3D · drag to orbit

The full machine, in your browser

Every component is modeled to the datasheet as one parametric assembly. This is the real exported geometry — drag to rotate, scroll to zoom. The retrofit hardware bolts onto a confirmed Gravely ZT X 52 (2021, Kohler).

assembly.glb · 1.59 × 1.36 × 1.32 m drag · scroll · pinch
loading 3D model…
Dual RTK GPS mast LiDAR front mast Seat-mounted brain box Front + rear cameras Lap-bar actuators E-stop pedestal + PTO relay
System architecture

Three brains, one bus

Not one black box — responsibility is split across compute that's purpose-built for each job, coordinating over MAVLink. A real-time flight controller drives and navigates; a Linux companion sees; a microcontroller closes the analog steering loop the autopilot can't.

The Driver

Pixhawk 6C

ArduPilot Rover · skid-steer
  • Owns drive: throttle-left / throttle-right
  • RTK waypoint missions + geofence
  • Hardware / RC / GCS failsafe chain
  • Fail-to-neutral on any link loss
The Eyes

Raspberry Pi 5 + Hailo-8L

13 TOPS NPU · vision + UI host
  • Camera AI on the Hailo NPU, on-device
  • Fuses LiDAR + ultrasonic → stop verdict
  • Serves one web UI: iPad + on-unit kiosk
  • Uploads coverage missions to the FC
The Hands

ESP32

Lap-bar PID · closed loop
  • Reads FC PWM setpoint + 2 position pots
  • PID-drives both lap-bar actuators
  • Fails actuators to neutral on e-stop
  • The loop the autopilot can't run directly
PixhawkMAVLinkPi 5
Sense
Dual RTK GPS±2cm
360° LiDAR10Hz
2× camerasAI
Overhead sonar1.6m
feeds
Think
Pixhawk 6Cnav
Pi 5 + Hailovision
ESP32PID
commands
Act
Lap-bar L/Rdrive
PTO relayblades
Throttle servoRPM
The control UI · running live

The interface, not a screenshot

This is the actual planned control UI — one web app that serves both the iPad over WiFi and the on-unit touchscreen. It's embedded here running on an in-browser telemetry simulator, so it arms, drives a coverage route, draws the mowed trail, and reacts to live hazards in real time. Tap the controls — they work.

LIVE — simulated telemetry

Tesla-clean, built for a touchscreen

A single status verb tells you the machine's state at a glance — PARKED → READY → MOWING — backed by a top-down mockup that turns red when blades engage and throws an obstacle arc when something's ahead.

Teach & repeat and draw-a-zone → auto-coverage — the planner fills the rows and uploads them as a mission.
Live OpenStreetMap with an RTK heading arrow and a green trail of exactly what's been mowed.
Front + rear AI camera feeds with grass-coverage % and live hazard boxes from the on-device model.
TILT, OVERHEAD & obstacle chips flip to warning/critical and cut the mission before the hazard.
On-screen E-STOP commands HOLD · disarm · blade-off — backing up the physical kill chain.
Precision

Centimeters, not "close enough"

The upgrade that matters is dual-antenna moving-baseline heading. One RTK antenna gives a great position but a noisy heading at a standstill; a second antenna fixes heading geometrically, so the machine tracks straight rows from the moment it starts.

±2 cm
Position
RTK-fixed ZED-F9P
~0.4°
Heading
moving baseline
few cm
Cross-track
row-to-row
13 TOPS
On-device AI
Hailo-8L

Teach & Repeat

Drive the path once; it repeats the RTK track. Routes persist on the Pi.

Auto-Coverage

Drive the perimeter; a boustrophedon planner fills the rows and uploads AUTO waypoints.

Overhead Clearance

Upward ultrasonic stops the machine below 1.6 m — it won't drive under low limbs.

Incline Safety

IMU pitch/roll watchdog, hard cutoff past 15°. No mowing across steep grades.

Safety

A layered kill chain

A 52" deck can kill. Safety isn't one switch — it's independent layers that each cut drive and blades, so no single failure leaves the machine moving. Blades stay disconnected until every layer is proven.

Physical e-stop
Normally-closed, wired in series with drive + PTO — cuts power independent of any code
RC kill switch
Independent radio cutoff for drive relay + blade relay
Software interlock
Evaluates incline (15°), overhead (1.6 m) & obstacle every cycle → cuts drive + PTO
Link / signal loss
ArduPilot failsafes hold; ESP32 fails actuators to neutral; PTO relay opens
CAD & manufacturing

Parametric · print-ready · reproducible

The entire mount system is one OpenSCAD model. Section 1 of params.scad holds the only per-machine measurements — change those and re-render to fit a different zero-turn. Every printable part is bed-fit checked and ships with a baked-in adhesion brim.

SpecValue
Printable parts24, all bed-fit verified
Target printerFlashForge Adventurer 3 · 150 × 150 mm bed
Bed adhesionBrim welded onto every part (slicer brim off)
MaterialASA / PETG — UV + heat tolerant, outdoor
Design toleranceSLOP 0.2 mm · clearance-fit 0.4 mm for FDM ±0.3 mm
Port to another ZTRRe-measure params.scad §1 → re-render → re-slice
Software · firmware · parts

Built and tested, end to end

Companion (Python)

  • HTTP + SSE telemetry, JSON control
  • Coverage planner & mission upload
  • Safety interlock + vision loop

Firmware

  • ESP32 lap-bar PID, fail-to-neutral
  • ArduPilot skid-steer params
  • Moving-baseline heading config

Tested

  • 25/25 backend tests green
  • Pure functions for safety & planning
  • Full wiring / pinout diagrams
Build tierWhat you getApprox.
FunctionalPixhawk · single RTK · Pi 5 + Hailo · LiDAR · 2 cameras · actuators · relays · display≈ $1,644
PrecisionEverything above + dual-antenna moving-baseline heading kit≈ $1,812

Real, in-stock parts — verified against live listings, no fabricated SKUs. Full itemized BOM in the repo.

Open source & what's next

Build it yourself — or scale it

The whole project is open source under the MIT License — CAD, firmware, control software, wiring diagrams, and the build manual. The retrofit generalizes to any zero-turn, which opens a path toward robot-mowing-as-a-service for commercial grounds and solar-farm vegetation management.

Source repository

Everything: cad/ · software/ · firmware/ · docs/ · cart/. Clone it, edit one params file, and print. MIT · 25/25 tests · 24 print-ready parts.

Open on GitHub Build manual

Honest status

Design, CAD, firmware, control software, and docs are complete and verified. Not physically built yet — a multi-month, safety-gated build, not a plug-and-play kit.