Skip to main content

Documentation Index

Fetch the complete documentation index at: https://inorbitinc.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

Status: Limited Availability — Contact support to enable traffic management features.
Traffic management enables coordination of robot fleets by defining zones in your maps and assigning traffic rules. This is essential for multi-robot deployments where robots need to navigate shared spaces safely—preventing collisions, managing access to narrow corridors, and coordinating docking areas. InOrbit provides two configuration kinds for traffic management:
  • TrafficZoneType: Defines categories of zones with traffic rules and visual styles
  • TrafficZone: Defines individual zones on maps with specific geometry

When to Use

  • Single-occupancy areas: Narrow corridors, charging stations, or workstations where only one robot should operate at a time
  • No-go zones: Areas robots must avoid entirely (e.g., restricted areas, emergency exits)
  • Dynamic behaviors: Trigger actions when robots enter or leave zones (e.g., adjust speed, activate lighting)
  • External integration: Use the Traffic Management API to query and control zones from external systems

Key Concepts

Built-in Traffic Rules

Two traffic rules are available out of the box:
RuleDescription
nogoRobots are not permitted to enter the zone
sozSingle-Occupancy Zone—only one robot allowed at a time
Contact support for custom traffic rules.

Zone Events

Zones can trigger robot actions based on these events:
EventTrigger
onEnterRobot enters the zone
onExitRobot leaves the zone
onOccupiedFirst robot enters (zone becomes occupied)
onEmptyLast robot leaves (zone becomes empty)
onStateZone state changes to a specific value

Zone State

Zones have an internal state that can be:
  • Modified by traffic controllers (free, occupied)
  • Updated via the REST API
  • Used to trigger conditional styling

Traffic Zone Types

Zone types define the behavior and appearance of zone categories.

Example: Charging Zone Type

apiVersion: v0.1
kind: TrafficZoneType
metadata:
  scope: account/<accountId>
  id: charging
spec:
  label: Charging Zone
  rules:
    - soz
    - type: nogo
      options:
        priorityTags:
          tagId: 10
  style:
    color: "#66c2a5"
  conditionalStyle:
    occupied:
      color: "#e5c494"
  events:
    - type: action
      actionId: turnOnLights
      targetId: room001
      event: onEnter

Zone Type Fields

FieldTypeRequiredDescription
labelstringYesHuman-readable name
rulesarrayNoTraffic rules to enforce
styleobjectNoDefault visual appearance
conditionalStyleobjectNoStyle overrides based on zone state
eventsarrayNoActions triggered by zone events

Traffic Rules

Rules can be specified as strings or objects with options:
rules:
  - soz                        # Simple rule
  - type: nogo                 # Rule with options
    options:
      priorityTags:
        tagId: 10              # Robots with this tag can override the rule

Style Configuration

style:
  color: "#66c2a5"             # Zone color (hex)

conditionalStyle:
  occupied:                    # Applied when state is "occupied"
    color: "#e5c494"
  free:                        # Applied when state is "free"
    color: "#a6d854"

Traffic Zones

Individual zones define specific areas on location maps.

Example: Basic Zone

apiVersion: v0.1
kind: TrafficZone
metadata:
  scope: tag/<accountId>/<locationId>
  id: chargingZone001
spec:
  label: South-West Charger
  type: charging
  frameId: map
  geometry:
    polygon:
      - x: 0
        y: 0
      - x: 1
        y: 0
      - x: 1
        y: 1
      - x: 0
        y: 1
    bufferDistance: 0.5
  events:
    - type: action
      actionId: beepbeep
      event: onEnter

Example: Zone with Robot Selector

Restrict which robots the zone applies to:
apiVersion: v0.1
kind: TrafficZone
metadata:
  scope: tag/<accountId>/<locationId>
  id: chargingZone001
spec:
  label: South-West Charger
  type: charging
  frameId: map
  robots:
    robot:
      tagIds: ["cleanerRobots"]
      ignoreTagIds: ["maintenance"]
      namePattern: "vacuum.*"
  geometry:
    polygon:
      - { x: 0, y: 0 }
      - { x: 1, y: 0 }
      - { x: 1, y: 1 }
      - { x: 0, y: 1 }

Zone Fields

FieldTypeRequiredDescription
labelstringYesHuman-readable name
typestringYesZone type ID (must match a TrafficZoneType)
frameIdstringYesMap frame identifier
geometryobjectYesZone boundaries
robotsobjectNoRobot selector to filter affected robots
eventsarrayNoZone-specific event triggers

Geometry Configuration

geometry:
  polygon:                     # List of vertices
    - x: 0
      y: 0
    - x: 1
      y: 0
    - x: 1
      y: 1
    - x: 0
      y: 1
  bufferDistance: 0.5          # Optional: expand zone by this distance (meters)
Use the Navigation widget’s zone editor (Layers > Zones) to draw zones visually instead of manually specifying coordinates.

Robot Selector

Restrict which robots are considered for zone events and occupancy:
FieldTypeDescription
robotIdstringSingle robot ID
robotIdsstring[]List of robot IDs
tagIdsstring[]Robot must have all these tags
ignoreTagIdsstring[]Exclude robots with any of these tags
namePatternstringRegex pattern for robot name
All conditions are ANDed—a robot must satisfy all specified conditions.

Event Configuration

events:
  - type: action               # Event type (only "action" supported)
    event: onEnter             # Trigger event
    actionId: slow-down        # Action to execute
    targetId: robot001         # Optional: run on specific robot/device
    arguments:                 # Optional: action arguments
      speed: 0.5

Use Cases Without Rules

Even without traffic rules, zones are useful for:
  • Visual monitoring: Zones change appearance when occupied, helping operators track robot positions
  • Mission logic: Use zone functions in expressions:
    isRobotInZone('dropZone') and not isZoneOccupied('armReachArea')
    
  • External integration: Query zone state via REST API for WMS, fleet manager, or other system integration