Intralogistics
For generated lattices, lanes, ports and migration from explicit graphs, see the layout guide.
Simulatte's intralogistics subpackage models warehouse-to-warehouse material transport using AGV (Automated Guided Vehicle) fleets. It provides a complete toolkit for building, running, and analyzing intralogistics simulations.
Import everything from a single namespace:
from simulatte.intralogistics import (
Node,
Arc,
LayoutGraph, # spatial layout
SKU,
Warehouse, # products and storage
AGV,
AGVType,
TrapezoidalProfile, # vehicle fleet
FleetCoordinator,
TransferOrder, # orchestration
ChargingStation,
ParkingArea, # facilities
NearestIdleStrategy, # dispatch policies
RoundRobinStrategy,
NearestParkingPolicy, # repositioning
ReorderPointPolicy, # replenishment
ReturnToOrigin, # load recovery
OrderEMACollector, # order-level metrics
FleetTimeSeries, # time-series + plots
FleetKPIs, # window-aware KPIs
)
Core concepts
Layout --- Define your facility as a directed graph of Node and Arc objects. Nodes have (x, y) coordinates; arcs can be one-way or bidirectional. LayoutGraph provides pathfinding via Dijkstra or A*.
Warehouses --- Each Warehouse has input/output bays (graph nodes), finite pick/put slots, and per-SKU inventory tracked as SimPy containers.
AGV fleet --- AGV instances are typed by AGVType, which bundles a SpeedProfile, battery parameters, and capacity limits. TrapezoidalProfile models acceleration, cruising, and deceleration with optional battery degradation and load speed factors.
FleetCoordinator --- The central orchestrator (analogous to ShopFloor for production). It manages the full mission lifecycle: dispatch, travel, pick, transit, deliver, reposition, and charge. Pluggable strategies control each decision point.
Policies --- Dispatch (NearestIdleStrategy, RoundRobinStrategy), repositioning (NearestParkingPolicy, StayInPlace), replenishment (ReorderPointPolicy), and load recovery (ReturnToOrigin, ResumeDelivery).
Metrics --- Collectors on the event bus, bound to a fleet coordinator and attached with collector.attach(env). OrderEMACollector tracks exponential moving averages of fulfillment time, dispatch delay, travel times and late orders; every FleetCoordinator attaches one as coordinator.metrics unless built with default_metrics=False. FleetTimeSeries(coordinator) records time-series data (inventory keyed by warehouse id and SKU id) and provides plot methods: plot_fleet_utilization(), plot_throughput(), plot_pending_orders(), plot_inventory(). FleetKPIs(coordinator) computes window-aware KPIs, keyed "<fleet id>/<kpi>".
Examples
Three runnable examples in the examples/ folder provide a progressive learning path:
- Examples walkthrough: layout diagrams, feature progression, and annotated output for all three examples.
Next
- Examples walkthrough
- Basic Usage (production planning quick start)
- Tutorials (job-shop tutorials)