Digital twin

A digital twin is Rhino's viewport mirroring the real robot's pose in real time. You move the arm (physically or via teach pendant), Rhino updates.

The wiring

Grasshopper node graph: Connect feeding a Live component into Stage with a timer, and the live Lite 6 arm shown in the Rhino viewport

Connect streams the robot's live state through Live, refreshed by a timer, into Stage, which mirrors the real joints, TCP plane, and mesh in the viewport. That's the digital twin.

Step by step

  1. Open the canvas from step 3 with Connect already working.
  2. Drop a GH Timer (right-click canvas → Special → Timer). Set it to 200ms.
  3. Drop a Live State component. Wire:
    • Connection → Connection
    • Timer → Tick
  4. You should now see the Joints output updating, TCP Plane updating.
  5. Wire Live State's Target output into a fresh Lite6 Sim with Real Meshes on. The arm in Rhino now mirrors the real arm.

What you can do with it

Polling rate trade-off: 100-250ms feels live. Below 50ms you'll get a lot of bridge traffic and Rhino's solve overhead becomes noticeable. The Test Bridge component's Latency reading is your tuning guide.

Sending commands live

Live Send pushes a single RobotTarget straight to the robot, no codegen step. Useful for prototyping individual moves before stringing them into a script:

Grasshopper node graph labeled Send Live Commands: Connect and Enable feeding a Robot and Pose into a Jog component triggered by a Button

Enable the robot, wire up a target, and a one-click Button pushes it straight to the arm through Live, with no code generation step.

Set Send=true with a one-click Button (not a Toggle), the robot moves.

SAFETY: Live Send executes immediately. There's no preview. Always test a new canvas with Bounds (workspace limits) wired upstream, and keep your hand on the E-Stop. E-Stop is a software equivalent, useful for canvas-driven watchdog logic but not a substitute for the physical button.

Next: generate offline scripts.