Skip to content

Capabilities

A robot advertises what it can do as a capabilities manifest. Rover Nexus matches missions and operations to robots by capability.

The manifest has five parts: actions the robot can be told to perform, sensors it reports, settings it exposes, resource producers (spatial feature channels it can publish), and events it may emit. The invokable controls are called actions; on the wire each is an ActionDescriptor. The robot configuration still declares them in a [[services]] array, so you will see both words: "action" is the message-contract term, [[services]] is the config section name.

Why capabilities matter

In a heterogeneous fleet, robots are operated by what they can do, not by make or model. When the cloud needs to run an operation, it selects robots whose advertised capabilities satisfy the requirement.

Example: a robot that advertises a Mow action can be targeted by any mowing mission, regardless of vendor.

Declaring capabilities

Capabilities are declared in the robot configuration, and robot software can add to them at runtime by publishing a runtimeCapabilities uplink. The runtime manifest is layered on top of the configured one.

Field Purpose
Action name The action the robot advertises (e.g. Mow).
Action type trigger (one-shot) or setBool (on/off).
Required role The minimum role needed to invoke it.
Parameters / settings Optional metadata or settings associated with the action.

For the exact config keys, see Robot Configuration → [[services]]. For the wire structs, see Uplink Messages → runtimeCapabilities.

How matching works

  1. The robot advertises its capabilities to the cloud (via the agent).
  2. A mission or operation specifies the capabilities it requires.
  3. The cloud matches the operation to robots whose capabilities satisfy the requirement.
  4. The matched robot receives the operation as a mission command on the downlink.

Mission commands carry an actions list and field rules carry a capabilities list, both naming the actions to fire or enable. See Mission Commands and Field Rules.

Roles

An action may declare a required role governing who is allowed to invoke it. Detailed role definitions and how they are evaluated are coming soon.

Invoking an action

The cloud invokes an advertised action with the invokeAction command on the downlink, carrying an ActionCall (actionName plus an optional setting for setBool actions). The robot software receives it via the command topic.