update teleoperate with cameras

This commit is contained in:
Nikodem Bartnik
2026-05-18 09:37:16 +02:00
parent da1402e4b9
commit 4a6d7f44f1
+29 -15
View File
@@ -122,34 +122,48 @@ lerobot-teleoperate \
<!-- prettier-ignore-start --> <!-- prettier-ignore-start -->
```python ```python
import time
from lerobot.teleoperators.so_leader import SO101Leader, SO101LeaderConfig
from lerobot.robots.so_follower import SO101Follower, SO101FollowerConfig
from lerobot.cameras.opencv import OpenCVCameraConfig from lerobot.cameras.opencv import OpenCVCameraConfig
from lerobot.teleoperators.koch_leader import KochLeader, KochLeaderConfig from lerobot.utils.visualization_utils import init_rerun, log_rerun_data, shutdown_rerun
from lerobot.robots.koch_follower import KochFollower, KochFollowerConfig
camera_config = { robot_config = SO101FollowerConfig(
"front": OpenCVCameraConfig(index_or_path=0, width=1920, height=1080, fps=30) port="/dev/tty.usbmodem5AB90687491",
} id="my_follower_arm",
cameras={
robot_config = KochFollowerConfig( "wrist": OpenCVCameraConfig(index_or_path=0, width=640, height=480, fps=30),
port="/dev/tty.usbmodem585A0076841", "top": OpenCVCameraConfig(index_or_path=1, width=640, height=480, fps=30)
id="my_red_robot_arm", }
cameras=camera_config
) )
teleop_config = KochLeaderConfig( teleop_config = SO101LeaderConfig(
port="/dev/tty.usbmodem58760431551", port="/dev/tty.usbmodem5AB90689011",
id="my_blue_leader_arm", id="my_leader_arm",
) )
robot = KochFollower(robot_config) init_rerun(session_name="teleoperation")
teleop_device = KochLeader(teleop_config)
robot = SO101Follower(robot_config)
teleop_device = SO101Leader(teleop_config)
robot.connect() robot.connect()
teleop_device.connect() teleop_device.connect()
TARGET_HZ = 30
TIME_PER_FRAME = 1.0 / TARGET_HZ
while True: while True:
start_time = time.perf_counter()
observation = robot.get_observation() observation = robot.get_observation()
action = teleop_device.get_action() action = teleop_device.get_action()
robot.send_action(action) robot.send_action(action)
log_rerun_data(observation=observation, action=action)
elapsed_time = time.perf_counter() - start_time
sleep_time = TIME_PER_FRAME - elapsed_time
if sleep_time > 0:
time.sleep(sleep_time)
``` ```
<!-- prettier-ignore-end --> <!-- prettier-ignore-end -->