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: Early Access — These features may not be available in all accounts.
Mission definitions allow you to configure reusable missions that robots in your fleet can execute. A mission is a sequence of steps—navigating to waypoints, executing actions, waiting for conditions, and updating mission data—that can be triggered on-demand or scheduled. This configuration works together with mission tracking to monitor mission progress, whether missions are defined through InOrbit or executed by proprietary robot software and reported via APIs.

When to Use

  • Automate repetitive tasks: Define delivery routes, cleaning paths, or patrol missions once and dispatch them repeatedly
  • Orchestrate multi-step workflows: Combine navigation, actions, and waits into complex sequences
  • Coordinate across robots: Use selectors to target specific robots or tags, and target other robots within mission steps

Key Concepts

Mission Steps

Missions consist of sequential steps, each performing one of these operations:
Step TypeFieldDescription
Navigate to waypointwaypointGo to coordinates or a named waypoint
Execute actionrunActionTrigger a robot action (defined in ActionDefinitions)
Update datadataSet mission metadata (key-value pairs)
Wait for conditionwaitUntilPause until an expression evaluates to true
Simple waittimeoutSecsPause for a fixed number of seconds
Conditional branchifExecute different steps based on a condition
Every step can include:
  • label: Human-readable description shown in mission widgets
  • timeoutSecs: Maximum wait time before the step times out
  • completeTask: Mark a named task as complete (for progress tracking)

Robot Selector

Use selector to restrict which robots can execute a mission:
FieldTypeDescription
tagIdsstring[]Robot must have all these tags
robotIdsstring[]Robot must be in this list
robotIdstringSingle robot ID
namePatternsstring[]Robot name must match one of these regex patterns
All conditions are ANDed—a robot must satisfy all specified conditions.

Cross-Robot Targeting

Some steps (runAction, waitUntil, data) can target a different robot using the target field:
runAction:
  actionId: acknowledge-delivery
  target:
    robotId: control-station-01

Examples

Basic Delivery Mission

apiVersion: v0.1
kind: MissionDefinition
metadata:
  scope: account/<accountId>
  id: delivery-mission
spec:
  label: Delivery Mission
  steps:
    - label: "Setup mission data"
      data:
        itemType: "bottle"
        weight: 1.23
        containerNumber: 1
    - label: "Go to drop off location"
      waypoint:
        x: 1.10
        y: 20.98
        theta: 1.23
        frameId: "map"
      timeoutSecs: 300
    - label: "Wait 5 seconds"
      timeoutSecs: 5
    - label: "Open lid"
      runAction:
        actionId: script-open-lid
        arguments:
          ledColor: "#ff00ee"
          lidNumber:
            _data: "containerNumber"  # Reference mission data
    - label: "Wait for lid to be closed"
      waitUntil:
        expression: getValue("lid_open") == 0
        timeoutSecs: 60
      completeTask: "Pickup"
    - label: "Go to dock"
      waypoint: "dock"  # Named waypoint reference
      completeTask: "Delivery"
  selector:
    robot:
      tagIds: ["delivery_bot"]

Mission with Expression Evaluation

Evaluate expressions and optionally target specific robots:
apiVersion: v0.1
kind: MissionDefinition
metadata:
  scope: account/<accountId>
  id: data-collection-mission
spec:
  label: Data Collection Mission
  steps:
    - data:
        Greetings: helloWorld
        Mode DataSource for r2d2:
          expression: getValue("mode_ds")
          target:
            robotId: r2d2
        Mode Datasource for Wall-e:
          expression: getValue("mode_ds")

Schema Reference

Top-Level Fields

FieldTypeRequiredDescription
labelstringYesHuman-readable mission name
stepsarrayYesSequence of mission steps
selectorobjectNoRestricts which robots can execute

Step Fields

FieldTypeDescription
labelstringStep description
timeoutSecsnumberMaximum wait time in seconds
completeTaskstringTask name to mark complete
waypointobject|stringNavigation target (coordinates or named waypoint)
runActionobjectAction to execute
dataobjectMission metadata to set
waitUntilobjectCondition to wait for
ifobjectConditional branching with then and else

Waypoint Object

waypoint:
  x: 1.0          # X coordinate
  y: 2.0          # Y coordinate
  theta: 0.5      # Orientation (radians)
  frameId: "map"  # Optional frame ID (for multi-floor)
Or reference a named waypoint:
waypoint: "dock"  # References a SpatialAnnotation waypoint

Run Action Object

runAction:
  actionId: my-action        # Required: ActionDefinition ID
  arguments:                 # Optional: action arguments
    param1: "value"
    param2:
      _data: "missionField"  # Reference mission data
      _arguments: "dispatchArg"  # Reference dispatch arguments
  target:                    # Optional: run on different robot
    robotId: other-robot

Wait Until Object

waitUntil:
  expression: getValue("sensor") > 100  # Expression to evaluate
  timeoutSecs: 60                        # Optional timeout
  target:                                # Optional: evaluate on different robot
    robotId: other-robot

Selector Object

selector:
  robot:
    tagIds: ["picker-robots", "firmware-023"]
    robotIds: ["picker001", "picker002"]
    robotId: "picker001"
    namePatterns: ["picker.*"]