Station Assignment¶
Selecting which station serves a task.
Problem¶
When multiple stations can serve a task, which one should be used?
Task: Deliver item for picking
Available Pick Stations:
S1: 3 robots queued, 10m away
S2: 1 robot queued, 25m away
S3: 5 robots queued, 8m away
Which station?
Assignment Policies¶
Nearest¶
Select closest station:
Algorithm:
- Find stations that can handle task type
- Calculate distance from current position
- Select nearest
Example:
Pros:
- Minimizes travel
- Simple
Cons:
- May create imbalanced loads
- Longer wait times at popular stations
Shortest Queue¶
Select station with fewest waiting robots:
Algorithm:
- Count robots queued at each station
- Select station with shortest queue
- Tie-breaker: nearest
Example:
Pros:
- Balances station utilization
- Reduces wait times
Cons:
- May increase travel distance
- Doesn't consider service speed
Fastest Completion¶
Select station where task will complete soonest:
Algorithm:
- Estimate completion time for each station:
- Travel time to station
- Wait time in queue
- Service time
- Select station with earliest completion
Example:
S1: travel=10s, wait=45s, service=15s → 70s
S2: travel=25s, wait=15s, service=15s → 55s ← Selected
S3: travel=8s, wait=75s, service=15s → 98s
Pros:
- Optimizes for task completion time
- Considers all factors
Cons:
- Requires accurate estimates
- More computation
Due Time Priority¶
Select based on task urgency:
Algorithm:
- For urgent tasks: fastest completion
- For non-urgent: shortest queue or nearest
Comparison¶
| Policy | Travel | Wait Time | Balance |
|---|---|---|---|
| Nearest | Low | Variable | Poor |
| Shortest Queue | Medium | Medium | Good |
| Fastest Completion | Variable | Low | Good |
Station Capacity¶
Queue Limits¶
Stations may have queue limits:
Handling Full Queues¶
Options when queue is full:
- Skip: Choose another station
- Wait: Wait at distance until queue opens
- Overflow: Allow temporary overflow
Multi-Station Scenarios¶
Station Zones¶
Assign stations by zone:
Tasks in zone A use S1 or S2.
Fallback Stations¶
Primary and backup stations:
policies:
station_assignment:
type: nearest
fallback_enabled: true
fallback_threshold: 5 # Queue length
Use primary if queue < 5, else fallback.
Dynamic Assignment¶
Real-Time Adjustment¶
Reassign if conditions change:
Conditions for Reassignment¶
- Original station queue grows significantly
- Closer station becomes available
- Original station goes offline
Station Types¶
Pick Stations¶
Charging Stations¶
Maintenance Stations¶
Performance Metrics¶
Station-Level¶
| Metric | Description |
|---|---|
| Utilization | Time busy / Total time |
| Avg queue length | Mean robots waiting |
| Throughput | Tasks per hour |
System-Level¶
| Metric | Description |
|---|---|
| Queue imbalance | Stddev of queue lengths |
| Avg wait time | Mean time in queue |
| Task completion time | Total time per task |
Configuration Examples¶
Speed-Focused¶
Balance-Focused¶
Throughput-Focused¶
Simulation Testing¶
Compare Policies¶
waremax compare scenario.yaml \
--param policies.station_assignment=nearest \
--param policies.station_assignment=shortest_queue \
--param policies.station_assignment=fastest_completion
What to Measure¶
- Station utilization variance
- Average queue length
- Task completion time
- Travel time