Allow max_relative_target to be a float by @jstnhuang in https://github.com/huggingface/lerobot/pull/1837
2 add reachy 2 to updated lerobot by @glannuzel in https://github.com/huggingface/lerobot/pull/1767
fix (koch): Disable motor torque before applying calibration logic by @Gongsta in https://github.com/huggingface/lerobot/pull/1889
fix(scripts): revert deletion of rs cam config import introduced by #1767 by @imstevenpmwork in https://github.com/huggingface/lerobot/pull/1876
Dataset v3 by @michel-aractingi in https://github.com/huggingface/lerobot/pull/1412
Add Streaming Dataset by @fracapuano in https://github.com/huggingface/lerobot/pull/1613
Update dataset card by default by @michel-aractingi in https://github.com/huggingface/lerobot/pull/1936
docs(dataset): add dataset v3 documentation by @jadechoghari in https://github.com/huggingface/lerobot/pull/1956
feat(processors): use pipelines across the codebase by @AdilZouitine in https://github.com/huggingface/lerobot/pull/1452
small tiny nit by @fracapuano in https://github.com/huggingface/lerobot/pull/1975
fix (docs): image link for phone by @pkooij in https://github.com/huggingface/lerobot/pull/1977
bump gym-hil version to be pipeline compatible by @michel-aractingi in https://github.com/huggingface/lerobot/pull/1983
Add docs for LeRobot Image transforms by @pkooij in https://github.com/huggingface/lerobot/pull/1972
fix formatting readme by @pkooij in https://github.com/huggingface/lerobot/pull/1987
bump datasets to 4.0.0 by @michel-aractingi in https://github.com/huggingface/lerobot/pull/1990
fix(trainer): overrides device to the target device, for the device processor on the preprocessor by @AdilZouitine in https://github.com/huggingface/lerobot/pull/1993
feat(sim): Add Libero Env by @jadechoghari in https://github.com/huggingface/lerobot/pull/1984
feat(ci): add stale GH action bot for stalled issues & PRs by @imstevenpmwork in https://github.com/huggingface/lerobot/pull/1996
chore(ci): update time for stale issue/pr by @imstevenpmwork in https://github.com/huggingface/lerobot/pull/1997
Updated Readme removed broken link by @complete-dope in https://github.com/huggingface/lerobot/pull/1989
Fix: Resolve PermissionError and UnicodeDecodeError in Python scripts by @JivinDotL in https://github.com/huggingface/lerobot/pull/1980
fix(dataset): cast fps to int instead of float by @imstevenpmwork in https://github.com/huggingface/lerobot/pull/2001
chore(rl): move rl related code to its directory at top level by @imstevenpmwork in https://github.com/huggingface/lerobot/pull/2002
docs(rl): fix path by @imstevenpmwork in https://github.com/huggingface/lerobot/pull/2004
refactor(scripts): update system info script by @imstevenpmwork in https://github.com/huggingface/lerobot/pull/2005
feat(script): add entry point for dataset viz by @imstevenpmwork in https://github.com/huggingface/lerobot/pull/2006
feat(script): add entry point for image transform viz by @imstevenpmwork in https://github.com/huggingface/lerobot/pull/2007
chore: move constants to utils by @imstevenpmwork in https://github.com/huggingface/lerobot/pull/2016
chore: move errors to utils by @imstevenpmwork in https://github.com/huggingface/lerobot/pull/2017
chore(scripts): move find_cameras to scripts by @imstevenpmwork in https://github.com/huggingface/lerobot/pull/2018
feat(script): add entry point for find joints limits by @imstevenpmwork in https://github.com/huggingface/lerobot/pull/2010
chore(scripts): move find_port to scripts by @imstevenpmwork in https://github.com/huggingface/lerobot/pull/2019
chore(scripts): move teleop to scripts by @imstevenpmwork in https://github.com/huggingface/lerobot/pull/2023
chore(scripts): move record to scripts by @imstevenpmwork in https://github.com/huggingface/lerobot/pull/2022
chore(scripts): move calibrate to scripts by @imstevenpmwork in https://github.com/huggingface/lerobot/pull/2024
chore(scripts): move setup_motors to scripts by @imstevenpmwork in https://github.com/huggingface/lerobot/pull/2020
chore(scripts): move replay to scripts by @imstevenpmwork in https://github.com/huggingface/lerobot/pull/2021
chore(async): move async related code to its directory at top level by @imstevenpmwork in https://github.com/huggingface/lerobot/pull/2003
chore(ci): update stale message by @imstevenpmwork in https://github.com/huggingface/lerobot/pull/2027
fix(docs): update outdated links by @imstevenpmwork in https://github.com/huggingface/lerobot/pull/2026
chore(utils): move benchmark and buffer to their respective modules by @imstevenpmwork in https://github.com/huggingface/lerobot/pull/2028
chore(utils): move encoding utils and process to their respective modules by @imstevenpmwork in https://github.com/huggingface/lerobot/pull/2029
chore(utils): remove unused utils legacy functions + rename init_rerun by @imstevenpmwork in https://github.com/huggingface/lerobot/pull/2031
chore(utils): move queue utils and wandb_utils to their respective modules by @imstevenpmwork in https://github.com/huggingface/lerobot/pull/2030
(docs): small change in dataset name by @jadechoghari in https://github.com/huggingface/lerobot/pull/2032
chore(scripts): rename eval and train scripts by @imstevenpmwork in https://github.com/huggingface/lerobot/pull/2033
chore: replace hard-coded obs values with constants throughout all the source code by @imstevenpmwork in https://github.com/huggingface/lerobot/pull/2037
chore(mypy): add mypy configuration and module overrides for gradual type checking by @AdilZouitine in https://github.com/huggingface/lerobot/pull/2052
chore: replace hard-coded action values with constants throughout all the source code by @imstevenpmwork in https://github.com/huggingface/lerobot/pull/2055
Bug in conversion from v2.1 script by @michel-aractingi in https://github.com/huggingface/lerobot/pull/2057
chore: replace hard-coded next values with constants throughout all the source code by @imstevenpmwork in https://github.com/huggingface/lerobot/pull/2056
chore(utils): remove unused code by @imstevenpmwork in https://github.com/huggingface/lerobot/pull/2059
Fix(train): add processor overrides with normalizer and unnormalizer stats by @AdilZouitine in https://github.com/huggingface/lerobot/pull/2038
docs(fix): libero example command by @jadechoghari in https://github.com/huggingface/lerobot/pull/2060
Save Cropped Dataset to Hub by @fracapuano in https://github.com/huggingface/lerobot/pull/2071
Fix video concat path by @Tavish9 in https://github.com/huggingface/lerobot/pull/2076
chore: remove unused code by @imstevenpmwork in https://github.com/huggingface/lerobot/pull/2062
Improve V3 aggregate implementation by @Tavish9 in https://github.com/huggingface/lerobot/pull/2077
chore: enable pyugrade ruff lint by @imstevenpmwork in https://github.com/huggingface/lerobot/pull/2084
chore: enable simplify in ruff lint by @imstevenpmwork in https://github.com/huggingface/lerobot/pull/2085
feat(normalization): add validation for empty features in NormalizerProcessorStep and UnnormalizerProcessorStep by @AdilZouitine in https://github.com/huggingface/lerobot/pull/2087
Revert feat(normalization): add validation for empty features in NormalizerProcessorStep and UnnormalizerProcessorStep (#2087) by @AdilZouitine in https://github.com/huggingface/lerobot/pull/2089
feat(policies): add noise parameter to action prediction methods by @AdilZouitine in https://github.com/huggingface/lerobot/pull/2063
feat(train): include input and output features in processor overrides for normalization by @AdilZouitine in https://github.com/huggingface/lerobot/pull/2090
fix(video_path): setting video_path to None during conversion for images datasets by @CarolinePascal in https://github.com/huggingface/lerobot/pull/2095
feat(mypy): enable type checking for envs module and configure mypy settings in pyproject.toml by @AdilZouitine in https://github.com/huggingface/lerobot/pull/2099
feat(mypy): configure mypy settings and add module overrides for gradual typing by @AdilZouitine in https://github.com/huggingface/lerobot/pull/2101
Making Envs module pass MyPy checks by @iakhil in https://github.com/huggingface/lerobot/pull/2048
Add OpenPi, Pi0 and Pi0.5 by @pkooij in https://github.com/huggingface/lerobot/pull/1910
(chore) improve v3 message, allow converting local datasets to V3 by @michel-aractingi in https://github.com/huggingface/lerobot/pull/1948
fix bug in augment_dataset_quantile_stats.py that was not detecting… by @michel-aractingi in https://github.com/huggingface/lerobot/pull/2106
Improve docs pi by @pkooij in https://github.com/huggingface/lerobot/pull/2110
feat(deps): ceil dependency versions by @imstevenpmwork in https://github.com/huggingface/lerobot/pull/2091
Update README.md to fix broken link to example notebook for visuals by @iuliaferoli in https://github.com/huggingface/lerobot/pull/2117
Fix pyav time_base error by @michel-aractingi in https://github.com/huggingface/lerobot/pull/2133
fix(async): Add pre and post processing to async inference and update docs by @pkooij in https://github.com/huggingface/lerobot/pull/2132
feat(devices): add lazy loading for 3rd party robots cameras and teleoperators by @imstevenpmwork in https://github.com/huggingface/lerobot/pull/2123
chore(docs): add missing license headers by @imstevenpmwork in https://github.com/huggingface/lerobot/pull/2140
refactor(datasets): add compress_level parameter to write_image() and set it to 1 by @imstevenpmwork in https://github.com/huggingface/lerobot/pull/2135
Add act documentation by @pkooij in https://github.com/huggingface/lerobot/pull/2139
fix(docs): local docs links by @imstevenpmwork in https://github.com/huggingface/lerobot/pull/2149
Remove validate_robot_cameras_for_policy by @pkooij in https://github.com/huggingface/lerobot/pull/2150
Dataset tools by @michel-aractingi in https://github.com/huggingface/lerobot/pull/2100
refactor(envs): add custom-observation-size by @jadechoghari in https://github.com/huggingface/lerobot/pull/2167
[HIL-SERL] use TeleopEvents.RERECORD_EPISODE in gym_manipulator by @jpizarrom in https://github.com/huggingface/lerobot/pull/2165
Incremental parquet writing by @michel-aractingi in https://github.com/huggingface/lerobot/pull/1903
Add missing finalize calls in example by @michel-aractingi in https://github.com/huggingface/lerobot/pull/2175
fix(pi0): Minor minor minor thing in the warning by @fracapuano in https://github.com/huggingface/lerobot/pull/2168
fix outdated example in docs by @fracapuano in https://github.com/huggingface/lerobot/pull/2182
feat(deps): add setuptools dependency by @imstevenpmwork in https://github.com/huggingface/lerobot/pull/2187
fix(datasets): conversion script function naming by @imstevenpmwork in https://github.com/huggingface/lerobot/pull/2199
feat(scripts): Introduce build_inference_frame/make_robot_action util to easily allow API-based Inference by @fracapuano in https://github.com/huggingface/lerobot/pull/2143
chore(policies): deprecate pi0fast by @imstevenpmwork in https://github.com/huggingface/lerobot/pull/2203
Feat/expand add features by @michel-aractingi in https://github.com/huggingface/lerobot/pull/2202
feat(sim): add metaworld env by @jadechoghari in https://github.com/huggingface/lerobot/pull/2088
chore(deps): libero dep pointing to main by @imstevenpmwork in https://github.com/huggingface/lerobot/pull/2201
Fix homunculus teleoperator serial input lag by @ryanpennings in https://github.com/huggingface/lerobot/pull/2196
feat(train): add accelerate for multi gpu training by @pkooij in https://github.com/huggingface/lerobot/pull/2154
chore(ci): relax stale bot for PRs by @imstevenpmwork in https://github.com/huggingface/lerobot/pull/2222
fix(scripts): warmup in find cameras script by @imstevenpmwork in https://github.com/huggingface/lerobot/pull/2229
fix(dependencies): bound wandb < 0.22.0 due to protobuf version by @imstevenpmwork in https://github.com/huggingface/lerobot/pull/2230
fix(docs): eval-related doc errors by @Infinity4B in https://github.com/huggingface/lerobot/pull/2183
Fix incorrect sign-magnitude handling for STS/SMS series encodings by @nahakiole in https://github.com/huggingface/lerobot/pull/2223
Optimized episode cache verification by @antoinedandi in https://github.com/huggingface/lerobot/pull/2166
chore(deps): bump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0 by @dependabot[bot] in https://github.com/huggingface/lerobot/pull/1870
chore(robots): deprecate strech, vipex and widowx robots by @imstevenpmwork in https://github.com/huggingface/lerobot/pull/2205
Docs(fix): corrects minor mix-ups encoder/decoder by @jadechoghari in https://github.com/huggingface/lerobot/pull/2231
docs: change video file path format in conversion script by @edgarriba in https://github.com/huggingface/lerobot/pull/2113
Fix: debug policy load pretrained model failure problem by @yfynb1111 in https://github.com/huggingface/lerobot/pull/2073
fix(docs): markdown formatting in integrate_hardware.mdx by @imstevenpmwork in https://github.com/huggingface/lerobot/pull/2232
doc: fix deprecated hugginface-cli whoami by @azaracla in https://github.com/huggingface/lerobot/pull/1884
Fixed wrist flex incorrect calibration for LeKiwi by @IliaLarchenko in https://github.com/huggingface/lerobot/pull/1787
feat(utils): add support for Intel XPU backend by @imstevenpmwork in https://github.com/huggingface/lerobot/pull/2233
Fixes: Overriding input and output features from a config (🐛 Bug) by @LiXiling in https://github.com/huggingface/lerobot/pull/1771
fix(docs): update eval example by @imstevenpmwork in https://github.com/huggingface/lerobot/pull/2236
[pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in https://github.com/huggingface/lerobot/pull/1563
fix(docs): update example flags for lerobot-dataset-viz by @imstevenpmwork in https://github.com/huggingface/lerobot/pull/2238
chore(dependencies): upgrade rerun by @imstevenpmwork in https://github.com/huggingface/lerobot/pull/2237
Fixes failed to delete images because the timing of gc is uncertain by @lycoris1129 in https://github.com/huggingface/lerobot/pull/1710
feat(tests): Add MockMotorBus to MockRobot by @fracapuano in https://github.com/huggingface/lerobot/pull/2081
chore(pyproject): cleaning no longer existing files/folders in pyproject exclude_dirs by @CarolinePascal in https://github.com/huggingface/lerobot/pull/2240
docs(install): use miniforge instead of miniconda by @imstevenpmwork in https://github.com/huggingface/lerobot/pull/2249
Feat: Support CLI for Launching LeKiwiHost by @zuoxingdong in https://github.com/huggingface/lerobot/pull/1614
refactor(env): introduce explicit gym ID handling in EnvConfig/factory by @jadechoghari in https://github.com/huggingface/lerobot/pull/2234
Add affine transforms to dataset augmentations by @brysonjones in https://github.com/huggingface/lerobot/pull/2145
chore(mypy-compliant): Ensure the model module passes MyPy type checks by @quanghuynt14 in https://github.com/huggingface/lerobot/pull/1782
Fixed mypy issues (with the exception of import issues) for lerobot cameras module (#1724) by @Jaisree25 in https://github.com/huggingface/lerobot/pull/1788
Fix typehint and address the mypy errors of src/lerobot/configs by @tetsugo02 in https://github.com/huggingface/lerobot/pull/1746
Enhance OpenCVCamera with FOURCC for MJPEG support and validation by @forgetwhatuwant in https://github.com/huggingface/lerobot/pull/1558
chore(style): update mypy config by @imstevenpmwork in https://github.com/huggingface/lerobot/pull/2257
Bugfix: Handle non-version revision strings in LeRobotDataset by @antoinedandi in https://github.com/huggingface/lerobot/pull/2260
fix: support cuda:0, cuda:1 in string selection by @jadechoghari in https://github.com/huggingface/lerobot/pull/2256
fix(scripts): add missing observation overwrite in eval and async by @imstevenpmwork in https://github.com/huggingface/lerobot/pull/2265
Fix camera FPS set issue by @xuaner233 in https://github.com/huggingface/lerobot/pull/2275
fix(ci): exclude motor tests in multi-gpu setup by @imstevenpmwork in https://github.com/huggingface/lerobot/pull/2276
chore(dependencies): bump & ceil gymnasium version + pin metaworld version + bump gym-hil by @imstevenpmwork in https://github.com/huggingface/lerobot/pull/2267
fix(bug): Device Error on SmolVLA Multi-GPU Training by @nijkah in https://github.com/huggingface/lerobot/pull/2270
fix(bug): Fix policy renaming ValueError during training by @jadechoghari in https://github.com/huggingface/lerobot/pull/2278
Fix: Correct frames_in_current_file calculation for multi-episode files by @michel-aractingi in https://github.com/huggingface/lerobot/pull/2280
fix(cameras): opencv camera index casting by @imstevenpmwork in https://github.com/huggingface/lerobot/pull/2286
feat(policies): add Nvidia Gr00t N1.5 model by @imstevenpmwork in https://github.com/huggingface/lerobot/pull/2292
Add API Examples by @fracapuano in https://github.com/huggingface/lerobot/pull/2289
docs(policies): GR00T updates by @liorbenhorin in https://github.com/huggingface/lerobot/pull/2293
Fix: check_cached_episodes doesn't check if the requested episode video were downloaded by @michel-aractingi in https://github.com/huggingface/lerobot/pull/2296
chore(deps): update requirements file by @imstevenpmwork in https://github.com/huggingface/lerobot/pull/2297
patch(ci): remove pi & libero tags from PyPi release temporary due to their reliance on git dependencies by @imstevenpmwork in https://github.com/huggingface/lerobot/pull/2300
fix(ci): add fastapi dep + bump to 0.3.5 by @imstevenpmwork in https://github.com/huggingface/lerobot/pull/2301
chore(dependencies): Bump lerobot to 0.4.0 by @imstevenpmwork in https://github.com/huggingface/lerobot/pull/2298
New Contributors
@lxk-221 made their first contribution in https://github.com/huggingface/lerobot/pull/1740
@mgiac-hexagon made their first contribution in https://github.com/huggingface/lerobot/pull/1709
@jstnhuang made their first contribution in https://github.com/huggingface/lerobot/pull/1837
@glannuzel made their first contribution in https://github.com/huggingface/lerobot/pull/1767
@Gongsta made their first contribution in https://github.com/huggingface/lerobot/pull/1889
@complete-dope made their first contribution in https://github.com/huggingface/lerobot/pull/1989
@JivinDotL made their first contribution in https://github.com/huggingface/lerobot/pull/1980
@iakhil made their first contribution in https://github.com/huggingface/lerobot/pull/2048
@iuliaferoli made their first contribution in https://github.com/huggingface/lerobot/pull/2117
@ryanpennings made their first contribution in https://github.com/huggingface/lerobot/pull/2196
@Infinity4B made their first contribution in https://github.com/huggingface/lerobot/pull/2183
@nahakiole made their first contribution in https://github.com/huggingface/lerobot/pull/2223
@antoinedandi made their first contribution in https://github.com/huggingface/lerobot/pull/2166
@dependabot[bot] made their first contribution in https://github.com/huggingface/lerobot/pull/1870
@edgarriba made their first contribution in https://github.com/huggingface/lerobot/pull/2113
@yfynb1111 made their first contribution in https://github.com/huggingface/lerobot/pull/2073
@azaracla made their first contribution in https://github.com/huggingface/lerobot/pull/1884
@LiXiling made their first contribution in https://github.com/huggingface/lerobot/pull/1771
@lycoris1129 made their first contribution in https://github.com/huggingface/lerobot/pull/1710
@brysonjones made their first contribution in https://github.com/huggingface/lerobot/pull/2145
@quanghuynt14 made their first contribution in https://github.com/huggingface/lerobot/pull/1782
@Jaisree25 made their first contribution in https://github.com/huggingface/lerobot/pull/1788
@tetsugo02 made their first contribution in https://github.com/huggingface/lerobot/pull/1746
@forgetwhatuwant made their first contribution in https://github.com/huggingface/lerobot/pull/1558
@xuaner233 made their first contribution in https://github.com/huggingface/lerobot/pull/2275
@nijkah made their first contribution in https://github.com/huggingface/lerobot/pull/2270
@liorbenhorin made their first contribution in https://github.com/huggingface/lerobot/pull/2293
Full Changelog: https://github.com/huggingface/lerobot/compare/v0.3.3...v0.4.0