Skip to content

Declare Capabilities

Goal: Declare the actions a robot supports so Rover Nexus can match it to missions and operations.

Before you begin

  • The agent is installed and enrolled (see Install the Agent).
  • You can edit <state_dir>/robot.toml (default /var/lib/rdyn/robot/robot.toml) as root.
  • A list of the actions this robot can actually perform (for example, a "Mow" action).

How capabilities work

A robot advertises a capabilities manifest: the actions it can perform, the sensors it reports, the settings it exposes, the spatial resources it can produce, and the events it may emit. Missions and operations declare the capabilities they require, and the fleet manager only assigns work to robots whose advertised capabilities match. An action can also declare a required role, so the requesting operator must hold that role.

The config section is still called [[services]], and each entry becomes an action in the manifest. See Robot Configuration for the full field list.

Steps

  1. Open robot.toml on the robot:

bash sudo nano /var/lib/rdyn/robot/robot.toml

  1. Add one [[services]] entry per action the robot supports:

toml [[services]] name = "start_mowing" description = "Begin autonomous mowing routine" capabilityType = "trigger" # or "setbool" for an on/off toggle requiresRole = "operator"

  1. Save the file and restart the agent so it re-advertises:

bash sudo systemctl restart rover-agent

  1. Confirm in the web app that the robot's Actions list shows what you expect and that it can be matched to a mission that requires them.

Notes

  • Only declare actions the robot can actually perform; missions matched to a missing capability will fail.
  • An action that declares a required role enforces that role at request time.
  • capabilityType = "missiontype" is no longer supported. Entries that use it are dropped from the manifest (the agent logs a warning), so remove them.
  • Robot software can add to the manifest at runtime by publishing a runtime capabilities uplink. That is currently the only way to declare event names, since robot.toml has no key for them.

Next steps