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.

Action definitions specify commands that can be sent to robots. Actions can be triggered manually by operators from dashboards, automatically in response to incidents, or offered as options when resolving incidents.

When to Use

  • Remote control: Allow operators to start/stop missions, change modes, or execute scripts
  • Incident response: Automatically trigger recovery actions when problems occur
  • Custom workflows: Build operator workflows with user input and confirmation dialogs

Action Types

TypeDescription
PublishToTopicPublishes a message to /inorbit/custom_commands ROS topic
RunScriptExecutes a shell script from ~/.inorbit/local/user_scripts
InOrbitPageNavigates to a specific page in the InOrbit app
UrlOpens an external URL
DispatchMissionDispatches a mission definition to a robot

Spec Fields

FieldTypeRequiredDescription
typestringYesAction type (see above).
labelstringYesDisplay label for buttons and dialogs. Keep short (1-2 words).
descriptionstringNoDetailed description shown when inputting arguments.
groupstringNoGroup name for organizing actions in the UI.
lockbooleanNoIf true, requires robot lock before execution. Default: false.
confirmationobjectNoIf required: true, prompts for confirmation before execution.
conditionobjectNoRules that determine when the action is available.
widgetsarrayNoWidgets where this action appears. Currently only "navigation" supported.
argumentsarrayNoList of action arguments.

Arguments

Arguments provide values for action execution.
FieldTypeDescription
namestringArgument name (optional for positional args).
typestring"string" or "number". Default: "string".
valueanyFixed value for this argument.
dataSourceIdstringData source to get value from at runtime.
inputobjectPrompts user for input before execution.

User Input

Prompt operators for input using the input field:
ControlDescription
textFree-form text input
selectDropdown selection from predefined values
arguments:
  - name: "destination"
    input:
      control: "select"
      values:
        - label: "Warehouse A"
          value: "warehouse_a"
        - label: "Warehouse B"
          value: "warehouse_b"

Template Replacements

Use {{{argName}}} to substitute other argument values:
arguments:
  - name: "message"
    value: "DELIVER|{{{floor}}}|{{{room}}}"
  - name: "floor"
    dataSourceId: "FloorNumber"
  - name: "room"
    dataSourceId: "RoomNumber"

Examples

Publish to ROS Topic

kind: ActionDefinition
apiVersion: v0.1
metadata:
  id: "startDelivery"
  scope: account/<accountId>
spec:
  type: "PublishToTopic"
  label: "Start Delivery"
  group: "Missions"
  arguments:
    - name: "message"
      value: "START_DELIVERY|{{{floor}}}|{{{room}}}"
    - name: "floor"
      dataSourceId: "FloorNumber"
    - name: "room"
      dataSourceId: "RoomNumber"

Run Script with Confirmation

kind: ActionDefinition
apiVersion: v0.1
metadata:
  id: "cancelMission"
  scope: account/<accountId>
spec:
  type: "RunScript"
  label: "Cancel Mission"
  description: "Cancels the currently running mission"
  group: "Mission Control"
  lock: true
  confirmation:
    required: true
  arguments:
    - value: "mission.sh"
    - value: "--cancel"
    - name: "mission-id"
      dataSourceId: "MissionDataSourceId"

User Input with Dropdown

kind: ActionDefinition
apiVersion: v0.1
metadata:
  id: "setSpeed"
  scope: account/<accountId>
spec:
  type: "RunScript"
  label: "Set Speed"
  confirmation:
    required: true
  arguments:
    - value: "set_speed.sh"
    - name: "speed"
      input:
        control: "select"
        values:
          - label: "Slow"
            value: "0.5"
          - label: "Normal"
            value: "1.0"
          - label: "Fast"
            value: "1.5"

Dispatch Mission

kind: ActionDefinition
apiVersion: v0.1
metadata:
  id: "startPatrol"
  scope: account/<accountId>
spec:
  type: "DispatchMission"
  label: "Start Patrol"
  group: "Missions"
  arguments:
    - name: "missionDefinitionId"
      value: "patrol-route-a"