Skip to main content
LeRobot provides gRPC-based transport utilities for distributed robot learning, enabling policy servers and robot clients to communicate over networks.

Overview

The transport utilities enable:
  • Remote policy inference (policy server + robot client)
  • Distributed training data collection
  • Cloud-based policy deployment
  • Multi-robot coordination

Core Functions

Location: src/lerobot/transport/utils.py

send_bytes_in_chunks

Stream large data payloads in chunks over gRPC.
bytes
required
Binary data to send.
Any
required
Protobuf message class to use.
str
default:""
Prefix for log messages.
bool
default:"True"
If True, log at debug level instead of info.

receive_bytes_in_chunks

Receive chunked data from gRPC stream.
Iterator
required
gRPC stream iterator.
Queue | None
Optional queue for async reception.
Event
required
Event to signal shutdown.
str
default:""
Prefix for log messages.

State Serialization

state_to_bytes

Serialize PyTorch model state dict to bytes.

bytes_to_state_dict

Deserialize bytes to PyTorch state dict.

Transition Serialization

transitions_to_bytes

Serialize transitions for distributed training.

bytes_to_transitions

Deserialize transitions from bytes.

Python Object Serialization

python_object_to_bytes

Serialize arbitrary Python objects.

bytes_to_python_object

Deserialize Python objects.

gRPC Configuration

grpc_channel_options

Get optimized gRPC channel options.
int
default:"4MB"
Maximum message size to receive.
int
default:"4MB"
Maximum message size to send.
bool
default:"True"
Enable automatic retries on network failures.
int
default:"5"
Maximum retry attempts.
str
default:"0.1s"
Initial backoff delay.
str
default:"2s"
Maximum backoff delay.

Policy Server

Run a policy inference server.
Location: src/lerobot/async_inference/policy_server.py

Robot Client

Connect to remote policy server.
Location: src/lerobot/async_inference/robot_client.py

Usage Examples

Remote Policy Inference

Distributed Training Data Collection

Custom gRPC Service

Best Practices

  1. Message Size: Keep messages under 4MB for best performance
  2. Retries: Enable retries for unreliable networks
  3. Timeouts: Set appropriate timeouts for operations
  4. Compression: Use chunking for large payloads
  5. Error Handling: Handle network errors gracefully

Security Considerations

  1. Encryption: Use TLS for production deployments
  2. Authentication: Implement authentication for policy servers
  3. Validation: Validate all received data
  4. Network: Use firewalls and VPNs for remote connections

See Also