Skip to main content
The Send Controller Command (send_controller_command) node provides a direct way to dispatch controller commands to a digital twin. Unlike Virtual Controller (which resolves commands dynamically from upstream strings), this node lets you explicitly select the twin, controller policy, and specific command at configuration time.
Palette category: Actuation. Runs on cloud (Celery MQTT or inference dispatch) and edge (worker client.mqtt.publish, keyboard/teleop only). Model controllers (mlmodel/vla) are cloud-only.

Configuration flow

The inspector guides you through a three-step cascade:
  1. Select digital twin — choose the target twin in the bound environment
  2. Select controller policy — pick from compatible controllers (filtered by the twin’s asset)
  3. Select command (keyboard/teleop) or configure instruction (model controllers)
For keyboard/teleop controllers the command dropdown lists every available actuation from the policy’s keyboard_bindings and display_config.widgets. For model controllers the instruction input accepts a text prompt for inference.

Inputs

Keyboard/teleop controllers

When a keyboard or teleop controller is selected:
  • The command dropdown shows all available actuations with labels and key bindings
  • The params input can override the binding’s default playground data (velocity, etc.)
  • At runtime the node publishes to cyberwave/twin/{uuid}/command with the same MQTT payload shape as keyboard teleoperation

MQTT payload

Model controllers (mlmodel/vla)

When a model controller is selected:
  • The instruction input accepts a natural language prompt (e.g. “pick up the red block”)
  • Additional parameters (max_steps, mode) can be passed via params
  • At runtime the node dispatches inference through ControllerPolicyExecutionService
  • Model controllers run cloud-only — edge compilation will fail

Outputs

When to use

  • Virtual Controller — dynamic command resolution from upstream strings
  • Info Controller — read controller policy metadata
  • Send MQTT — generic MQTT publish