[QOL] Enable teleoperation during environment reset (#725)
This commit is contained in:
@@ -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):
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user