Robotics Fleet Management Integration

Overview

Attribute Value
Context Robotics Fleet Management
Pattern Partnership
Direction Bidirectional
Protocol Apache Kafka + WebSocket
Topics robotics.tasks.*, process-path.routing.*

Integration Summary

Process Path and Robotics Fleet Management have a partnership for coordinating robotic picking and transport operations. Robots deliver pods to pick stations and transport totes between zones.

flowchart LR
    subgraph PP["PROCESS PATH"]
        TR[Tote Routing]
        IC[Induct Coordination]
        CP[Capacity Planning]
    end

    subgraph RF["ROBOTICS FLEET"]
        PD[Pod Delivery]
        TT[Tote Transport]
        PP2[Path Planning]
        BM[Battery Management]
    end

    TR <-->|Events + WebSocket| TT
    IC <-->|Task Requests| PD
    CP <-->|Capacity Events| PP2

Robot Task Coordination Sequence

sequenceDiagram
    participant PP as Process Path
    participant RF as Robotics Fleet
    participant ROBOT as Robot AMR-015
    participant STATION as Induct Station

    PP->>RF: ToteTransportRequestEvent
    Note right of PP: Transport TOTE-789<br/>to INDUCT-03

    RF->>RF: Select optimal robot
    RF->>ROBOT: Assign transport task

    ROBOT->>ROBOT: Navigate to tote
    ROBOT->>ROBOT: Pick up tote
    ROBOT->>STATION: Transport tote

    ROBOT->>RF: Task completed
    RF->>PP: RobotTaskCompletedEvent
    Note left of RF: Delivery confirmed<br/>45.5m traveled

    PP->>PP: Trigger induct process

Events Published by Process Path

ToteTransportRequestEvent

Purpose: Request robot to transport tote

Topic: process-path.robotics.requests

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
{
  "specversion": "1.0",
  "type": "com.paklog.processpath.transport.request.v1",
  "source": "/process-path-service",
  "id": "evt-transport-123456",
  "time": "2025-01-20T10:05:00.000Z",
  "data": {
    "requestId": "REQ-TRANSPORT-123456",
    "shipmentId": "SHP-123456",
    "toteId": "TOTE-789",
    "origin": {
      "type": "PICK_STATION",
      "stationId": "PICK-STATION-05",
      "zone": "ZONE-A"
    },
    "destination": {
      "type": "INDUCT_STATION",
      "stationId": "INDUCT-03",
      "zone": "AFE-ZONE"
    },
    "priority": "NORMAL",
    "slaCutoff": "2025-01-20T16:00:00Z",
    "requestedAt": "2025-01-20T10:05:00Z"
  }
}

InductReadyEvent

Purpose: Signal tote ready for induct, request robot if needed

Topic: process-path.robotics.requests

1
2
3
4
5
6
7
8
9
10
11
{
  "type": "com.paklog.processpath.induct.ready.v1",
  "data": {
    "shipmentId": "SHP-123456",
    "toteId": "TOTE-789",
    "inductStationId": "INDUCT-03",
    "itemsInTote": 3,
    "arrivalMethod": "ROBOT_DELIVERY",
    "expectedArrivalTime": "2025-01-20T10:08:00Z"
  }
}

Events Consumed from Robotics

RobotTaskCompletedEvent

Purpose: Track tote delivery, trigger next step

Topic: robotics.tasks.completed

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
{
  "specversion": "1.0",
  "type": "com.paklog.robotics.task.completed.v1",
  "source": "/robotics-fleet-management",
  "id": "evt-robot-123456",
  "time": "2025-01-20T10:08:00.000Z",
  "data": {
    "taskId": "TASK-2025-01-20-001234",
    "taskType": "TOTE_TRANSPORT",
    "robotId": "ROBOT-AMR-015",
    "robotType": "AMR",
    "shipmentId": "SHP-123456",
    "toteId": "TOTE-789",
    "originLocation": "PICK-ZONE-A-12",
    "deliveryLocation": "INDUCT-STATION-03",
    "taskStartedAt": "2025-01-20T10:05:30Z",
    "taskCompletedAt": "2025-01-20T10:08:00Z",
    "travelDistanceMeters": 45.5,
    "travelTimeSeconds": 150,
    "batteryLevelAfter": 72
  }
}

PodDeliveredEvent

Purpose: Track pod arrival at pick station

Topic: robotics.tasks.pod-delivered

1
2
3
4
5
6
7
8
9
10
11
12
{
  "type": "com.paklog.robotics.pod.delivered.v1",
  "data": {
    "taskId": "TASK-POD-001",
    "robotId": "ROBOT-AGV-008",
    "podId": "POD-A-1234",
    "pickStationId": "PICK-STATION-05",
    "skusOnPod": ["SKU-WIDGET-001", "SKU-GADGET-003"],
    "pendingPicks": 5,
    "deliveredAt": "2025-01-20T10:07:00Z"
  }
}

RobotCapacityEvent

