mirror of
https://github.com/huggingface/lerobot.git
synced 2026-05-21 03:30:10 +00:00
update teleoperate with cameras
This commit is contained in:
+29
-15
@@ -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 -->
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user