feat(record): Integrate RobotProcessor into recording loop and update policy handling

- Added support for RobotProcessor in the record_loop function to enhance data processing capabilities.
- Updated the logic to reset both policy and processor when provided, ensuring proper state management.
- Modified action prediction to utilize the processor, improving the overall functionality of the recording process.
- Adjusted the save_checkpoint function to include preprocessor state saving, enhancing checkpointing capabilities.
This commit is contained in:
AdilZouitine
2025-07-17 13:10:15 +02:00
committed by Steven Palma
parent 670a278cbc
commit 4b24f94225
6 changed files with 36 additions and 14 deletions

View File

@@ -31,6 +31,7 @@ from termcolor import colored
from lerobot.datasets.lerobot_dataset import LeRobotDataset
from lerobot.datasets.utils import DEFAULT_FEATURES
from lerobot.policies.pretrained import PreTrainedPolicy
from lerobot.processor import RobotProcessor
from lerobot.robots import Robot
@@ -101,6 +102,7 @@ def predict_action(
observation: dict[str, np.ndarray],
policy: PreTrainedPolicy,
device: torch.device,
processor: RobotProcessor,
use_amp: bool,
task: str | None = None,
robot_type: str | None = None,
@@ -122,6 +124,8 @@ def predict_action(
observation["task"] = task if task else ""
observation["robot_type"] = robot_type if robot_type else ""
observation = processor(observation)
# Compute the next action with the policy
# based on the current observation
action = policy.select_action(observation)