Purpose: Monitor robot fleet capacity

Topic: robotics.fleet.capacity

1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
  "type": "com.paklog.robotics.capacity.v1",
  "data": {
    "fleetId": "FLEET-WH001",
    "totalRobots": 50,
    "availableRobots": 35,
    "busyRobots": 12,
    "chargingRobots": 3,
    "utilizationPercent": 70,
    "avgTaskQueueDepth": 2.5,
    "avgTaskCompletionTime": "PT3M",
    "timestamp": "2025-01-20T10:00:00Z"
  }
}

Robot Task Types

Pod Delivery (for Robotic Picking)

sequenceDiagram
    participant PP as Process Path
    participant RF as Robotics Fleet
    participant ROBOT as Robot AGV
    participant POD as Storage Pod
    participant PICK as Pick Station

    PP->>RF: Request pod with SKUs
    RF->>ROBOT: Assign pod retrieval
    ROBOT->>POD: Retrieve from storage
    ROBOT->>PICK: Deliver to station
    RF->>PP: PodDeliveredEvent
    Note over PICK: Picker picks items
    ROBOT->>POD: Return to storage

Tote Transport (for AFE Induct)

sequenceDiagram
    participant PP as Process Path
    participant RF as Robotics Fleet
    participant ROBOT as Robot AMR
    participant TOTE as Tote
    participant INDUCT as Induct Station

    Note over PP: Pick complete
    PP->>RF: ToteTransportRequest
    RF->>ROBOT: Assign transport
    ROBOT->>TOTE: Pick up tote
    ROBOT->>INDUCT: Transport
    RF->>PP: TaskCompletedEvent
    Note over INDUCT: Operator takes tote

Conveyor Bypass (for Special Handling)

flowchart LR
    ITEM[Oversized Item] -->|Too large for conveyor| PP[Process Path]
    PP -->|Robot transport request| RF[Robotics Fleet]
    RF -->|Direct transport| PACK[Pack Station]

    style ITEM fill:#ffcccc

Capacity Coordination

Robot Fleet Impact on Routing

Process Path considers robot availability in routing decisions:

1
2
3
4
5
6
7
8
{
  "pathScoring": {
    "robotDependentPaths": ["AFE_ROBOTIC_PICK", "SPECIAL_HANDLING"],
    "currentRobotUtilization": 70,
    "robotCapacityScore": 80,
    "adjustment": "NORMAL"
  }
}

Robot Bottleneck Detection

1
2
3
4
5
If robot utilization > 90%:
1. Reduce routing to robot-dependent paths
2. Prefer conveyor-based transport
3. Alert Operations
4. Request additional robots from standby

Priority Coordination

SLA-Based Robot Priority

1
2
3
4
5
6
7
{
  "requestId": "REQ-TRANSPORT-123456",
  "priority": "HIGH",
  "priorityReason": "SLA_CRITICAL",
  "slaPriority": "RED",
  "expectedRobotAssignment": "PT30S"
}
SLA Priority Robot Priority Expected Assignment
GREEN NORMAL < 2 min
YELLOW HIGH < 1 min
RED CRITICAL < 30 sec

Zone Coordination

Robots operate in defined zones with Process Path coordination:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
  "zones": [
    {
      "zoneId": "ZONE-A",
      "robotsAssigned": 10,
      "currentTasks": 8,
      "avgTransitTime": "PT2M",
      "congestionLevel": "NORMAL"
    },
    {
      "zoneId": "AFE-ZONE",
      "robotsAssigned": 15,
      "currentTasks": 14,
      "avgTransitTime": "PT3M",
      "congestionLevel": "HIGH"
    }
  ]
}

WebSocket Integration

Real-time robot position updates via WebSocket:

1
2
3
4
5
6
7
8
// WebSocket connection for real-time updates
ws.onmessage = (event) => {
  const update = JSON.parse(event.data);
  if (update.type === 'ROBOT_POSITION') {
    // Update robot position on map
    // Track tote/shipment progress
  }
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
  "type": "ROBOT_POSITION",
  "robotId": "ROBOT-AMR-015",
  "position": {
    "x": 125.5,
    "y": 78.2,
    "heading": 45
  },
  "carryingTote": "TOTE-789",
  "shipmentId": "SHP-123456",
  "destinationStation": "INDUCT-03",
  "eta": "PT45S",
  "timestamp": "2025-01-20T10:07:30Z"
}

Error Handling

Error Robotics Action Process Path Action
Robot breakdown Reassign task Monitor delay, may reroute
Path blocked Reroute robot Track impact on SLA
Battery critical Return to charge Reassign, update capacity
Tote not found Report error Investigate, alert ops
Collision avoided Log event Track congestion patterns

Performance Metrics

Metric Target Description
Task assignment time < 30 sec Time to assign robot
Task completion time < 5 min Avg transport time
Fleet utilization 70-85% Optimal utilization
Collision events 0 Safety metric

Monitoring

Key Metrics

Alerts