online_controller_lifecycle) node starts or stops the online controller assigned to a twin. On a manual (or any) trigger it deploys the twin’s primary controller policy, optionally auto-stopping after a set duration.
Palette category: Actuation. Uses the twin’s assigned controller policy — assign one on the twin first.
Steer an RL policy toward an object pose
For RL-task policies you can have the node collect a target object’s pose at trigger time and pass it to the policy as its startup goal (inference command). This is the “pose → policy” pattern: run the workflow and the policy is steered toward the target. Point the node at the object whose pose is the goal:target_object_external_id— a scene object (e.g. a procedural primitive) in the workflow’s environment, ortarget_twin_uuid— a twin whose world pose is the goal.
object_position inference command. This requires the policy’s RL task to declare an object_position inference command; set command_name when the task declares more than one.
When resolved inside this node, the
target_* params use the authored pose, not the live simulator pose. To seed the policy with a target’s live sim pose, use a Get Pose node upstream (it prefers the live streamed pose) and wire its position output into object_position.Or wire the pose from a Get Pose node
Instead of resolving the pose inside this node, you can keep the pose-reading step as a separate, visible node: put a Get Pose node between the trigger and this node, and wire itsposition output into this node’s object_position input. The mapped pose takes precedence over the target_* params.
Live vs. simulation starts
The node does not take a mode input — it follows the workflow’s execution target (the Live/Simulation toggle on the workflow), the same convention the recorder and navigation nodes use. When the workflow runs live, the controller drives the physical robot on the twin’s bound edge; a live start against a twin whose edge is online requiresconfirm_live to be true, otherwise the safety gate rejects it. For live RL-task dispatches you can also pick the controller↔plant transport (mqtt default, or zenoh for the low-latency edge DataBus when the driver declares it); simulation runs ignore transport and confirm_live.