BETA MowgliNext is under active development — not yet ready for production use. Follow progress on GitHub
🪨

MowgliNext

Your mower, but smarter. Open-source autonomous navigation built on ROS2 — so your robot mower actually knows where it is, where it's going, and what's in the way.

How It Works

📡

See

LiDAR scans the surroundings 10x/second. Required for obstacle avoidance and optional Kinematic-ICP drift correction. RTK-GPS pinpoints position to centimeter accuracy.

🧠

Think

A behavior tree decides what to do: mow, dock, avoid obstacles, wait for rain to stop. Nav2 plans optimal paths. No random bouncing.

🔄

Mow

Cell-based strip coverage generates efficient mowing patterns. The robot follows them with sub-centimeter accuracy, tracking progress and replanning around obstacles in real time.

What Makes MowgliNext Different

🗺️

RTK Localization, Two Backends

No SLAM needed. By default robot_localization's dual EKF fuses RTK-GPS + IMU + wheel odometry under REP-105. For RTK-Float windows or GPS-denied corners, switch on the opt-in GTSAM iSAM2 factor-graph localizer (fusion_graph) — same inputs, plus LiDAR scan-matching and loop-closure factors. Optional Kinematic-ICP gives an extra LiDAR drift-correction layer to the local EKF in either mode.

📡

Dual-EKF Sensor Fusion

Standard robot_localization stack: local EKF for continuous odometry, global EKF for GPS-anchored map pose. Battle-tested, under two_d_mode, with a tight non-holonomic constraint on the wheel input.

🧠

Behavior Trees

Reactive, composable control logic using BehaviorTree.CPP v4. Emergency guards, docking, coverage — all orchestrated by a single tree.

🚧

Obstacle Avoidance

Real-time collision monitor with polygon stop/slow zones. The robot navigates around obstacles, not just stops.

🐳

Docker Deploy

One-command deployment with Docker Compose. Cyclone DDS for reliable inter-container communication on ARM boards.

🌐

Web GUI & Diagnostics

State-adaptive dashboard with hero card, live sparkline telemetry, radial gauges, and health checks. Weekly schedule grid, statistics with bar charts, and full map editor. Dark & light themes, responsive mobile layout. React + Go + WebSocket.

🗺️

Multi-Area Mowing

Record multiple mowing areas from your phone. The robot mows them all sequentially, optimizing paths across zones. Save unlimited area layouts.

📊

Statistics & History

Automatic session recording with aggregate stats: area covered, time spent, blade hours, battery cycles. Review mowing history anytime.

🔌

Your Existing Hardware

Works with your stock YardForce board — no need to replace electronics. Add sensors and capabilities on top of what you have.

🔓

Fully Open Source

GPLv3 licensed. ROS2 stack, firmware, GUI, Docker configs — everything in one monorepo. Fork it, modify it, contribute back.

Dashboard

State-adaptive hero card, live sparkline telemetry, and contextual actions — from any device.

Dashboard — mowing
Schedule Statistics

System Architecture

Web GUI (:4006) Foxglove (:8765) │ │ ▼ ▼ ┌──────────────────────────────────────────────────────┐ │ ROS2 Kilted Stack │ │ │ │ ┌─────────────┐ ┌──────────┐ ┌─────────────────┐ │ │ │ Nav2 │ │Kinematic │ │ Behavior Tree │ │ │ │ navigate │ │ ICP │ │ main_tree.xml │ │ │ │ dock/undock │ │ (LiDAR) │ │ 10 Hz tick │ │ │ │ coverage │ │ │ │ │ │ │ └─────────────┘ └──────────┘ └─────────────────┘ │ │ ┌─────────────┐ ┌──────────┐ ┌─────────────────┐ │ │ │ Coverage │ │robot_loc│ │ Hardware │ │ │ │ Planner │ │ Dual EKF │ │ Bridge │ │ │ │ (cell-based)│ │GPS+IMU+Odometry│ │ COBS serial │ │ │ └─────────────┘ └──────────┘ └────────┬────────┘ │ └───────────────────────────────────────────┼──────────┘ │ │ │ ┌─────┴─────┐ ┌─────┴─────┐ ┌──────┴──────┐ │ GPS │ │ LiDAR │ │ STM32 │ │ u-blox │ │ LD19 │ │ Firmware │ │ ZED-F9P │ │ /scan │ │ Motors/IMU │ │ RTK+NTRIP │ │ │ │ Blade safety│ └───────────┘ └───────────┘ └─────────────┘

Get Started

Pick your hardware, copy the command, paste it on your mower's board. Done.

Hardware Backend

`mowgli` stays the stable default. `mavros` is an advanced Pixhawk path and disables the direct GNSS/GPS container selection below.

GNSS Backend

Driver selection — picks which sensor container is installed

GPS Receiver

Protocol + wiring for the selected GNSS path. Unicore completes its real serial device selection inside the installer, so this web preset is omitted there.

LiDAR Sensor

Required for obstacle avoidance and optional Kinematic-ICP drift correction

TF-Luna Rangefinders Unavailable

Temporarily disabled on this branch. The installer keeps TF-Luna support off until the runtime services are production-ready again.

Release Channel

`main` is the stable channel. `dev` tracks the dev branch and pulls `:dev` container images — pick this if you want to iterate alongside upstream development.

Your install command

SSH into your Raspberry Pi and paste this command:

The installer will still ask for mower-specific settings (GPS datum, NTRIP, dock position) interactively.

1

Configure & Copy

Pick your sensors above. The composer generates a one-line install command tailored to your hardware.

2

Run on Your Board

SSH into your mower's Raspberry Pi and paste the command. It installs Docker, drivers, and the full ROS2 stack.

3

Open the GUI

Once running, open the web interface to define mowing areas, monitor the robot, and fine-tune settings.

http://<mower-ip>:4006

Standing on the Shoulders of OpenMower

MowgliNext exists because of OpenMower. They proved that robot mowers can be truly intelligent — not just bouncing randomly or following a buried wire, but actually knowing where they are and planning where to go. That inspiration sparked everything you see here.

We're not trying to replace OpenMower — we're taking a different path. OpenMower replaces the stock electronics with custom boards designed for the job. Mowgli works with your existing hardware, adding capabilities on top. As our ambitions grew, we needed a fresh ROS2 foundation to keep evolving — and by going our own way, we give OpenMower more freedom to iterate too.

Different paths, same goal: smarter mowers for everyone.
Thank you, OpenMower team.

Thank You

🔧

cloudn1ne

For the original Mowgli reverse engineering work — cracking open the YardForce hardware and showing us what's inside. None of this would exist without that first step.

🌙

nekraus

For the countless late nights spent together getting things to actually work. Debugging hardware at 2am is better with a friend.

🌍

OpenMower

For proving that robot mowers can be truly intelligent. You showed us what's possible and inspired an entire community of builders.

🇫🇷

Mowgli French Community

For all your efforts — testing, feedback, bug reports, encouragement. You kept us going when things got hard.

💚

Every Mowgli User

Every person who installed our firmware, filed a bug, asked a question, or just said "it works!" — you give us the courage to keep spending nights on this project.

Community Powered

MowgliNext is built by the community. Join us — report bugs, suggest features, or contribute code. Every contribution makes autonomous mowing better for everyone.