Sweet wrappers for extending and remixing LeRobot Datasets
Project description
🍬 RoboCandyWrapper
Sweet wrappers for extending and remixing LeRobot Datasets.
🍬 Why do I need this?
You have robot data. Lots of it. But it's messy:
- Some datasets are from the "old days" (v2.1 dataset).
- Some are brand new (v3.0 dataset).
- You want to mix various data sources as needed, without permanently merging them.
Traditionally, you'd have to write complex scripts to convert everything to a single format. RoboCandyWrapper handles that compatibility layer for you. It wraps your datasets in a sweet, consistent interface so you can focus on training, not data plumbing.
Additionally, you might want to extend your datasets with additional labels and columns without breaking backwards compatibility of data or code with LeRobot. RoboCandyWrapper provides an extendible Adapter system to add new data to existing datasets, load any number of adapters during training, and mixing data between adapters.
RoboCandyWrapper also includes a Sampler system to change the ratio of sampling between multiple data sources, so you can increase or decrease the weight of specific datasets in your data mix as needed.
RoboCandyWrapper is still experimental so do note that the library API could change in the future although we'll do our best to avoid unnecessary changes!
🍬 Quick Start (5 Minutes)
Installation
# Include LeRobot as a dependency in installation
pip install robocandywrapper
# OR...
# Use your own version of LeRobot - may cause issues!
pip install --no-dependencies robocandywrapper
# OR...
# Use your own version of LeRobot and install robocandywrapper as a local editable dependency so you change LeRobot imports as needed
# This might be required if you use a LeRobot fork or depend on an out of date version
git clone https://github.com/villekuosmanen/RoboCandyWrapper.git
cd RoboCandyWrapper
pip install --no-dependencies -e .
Basic usage
Load a vintage v2.1 dataset and a modern v3.0 dataset as if they were the same thing.
from robocandywrapper import make_dataset_without_config
# Your playlist: one old, one new
repo_ids = [
"lerobot/svla_so100_pickplace", # v2.1 dataset
"lerobot/svla_so100_stacking", # v3.0 dataset
]
# The factory handles the compatibility logic automatically
dataset = make_dataset_without_config(repo_ids)
print(f"🎉 Successfully loaded {len(dataset)} episodes from mixed sources!")
🍬 What more can I do with it?
🎧 The "Mix Tape" (Mixing Datasets)
Learn how to combine multiple datasets into one, handle different robot configurations, and use sampling weights to balance your data mix.
🧂 The "Flavor Enhancer" (Transforming Data)
Learn how to use Plugins to add new labels or columns to your dataset, reshape tensors, or modify existing data on-the-fly without breaking backwards compatability.
Other cool stuff from the authors
- Physical AI Interpretability offers open-source interpretability tools for AI robotics.
- RewACT is an open-source reward model / value function based on the ACT transformer architecture.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file robocandywrapper-0.2.1.tar.gz.
File metadata
- Download URL: robocandywrapper-0.2.1.tar.gz
- Upload date:
- Size: 44.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
da73899a77c6e723421d81d667542c8656285d25392e532f9c6a3737a25d9890
|
|
| MD5 |
37a657ec7f6ec66be3fc9123cdfff359
|
|
| BLAKE2b-256 |
973eed3c4b66cdbcd3f774d67ece6ac5c1373b8ae7f188ceaa6d79cc4ea1c018
|
File details
Details for the file robocandywrapper-0.2.1-py3-none-any.whl.
File metadata
- Download URL: robocandywrapper-0.2.1-py3-none-any.whl
- Upload date:
- Size: 47.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7f969dbd3a0311986848d09dca96c7faf5eae43b8bd7c1933ddac0306ea15acd
|
|
| MD5 |
4ff6af2ce291bde93baf92d7b7a2b06e
|
|
| BLAKE2b-256 |
818766009c53ee46a28208e641d9019d60edfa81ca8278ce0fea06bea9b68f56
|