Traffic Configuration¶
Configuration for traffic management and congestion handling.
Schema¶
traffic:
policy: <string> # Default: "wait_at_node"
edge_capacity_default: <integer> # Default: 1
node_capacity_default: <integer> # Default: 1
wait_threshold_s: <float> # Default: 2.0
max_reroute_attempts: <integer> # Default: 3
deadlock_detection: <boolean> # Default: false
deadlock_resolver: <string> # Default: "youngest_backs_up"
deadlock_check_interval_s: <float> # Default: 0
reservation_enabled: <boolean> # Default: false
reservation_lookahead_s: <float> # Default: 30.0
Traffic Policy¶
wait_at_node¶
Robots wait at current node when path is blocked.
Behavior: Simple waiting, no rerouting Best for: Low traffic scenarios, testing
reroute_on_wait¶
Robots attempt to find alternate paths when blocked.
Behavior: Wait briefly, then try alternate route Best for: High traffic scenarios
adaptive_traffic¶
Dynamically adjusts behavior based on congestion.
Behavior: Combines waiting and rerouting based on conditions Best for: Variable traffic scenarios
Capacity Settings¶
edge_capacity_default¶
Type: integer Default: 1
Maximum robots on an edge simultaneously.
node_capacity_default¶
Type: integer Default: 1
Maximum robots at a node simultaneously.
Note: Station nodes may have higher effective capacity based on station concurrency.
Rerouting Parameters¶
wait_threshold_s¶
Type: float Default: 2.0
Seconds to wait before attempting reroute.
max_reroute_attempts¶
Type: integer Default: 3
Maximum reroute attempts before giving up.
Deadlock Detection¶
deadlock_detection¶
Type: boolean Default: false
Enable deadlock detection.
deadlock_resolver¶
Type: string
Default: "youngest_backs_up"
Options: youngest_backs_up, lowest_priority_aborts, wait_and_retry, tiered
Strategy for resolving detected deadlocks.
| Resolver | Description |
|---|---|
youngest_backs_up |
Most recently assigned robot backs up |
lowest_priority_aborts |
Lowest priority task aborts |
wait_and_retry |
Wait and retry with jitter |
tiered |
Combined approach |
deadlock_check_interval_s¶
Type: float Default: 0 (only check on wait)
Interval for periodic deadlock checks.
Reservation System¶
reservation_enabled¶
Type: boolean Default: false
Enable path reservation system.
reservation_lookahead_s¶
Type: float Default: 30.0
Seconds to look ahead when reserving path.
Complete Examples¶
Simple Traffic¶
Medium Traffic¶
traffic:
policy: reroute_on_wait
edge_capacity_default: 1
node_capacity_default: 1
wait_threshold_s: 2.0
max_reroute_attempts: 3
High Traffic¶
traffic:
policy: reroute_on_wait
edge_capacity_default: 2
node_capacity_default: 2
wait_threshold_s: 1.5
max_reroute_attempts: 5
deadlock_detection: true
deadlock_resolver: youngest_backs_up
Reservation-Based¶
traffic:
policy: wait_at_node
edge_capacity_default: 1
node_capacity_default: 1
deadlock_detection: true
deadlock_resolver: tiered
reservation_enabled: true
reservation_lookahead_s: 25.0
Configuration Guidelines¶
Capacity Selection¶
| Robot Density | Edge Capacity | Node Capacity |
|---|---|---|
| Low (< 0.1 robot/node) | 1 | 1 |
| Medium (0.1-0.3) | 1-2 | 1-2 |
| High (> 0.3) | 2-3 | 2-3 |
When to Enable Deadlock Detection¶
- Many robots in small area
- Complex map topology
- Observing stuck robots
When to Use Reservations¶
- Predictable paths
- Time-critical operations
- Avoiding conflicts proactively