# Systems Perspective Description Language — AMR Fleet Logistics (SPDL-FLEET) **Specification Document ID:** `SPDL-FLEET-SPEC-2026-v4.2` **Classification:** Open Epistemic Standard / Real-Time Zero-Heap AMR Fleet Substrate **Principal Architect:** Asse van Nix | Systems Perspective Framework & Proof-Driven Architecture Group **Target Environment:** Zig 0.16.0 Freestanding · Industrial AMR Onboard SBCs · VDA 5050 Replacement **Applied Standards:** ISO/IEC 14977 EBNF · GBNF Maskable · VDA 5050 Replacement · ISO 3691-4 (Driverless Industrial Trucks) · ANSI/ITSDF B56.5 --- ## 1. Epistemic Architecture: Why VDA 5050 Must Be Replaced 1. **VDA 5050 JSON Overhead:** Transmitting JSON orders over MQTT (`order`, `state`) creates significant compute overhead in large fulfillment centers housing 1,000+ AMRs. Parsing JSON arrays on mobile robot microcontrollers drains batteries and induces steering jitter. 2. **Centralized Collision Bottleneck:** VDA 5050 assumes the central fleet manager will prevent route conflicts. When a mobile robot loses Wi-Fi, it either executes emergency stops or blindly continues, causing warehouse gridlocks. **SPDL-FLEET** equips mobile robots with onboard, decentralized $SE(2)$ spatial separation barrier certificates that maintain safety even during total communication dropouts. --- ## 2. Physical Invariants, DAEs & Mathematical Proof Gates ``` SPDL-FLEET MOBILITY MANIFOLD ┌─────────────────────────────────────────────────────────────────────────────┐ │ DIFFERENTIAL DRIVE & MECANUM NON-HOLONOMIC DYNAMICS │ │ x_dot = v * cos(theta), y_dot = v * sin(theta), theta_dot = omega │ ├─────────────────────────────────────────────────────────────────────────────┤ │ ISO 3691-4 SAFETY SEPARATION BARRIER (SE(2) Metric) │ │ h_amr(p_own, p_other) = ||p_own - p_other||_2 - (v_own * t_stop + d_buf) >= 0│ ├─────────────────────────────────────────────────────────────────────────────┤ │ PAYLOAD INERTIAL STABILITY BARRIER │ │ h_tip(a_transverse, a_angular) = h_cg * (a_transverse / g) <= Wheelbase / 2│ └─────────────────────────────────────────────────────────────────────────────┘ ``` --- ## 3. Formal ISO/IEC 14977 EBNF Grammar ```ebnf FleetManifest = { Line } ; Line = [ Whitespace ] , ( Comment | FleetRecord ) , Newline ; Whitespace = { " " | "\t" | "\r" } ; Newline = "\n" | "\r\n" ; Comment = "#" , { AnyChar - Newline } ; FleetRecord = "(I) @FLEET_INVARIANT" , " " , InvariantFields | "(A) @AMR_IDENTITY" , " " , AmrFields | "(B) @CLEARANCE_BARRIER" , " " , ClearanceFields | "(M) @MOTION_ORDER" , " " , OrderFields | "(T) @AGV_TELEMETRY" , " " , TelemetryFields ; InvariantFields = "id:" , Token , " fleet_size:" , Integer , " loop_ms:" , Integer , " alloc_policy:ZERO_HEAP" ; AmrFields = "id:" , Token , " chassis:" , ChassisType , " max_payload_kg:" , Number ; ChassisType = "DIFFERENTIAL" | "OMNIDIRECTIONAL_MECANUM" | "TRICYCLE" ; ClearanceFields = "id:" , Token , " d_safe_m:" , Number , " estop_decel_m_s2:" , Number ; OrderFields = "id:" , Token , " order_id:" , Integer , " nodes:[" , NodeSplineList , "]" ; NodeSplineList = SplinePoint , { " " , SplinePoint } ; SplinePoint = Number , ":" , Number , ":" , Number ; TelemetryFields = "id:" , Token , " x_m:" , Number , " y_m:" , Number , " theta_deg:" , Number , " battery_pct:" , Number ; Token = Letter , { Letter | Digit | "_" | "-" } ; Number = [ "-" ] , Digit , { Digit } , [ "." , { Digit } ] ; Integer = [ "-" ] , Digit , { Digit } ; Letter = "A".."Z" | "a".."z" ; Digit = "0".."9" ; AnyChar = ? Any valid Unicode code point ? ; ``` --- ## 4. GBNF Structured Sampling Grammar ```gbnf root ::= FleetRecord "\n" FleetRecord ::= "(I) @FLEET_INVARIANT" " " InvariantFields | "(A) @AMR_IDENTITY" " " AmrFields | "(B) @CLEARANCE_BARRIER" " " ClearanceFields | "(M) @MOTION_ORDER" " " OrderFields | "(T) @AGV_TELEMETRY" " " TelemetryFields InvariantFields ::= "id:" [A-Za-z0-9_-]+ " fleet_size:" [0-9]+ " loop_ms:" [0-9]+ " alloc_policy:ZERO_HEAP" AmrFields ::= "id:" [A-Za-z0-9_-]+ " chassis:" ("DIFFERENTIAL"|"OMNIDIRECTIONAL_MECANUM"|"TRICYCLE") " max_payload_kg:" [0-9.]+ ClearanceFields ::= "id:" [A-Za-z0-9_-]+ " d_safe_m:" [0-9.]+ " estop_decel_m_s2:" [0-9.]+ OrderFields ::= "id:" [A-Za-z0-9_-]+ " order_id:" [0-9]+ " nodes:[" ( [0-9.-]+ ":" [0-9.-]+ ":" [0-9.-]+ " "* )+ "]" TelemetryFields ::= "id:" [A-Za-z0-9_-]+ " x_m:" [0-9.-]+ " y_m:" [0-9.-]+ " theta_deg:" [0-9.-]+ " battery_pct:" [0-9.]+ ``` --- ## 5. Production SPDL-FLEET Manifest Exemplar ```spdl # ============================================================================== # SPDL-FLEET v4.2 MANIFEST: 1500KG PALLET TRANSPORT AUTONOMOUS MOBILE ROBOT # Standard: ISO 3691-4 / VDA 5050 Replacement | Onboard Real-Time Core # ============================================================================== (I) @FLEET_INVARIANT id:INV-AMR-WH-A fleet_size:250 loop_ms:20 alloc_policy:ZERO_HEAP # --- PHYSICAL ROBOT IDENTITY --- (A) @AMR_IDENTITY id:AMR_HEAVY_01 chassis:DIFFERENTIAL max_payload_kg:1500.0 # --- ONBOARD SPATIAL SEPARATION BARRIER --- (B) @CLEARANCE_BARRIER id:BAR_OBSTACLE_CLEAR d_safe_m:0.65 estop_decel_m_s2:2.2 # --- COMPACT SPLINE TRAJECTORY ORDER --- (M) @MOTION_ORDER id:ORD_RACK_PICK order_id:89201 nodes:[12.4:4.5:0.0 14.8:4.5:0.0 18.2:6.0:45.0 22.0:6.0:90.0] # --- ROBOT STATE OBSERVATION --- (T) @AGV_TELEMETRY id:TEL_AMR_01 x_m:13.2 y_m:4.5 theta_deg:0.12 battery_pct:82.4 ``` --- ## 6. Standards Compliance Matrix ``` ╔═════════════════════════════════╦══════════════════════╦═════════════════════════════════════════════════════╗ ║ Dimension │ Verification Standard│ Enforced Implementation Evidence ║ ╠═════════════════════════════════╬══════════════════════╬═════════════════════════════════════════════════════╣ ║ Driverless Truck Safety │ ISO 3691-4 │ Decentralized SE(2) separation barrier on silicon. ║ ║ Payload Stability Guard │ ANSI/ITSDF B56.5 │ Center-of-gravity transverse acceleration bounded. ║ ║ Low-Power Robot Compute │ Freestanding Silicon │ Zero heap allocations (M_aux <= 128B). ║ ║ Autonomous Path Planning │ GBNF Structured Mask │ Completely eliminates malformed spline node orders. ║ ╚═════════════════════════════════╩══════════════════════╩═════════════════════════════════════════════════════╝ ```