Skip to main content

Requirements

3.12 is the reference version.

Install

That is everything needed to join a room, capture cameras and record a session, on both machines. The package is zeroruntime-teleops on PyPI.

Additional setup

LeRobot

Adds the adapters that wrap an existing LeRobot Robot and Teleoperator. See LeRobot for the setup, and LeRobot’s own installation guide for the library itself.

ROS 2

The extra is intentionally empty: rclpy, sensor_msgs and std_srvs are not on PyPI at all, they come from your ROS distribution. It exists so the command above resolves rather than erroring, and the real work is installing into the same interpreter ROS 2 runs on. There is nothing to build: the bridge ships as two commands, zrt-teleops-ros2-leader and zrt-teleops-ros2-follower. New to ROS 2? Follow the official installation guide first, then see ROS 2 for the bridge setup.

Environment

The SDK reads the following environment variables.
Get a token from the dashboard.
Set ZERORUNTIME_MEETING_ID so both ends join the same room. Without it each side creates its own room and joins successfully into silence.

Find your devices

Run this on the robot to list its cameras and serial ports. You will need these paths when you set up the follower:
Use the names on the right. Names like /dev/video0 can change after a reboot, while the longer name stays with the physical port. The last line picks these cameras: copy it into your .env.
On macOS, cameras are listed by number (0, 1, …) and serial ports as /dev/cu.*. Camera numbers change when you plug a camera in or out, so run it again after.