[QOL] Enable teleoperation during environment reset (#725)

This commit is contained in:
Jannik Grothusen
2025-02-25 19:28:26 +01:00
committed by GitHub
parent 65db5afe1c
commit 8699a28be0
2 changed files with 9 additions and 16 deletions

View File

@@ -12,7 +12,6 @@ from functools import cache
import cv2 import cv2
import torch import torch
import tqdm
from deepdiff import DeepDiff from deepdiff import DeepDiff
from termcolor import colored from termcolor import colored
@@ -276,24 +275,18 @@ def control_loop(
break break
def reset_environment(robot, events, reset_time_s): def reset_environment(robot, events, reset_time_s, fps):
# TODO(rcadene): refactor warmup_record and reset_environment # TODO(rcadene): refactor warmup_record and reset_environment
# TODO(alibets): allow for teleop during reset
if has_method(robot, "teleop_safety_stop"): if has_method(robot, "teleop_safety_stop"):
robot.teleop_safety_stop() robot.teleop_safety_stop()
timestamp = 0 control_loop(
start_vencod_t = time.perf_counter() robot=robot,
control_time_s=reset_time_s,
# Wait if necessary events=events,
with tqdm.tqdm(total=reset_time_s, desc="Waiting") as pbar: fps=fps,
while timestamp < reset_time_s: teleoperate=True,
time.sleep(1) )
timestamp = time.perf_counter() - start_vencod_t
pbar.update(1)
if events["exit_early"]:
events["exit_early"] = False
break
def stop_recording(robot, listener, display_cameras): def stop_recording(robot, listener, display_cameras):

View File

@@ -299,7 +299,7 @@ def record(
(recorded_episodes < cfg.num_episodes - 1) or events["rerecord_episode"] (recorded_episodes < cfg.num_episodes - 1) or events["rerecord_episode"]
): ):
log_say("Reset the environment", cfg.play_sounds) log_say("Reset the environment", cfg.play_sounds)
reset_environment(robot, events, cfg.reset_time_s) reset_environment(robot, events, cfg.reset_time_s, cfg.fps)
if events["rerecord_episode"]: if events["rerecord_episode"]:
log_say("Re-record episode", cfg.play_sounds) log_say("Re-record episode", cfg.play_sounds)