Warehouse Robot Simulator

GitHub Repo Code Link
Floor size8×8
Fleet
HumanoidGround
DriverGround
QuadrotorAerial
Layout seed
Rules
Path order
Tie-break
Step
0
Arrived
0
Detected
0
Resolved
0
Unresolved
0
Ready
0 / 0
Filled shape = robot, outline = its goal Conflict detected Unresolved collision Space ← →

About the project

The Warehouse Robot Management System simulates a mixed fleet moving across an N×N warehouse floor. Every robot has a start cell and a goal cell, and a central planner moves all robots one step at a time until each one reaches its goal without two robots occupying the same space.

Robot types

  • Humanoid and Driver are ground robots and share the floor.
  • Quadrotor is aerial. It flies in its own layer, so it only conflicts with other quadrotors.

How a step works

  • Plan: each robot picks the next cell toward its goal, closing the X gap first, then Y.
  • Detect: two robots in the same layer that want the same cell are in conflict.
  • Resolve: the robot closer to its goal (Euclidean distance) goes; the other waits. Ties are a coin flip.
  • Apply: all moves happen at once, then the next step begins.

Repo rules vs Safer rules

  • Repo rules match the Python code. Pairs are checked once, so a yield can create a new conflict that goes unseen, and robots parked on their goals can block others forever.
  • Safer rules re-check until no conflicts remain, catch head-on swaps, and let blocked robots sidestep or plan a path around parked robots.

Reading the log

  • DETECT a conflict was found. YIELD, SIDESTEP, REROUTE, DETOUR show how it was handled.
  • CRASH two robots ended up in the same cell or passed through each other.
  • DEADLOCK no robot could move for 6 steps.

Built with Python, object-oriented design and matplotlib in the original repo. This page runs the same planner in the browser.

 sim.log