mirror of
https://github.com/huggingface/lerobot.git
synced 2026-07-23 17:56:07 +00:00
refactor(processors): unify import statements by consolidating pipeline imports into the main processor module (#1845)
This commit is contained in:
@@ -21,11 +21,11 @@ from lerobot.datasets.utils import merge_features
|
|||||||
from lerobot.model.kinematics import RobotKinematics
|
from lerobot.model.kinematics import RobotKinematics
|
||||||
from lerobot.policies.act.modeling_act import ACTPolicy
|
from lerobot.policies.act.modeling_act import ACTPolicy
|
||||||
from lerobot.policies.factory import make_pre_post_processors
|
from lerobot.policies.factory import make_pre_post_processors
|
||||||
|
from lerobot.processor import RobotProcessor
|
||||||
from lerobot.processor.converters import (
|
from lerobot.processor.converters import (
|
||||||
to_output_robot_action,
|
to_output_robot_action,
|
||||||
to_transition_robot_observation,
|
to_transition_robot_observation,
|
||||||
)
|
)
|
||||||
from lerobot.processor.pipeline import RobotProcessor
|
|
||||||
from lerobot.record import record_loop
|
from lerobot.record import record_loop
|
||||||
from lerobot.robots.so100_follower.config_so100_follower import SO100FollowerConfig
|
from lerobot.robots.so100_follower.config_so100_follower import SO100FollowerConfig
|
||||||
from lerobot.robots.so100_follower.robot_kinematic_processor import (
|
from lerobot.robots.so100_follower.robot_kinematic_processor import (
|
||||||
|
|||||||
@@ -20,12 +20,12 @@ from lerobot.datasets.lerobot_dataset import LeRobotDataset
|
|||||||
from lerobot.datasets.pipeline_features import aggregate_pipeline_dataset_features
|
from lerobot.datasets.pipeline_features import aggregate_pipeline_dataset_features
|
||||||
from lerobot.datasets.utils import merge_features
|
from lerobot.datasets.utils import merge_features
|
||||||
from lerobot.model.kinematics import RobotKinematics
|
from lerobot.model.kinematics import RobotKinematics
|
||||||
|
from lerobot.processor import RobotProcessor
|
||||||
from lerobot.processor.converters import (
|
from lerobot.processor.converters import (
|
||||||
to_output_robot_action,
|
to_output_robot_action,
|
||||||
to_transition_robot_observation,
|
to_transition_robot_observation,
|
||||||
to_transition_teleop_action,
|
to_transition_teleop_action,
|
||||||
)
|
)
|
||||||
from lerobot.processor.pipeline import RobotProcessor
|
|
||||||
from lerobot.record import record_loop
|
from lerobot.record import record_loop
|
||||||
from lerobot.robots.so100_follower.config_so100_follower import SO100FollowerConfig
|
from lerobot.robots.so100_follower.config_so100_follower import SO100FollowerConfig
|
||||||
from lerobot.robots.so100_follower.robot_kinematic_processor import (
|
from lerobot.robots.so100_follower.robot_kinematic_processor import (
|
||||||
|
|||||||
@@ -19,8 +19,8 @@ import time
|
|||||||
|
|
||||||
from lerobot.datasets.lerobot_dataset import LeRobotDataset
|
from lerobot.datasets.lerobot_dataset import LeRobotDataset
|
||||||
from lerobot.model.kinematics import RobotKinematics
|
from lerobot.model.kinematics import RobotKinematics
|
||||||
|
from lerobot.processor import RobotProcessor
|
||||||
from lerobot.processor.converters import to_output_robot_action, to_transition_teleop_action
|
from lerobot.processor.converters import to_output_robot_action, to_transition_teleop_action
|
||||||
from lerobot.processor.pipeline import RobotProcessor
|
|
||||||
from lerobot.robots.so100_follower.config_so100_follower import SO100FollowerConfig
|
from lerobot.robots.so100_follower.config_so100_follower import SO100FollowerConfig
|
||||||
from lerobot.robots.so100_follower.robot_kinematic_processor import (
|
from lerobot.robots.so100_follower.robot_kinematic_processor import (
|
||||||
AddRobotObservationAsComplimentaryData,
|
AddRobotObservationAsComplimentaryData,
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ from typing import Any
|
|||||||
|
|
||||||
from lerobot.constants import ACTION, OBS_IMAGES, OBS_STATE
|
from lerobot.constants import ACTION, OBS_IMAGES, OBS_STATE
|
||||||
from lerobot.datasets.utils import hw_to_dataset_features
|
from lerobot.datasets.utils import hw_to_dataset_features
|
||||||
from lerobot.processor.pipeline import RobotProcessor
|
from lerobot.processor import RobotProcessor
|
||||||
|
|
||||||
|
|
||||||
def aggregate_pipeline_dataset_features(
|
def aggregate_pipeline_dataset_features(
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ from lerobot.policies.sac.reward_model.configuration_classifier import RewardCla
|
|||||||
from lerobot.policies.smolvla.configuration_smolvla import SmolVLAConfig
|
from lerobot.policies.smolvla.configuration_smolvla import SmolVLAConfig
|
||||||
from lerobot.policies.tdmpc.configuration_tdmpc import TDMPCConfig
|
from lerobot.policies.tdmpc.configuration_tdmpc import TDMPCConfig
|
||||||
from lerobot.policies.vqbet.configuration_vqbet import VQBeTConfig
|
from lerobot.policies.vqbet.configuration_vqbet import VQBeTConfig
|
||||||
from lerobot.processor.pipeline import ProcessorKwargs, RobotProcessor
|
from lerobot.processor import ProcessorKwargs, RobotProcessor
|
||||||
|
|
||||||
|
|
||||||
def get_policy_class(name: str) -> type[PreTrainedPolicy]:
|
def get_policy_class(name: str) -> type[PreTrainedPolicy]:
|
||||||
|
|||||||
@@ -21,20 +21,18 @@ from lerobot.configs.types import PolicyFeature
|
|||||||
from lerobot.constants import POSTPROCESSOR_DEFAULT_NAME, PREPROCESSOR_DEFAULT_NAME
|
from lerobot.constants import POSTPROCESSOR_DEFAULT_NAME, PREPROCESSOR_DEFAULT_NAME
|
||||||
from lerobot.policies.pi0.configuration_pi0 import PI0Config
|
from lerobot.policies.pi0.configuration_pi0 import PI0Config
|
||||||
from lerobot.processor import (
|
from lerobot.processor import (
|
||||||
|
ComplementaryDataProcessor,
|
||||||
DeviceProcessor,
|
DeviceProcessor,
|
||||||
NormalizerProcessor,
|
NormalizerProcessor,
|
||||||
ProcessorKwargs,
|
ProcessorKwargs,
|
||||||
|
ProcessorStep,
|
||||||
|
ProcessorStepRegistry,
|
||||||
|
RenameProcessor,
|
||||||
RobotProcessor,
|
RobotProcessor,
|
||||||
ToBatchProcessor,
|
ToBatchProcessor,
|
||||||
TokenizerProcessor,
|
TokenizerProcessor,
|
||||||
UnnormalizerProcessor,
|
UnnormalizerProcessor,
|
||||||
)
|
)
|
||||||
from lerobot.processor.pipeline import (
|
|
||||||
ComplementaryDataProcessor,
|
|
||||||
ProcessorStep,
|
|
||||||
ProcessorStepRegistry,
|
|
||||||
)
|
|
||||||
from lerobot.processor.rename_processor import RenameProcessor
|
|
||||||
|
|
||||||
|
|
||||||
@ProcessorStepRegistry.register(name="pi0_new_line_processor")
|
@ProcessorStepRegistry.register(name="pi0_new_line_processor")
|
||||||
|
|||||||
@@ -20,19 +20,17 @@ from lerobot.configs.types import PolicyFeature
|
|||||||
from lerobot.constants import POSTPROCESSOR_DEFAULT_NAME, PREPROCESSOR_DEFAULT_NAME
|
from lerobot.constants import POSTPROCESSOR_DEFAULT_NAME, PREPROCESSOR_DEFAULT_NAME
|
||||||
from lerobot.policies.smolvla.configuration_smolvla import SmolVLAConfig
|
from lerobot.policies.smolvla.configuration_smolvla import SmolVLAConfig
|
||||||
from lerobot.processor import (
|
from lerobot.processor import (
|
||||||
|
ComplementaryDataProcessor,
|
||||||
DeviceProcessor,
|
DeviceProcessor,
|
||||||
NormalizerProcessor,
|
NormalizerProcessor,
|
||||||
ProcessorKwargs,
|
ProcessorKwargs,
|
||||||
|
ProcessorStepRegistry,
|
||||||
RenameProcessor,
|
RenameProcessor,
|
||||||
RobotProcessor,
|
RobotProcessor,
|
||||||
ToBatchProcessor,
|
ToBatchProcessor,
|
||||||
TokenizerProcessor,
|
TokenizerProcessor,
|
||||||
UnnormalizerProcessor,
|
UnnormalizerProcessor,
|
||||||
)
|
)
|
||||||
from lerobot.processor.pipeline import (
|
|
||||||
ComplementaryDataProcessor,
|
|
||||||
ProcessorStepRegistry,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def make_smolvla_pre_post_processors(
|
def make_smolvla_pre_post_processors(
|
||||||
|
|||||||
@@ -40,6 +40,7 @@ from .normalize_processor import NormalizerProcessor, UnnormalizerProcessor, hot
|
|||||||
from .observation_processor import VanillaObservationProcessor
|
from .observation_processor import VanillaObservationProcessor
|
||||||
from .pipeline import (
|
from .pipeline import (
|
||||||
ActionProcessor,
|
ActionProcessor,
|
||||||
|
ComplementaryDataProcessor,
|
||||||
DoneProcessor,
|
DoneProcessor,
|
||||||
IdentityProcessor,
|
IdentityProcessor,
|
||||||
InfoProcessor,
|
InfoProcessor,
|
||||||
@@ -58,6 +59,7 @@ __all__ = [
|
|||||||
"ActionProcessor",
|
"ActionProcessor",
|
||||||
"AddTeleopActionAsComplimentaryData",
|
"AddTeleopActionAsComplimentaryData",
|
||||||
"AddTeleopEventsAsInfo",
|
"AddTeleopEventsAsInfo",
|
||||||
|
"ComplementaryDataProcessor",
|
||||||
"batch_to_transition",
|
"batch_to_transition",
|
||||||
"create_transition",
|
"create_transition",
|
||||||
"DeviceProcessor",
|
"DeviceProcessor",
|
||||||
|
|||||||
@@ -17,10 +17,11 @@ from torch import Tensor
|
|||||||
|
|
||||||
from lerobot.configs.types import PolicyFeature
|
from lerobot.configs.types import PolicyFeature
|
||||||
from lerobot.constants import OBS_ENV_STATE, OBS_IMAGE, OBS_IMAGES, OBS_STATE
|
from lerobot.constants import OBS_ENV_STATE, OBS_IMAGE, OBS_IMAGES, OBS_STATE
|
||||||
from lerobot.processor.pipeline import (
|
|
||||||
|
from .core import EnvTransition
|
||||||
|
from .pipeline import (
|
||||||
ActionProcessor,
|
ActionProcessor,
|
||||||
ComplementaryDataProcessor,
|
ComplementaryDataProcessor,
|
||||||
EnvTransition,
|
|
||||||
ObservationProcessor,
|
ObservationProcessor,
|
||||||
ProcessorStep,
|
ProcessorStep,
|
||||||
ProcessorStepRegistry,
|
ProcessorStepRegistry,
|
||||||
|
|||||||
@@ -19,7 +19,8 @@ from dataclasses import dataclass
|
|||||||
from torch import Tensor
|
from torch import Tensor
|
||||||
|
|
||||||
from lerobot.configs.types import FeatureType, PolicyFeature
|
from lerobot.configs.types import FeatureType, PolicyFeature
|
||||||
from lerobot.processor.pipeline import ActionProcessor, ProcessorStepRegistry
|
|
||||||
|
from .pipeline import ActionProcessor, ProcessorStepRegistry
|
||||||
|
|
||||||
|
|
||||||
@ProcessorStepRegistry.register("map_tensor_to_delta_action_dict")
|
@ProcessorStepRegistry.register("map_tensor_to_delta_action_dict")
|
||||||
|
|||||||
@@ -19,10 +19,11 @@ from typing import Any
|
|||||||
import torch
|
import torch
|
||||||
|
|
||||||
from lerobot.configs.types import PolicyFeature
|
from lerobot.configs.types import PolicyFeature
|
||||||
from lerobot.processor.core import EnvTransition, TransitionKey
|
|
||||||
from lerobot.processor.pipeline import ProcessorStep, ProcessorStepRegistry
|
|
||||||
from lerobot.utils.utils import get_safe_torch_device
|
from lerobot.utils.utils import get_safe_torch_device
|
||||||
|
|
||||||
|
from .core import EnvTransition, TransitionKey
|
||||||
|
from .pipeline import ProcessorStep, ProcessorStepRegistry
|
||||||
|
|
||||||
|
|
||||||
@ProcessorStepRegistry.register("device_processor")
|
@ProcessorStepRegistry.register("device_processor")
|
||||||
@dataclass
|
@dataclass
|
||||||
|
|||||||
@@ -17,8 +17,9 @@ import numpy as np
|
|||||||
import torch
|
import torch
|
||||||
|
|
||||||
from lerobot.configs.types import PolicyFeature
|
from lerobot.configs.types import PolicyFeature
|
||||||
from lerobot.processor.converters import to_tensor
|
|
||||||
from lerobot.processor.pipeline import ActionProcessor, ProcessorStepRegistry
|
from .converters import to_tensor
|
||||||
|
from .pipeline import ActionProcessor, ProcessorStepRegistry
|
||||||
|
|
||||||
|
|
||||||
@ProcessorStepRegistry.register("torch2numpy_action_processor")
|
@ProcessorStepRegistry.register("torch2numpy_action_processor")
|
||||||
|
|||||||
@@ -9,18 +9,18 @@ import torchvision.transforms.functional as F # noqa: N812
|
|||||||
|
|
||||||
from lerobot.configs.types import PolicyFeature
|
from lerobot.configs.types import PolicyFeature
|
||||||
from lerobot.constants import ACTION
|
from lerobot.constants import ACTION
|
||||||
from lerobot.processor.pipeline import (
|
from lerobot.teleoperators.teleoperator import Teleoperator
|
||||||
|
from lerobot.teleoperators.utils import TeleopEvents
|
||||||
|
|
||||||
|
from .core import EnvTransition, TransitionKey
|
||||||
|
from .pipeline import (
|
||||||
ComplementaryDataProcessor,
|
ComplementaryDataProcessor,
|
||||||
EnvTransition,
|
|
||||||
InfoProcessor,
|
InfoProcessor,
|
||||||
ObservationProcessor,
|
ObservationProcessor,
|
||||||
ProcessorStep,
|
ProcessorStep,
|
||||||
ProcessorStepRegistry,
|
ProcessorStepRegistry,
|
||||||
TransitionKey,
|
|
||||||
TruncatedProcessor,
|
TruncatedProcessor,
|
||||||
)
|
)
|
||||||
from lerobot.teleoperators.teleoperator import Teleoperator
|
|
||||||
from lerobot.teleoperators.utils import TeleopEvents
|
|
||||||
|
|
||||||
GRIPPER_KEY = "gripper"
|
GRIPPER_KEY = "gripper"
|
||||||
DISCRETE_PENALTY_KEY = "discrete_penalty"
|
DISCRETE_PENALTY_KEY = "discrete_penalty"
|
||||||
|
|||||||
@@ -4,12 +4,10 @@ from typing import Any
|
|||||||
import torch
|
import torch
|
||||||
|
|
||||||
from lerobot.configs.types import PolicyFeature
|
from lerobot.configs.types import PolicyFeature
|
||||||
from lerobot.processor.pipeline import (
|
|
||||||
ObservationProcessor,
|
|
||||||
ProcessorStepRegistry,
|
|
||||||
)
|
|
||||||
from lerobot.robots import Robot
|
from lerobot.robots import Robot
|
||||||
|
|
||||||
|
from .pipeline import ObservationProcessor, ProcessorStepRegistry
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
@ProcessorStepRegistry.register("joint_velocity_processor")
|
@ProcessorStepRegistry.register("joint_velocity_processor")
|
||||||
|
|||||||
@@ -46,11 +46,12 @@ from huggingface_hub import hf_hub_download
|
|||||||
from safetensors.torch import load_file as load_safetensors
|
from safetensors.torch import load_file as load_safetensors
|
||||||
|
|
||||||
from lerobot.configs.types import FeatureType, NormalizationMode, PolicyFeature
|
from lerobot.configs.types import FeatureType, NormalizationMode, PolicyFeature
|
||||||
from lerobot.processor.batch_processor import ToBatchProcessor
|
|
||||||
from lerobot.processor.device_processor import DeviceProcessor
|
from .batch_processor import ToBatchProcessor
|
||||||
from lerobot.processor.normalize_processor import NormalizerProcessor, UnnormalizerProcessor
|
from .device_processor import DeviceProcessor
|
||||||
from lerobot.processor.pipeline import RobotProcessor
|
from .normalize_processor import NormalizerProcessor, UnnormalizerProcessor
|
||||||
from lerobot.processor.rename_processor import RenameProcessor
|
from .pipeline import RobotProcessor
|
||||||
|
from .rename_processor import RenameProcessor
|
||||||
|
|
||||||
# Policy type to class mapping
|
# Policy type to class mapping
|
||||||
POLICY_CLASSES = {
|
POLICY_CLASSES = {
|
||||||
|
|||||||
@@ -9,14 +9,10 @@ from torch import Tensor
|
|||||||
|
|
||||||
from lerobot.configs.types import FeatureType, NormalizationMode, PolicyFeature
|
from lerobot.configs.types import FeatureType, NormalizationMode, PolicyFeature
|
||||||
from lerobot.datasets.lerobot_dataset import LeRobotDataset
|
from lerobot.datasets.lerobot_dataset import LeRobotDataset
|
||||||
from lerobot.processor.converters import to_tensor
|
|
||||||
from lerobot.processor.pipeline import (
|
from .converters import to_tensor
|
||||||
EnvTransition,
|
from .core import EnvTransition, TransitionKey
|
||||||
ProcessorStep,
|
from .pipeline import ProcessorStep, ProcessorStepRegistry, RobotProcessor
|
||||||
ProcessorStepRegistry,
|
|
||||||
RobotProcessor,
|
|
||||||
TransitionKey,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
|
|||||||
@@ -22,7 +22,8 @@ from torch import Tensor
|
|||||||
|
|
||||||
from lerobot.configs.types import PolicyFeature
|
from lerobot.configs.types import PolicyFeature
|
||||||
from lerobot.constants import OBS_ENV_STATE, OBS_IMAGE, OBS_IMAGES, OBS_STATE
|
from lerobot.constants import OBS_ENV_STATE, OBS_IMAGE, OBS_IMAGES, OBS_STATE
|
||||||
from lerobot.processor.pipeline import ObservationProcessor, ProcessorStepRegistry
|
|
||||||
|
from .pipeline import ObservationProcessor, ProcessorStepRegistry
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
|
|||||||
@@ -18,10 +18,8 @@ from dataclasses import dataclass, field
|
|||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
from lerobot.configs.types import PolicyFeature
|
from lerobot.configs.types import PolicyFeature
|
||||||
from lerobot.processor.pipeline import (
|
|
||||||
ObservationProcessor,
|
from .pipeline import ObservationProcessor, ProcessorStepRegistry
|
||||||
ProcessorStepRegistry,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
|
|||||||
@@ -11,14 +11,11 @@ import torch
|
|||||||
|
|
||||||
from lerobot.configs.types import FeatureType, PolicyFeature
|
from lerobot.configs.types import FeatureType, PolicyFeature
|
||||||
from lerobot.constants import OBS_LANGUAGE_ATTENTION_MASK, OBS_LANGUAGE_TOKENS
|
from lerobot.constants import OBS_LANGUAGE_ATTENTION_MASK, OBS_LANGUAGE_TOKENS
|
||||||
from lerobot.processor.pipeline import (
|
|
||||||
EnvTransition,
|
|
||||||
ObservationProcessor,
|
|
||||||
ProcessorStepRegistry,
|
|
||||||
TransitionKey,
|
|
||||||
)
|
|
||||||
from lerobot.utils.import_utils import _transformers_available
|
from lerobot.utils.import_utils import _transformers_available
|
||||||
|
|
||||||
|
from .core import EnvTransition, TransitionKey
|
||||||
|
from .pipeline import ObservationProcessor, ProcessorStepRegistry
|
||||||
|
|
||||||
if TYPE_CHECKING or _transformers_available:
|
if TYPE_CHECKING or _transformers_available:
|
||||||
from transformers import AutoTokenizer
|
from transformers import AutoTokenizer
|
||||||
else:
|
else:
|
||||||
|
|||||||
@@ -76,14 +76,13 @@ from lerobot.datasets.utils import hw_to_dataset_features
|
|||||||
from lerobot.datasets.video_utils import VideoEncodingManager
|
from lerobot.datasets.video_utils import VideoEncodingManager
|
||||||
from lerobot.policies.factory import make_policy, make_pre_post_processors
|
from lerobot.policies.factory import make_policy, make_pre_post_processors
|
||||||
from lerobot.policies.pretrained import PreTrainedPolicy
|
from lerobot.policies.pretrained import PreTrainedPolicy
|
||||||
from lerobot.processor import RobotProcessor
|
from lerobot.processor import IdentityProcessor, RobotProcessor, TransitionKey
|
||||||
from lerobot.processor.converters import (
|
from lerobot.processor.converters import (
|
||||||
to_output_robot_action,
|
to_output_robot_action,
|
||||||
to_transition_robot_observation,
|
to_transition_robot_observation,
|
||||||
to_transition_teleop_action,
|
to_transition_teleop_action,
|
||||||
transition_to_dataset_frame,
|
transition_to_dataset_frame,
|
||||||
)
|
)
|
||||||
from lerobot.processor.pipeline import IdentityProcessor, TransitionKey
|
|
||||||
from lerobot.processor.rename_processor import rename_stats
|
from lerobot.processor.rename_processor import rename_stats
|
||||||
from lerobot.robots import ( # noqa: F401
|
from lerobot.robots import ( # noqa: F401
|
||||||
Robot,
|
Robot,
|
||||||
|
|||||||
@@ -47,9 +47,8 @@ from pprint import pformat
|
|||||||
|
|
||||||
from lerobot.configs import parser
|
from lerobot.configs import parser
|
||||||
from lerobot.datasets.lerobot_dataset import LeRobotDataset
|
from lerobot.datasets.lerobot_dataset import LeRobotDataset
|
||||||
from lerobot.processor import RobotProcessor
|
from lerobot.processor import IdentityProcessor, RobotProcessor
|
||||||
from lerobot.processor.converters import to_output_robot_action, to_transition_teleop_action
|
from lerobot.processor.converters import to_output_robot_action, to_transition_teleop_action
|
||||||
from lerobot.processor.pipeline import IdentityProcessor
|
|
||||||
from lerobot.robots import ( # noqa: F401
|
from lerobot.robots import ( # noqa: F401
|
||||||
Robot,
|
Robot,
|
||||||
RobotConfig,
|
RobotConfig,
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ from scipy.spatial.transform import Rotation
|
|||||||
from lerobot.configs.types import FeatureType, PolicyFeature
|
from lerobot.configs.types import FeatureType, PolicyFeature
|
||||||
from lerobot.constants import ACTION, OBS_STATE
|
from lerobot.constants import ACTION, OBS_STATE
|
||||||
from lerobot.model.kinematics import RobotKinematics
|
from lerobot.model.kinematics import RobotKinematics
|
||||||
from lerobot.processor.pipeline import (
|
from lerobot.processor import (
|
||||||
ActionProcessor,
|
ActionProcessor,
|
||||||
ComplementaryDataProcessor,
|
ComplementaryDataProcessor,
|
||||||
EnvTransition,
|
EnvTransition,
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ from lerobot.configs import parser
|
|||||||
from lerobot.configs.train import TrainRLServerPipelineConfig
|
from lerobot.configs.train import TrainRLServerPipelineConfig
|
||||||
from lerobot.policies.factory import make_policy
|
from lerobot.policies.factory import make_policy
|
||||||
from lerobot.policies.sac.modeling_sac import SACPolicy
|
from lerobot.policies.sac.modeling_sac import SACPolicy
|
||||||
from lerobot.processor.pipeline import TransitionKey
|
from lerobot.processor import TransitionKey
|
||||||
from lerobot.robots import so100_follower # noqa: F401
|
from lerobot.robots import so100_follower # noqa: F401
|
||||||
from lerobot.scripts.rl.gym_manipulator import (
|
from lerobot.scripts.rl.gym_manipulator import (
|
||||||
create_transition,
|
create_transition,
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ from lerobot.processor import (
|
|||||||
AddTeleopActionAsComplimentaryData,
|
AddTeleopActionAsComplimentaryData,
|
||||||
AddTeleopEventsAsInfo,
|
AddTeleopEventsAsInfo,
|
||||||
DeviceProcessor,
|
DeviceProcessor,
|
||||||
|
EnvTransition,
|
||||||
GripperPenaltyProcessor,
|
GripperPenaltyProcessor,
|
||||||
ImageCropResizeProcessor,
|
ImageCropResizeProcessor,
|
||||||
InterventionActionProcessor,
|
InterventionActionProcessor,
|
||||||
@@ -45,10 +46,10 @@ from lerobot.processor import (
|
|||||||
TimeLimitProcessor,
|
TimeLimitProcessor,
|
||||||
ToBatchProcessor,
|
ToBatchProcessor,
|
||||||
Torch2NumpyActionProcessor,
|
Torch2NumpyActionProcessor,
|
||||||
|
TransitionKey,
|
||||||
VanillaObservationProcessor,
|
VanillaObservationProcessor,
|
||||||
create_transition,
|
create_transition,
|
||||||
)
|
)
|
||||||
from lerobot.processor.pipeline import EnvTransition, TransitionKey
|
|
||||||
from lerobot.robots import ( # noqa: F401
|
from lerobot.robots import ( # noqa: F401
|
||||||
RobotConfig,
|
RobotConfig,
|
||||||
make_robot_from_config,
|
make_robot_from_config,
|
||||||
|
|||||||
@@ -61,13 +61,12 @@ import rerun as rr
|
|||||||
from lerobot.cameras.opencv.configuration_opencv import OpenCVCameraConfig # noqa: F401
|
from lerobot.cameras.opencv.configuration_opencv import OpenCVCameraConfig # noqa: F401
|
||||||
from lerobot.cameras.realsense.configuration_realsense import RealSenseCameraConfig # noqa: F401
|
from lerobot.cameras.realsense.configuration_realsense import RealSenseCameraConfig # noqa: F401
|
||||||
from lerobot.configs import parser
|
from lerobot.configs import parser
|
||||||
from lerobot.processor import RobotProcessor
|
from lerobot.processor import IdentityProcessor, RobotProcessor
|
||||||
from lerobot.processor.converters import (
|
from lerobot.processor.converters import (
|
||||||
to_output_robot_action,
|
to_output_robot_action,
|
||||||
to_transition_robot_observation,
|
to_transition_robot_observation,
|
||||||
to_transition_teleop_action,
|
to_transition_teleop_action,
|
||||||
)
|
)
|
||||||
from lerobot.processor.pipeline import IdentityProcessor
|
|
||||||
from lerobot.robots import ( # noqa: F401
|
from lerobot.robots import ( # noqa: F401
|
||||||
Robot,
|
Robot,
|
||||||
RobotConfig,
|
RobotConfig,
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
from dataclasses import dataclass, field
|
from dataclasses import dataclass, field
|
||||||
|
|
||||||
from lerobot.configs.types import FeatureType, PolicyFeature
|
from lerobot.configs.types import FeatureType, PolicyFeature
|
||||||
from lerobot.processor.pipeline import ActionProcessor, ProcessorStepRegistry
|
from lerobot.processor import ActionProcessor, ProcessorStepRegistry
|
||||||
from lerobot.teleoperators.phone.config_phone import PhoneOS
|
from lerobot.teleoperators.phone.config_phone import PhoneOS
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ from lerobot.datasets.utils import load_json, write_json
|
|||||||
from lerobot.optim.optimizers import load_optimizer_state, save_optimizer_state
|
from lerobot.optim.optimizers import load_optimizer_state, save_optimizer_state
|
||||||
from lerobot.optim.schedulers import load_scheduler_state, save_scheduler_state
|
from lerobot.optim.schedulers import load_scheduler_state, save_scheduler_state
|
||||||
from lerobot.policies.pretrained import PreTrainedPolicy
|
from lerobot.policies.pretrained import PreTrainedPolicy
|
||||||
from lerobot.processor.pipeline import RobotProcessor
|
from lerobot.processor import RobotProcessor
|
||||||
from lerobot.utils.random_utils import load_rng_state, save_rng_state
|
from lerobot.utils.random_utils import load_rng_state, save_rng_state
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ from typing import Any
|
|||||||
import numpy as np
|
import numpy as np
|
||||||
import rerun as rr
|
import rerun as rr
|
||||||
|
|
||||||
from lerobot.processor.pipeline import EnvTransition, TransitionKey
|
from lerobot.processor import EnvTransition, TransitionKey
|
||||||
|
|
||||||
|
|
||||||
def _init_rerun(session_name: str = "lerobot_control_loop") -> None:
|
def _init_rerun(session_name: str = "lerobot_control_loop") -> None:
|
||||||
|
|||||||
@@ -30,9 +30,9 @@ from lerobot.processor import (
|
|||||||
RenameProcessor,
|
RenameProcessor,
|
||||||
RobotProcessor,
|
RobotProcessor,
|
||||||
ToBatchProcessor,
|
ToBatchProcessor,
|
||||||
|
TransitionKey,
|
||||||
UnnormalizerProcessor,
|
UnnormalizerProcessor,
|
||||||
)
|
)
|
||||||
from lerobot.processor.pipeline import TransitionKey
|
|
||||||
|
|
||||||
|
|
||||||
def create_transition(observation=None, action=None, **kwargs):
|
def create_transition(observation=None, action=None, **kwargs):
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import torch
|
import torch
|
||||||
|
|
||||||
|
from lerobot.processor import RobotProcessor, TransitionKey
|
||||||
from lerobot.processor.converters import batch_to_transition, transition_to_batch
|
from lerobot.processor.converters import batch_to_transition, transition_to_batch
|
||||||
from lerobot.processor.pipeline import RobotProcessor, TransitionKey
|
|
||||||
|
|
||||||
|
|
||||||
def _dummy_batch():
|
def _dummy_batch():
|
||||||
|
|||||||
@@ -22,9 +22,7 @@ import pytest
|
|||||||
import torch
|
import torch
|
||||||
|
|
||||||
from lerobot.constants import OBS_ENV_STATE, OBS_IMAGE, OBS_IMAGES, OBS_STATE
|
from lerobot.constants import OBS_ENV_STATE, OBS_IMAGE, OBS_IMAGES, OBS_STATE
|
||||||
from lerobot.processor import ProcessorStepRegistry, RobotProcessor
|
from lerobot.processor import ProcessorStepRegistry, RobotProcessor, ToBatchProcessor, TransitionKey
|
||||||
from lerobot.processor.batch_processor import ToBatchProcessor
|
|
||||||
from lerobot.processor.pipeline import TransitionKey
|
|
||||||
|
|
||||||
|
|
||||||
def create_transition(
|
def create_transition(
|
||||||
|
|||||||
@@ -24,8 +24,13 @@ from lerobot.configs.types import FeatureType, NormalizationMode, PolicyFeature
|
|||||||
from lerobot.constants import OBS_IMAGE, OBS_STATE
|
from lerobot.constants import OBS_IMAGE, OBS_STATE
|
||||||
from lerobot.policies.sac.reward_model.configuration_classifier import RewardClassifierConfig
|
from lerobot.policies.sac.reward_model.configuration_classifier import RewardClassifierConfig
|
||||||
from lerobot.policies.sac.reward_model.processor_classifier import make_classifier_processor
|
from lerobot.policies.sac.reward_model.processor_classifier import make_classifier_processor
|
||||||
from lerobot.processor import DeviceProcessor, IdentityProcessor, NormalizerProcessor, RobotProcessor
|
from lerobot.processor import (
|
||||||
from lerobot.processor.pipeline import TransitionKey
|
DeviceProcessor,
|
||||||
|
IdentityProcessor,
|
||||||
|
NormalizerProcessor,
|
||||||
|
RobotProcessor,
|
||||||
|
TransitionKey,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def create_transition(observation=None, action=None, **kwargs):
|
def create_transition(observation=None, action=None, **kwargs):
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ import numpy as np
|
|||||||
import pytest
|
import pytest
|
||||||
import torch
|
import torch
|
||||||
|
|
||||||
|
from lerobot.processor import TransitionKey
|
||||||
from lerobot.processor.converters import (
|
from lerobot.processor.converters import (
|
||||||
batch_to_transition,
|
batch_to_transition,
|
||||||
to_output_robot_action,
|
to_output_robot_action,
|
||||||
@@ -11,7 +12,6 @@ from lerobot.processor.converters import (
|
|||||||
transition_to_batch,
|
transition_to_batch,
|
||||||
transition_to_dataset_frame,
|
transition_to_dataset_frame,
|
||||||
)
|
)
|
||||||
from lerobot.processor.pipeline import TransitionKey
|
|
||||||
|
|
||||||
|
|
||||||
def test_to_transition_teleop_action_prefix_and_tensor_conversion():
|
def test_to_transition_teleop_action_prefix_and_tensor_conversion():
|
||||||
|
|||||||
@@ -19,8 +19,7 @@ import pytest
|
|||||||
import torch
|
import torch
|
||||||
|
|
||||||
from lerobot.configs.types import FeatureType, PolicyFeature
|
from lerobot.configs.types import FeatureType, PolicyFeature
|
||||||
from lerobot.processor import DeviceProcessor, RobotProcessor
|
from lerobot.processor import DeviceProcessor, RobotProcessor, TransitionKey
|
||||||
from lerobot.processor.pipeline import TransitionKey
|
|
||||||
|
|
||||||
|
|
||||||
def create_transition(
|
def create_transition(
|
||||||
@@ -358,7 +357,7 @@ def test_save_and_load_pretrained():
|
|||||||
|
|
||||||
def test_registry_functionality():
|
def test_registry_functionality():
|
||||||
"""Test that DeviceProcessor is properly registered."""
|
"""Test that DeviceProcessor is properly registered."""
|
||||||
from lerobot.processor.pipeline import ProcessorStepRegistry
|
from lerobot.processor import ProcessorStepRegistry
|
||||||
|
|
||||||
# Check that DeviceProcessor is registered
|
# Check that DeviceProcessor is registered
|
||||||
registered_class = ProcessorStepRegistry.get("device_processor")
|
registered_class = ProcessorStepRegistry.get("device_processor")
|
||||||
|
|||||||
@@ -30,9 +30,9 @@ from lerobot.processor import (
|
|||||||
RenameProcessor,
|
RenameProcessor,
|
||||||
RobotProcessor,
|
RobotProcessor,
|
||||||
ToBatchProcessor,
|
ToBatchProcessor,
|
||||||
|
TransitionKey,
|
||||||
UnnormalizerProcessor,
|
UnnormalizerProcessor,
|
||||||
)
|
)
|
||||||
from lerobot.processor.pipeline import TransitionKey
|
|
||||||
|
|
||||||
|
|
||||||
def create_transition(observation=None, action=None, **kwargs):
|
def create_transition(observation=None, action=None, **kwargs):
|
||||||
|
|||||||
@@ -20,13 +20,15 @@ import pytest
|
|||||||
import torch
|
import torch
|
||||||
|
|
||||||
from lerobot.configs.types import FeatureType, NormalizationMode, PolicyFeature
|
from lerobot.configs.types import FeatureType, NormalizationMode, PolicyFeature
|
||||||
from lerobot.processor.converters import to_tensor
|
from lerobot.processor import (
|
||||||
from lerobot.processor.normalize_processor import (
|
IdentityProcessor,
|
||||||
NormalizerProcessor,
|
NormalizerProcessor,
|
||||||
|
RobotProcessor,
|
||||||
|
TransitionKey,
|
||||||
UnnormalizerProcessor,
|
UnnormalizerProcessor,
|
||||||
hotswap_stats,
|
hotswap_stats,
|
||||||
)
|
)
|
||||||
from lerobot.processor.pipeline import IdentityProcessor, RobotProcessor, TransitionKey
|
from lerobot.processor.converters import to_tensor
|
||||||
|
|
||||||
|
|
||||||
def create_transition(
|
def create_transition(
|
||||||
|
|||||||
@@ -20,8 +20,7 @@ import torch
|
|||||||
|
|
||||||
from lerobot.configs.types import FeatureType
|
from lerobot.configs.types import FeatureType
|
||||||
from lerobot.constants import OBS_ENV_STATE, OBS_IMAGE, OBS_IMAGES, OBS_STATE
|
from lerobot.constants import OBS_ENV_STATE, OBS_IMAGE, OBS_IMAGES, OBS_STATE
|
||||||
from lerobot.processor import VanillaObservationProcessor
|
from lerobot.processor import TransitionKey, VanillaObservationProcessor
|
||||||
from lerobot.processor.pipeline import TransitionKey
|
|
||||||
from tests.conftest import assert_contract_is_typed
|
from tests.conftest import assert_contract_is_typed
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -29,9 +29,9 @@ from lerobot.processor import (
|
|||||||
NormalizerProcessor,
|
NormalizerProcessor,
|
||||||
RenameProcessor,
|
RenameProcessor,
|
||||||
ToBatchProcessor,
|
ToBatchProcessor,
|
||||||
|
TransitionKey,
|
||||||
UnnormalizerProcessor,
|
UnnormalizerProcessor,
|
||||||
)
|
)
|
||||||
from lerobot.processor.pipeline import TransitionKey
|
|
||||||
|
|
||||||
|
|
||||||
def create_transition(observation=None, action=None, **kwargs):
|
def create_transition(observation=None, action=None, **kwargs):
|
||||||
|
|||||||
@@ -27,8 +27,7 @@ import torch.nn as nn
|
|||||||
|
|
||||||
from lerobot.configs.types import FeatureType, PolicyFeature
|
from lerobot.configs.types import FeatureType, PolicyFeature
|
||||||
from lerobot.datasets.pipeline_features import aggregate_pipeline_dataset_features
|
from lerobot.datasets.pipeline_features import aggregate_pipeline_dataset_features
|
||||||
from lerobot.processor import EnvTransition, ProcessorStepRegistry, RobotProcessor
|
from lerobot.processor import EnvTransition, ProcessorStepRegistry, RobotProcessor, TransitionKey
|
||||||
from lerobot.processor.pipeline import TransitionKey
|
|
||||||
from tests.conftest import assert_contract_is_typed
|
from tests.conftest import assert_contract_is_typed
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,12 @@ import numpy as np
|
|||||||
import torch
|
import torch
|
||||||
|
|
||||||
from lerobot.configs.types import FeatureType
|
from lerobot.configs.types import FeatureType
|
||||||
from lerobot.processor import ProcessorStepRegistry, RenameProcessor, RobotProcessor, TransitionKey
|
from lerobot.processor import (
|
||||||
|
ProcessorStepRegistry,
|
||||||
|
RenameProcessor,
|
||||||
|
RobotProcessor,
|
||||||
|
TransitionKey,
|
||||||
|
)
|
||||||
from lerobot.processor.rename_processor import rename_stats
|
from lerobot.processor.rename_processor import rename_stats
|
||||||
from tests.conftest import assert_contract_is_typed
|
from tests.conftest import assert_contract_is_typed
|
||||||
|
|
||||||
|
|||||||
@@ -30,9 +30,9 @@ from lerobot.processor import (
|
|||||||
RenameProcessor,
|
RenameProcessor,
|
||||||
RobotProcessor,
|
RobotProcessor,
|
||||||
ToBatchProcessor,
|
ToBatchProcessor,
|
||||||
|
TransitionKey,
|
||||||
UnnormalizerProcessor,
|
UnnormalizerProcessor,
|
||||||
)
|
)
|
||||||
from lerobot.processor.pipeline import TransitionKey
|
|
||||||
|
|
||||||
|
|
||||||
def create_transition(observation=None, action=None, **kwargs):
|
def create_transition(observation=None, action=None, **kwargs):
|
||||||
|
|||||||
@@ -32,9 +32,9 @@ from lerobot.processor import (
|
|||||||
NormalizerProcessor,
|
NormalizerProcessor,
|
||||||
RenameProcessor,
|
RenameProcessor,
|
||||||
ToBatchProcessor,
|
ToBatchProcessor,
|
||||||
|
TransitionKey,
|
||||||
UnnormalizerProcessor,
|
UnnormalizerProcessor,
|
||||||
)
|
)
|
||||||
from lerobot.processor.pipeline import TransitionKey
|
|
||||||
|
|
||||||
|
|
||||||
def create_transition(observation=None, action=None, **kwargs):
|
def create_transition(observation=None, action=None, **kwargs):
|
||||||
|
|||||||
@@ -30,9 +30,9 @@ from lerobot.processor import (
|
|||||||
RenameProcessor,
|
RenameProcessor,
|
||||||
RobotProcessor,
|
RobotProcessor,
|
||||||
ToBatchProcessor,
|
ToBatchProcessor,
|
||||||
|
TransitionKey,
|
||||||
UnnormalizerProcessor,
|
UnnormalizerProcessor,
|
||||||
)
|
)
|
||||||
from lerobot.processor.pipeline import TransitionKey
|
|
||||||
|
|
||||||
|
|
||||||
def create_transition(observation=None, action=None, **kwargs):
|
def create_transition(observation=None, action=None, **kwargs):
|
||||||
|
|||||||
@@ -10,8 +10,7 @@ import torch
|
|||||||
|
|
||||||
from lerobot.configs.types import FeatureType, PolicyFeature
|
from lerobot.configs.types import FeatureType, PolicyFeature
|
||||||
from lerobot.constants import OBS_LANGUAGE
|
from lerobot.constants import OBS_LANGUAGE
|
||||||
from lerobot.processor.pipeline import RobotProcessor, TransitionKey
|
from lerobot.processor import RobotProcessor, TokenizerProcessor, TransitionKey
|
||||||
from lerobot.processor.tokenizer_processor import TokenizerProcessor
|
|
||||||
from tests.utils import require_package
|
from tests.utils import require_package
|
||||||
|
|
||||||
|
|
||||||
@@ -488,7 +487,7 @@ def test_save_and_load_pretrained_with_tokenizer_object():
|
|||||||
@require_package("transformers")
|
@require_package("transformers")
|
||||||
def test_registry_functionality():
|
def test_registry_functionality():
|
||||||
"""Test that the processor is properly registered."""
|
"""Test that the processor is properly registered."""
|
||||||
from lerobot.processor.pipeline import ProcessorStepRegistry
|
from lerobot.processor import ProcessorStepRegistry
|
||||||
|
|
||||||
# Check that the processor is registered
|
# Check that the processor is registered
|
||||||
assert "tokenizer_processor" in ProcessorStepRegistry.list()
|
assert "tokenizer_processor" in ProcessorStepRegistry.list()
|
||||||
|
|||||||
@@ -30,9 +30,9 @@ from lerobot.processor import (
|
|||||||
RenameProcessor,
|
RenameProcessor,
|
||||||
RobotProcessor,
|
RobotProcessor,
|
||||||
ToBatchProcessor,
|
ToBatchProcessor,
|
||||||
|
TransitionKey,
|
||||||
UnnormalizerProcessor,
|
UnnormalizerProcessor,
|
||||||
)
|
)
|
||||||
from lerobot.processor.pipeline import TransitionKey
|
|
||||||
|
|
||||||
|
|
||||||
def create_transition(observation=None, action=None, **kwargs):
|
def create_transition(observation=None, action=None, **kwargs):
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ from types import SimpleNamespace
|
|||||||
import numpy as np
|
import numpy as np
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from lerobot.processor.pipeline import TransitionKey
|
from lerobot.processor import TransitionKey
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
|
|||||||
Reference in New Issue
Block a user