A C-based simulator for testing lawnmower movement algorithms on Raspberry Pi or x86.
This is a minimal viable product (MVP) simulation of a robotic lawnmower built in C for Raspberry Pi-compatible environments. It accepts a text-based input format and outputs the simulation result (crash status, uncut grass, mower position).
- Simple
.txtinput format - Grid-based simulation with grass, rocks, movement
- Crash detection and uncut grass reporting
- Portable: works on Raspberry Pi and Linux
- Dockerized environment
- Grid coordinates start at (0,0) - top-left corner
- Starting position (0,0) is never a rock
- Moves are atomic (1 tile per command)
- Crash terminates simulation immediately
- All tiles are uncut by default
- Landing on uncut tile changes it to cut
- Landing on cut tile does nothing
- Landing on a rock, crash and terminates simulation immediately
- Landing outside the grid, crash and terminates simulation immediately
- Requirements and user manual are provided
View
├── src/ # Source code (C)
├── input/ # Sample input files
├── output/ # Output after simulation
├── test/
│ ├── unity/ # Unity framework files
│ ├── test_grid.c
│ ├── test_simulator.c
│ └── test_integration.c
├── diagrams/
│ ├── flowchart.png
│ └── sequence_diagram.png
├── run_simulation.sh # Run script
├── run_test.sh # Run script
├── Dockerfile # Containerized environment
├── Makefile # Build configuration
├── README.md
├── design_doc.md
├── user_manual.md
├── requirements.md
├── presentation.pptx