Releases: huggingface/lerobot
Releases · huggingface/lerobot
Release v0.4.3
What's Changed
- chore(dependencies): Bump lerobot to 0.4.3 by @imstevenpmwork in #2540
- fix(scripts): remove the data sampler because data access to the subset of a dataset has been fixed by @sotanakamura in #2521
- Feat/add unitree g1 robot by @nepyope in #2530
- fix(ci): move hub artifacts to
/mntto avoid runners'No space left on deviceby @imstevenpmwork in #2564 - fix pi05 forward compile by @michel-aractingi in #2551
- Make transport module Mypy Compliant [issue#1731] by @sezan92 in #2433
- feat(policies): Allow users to register 3rd party policies -
pip install lerobot_policy_mypolicyby @danielsanjosepro in #2308 - doc: fix wrong package name in installation doc by @yanghua in #2513
- Earth Rover Mini Plus integration by @s1lent4gnt in #2544
- Revert "Earth Rover Mini Plus integration" by @imstevenpmwork in #2574
- feat(policies): Add X-VLA by @jadechoghari in #2405
- feat(robots): Earth Rover Mini Plus integration by @imstevenpmwork in #2575
- fix(docs): remove duplicated package in install instructions by @imstevenpmwork in #2573
- Fix link to lerobot-train script in documentation by @cagataycali in #2466
- chore(docs): reorganize assembly instructions setup before assembly by @ozten in #2333
- Fix argument typo in async inference documentation by @kevinjosethomas in #2361
- fix(scripts): missing so101 import by @imstevenpmwork in #2577
- Add a documentation page with a brief intro to hw backends by @sovrasov in #2385
- Fix video indexing bugs in dataset aggregation with multi video datatasets by @michel-aractingi in #2550
- chore(ci): skip workflows if not lerobot repository by @imstevenpmwork in #2601
- Fix torch.compile in diffusion sampling loops at inference time by @michel-aractingi in #2600
- feat(dataset): add tool to convert images to video datasets by @jadechoghari in #2560
- Docs: Update X-VLA training strategies/commands by @jadechoghari in #2611
- enable variable image sizes to pi0/pi0.5 by @michel-aractingi in #2609
- docs: add auto in docs for xvla by @jadechoghari in #2645
- feat(robot): Add support for OMX robot by @Woojin-Crive in #2614
- Feat/add mj env by @nepyope in #2613
- docs: update IL robots API example and add OpenCV workaround by @cagataycali in #2648
- fix(scripts): finalize the dataset after recording by @sotanakamura in #2496
- feat(dataset): expose tolerance_s argument to training config by @imstevenpmwork in #2653
- fix(policies): add device back to smolvlm expert by @imstevenpmwork in #2662
- feat(scripts): add more info to lerobot-info by @imstevenpmwork in #2663
- docs(dataset): add visualization section by @imstevenpmwork in #2664
- chore(ci): update PR template by @imstevenpmwork in #2665
- feat(ci): simple automatic labelling by @imstevenpmwork in #2667
- chore(ci): update issue template by @imstevenpmwork in #2666
- fix(ci): better heuristic + issue type template fix by @imstevenpmwork in #2672
- fix(ci): close bracket pattern by @imstevenpmwork in #2674
- chore(ci): minor improvements auto labeling by @imstevenpmwork in #2675
- chore(ci): minor improvement bug-report template & pr auto label by @imstevenpmwork in #2676
- Add sarm by @pkooij in #2639
- feat(docs): modernize readme by @imstevenpmwork in #2660
- Fixes ReadMe Policies Classification by @fracapuano in #2682
- fix(optim): enable and resolve mypy type errors by @cverrier in #2683
- Add readme by @pkooij in #2698
- feat: support wallx model by @wut19 in #2593
- modify the README file for wallx by @wut19 in #2705
- chore: modernize contributing.md by @imstevenpmwork in #2677
- use syslink for wall-x readme by @pkooij in #2708
- pi fixes for dependencies by @pkooij in #2706
- feat(ci): adds release versioning to docs by @imstevenpmwork in #2709
- chore(ci): make keyword matching more conservative by @imstevenpmwork in #2711
- Upgrade GitHub Actions for Node 24 compatibility by @salmanmkc in #2691
- fix: use importlib.metadata for plugin discovery to support PEP 660 by @aalvan in #2687
- resolve path for RABC correctly by @pkooij in #2710
- chore: adds dynamic README handling and setup script by @imstevenpmwork in #2724
- feat(pi0): add train_expert_only and freeze_vision_encoder flags to pi0 and pi0.5 by @pxe3 in #2727
- feat(envs): Add NVIDIA IsaacLab-Arena Lerobot by @nv-sachdevkartik in #2699
- IsaacLab Arena Integration documentation update by @liorbenhorin in #2749
- chore(readme): update discord invitation link by @imstevenpmwork in #2750
- Add basic PEFT support to train script + record module by @githubnemo in #1411
- Fix invalid syntax by @pkooij in #2752
- fix a bug for kwargs in wallx by @wut19 in #2714
- docs: LightWheel to Lightwheel by @jadechoghari in #2758
- fix: precise_sleep is never called with negative value by @imstevenpmwork in #2757
- refactor(ci): Docker Hub image env by @paulinebm in #2755
- chore(dependencies): bound new dependecies by @imstevenpmwork in #2759
- add holosoma locomotion by @nepyope in #2669
- feat(visualization): allow remote viewer + compress rerun images by @imstevenpmwork in #2756
- Revert "feat(visualization): allow remote viewer + compress rerun images" by @imstevenpmwork in #2766
- feat(visualization): allow remote viewer + compress rerun images by @imstevenpmwork in #2767
- feat(robots): consolidate SO arms implementation by @imstevenpmwork in #2763
- chore(docs): update code block syntax to specify python for clarity by @imstevenpmwork in #2770
- feat(datasets): expose video codec option for dataset recording by @leot13 in #2771
- skip peft cmd test in cli by @pkooij in #2776
- feat(policies): add autoregressive VLAs with tokenization PiFast by @jadechoghari in #2734
- Fix: Respect policy.device=cpu config in training by @michel-aractingi in #2778
- docs: improve assets by @jadechoghari in #2777
- feat(robots): consolidates bi SO setups by @imstevenpmwork in #2780
- Feat/g1 improvements record sim by @nepyope in #2765
- fix(robots): add reachy2 fixes by @imstevenpmwork in #2783
- Move cfg.validate() earlier to fix NoneType error with --policy.path by @samet-rob in #2782
- fix: train tokenizer CLI entry point by @jadechoghari in #2784
- chore: use alias & constants by @imstevenpmwork in #2785
- fix(teleop): add is_connected check to get_action by @imstevenpmwork in #2801
- chore(ci): merge annoying section in PR template by @imstevenpmwork in https://git...
Release v0.4.2
What's Changed
- chore(dependencies): Bump lerobot to 0.4.2 by @imstevenpmwork in #2423
- Fixes in port droid scripts by @michel-aractingi in #2455
- Fix episode filtering bug when requesting a subset of the episodes in a dataset by @michel-aractingi in #2456
- [RTC] Real Time Chunking for Pi0, Smolvla, Pi0.5 by @helper2424 in #1698
- feat(envs): add envs pre-post processor by @jadechoghari in #2474
- Add
absolute_to_reative_idxfor remapping indices to fix delta_timestamp bug by @michel-aractingi in #2490 - docs: Add LeIsaac x LeRobot Envhub tutorial by @jadechoghari in #2498
- feat(dataset): speed-up encoding time by @imstevenpmwork in #2514
- feat(dataset): dynamic compress_level depending on the type of dataset (video or image) by @imstevenpmwork in #2517
- fix(examples): wrap all of them into a main function by @imstevenpmwork in #2524
- feat(parallel encoding): making parallel encoding the default choice over all platforms by @CarolinePascal in #2525
- fix(benchmark) : fixing video benchmark by @CarolinePascal in #2094
- feat(utils):
precise_sleep()less CPU hungry without sacrificing accuracy by @imstevenpmwork in #2526 - fix(scripts): better prints teleop by @imstevenpmwork in #2538
Full Changelog: v0.4.1...v0.4.2
Release v0.4.1
What's Changed
- chore(dependecies): Bump lerobot to 0.4.1 by @imstevenpmwork in #2299
- docs(readme): update installation instructions for 0.4.0 by @imstevenpmwork in #2310
- docs(install): improve groot and libero installation instructions by @imstevenpmwork in #2314
- fix(video_key typo): fixing video_key typo in update_video_info by @CarolinePascal in #2323
- fix(make_policy): rename mapping edge cases in training by @jadechoghari in #2332
- dep(upgrade): add libero as a pypi package by @jadechoghari in #2365
- feat(sim): EnvHub - allow loading envs from the hub by @jadechoghari in #2121
- fix(dataset_tools) Critical bug in modify features by @michel-aractingi in #2342
- fix(dataset): fix data access bottleneck for faster training by @imstevenpmwork in #2408
- chore(installation): remove libero installation patch by @imstevenpmwork in #2416
Full Changelog: v0.4.0...v0.4.1
Release v0.4.0
Release Blog
https://huggingface.co/blog/lerobot-release-v040
What's Changed
- chore: Bump to 0.3.4 by @imstevenpmwork in #1691
- chore(docs): prioritize use of entry points in docs + fix nightly badge by @imstevenpmwork in #1692
- fix(busy_wait): fix busy_wait implementation for Windows platforms by @CarolinePascal in #1695
- fix(ci): inverted names by @imstevenpmwork in #1705
- fix(ci): rename libegl1-mesa in deb13 trixie by @imstevenpmwork in #1735
- fix: Add missing dynamixel encoding table entries by @jackvial in #1534
- fix(dataset): Correctly use episode_data parameter in save_episode by @lxk-221 in #1740
- Removed dupicate lines of code by @mgiac-hexagon in #1709
- Add feetech firmware update docs by @pkooij in #1793
- Lower limits by 50% for current and torque for gripper motor by @pkooij in #1809
- Allow max_relative_target to be a float by @jstnhuang in #1837
- 2 add reachy 2 to updated lerobot by @glannuzel in #1767
- fix (koch): Disable motor torque before applying calibration logic by @Gongsta in #1889
- fix(scripts): revert deletion of rs cam config import introduced by #1767 by @imstevenpmwork in #1876
- Dataset v3 by @michel-aractingi in #1412
- Add Streaming Dataset by @fracapuano in #1613
- Update dataset card by default by @michel-aractingi in #1936
- docs(dataset): add dataset v3 documentation by @jadechoghari in #1956
- feat(processors): use pipelines across the codebase by @AdilZouitine in #1452
- small tiny nit by @fracapuano in #1975
- fix (docs): image link for phone by @pkooij in #1977
- bump gym-hil version to be pipeline compatible by @michel-aractingi in #1983
- Add docs for LeRobot Image transforms by @pkooij in #1972
- fix formatting readme by @pkooij in #1987
- bump datasets to 4.0.0 by @michel-aractingi in #1990
- fix(trainer): overrides device to the target device, for the device processor on the preprocessor by @AdilZouitine in #1993
- feat(sim): Add Libero Env by @jadechoghari in #1984
- feat(ci): add stale GH action bot for stalled issues & PRs by @imstevenpmwork in #1996
- chore(ci): update time for stale issue/pr by @imstevenpmwork in #1997
- Updated Readme removed broken link by @complete-dope in #1989
- Fix: Resolve PermissionError and UnicodeDecodeError in Python scripts by @JivinDotL in #1980
- fix(dataset): cast fps to int instead of float by @imstevenpmwork in #2001
- chore(rl): move rl related code to its directory at top level by @imstevenpmwork in #2002
- docs(rl): fix path by @imstevenpmwork in #2004
- refactor(scripts): update system info script by @imstevenpmwork in #2005
- feat(script): add entry point for dataset viz by @imstevenpmwork in #2006
- feat(script): add entry point for image transform viz by @imstevenpmwork in #2007
- chore: move constants to utils by @imstevenpmwork in #2016
- chore: move errors to utils by @imstevenpmwork in #2017
- chore(scripts): move find_cameras to scripts by @imstevenpmwork in #2018
- feat(script): add entry point for find joints limits by @imstevenpmwork in #2010
- chore(scripts): move find_port to scripts by @imstevenpmwork in #2019
- chore(scripts): move teleop to scripts by @imstevenpmwork in #2023
- chore(scripts): move record to scripts by @imstevenpmwork in #2022
- chore(scripts): move calibrate to scripts by @imstevenpmwork in #2024
- chore(scripts): move setup_motors to scripts by @imstevenpmwork in #2020
- chore(scripts): move replay to scripts by @imstevenpmwork in #2021
- chore(async): move async related code to its directory at top level by @imstevenpmwork in #2003
- chore(ci): update stale message by @imstevenpmwork in #2027
- fix(docs): update outdated links by @imstevenpmwork in #2026
- chore(utils): move benchmark and buffer to their respective modules by @imstevenpmwork in #2028
- chore(utils): move encoding utils and process to their respective modules by @imstevenpmwork in #2029
- chore(utils): remove unused utils legacy functions + rename init_rerun by @imstevenpmwork in #2031
- chore(utils): move queue utils and wandb_utils to their respective modules by @imstevenpmwork in #2030
- (docs): small change in dataset name by @jadechoghari in #2032
- chore(scripts): rename eval and train scripts by @imstevenpmwork in #2033
- chore: replace hard-coded obs values with constants throughout all the source code by @imstevenpmwork in #2037
- chore(mypy): add mypy configuration and module overrides for gradual type checking by @AdilZouitine in #2052
- chore: replace hard-coded action values with constants throughout all the source code by @imstevenpmwork in #2055
- Bug in conversion from v2.1 script by @michel-aractingi in #2057
- chore: replace hard-coded next values with constants throughout all the source code by @imstevenpmwork in #2056
- chore(utils): remove unused code by @imstevenpmwork in #2059
- Fix(train): add processor overrides with normalizer and unnormalizer stats by @AdilZouitine in #2038
- docs(fix): libero example command by @jadechoghari in #2060
- Save Cropped Dataset to Hub by @fracapuano in #2071
- Fix video concat path by @Tavish9 in #2076
- chore: remove unused code by @imstevenpmwork in #2062
- Improve V3 aggregate implementation by @Tavish9 in #2077
- chore: enable pyugrade ruff lint by @imstevenpmwork in #2084
- chore: enable simplify in ruff lint by @imstevenpmwork in #2085
- feat(normalization): add validation for empty features in NormalizerProcessorStep and UnnormalizerProcessorStep by @AdilZouitine in #2087
- Revert feat(normalization): add validation for empty features in NormalizerProcessorStep and UnnormalizerProcessorStep (#2087) by @AdilZouitine in #2089
- feat(policies): add noise parameter to action prediction methods by @AdilZouitine in #2063
- feat(train): include input and output features in processor overrides for normalization by @AdilZouitine in #2090
- fix(video_path): setting video_path to None during conversion for images datasets by @CarolinePascal in #2095
- feat(mypy): enable type checking for envs module and configure mypy settings in pyproject.toml by @AdilZouitine in #2099
- feat(mypy): configure mypy settings and add module overrides for gradual typing by @AdilZouitine in #2101
- Making Envs module pass MyPy checks by @iakhil in #2048
- Add OpenPi, Pi0 and Pi0.5 by @pkooij in #1910
- (chore) improve v3 message, allow converting local datasets to V3 by @michel-aractingi in #1948
- fix bug in
augment_dataset_quantile_stats.pythat was not detecting… by @michel-aractingi in https://github.com/hu...
Release v0.3.3
What's Changed
- chore: Bump to 0.4.0 by @imstevenpmwork in #1653
- Fix policy construction by @fracapuano in #1665
- fix(docs): Update links in il_robots.mdx and il_sim.mdx to use absolute URLs by @tc-huang in #1313
- fix(typo): fixing typo in LeRobot authors names by @CarolinePascal in #1673
- docs: update installation instructions by @imstevenpmwork in #1686
- feat(pipeline): universal processor for LeRobot by @AdilZouitine in #1431
- fix(deps): ceil torch pkg versions by @imstevenpmwork in #1689
- chore: Bump to 0.3.3 by @imstevenpmwork in #1690
Full Changelog: v0.3.2...v0.3.3
Release v0.3.2
What's Changed
- Added poetry setup by @aliberts in #2
- Style & Formatting by @aliberts in #3
- Added pusht dataset auto-download by @aliberts in #4
- Add run on cpu-only compatibility by @aliberts in #5
- Make diffusion work by @Cadene in #6
- Add CI, Remove old install files by @aliberts in #8
- Add AbstractReplayBuffer by @Cadene in #7
- Add Aloha replay buffer + 4 sim datasets by @Cadene in #9
- Fix env tests by @Cadene in #10
- Add pusht test artifact by @aliberts in #12
- Add end-to-end pusht eval test by @aliberts in #15
- Integrate diffusion policy by @aliberts in #16
- Fix bugs with normalization by @Cadene in #17
- Configure wandb entity outside config by @aliberts in #19
- Add license by @aliberts in #20
- Add dynamic build versioning by @aliberts in #18
- Update README.md by @kashif in #23
- Add Aloha env and ACT policy by @Cadene in #11
- CI env fix by @aliberts in #25
- Download datasets from hugging face by @Cadene in #28
- Use Path type instead of str for data_dir by @Cadene in #30
- Fix wandb artifact name and add disable option by @alexander-soare in #31
- Switch between train and eval modes by @alexander-soare in #35
- Add replay_buffer directory and dataset versioning by @Cadene in #36
- Improve README/LICENSE by @Cadene in #37
- Incorporate SerialEnv and introduct multistep policy logic by @alexander-soare in #26
- [WIP] Fix remaining issues with training PushT Image for diffusion policy by @alexander-soare in #22
- Update stats for Pusht and Aloha datasets (v1.0 -> v1.1) by @Cadene in #39
- Enable mps backend for Apple silicon devices by @aliberts in #40
- Fixes issues with PushT diffusion by @alexander-soare in #41
- Run model from HuggingFace hub by @alexander-soare in #44
- Reproduce original diffusion policy pusht image eval by @alexander-soare in #45
- Fix bug with stats.pth + Move from cadene to lerobot + Update datasets to v1.2 by @Cadene in #46
- Fix normalization of last frame and data type in visualization by @alexander-soare in #48
- Port simxarm, upgrade gym to gymnasium by @aliberts in #47
- Improve README by @Cadene in #49
- Update diffusion model by @alexander-soare in #58
- Improve readme by @aliberts in #57
- Add code coverage, more end-to-end tests by @aliberts in #56
- Add examples 2 and 3 by @alexander-soare in #53
- fix stats computation by @alexander-soare in #66
- Remove envs by @aliberts in #69
- Refactor act by @alexander-soare in #68
- Remove torchrl by @Cadene in #64
- Use policy configs instead of passing arguments directly to policy classes by @alexander-soare in #72
- Partial refactor of Diffusion Policy by @alexander-soare in #71
- Refactor pyproject by @aliberts in #76
- Setup contributions by @aliberts in #74
- Use Hugging Face datasets.Dataset by @Cadene in #73
- Fix issue with saving freshly computed stats by @alexander-soare in #77
- Unify policy API by @alexander-soare in #80
- Improve dataset examples by @Cadene in #82
- Tests cleaning & simplification by @aliberts in #81
- Fix tolerance for delta_timestamps by @alexander-soare in #84
- Hotfix test_examples.py by @aliberts in #87
- Quality of life patches for eval.py by @alexander-soare in #86
- Loads episode_data_index and stats during dataset init by @Cadene in #85
- Fix online training by @Cadene in #94
- Move normalization to policy for act and diffusion by @Cadene in #90
- Refactor datasets into LeRobotDataset by @Cadene in #91
- CI nightlies cpu/gpu & cleanup by @aliberts in #75
- Make sure targets are normalized too by @alexander-soare in #106
- More CI cleanup, add style workflow by @aliberts in #107
- Add test-docker-build workflow by @aliberts in #109
- Update readme & remove example 1 by @aliberts in #108
- Add torchaudio by @aliberts in #110
- Add UMI-gripper dataset by @AdilZouitine in #83
- Refactor the download and publication of the datasets and convert it into CLI script by @AdilZouitine in #95
- Remove warnings by @aliberts in #111
- Fix policy defaults by @alexander-soare in #113
- Update UmiProcessor default fps to 10 by @AdilZouitine in #116
- Remove
updatemethod from the policy by @qgallouedec in #99 - Remove mask check key in XarmProcessor by @AdilZouitine in #117
- Speed up CI, add more checks by @aliberts in #115
- Refactor push_dataset_to_hub by @Cadene in #118
- Tidy up yaml configs by @alexander-soare in #121
- Nest ACT model in ACT Policy by @alexander-soare in #122
- Follow
transformerssingle file naming conventions by @alexander-soare in #124 - Use PytorchModelHubMixin to save models as safetensors by @alexander-soare in #125
- Refactor TD-MPC by @alexander-soare in #103
- Fix missing
policy.to(device)in policy factory by @alexander-soare in #126 - Add video decoding to LeRobotDataset by @Cadene in #92
- Publish environments by @aliberts in #120
- Refactor eval.py by @alexander-soare in #127
- Remove batch length restrictions in select_action by @aliberts in #123
- Add dataset visualization with rerun.io by @Cadene in #131
- Add regression tests by @aliberts in #119
- Fix loops in eval.py by @alexander-soare in #128
- Remove EMA model from Diffusion Policy by @alexander-soare in #134
- Rename Diffusion Policy model repository by @alexander-soare in #136
- Remove additional frame from eval render by @alexander-soare in #137
- Add 25 real world datasets (static + mobile aloha) by @Cadene in #133
- Release cleanup by @aliberts in #132
- Remove loss masking from diffusion policy by @alexander-soare in #135
- Relax version contraints & poetry lock by @aliberts in #139
- Add policy and dataset tags to WandB logging by @alexander-soare in #144
- Override pretrained model config by @alexander-soare in #147
- Fix SpatialSoftmax input shape by @alexander-soare in #150
- Support for DDIMScheduler in Diffusion Policy by @kashya...