Skip to content

Ahmad-Yehya/roboticLawnMower

Repository files navigation

Robotic Lawnmower Simulator

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).

✅ Features

  • Simple .txt input format
  • Grid-based simulation with grass, rocks, movement
  • Crash detection and uncut grass reporting
  • Portable: works on Raspberry Pi and Linux
  • Dockerized environment

📌 Rules & Assumptions

  • 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

📈 Workflow

  • Requirements and user manual are provided

📂 Project Structure

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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages