Skip to main content
The Processor API provides modular pipelines for transforming data between robots, policies, and environments.

Overview

LeRobot uses processor pipelines to:
  • Normalize/unnormalize data
  • Convert between data formats (numpy ↔ torch)
  • Apply transformations (e.g., delta actions)
  • Move data between devices (CPU/GPU)
  • Rename observation keys
  • Add batch dimensions

Type Definitions

Location: src/lerobot/processor/core.py

Core Pipeline Classes

ProcessorStep

Base class for all processing steps.

DataProcessorPipeline

Generic pipeline for chaining processing steps.

Built-in Processor Steps

NormalizerProcessorStep

Normalize data using dataset statistics.
dict
required
Dataset statistics with mean and std for each feature.
dict
required
Feature definitions specifying which keys to normalize.

UnnormalizerProcessorStep

Reverse normalization.

DeviceProcessorStep

Move tensors to specific device.
str
required
Device string: "cpu", "cuda", "cuda:0", etc.

MapDeltaActionToRobotActionStep

Convert delta actions to absolute actions.

RenameObservationsProcessorStep

Rename observation keys.
dict[str, str]
required
Mapping from old keys to new keys.

AddBatchDimensionProcessorStep

Add batch dimension to tensors.

Factory Functions

make_default_processors

Create default processors for robot data.
RobotProcessorPipeline
Pipeline for processing robot observations.
RobotProcessorPipeline
Pipeline for processing robot actions.
RobotProcessorPipeline
Pipeline for processing teleoperation actions.

make_default_robot_observation_processor

make_default_robot_action_processor

Specialized Pipelines

PolicyProcessorPipeline

Pipeline for policy input/output processing.

RobotProcessorPipeline

Pipeline for robot-specific processing.

Usage Examples

Training Pipeline

Inference Pipeline

Custom Processor Step

Delta Action Processing

Observation Renaming

Processor Registry

Register custom processor steps:

See Also