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.
LiDAR scans the surroundings 10x/second. Required for obstacle avoidance and optional Kinematic-ICP drift correction. RTK-GPS pinpoints position to centimeter accuracy.
A behavior tree decides what to do: mow, dock, avoid obstacles, wait for rain to stop. Nav2 plans optimal paths. No random bouncing.
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.
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.
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.
Reactive, composable control logic using BehaviorTree.CPP v4. Emergency guards, docking, coverage — all orchestrated by a single tree.
Real-time collision monitor with polygon stop/slow zones. The robot navigates around obstacles, not just stops.
One-command deployment with Docker Compose. Cyclone DDS for reliable inter-container communication on ARM boards.
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.
Record multiple mowing areas from your phone. The robot mows them all sequentially, optimizing paths across zones. Save unlimited area layouts.
Automatic session recording with aggregate stats: area covered, time spent, blade hours, battery cycles. Review mowing history anytime.
Works with your stock YardForce board — no need to replace electronics. Add sensors and capabilities on top of what you have.
GPLv3 licensed. ROS2 stack, firmware, GUI, Docker configs — everything in one monorepo. Fork it, modify it, contribute back.
State-adaptive hero card, live sparkline telemetry, and contextual actions — from any device.
Pick your hardware, copy the command, paste it on your mower's board. Done.
`mowgli` stays the stable default. `mavros` is an advanced Pixhawk path and disables the direct GNSS/GPS container selection below.
Driver selection — picks which sensor container is installed
Protocol + wiring for the selected GNSS path. Unicore completes its real serial device selection inside the installer, so this web preset is omitted there.
Required for obstacle avoidance and optional Kinematic-ICP drift correction
Temporarily disabled on this branch. The installer keeps TF-Luna support off until the runtime services are production-ready again.
`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.
SSH into your Raspberry Pi and paste this command:
The installer will still ask for mower-specific settings (GPS datum, NTRIP, dock position) interactively.
Pick your sensors above. The composer generates a one-line install command tailored to your hardware.
SSH into your mower's Raspberry Pi and paste the command. It installs Docker, drivers, and the full ROS2 stack.
Once running, open the web interface to define mowing areas, monitor the robot, and fine-tune settings.
http://<mower-ip>:4006
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.
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.
For the countless late nights spent together getting things to actually work. Debugging hardware at 2am is better with a friend.
For proving that robot mowers can be truly intelligent. You showed us what's possible and inspired an entire community of builders.
For all your efforts — testing, feedback, bug reports, encouragement. You kept us going when things got hard.
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.
MowgliNext is built by the community. Join us — report bugs, suggest features, or contribute code. Every contribution makes autonomous mowing better for everyone.