This section will describe the function of commands in Formant, and give step-by-step instructions to create and configure a command for your device.


Commands tell our robot to take a predefined action. For example, we can use commands to trigger data ingestion, run a script, or tell our robot to return to its home position.

We can send commands with the click of a button from the Observe view, or during teleoperation. We can also use events to trigger commands to be sent to our device based on data stream values or other custom triggers.

Built-in commands

Formant offers three commands natively:

formant.get_fileIngest a file from your device.Absolute file path on the device.
formant.publish_ros_topicPublish a message to a ROS topic.String to be published to the specified ROS topic.
formant.run_scriptRun a script on the device.Absolute file path on the device. The script should start with shebang (#!).

Custom commands

In addition to these commands, you can create custom commands via the Formant Admin API. For custom commands and advanced configuration, see the Commands section of the advanced telemetry guide.

Sequence of a command

A command in Formant takes the following sequence:

Sequence of a command

Sequence of a command.

  1. User issues a command to a device
  2. The command is stored in Formant Cloud pending delivery to the device. If the device is offline or unreachable, the command will stay in the cloud for 72 hours. The command is listed in-app as “issued”.
  3. The command is transmitted to the device, and is listed in-app as “delivered”


On-device command queue

The on-device command queue has a limit of ten (10). If an eleventh command is received, the first (oldest) command will be lost.

  1. The Formant agent receives the command.
    4.1 For built-in commands, Formant agent handles the command internally.
    4.2 For custom commands, Formant agent delivers the command to the user-designed application via the Agent SDK.
  2. The agent sends any data requested by the command.
  3. The agent sends the command result, and the command is listed in-app as “complete”.


72-hour command expiration

A command request that is not delivered to the agent in 72 hours will expire and must be resent.


If you notice an issue with this page or need help, please reach out to us! Use the 'Did this page help you?' buttons below, or get in contact with our Customer Success team via the Intercom messenger in the bottom-right corner of this page, or at [email protected].