Easy-to-manage touch screens
무료 오픈소스 터치스크린으로 USB 설정 가이드, 드래그‑드롭 편집기, 로컬 제어를 제공하며 Home Assistant용으로 제작되었습니다
MowgliNext — ROS2 autonomous robot mower monorepo (ROS2 stack, Docker, GUI, firmware)
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
MowgliNext has reached its first beta: a complete autonomous mowing stack running on real hardware — undock, mow, avoid obstacles, dock, resume. We're now inviting testers to run it on their own mowers and help us harden it. Expect rough edges, and tell us what breaks: open an issue or join the discussion. The mower mows to the edge. Full notes: v1.5.0 release. [README 설치·사용 부분 발췌] Quick Start Visit mowgli.garden to pick your hardware and get a personalized install command, or:README 전문 보기 ↗
🌱 First Public Beta — Open to Testers
MowgliNext has reached its first beta: a complete autonomous mowing stack running on real hardware — undock, mow, avoid obstacles, dock, resume. We're now inviting testers to run it on their own mowers and help us harden it. Expect rough edges, and tell us what breaks: open an issue or join the discussion.
See the plan, know why it stopped. Full notes: v1.6.0 release.
| 🗺️ Mowing lines on the map | Preview the rings and swaths the planner will really drive, and set the angle, the perimeter direction and the start point per area. |
| 🛑 Know why it stopped | The dashboard names the reason the mower stopped (an area it could not start or make progress in, a failed dock, undock or charge) until your next command. |
| 📐 Corners actually mowed | Sharp boundary tips are pivoted instead of rounded off, headlands are finished before the interior, and dead-end tongues narrower than the mower are no longer planned. |
| 🔌 OpenMower v1 and Pixhawk (beta) | Run MowgliNext on stock OpenMower v1 electronics (LowLevel + xESC) or on an ArduRover Pixhawk through MAVROS. Bench-test first. |
| 🌧️ Rain from your weather station | A roof station or a Home Assistant automation can report rain over MQTT, next to the mower's own sensor. |
| 🧭 Smarter transits | The planning grid covers your whole garden, transits keep a soft berth around drawn obstacles, and a transit can start from inside the dock. |
| 🤖 Your mower, to scale | A URDF-scaled mower with shells, colours and model presets, fleet peers on the map, and a RAM blackbox that saves the minute before an incident. |
| 🔧 Firmware protocol v9 | Stall-free USB recovery on F401 boards, the charge voltage ceiling honoured, firmware timing kept through dropped packets. Needs a reflash, which the GUI offers after the update. |
A fully autonomous mowing stack running on real hardware: undock, navigate to zones, mow strip-by-strip with sub-centimeter accuracy, avoid obstacles, dock to charge, and resume.
Core: GTSAM iSAM2 factor-graph localizer (fusion_graph) — sole map+odom localizer (GPS + IMU + wheels, REP-105 map/odom, with an optional LiDAR map anchor that carries the pose through GNSS outages) · Nav2 navigation · BehaviorTree.CPP v4 · multi-area continuous-subpath coverage
Hardware: YardForce chassis · ARM64 SBC (RK3566/RK3588, RPi 4/5) · RTK-GNSS via the Universal GNSS runtime (u-blox F9P, Unicore UM98x, or generic NMEA) · LiDAR (LDRobot LD19 / STL27L, RPLIDAR A1) · STM32 firmware on the stock Mowgli board, or (beta) stock OpenMower v1 electronics or an ArduRover Pixhawk via MAVROS
See the Architecture wiki page for full system design and data flow.
State-adaptive hero card with a live mini-map, telemetry tiles, health checks, and contextual actions. Weekly schedule grid, statistics with bar charts, and full Mapbox map editor. Dark-only theme with Visual / Balanced / Efficient display modes, responsive mobile layout.
See the GUI wiki page for all pages and design details.
Visit mowgli.garden to pick your hardware and get a personalized install command, or:
curl -sSL https://mowgli.garden/install.sh | bash
The website composer and bootstrap installer now target the Universal GNSS runtime only for direct GNSS setups.
GUI at http://<mower-ip>:4006 · See Getting Started for full setup.
Since v1.4.0 the mower updates itself from the web interface. Settings → Updates checks for published releases every 24 hours, shows a notice in the bell, and installs the release you review with a backup, a health check and automatic rollback. Nothing is ever installed without your confirmation, and never while the robot is mowing.
Updating to v1.6.0 changes the mainboard firmware protocol (v9). In Settings → Updates: Update the update service first, then Review update → Install, then use Flash firmware when the new interface asks for it. Until the board is reflashed the robot refuses to mow. From v1.6.0 on, Review update installs the release's own update service by itself first. Details in the v1.6.0 release notes.
Mowers installed before v1.4.0 enable it by rerunning the installer once (same answers as the first time):
curl -sSL https://mowgli.garden/install.sh | bash # or: cd ~/mowglinext && ./install/mowglinext.sh
The installer updates its own checkout (no git pull needed): it lists any locally modified tracked file and offers to stash it under a named backup, keep it, or abort. Robot configuration under docker/ is not tracked by git and is never touched. If docker/docker-compose.yaml predates managed updates, the installer asks once before replacing it and keeps the old file as docker-compose.yaml.legacy-<date>.
Check docker volume ls | grep mowgli_maps first: if your map volume is not prefixed install_, set COMPOSE_PROJECT_NAME=<your prefix> in docker/.env before rerunning so the stack keeps its data. The legacy mowgli-pull && mowgli-up helpers still work but are no longer the recommended path. Details, tracks, pins and recovery: docs/UPDATES.md.
The ROS 2 stack also has a Webots simulation for development and integration testing. See the ROS 2 simulation instructions for a clean Docker checkout, browser access, and platform notes.
| Directory | Description |
|---|---|
ros2/ | ROS2 stack: Nav2, fusion_graph (GTSAM iSAM2 sole localizer), BT, coverage, hardware bridge |
gui/ | React + Go web interface |
firmware/ | STM32 motor control, IMU, blade safety |
install/ | Interactive installer, hardware presets, modular Docker Compose configs |
docker/ | Manual deployment configs, DDS settings, service orchestration |
sensors/ | Dockerized GNSS & LiDAR drivers |
docs/ | GitHub Pages at mowgli.garden + the docs/claude/ reference index |
| Resource | Content |
|---|---|
| Wiki | Architecture, configuration, deployment, sensors, firmware, BT, GUI, FAQ |
| Website | Landing page, install composer, features overview |
| First Boot | Post-install checklist |
| ROS 2 simulation | Local Webots simulation with Docker |
MowgliNext exists because of OpenMower. They proved robot mowers can be truly intelligent. OpenMower replaces the stock electronics with custom boards; Mowgli works with existing hardware, adding capabilities on top. Different paths, same goal: smarter mowers for everyone. Thank you, OpenMower team.
We welcome contributions! See the Contributing Guide and AI-Assisted Contributing.
Start at CLAUDE.md — safety rules, monorepo layout and the architecture invariants that override everything else. Then load only what you need:
docs/claude/doc-index.md — which document is authoritative and which is a dated recorddocs/claude/codemaps/ — per-area "where to look" maps, plus the nested CLAUDE.md in ros2/, gui/, firmware/, install/, docker/, sensors/docs/claude/ros-interfaces.md · parameters.md · testing-ci.md — every topic/service/action, every config key, every test and the CI job that gates itMowgliNext is published under a dual license:
See the LICENSE file for details.