Intralogistics API
All intralogistics symbols are exported from the single simulatte.intralogistics namespace.
For a conceptual overview and worked examples, see the
Intralogistics guide and the
Intralogistics example gallery.
Layout
Node
dataclass
Arc
dataclass
LayoutGraph
Pathfinding
PathPlanner
Bases:
DijkstraPlanner
AStarPlanner
Traffic
TrafficManager
Bases:
FreeTrafficManager
ResourceBasedTrafficManager
PathCheckResult
dataclass
Products & storage
SKU
dataclass
Warehouse
Vehicles
AGV
AGVType
dataclass
AGVState
Bases:
SpeedProfile
Bases:
TrapezoidalProfile
Battery
Facilities
ChargingStation
Models a battery charging/swapping facility placed on a graph node.
AGVs navigate to this station when their battery is low. The station
provides concurrent charging slots (modeled as a simpy.Resource) and
optionally supports battery swapping via a finite pool of pre-charged
batteries (modeled as a simpy.Container).
ParkingArea
A facility where idle AGVs wait for their next assignment.
Wraps a simpy.Resource to model finite parking capacity. Each AGV's
resource request is tracked individually so that leave() releases the
correct slot.
Orders
TransferOrder
dataclass
OrderStatus
Bases:
Orchestration
FleetCoordinator
Central orchestrator for AGV fleet operations and mission lifecycle.
Manages transfer orders from submission through dispatch, travel, pick,
transit, deliver, and completion. Analogous to ShopFloor for
production simulations but focused on warehouse-to-warehouse AGV transport.
Policies
DispatchStrategy
Bases:
NearestIdleStrategy
Select the closest idle AGV that can carry the order's SKU and quantity.
Distance is measured as the sum of Euclidean segment lengths along the
shortest graph path from the AGV's current node to the origin warehouse's
nearest output bay. Ties are broken by agv_id (lexicographic).
RoundRobinStrategy
Cycle through compatible idle AGVs via an internal cursor.
The cursor increments monotonically. If fleet composition changes mid-simulation, cycling order over the filtered candidate list becomes non-deterministic. This is by design -- the modulo arithmetic prevents errors, but strict round-robin fairness is not guaranteed across fleet changes.
ReplenishmentPolicy
Bases:
ReorderPointPolicy
Trigger replenishment orders when inventory drops below a reorder point.
For each SKU whose inventory is below the configured threshold, creates a
TransferOrder sourced from the warehouse with the highest stock of that
SKU — unless an in-transit order for the same SKU to the same warehouse
already exists.
RepositioningPolicy
Bases:
RepositioningContext
dataclass
StayInPlace
AGV stays at its current node after completing a task.
NearestParkingPolicy
Send the AGV to the nearest parking area that has available capacity.
LoadRecoveryStrategy
Bases:
ReturnToOrigin
Signal the coordinator to return cargo to the origin warehouse.
Sets order status to PENDING. Physical travel and inventory return are handled by the coordinator's _return_cargo_to_origin().
ResumeDelivery
Keep the current AGV assignment and set the order to IN_TRANSIT.
The actual movement is orchestrated by FleetCoordinator.
Metrics
OrderMetricsCollector
Bases:
EMAOrderMetrics
dataclass
Tracks exponential moving averages of order lifecycle metrics.
IntralogisticsTimeSeriesCollector
Bases:
DefaultIntralogisticsCollector
dataclass
Records time-series data for intralogistics metrics.
Builders
build_simple_system
build_simple_system(
env: Environment,
*,
n_agvs: int = 2,
agv_max_speed: float = 2.0,
agv_acceleration: float = 1.0,
agv_battery_capacity: float = 100.0,
agv_weight_capacity: float = 500.0,
agv_volume_capacity: float = 10.0,
products: list[SKU] | None = None,
initial_inventory_a: dict[SKU, int] | None = None,
initial_inventory_b: dict[SKU, int] | None = None,
) -> tuple[
FleetCoordinator,
list[AGV],
Warehouse,
Warehouse,
LayoutGraph,
]
Create a complete intralogistics system with sensible defaults.
Builds a 5-node linear graph::
WH_A_OUT(0,0) -- N1(5,0) -- N2(10,0) -- N3(15,0) -- WH_B_IN(20,0)
with bidirectional arcs, two warehouses (A at the left end, B at the right end), a charging station at N2, and n_agvs AGVs starting at N1.
Returns:
| Type | Description |
|---|---|
|
|