Skip to main content
LeRobot’s processor system is designed to be extensible. This guide shows you how to create custom processing steps for your specific robot or task.

Processor Step Basics

All processor steps inherit from ProcessorStep and must implement two methods:
  1. __call__(transition): Transform the data
  2. transform_features(features): Describe how features change
See lerobot/processor/pipeline.py:143 for the base ProcessorStep class.

Specialized Processor Steps

LeRobot provides specialized base classes for common use cases:

ObservationProcessorStep

Process only observations:

ActionProcessorStep

Process only actions:

RobotActionProcessorStep

Process robot action dictionaries:

Example: Image Preprocessing Step

Create a step that crops and resizes images:

Example: Delta Action Converter

Convert absolute actions to delta (relative) actions:

Stateful Processors

Processors can maintain state using state_dict() and load_state_dict():

Accessing Other Transition Components

Processors can access other parts of the transition via self.transition:
See lerobot/processor/pipeline.py:156 for the transition property.

Configuration Parameters

Use dataclass fields for configuration:

Registration and Discovery

Register your processor to make it discoverable:

Testing Custom Processors

Always test your processors thoroughly:

Integration with Pipelines

Use your custom processor in a pipeline:

Best Practices

1. Keep Processors Simple

Each processor should do one thing well:

2. Handle Edge Cases

3. Document Behavior

API Reference

ProcessorStep

See lerobot/processor/pipeline.py:143
(transition) -> EnvTransition
Process environment transition
(features) -> dict
Transform feature descriptions
() -> dict
Return serializable state
(state) -> None
Load state from dictionary
() -> None
Reset internal state (for episodic processing)

ProcessorStepRegistry

See lerobot/processor/pipeline.py:59
(name) -> decorator
Register a processor step class
(name) -> type
Get processor class by name
() -> list[str]
List all registered processor names