Merge remote-tracking branch 'origin/main' into user/aliberts/2025_02_25_refactor_robots
This commit is contained in:
@@ -106,7 +106,7 @@ def worker_process(queue: queue.Queue, num_threads: int):
|
|||||||
class AsyncImageWriter:
|
class AsyncImageWriter:
|
||||||
"""
|
"""
|
||||||
This class abstract away the initialisation of processes or/and threads to
|
This class abstract away the initialisation of processes or/and threads to
|
||||||
save images on disk asynchrounously, which is critical to control a robot and record data
|
save images on disk asynchronously, which is critical to control a robot and record data
|
||||||
at a high frame rate.
|
at a high frame rate.
|
||||||
|
|
||||||
When `num_processes=0`, it creates a threads pool of size `num_threads`.
|
When `num_processes=0`, it creates a threads pool of size `num_threads`.
|
||||||
|
|||||||
@@ -932,7 +932,7 @@ class LeRobotDataset(torch.utils.data.Dataset):
|
|||||||
def stop_image_writer(self) -> None:
|
def stop_image_writer(self) -> None:
|
||||||
"""
|
"""
|
||||||
Whenever wrapping this dataset inside a parallelized DataLoader, this needs to be called first to
|
Whenever wrapping this dataset inside a parallelized DataLoader, this needs to be called first to
|
||||||
remove the image_writer in order for the LeRobotDataset object to be pickleable and parallelized.
|
remove the image_writer in order for the LeRobotDataset object to be picklable and parallelized.
|
||||||
"""
|
"""
|
||||||
if self.image_writer is not None:
|
if self.image_writer is not None:
|
||||||
self.image_writer.stop()
|
self.image_writer.stop()
|
||||||
|
|||||||
@@ -101,7 +101,7 @@ def decode_video_frames_torchvision(
|
|||||||
keyframes_only = False
|
keyframes_only = False
|
||||||
torchvision.set_video_backend(backend)
|
torchvision.set_video_backend(backend)
|
||||||
if backend == "pyav":
|
if backend == "pyav":
|
||||||
keyframes_only = True # pyav doesnt support accuracte seek
|
keyframes_only = True # pyav doesn't support accurate seek
|
||||||
|
|
||||||
# set a video stream reader
|
# set a video stream reader
|
||||||
# TODO(rcadene): also load audio stream at the same time
|
# TODO(rcadene): also load audio stream at the same time
|
||||||
|
|||||||
@@ -357,7 +357,7 @@ class PI0Policy(PreTrainedPolicy):
|
|||||||
if self.config.resize_imgs_with_padding is not None:
|
if self.config.resize_imgs_with_padding is not None:
|
||||||
img = resize_with_pad(img, *self.config.resize_imgs_with_padding, pad_value=0)
|
img = resize_with_pad(img, *self.config.resize_imgs_with_padding, pad_value=0)
|
||||||
|
|
||||||
# Normalize from range [0,1] to [-1,1] as expacted by siglip
|
# Normalize from range [0,1] to [-1,1] as expected by siglip
|
||||||
img = img * 2.0 - 1.0
|
img = img * 2.0 - 1.0
|
||||||
|
|
||||||
bsize = img.shape[0]
|
bsize = img.shape[0]
|
||||||
|
|||||||
@@ -516,7 +516,7 @@ class PI0FAST(nn.Module):
|
|||||||
interpolate_like_pi=self.config.interpolate_like_pi,
|
interpolate_like_pi=self.config.interpolate_like_pi,
|
||||||
)
|
)
|
||||||
|
|
||||||
# Normalize from range [0,1] to [-1,1] as expacted by siglip
|
# Normalize from range [0,1] to [-1,1] as expected by siglip
|
||||||
img = img * 2.0 - 1.0
|
img = img * 2.0 - 1.0
|
||||||
|
|
||||||
bsize = img.shape[0]
|
bsize = img.shape[0]
|
||||||
|
|||||||
Reference in New Issue
Block a user