Deployments
Deployments manages saved policies, physical robot profiles, and telemetry sessions. The current workflow is Limited: policy assignments are local records, and Live Link is read-only.
Policies and assignments
Register a completed training run through Manage policy in Deployments, or Policies → Add trained policy. A policy retains its source run, robot snapshot, controller, and simulation evaluation.
Select a robot profile to check configuration compatibility and save an assignment. Assignment history supports restoring an earlier selection. Assigning or restoring does not start a policy or roll back a physical runtime.
Robots and Live Link
Create a robot profile pinned to a Builder version and map calibrated telemetry channels to its joints. Live Link displays measured positions through a local telemetry bridge. A hardware-specific reader is required; the bridge does not send motor commands.
SO-101 telemetry
For an already configured and calibrated SO-101 follower, activate the LeRobot environment used for calibration. From the repository root, run:
python apps/desktop/tools/so101_telemetry.py \
--port /dev/tty.usbmodem5B7B0148301 \
--id follower_arm \
| python apps/desktop/tools/telemetry_bridge.py --port 9876
Replace the USB path and ID with your arm's values. The reader requires existing
calibration matching the motors; --calibration-dir can select its directory.
It reads the motor bus directly without configuring motors, changing torque, or
sending movement commands. Close other programs using the serial port first.
In Deployments → Robots → Add robot, choose a saved Builder version and
bridge port 9876. Map channels shoulder_pan, shoulder_lift, elbow_flex,
wrist_flex, wrist_roll, and gripper to the corresponding joints, selecting
deg. All channels contain servo angles, including the gripper (not LeRobot's
usual gripper percentage). Set direction and zero offsets to match the URDF;
offsets are entered in radians. This assumes a direct rotary joint mapping;
linkages needing a nonlinear conversion require an additional adapter.
Save the robot and select Live Link. Stop the pipeline with Ctrl+C.
Sessions
Use the red record button below the live viewport to capture a motion session. The viewport shows a REC indicator, and the recorder displays elapsed time and the sample count. Press the square stop button to save before closing the application. If saving fails, use Retry save to preserve the captured samples.
Sessions retain converted joint positions, local receipt timestamps, and the robot definition and mapping for playback. Select a session to play, pause, or scrub its timeline. Playback follows elapsed time and interpolates joint positions between recorded samples for smoother motion; stored measurements are unchanged. Interpolation does not recover motion that was not sampled. Delete session asks for confirmation before permanently removing that session; the robot profile and saved Builder version are kept.
Capture is limited to 10,000 samples. The recorder controls capture 3D motion for replay, not a video file or synchronized camera footage.
Boundaries
Physical policy execution, in-app SO-101 USB/calibration support, and automatic session ingestion into the next learning Loop are not provided by this workflow. The external SO-101 reader requires LeRobot and prior calibration. A matching robot configuration and simulation evaluation do not establish hardware validation.
For bridge setup and implementation details, see the desktop guide.
Edit this page on GitHub