Merge pull request #57 from huggingface/user/aliberts/2024_03_27_improve_readme
Improve readme
This commit is contained in:
commit
c89aa4f8ed
|
@ -327,6 +327,35 @@ files = [
|
||||||
{file = "cloudpickle-3.0.0.tar.gz", hash = "sha256:996d9a482c6fb4f33c1a35335cf8afd065d2a56e973270364840712d9131a882"},
|
{file = "cloudpickle-3.0.0.tar.gz", hash = "sha256:996d9a482c6fb4f33c1a35335cf8afd065d2a56e973270364840712d9131a882"},
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "cmake"
|
||||||
|
version = "3.29.0.1"
|
||||||
|
description = "CMake is an open-source, cross-platform family of tools designed to build, test and package software"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.7"
|
||||||
|
files = [
|
||||||
|
{file = "cmake-3.29.0.1-py3-none-macosx_10_10_universal2.macosx_10_10_x86_64.macosx_11_0_arm64.macosx_11_0_universal2.whl", hash = "sha256:ec8b39fdeb75c48fd5a2894658a1ca75f94fb49b421c1f753d86d3e5d5e9f196"},
|
||||||
|
{file = "cmake-3.29.0.1-py3-none-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:ead7dc5176a6c6347b3fc19532c25ec328f9279b6213902ac930242334e7b621"},
|
||||||
|
{file = "cmake-3.29.0.1-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f7c7dabf3dd40cb830d2eded43d51c5a3737625bbc5ab6916041c04e352b74f8"},
|
||||||
|
{file = "cmake-3.29.0.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:de8f55198f4a820daf2c57645a4bb8cd1064dc92d950ad95be14c5ffabc15bd4"},
|
||||||
|
{file = "cmake-3.29.0.1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7bb8aaa3419eafd466931e4dcc161d3e5e6a82730ab508c75946ff4fc883b3f6"},
|
||||||
|
{file = "cmake-3.29.0.1-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e956e4b6c2d8d6bbee399bf3c77e5b901d916fe8f35d6b2f58444d5892c4602b"},
|
||||||
|
{file = "cmake-3.29.0.1-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2a8f7c8b07e6ab0dd444c5b74e658d5013ca0da456041029f734d751090bb7ec"},
|
||||||
|
{file = "cmake-3.29.0.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:22493049b6383ea2baa7237a326c2914ab4a7b3e1642f4233245e3a34aae39f6"},
|
||||||
|
{file = "cmake-3.29.0.1-py3-none-musllinux_1_1_aarch64.whl", hash = "sha256:d09573411901fc8a3ede7433713c000ac7b81cda0d771874e9182770acf29eb4"},
|
||||||
|
{file = "cmake-3.29.0.1-py3-none-musllinux_1_1_i686.whl", hash = "sha256:c85e35ec572e54152154637f24d6bde316fbcf94dfea644bd8f22b1855a09abe"},
|
||||||
|
{file = "cmake-3.29.0.1-py3-none-musllinux_1_1_ppc64le.whl", hash = "sha256:a36f3b19a5caa6c63aa70bfa0b262bae8d296e68c6e6d8e918edc5c51d952bf8"},
|
||||||
|
{file = "cmake-3.29.0.1-py3-none-musllinux_1_1_s390x.whl", hash = "sha256:85a0e28eaaee311d50fcee60f730e5a44a65b3cefc556a1163bbabd7328acd60"},
|
||||||
|
{file = "cmake-3.29.0.1-py3-none-musllinux_1_1_x86_64.whl", hash = "sha256:58879ef15dd8344e1583a36cead794fb0fee13f78c590a56749283ac2e27d30a"},
|
||||||
|
{file = "cmake-3.29.0.1-py3-none-win32.whl", hash = "sha256:068a3e7461dd9e487f5f3f720ae8072c2eeb37239ebe4642c4ae29058d83347f"},
|
||||||
|
{file = "cmake-3.29.0.1-py3-none-win_amd64.whl", hash = "sha256:c097892b3653e2d2d41d055c80a9af029fdd24f9eff2ecb66576e4da8b85b1c7"},
|
||||||
|
{file = "cmake-3.29.0.1-py3-none-win_arm64.whl", hash = "sha256:1808071047cb49ed0fe2359e4c310b49880c2805cad4ea9f03c959f51b881ac7"},
|
||||||
|
{file = "cmake-3.29.0.1.tar.gz", hash = "sha256:ec49a7a4480959c229d9d2aa77f7885859c17a45fc66981aaf4551ceffb4d030"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.extras]
|
||||||
|
test = ["coverage (>=4.2)", "pytest (>=3.0.3)", "pytest-cov (>=2.4.0)"]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "colorama"
|
name = "colorama"
|
||||||
version = "0.4.6"
|
version = "0.4.6"
|
||||||
|
@ -3216,4 +3245,4 @@ testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "p
|
||||||
[metadata]
|
[metadata]
|
||||||
lock-version = "2.0"
|
lock-version = "2.0"
|
||||||
python-versions = "^3.10"
|
python-versions = "^3.10"
|
||||||
content-hash = "93c406139c456780b3d309d7ed3d68ea60cc0e8893c1ee717692984e573d3404"
|
content-hash = "183331172d7c12815adc4372eff886efa9dd6234a2d07118968ffeff51f5b299"
|
||||||
|
|
|
@ -52,6 +52,7 @@ robomimic = "0.2.0"
|
||||||
huggingface-hub = "^0.21.4"
|
huggingface-hub = "^0.21.4"
|
||||||
gymnasium-robotics = "^1.2.4"
|
gymnasium-robotics = "^1.2.4"
|
||||||
gymnasium = "^0.29.1"
|
gymnasium = "^0.29.1"
|
||||||
|
cmake = "^3.29.0.1"
|
||||||
|
|
||||||
|
|
||||||
[tool.poetry.group.dev.dependencies]
|
[tool.poetry.group.dev.dependencies]
|
||||||
|
|
73
README.md
73
README.md
|
@ -8,9 +8,25 @@
|
||||||
<br/>
|
<br/>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
# LeRobot
|
<div align="center">
|
||||||
|
|
||||||
|
[](https://github.com/huggingface/lerobot/actions/workflows/test.yml?query=branch%3Amain)
|
||||||
|
[](https://codecov.io/gh/huggingface/lerobot)
|
||||||
|
[](https://www.python.org/downloads/)
|
||||||
|
[](https://github.com/huggingface/lerobot/blob/main/LICENSE)
|
||||||
|
[](https://pypi.org/project/lerobot/)
|
||||||
|
[](https://pypi.org/project/lerobot/)
|
||||||
|
[](https://github.com/huggingface/lerobot/tree/main/examples)
|
||||||
|
[](https://discord.gg/s3KuuzsPFb)
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h3 align="center">
|
||||||
|
<p>State-of-the-art Machine Learning for real-world robotics</p>
|
||||||
|
</h3>
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
**State-of-the-art machine learning for real-world robotics**
|
|
||||||
|
|
||||||
🤗 LeRobot aims to provide models, datasets, and tools for real-world robotics in PyTorch. The goal is to lower the barrier for entry to robotics so that everyone can contribute and benefit from sharing datasets and pretrained models.
|
🤗 LeRobot aims to provide models, datasets, and tools for real-world robotics in PyTorch. The goal is to lower the barrier for entry to robotics so that everyone can contribute and benefit from sharing datasets and pretrained models.
|
||||||
|
|
||||||
|
@ -44,26 +60,21 @@
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
Create a virtual environment with Python 3.10, e.g. using `conda`:
|
Download our source code:
|
||||||
|
```bash
|
||||||
|
git clone https://github.com/huggingface/lerobot.git
|
||||||
|
cd lerobot
|
||||||
|
```
|
||||||
|
|
||||||
|
Create a virtual environment with Python 3.10 and activate it, e.g. with [`miniconda`](https://docs.anaconda.com/free/miniconda/index.html):
|
||||||
```bash
|
```bash
|
||||||
conda create -y -n lerobot python=3.10
|
conda create -y -n lerobot python=3.10
|
||||||
conda activate lerobot
|
conda activate lerobot
|
||||||
```
|
```
|
||||||
|
|
||||||
[Install `poetry`](https://python-poetry.org/docs/#installation) (if you don't have it already)
|
Then, install 🤗 LeRobot:
|
||||||
```bash
|
```bash
|
||||||
curl -sSL https://install.python-poetry.org | python -
|
python -m pip install .
|
||||||
```
|
|
||||||
|
|
||||||
Install dependencies
|
|
||||||
```bash
|
|
||||||
poetry install
|
|
||||||
```
|
|
||||||
|
|
||||||
If you encounter a disk space error, try to change your tmp dir to a location where you have enough disk space, e.g.
|
|
||||||
```bash
|
|
||||||
mkdir ~/tmp
|
|
||||||
export TMPDIR='~/tmp'
|
|
||||||
```
|
```
|
||||||
|
|
||||||
To use [Weights and Biases](https://docs.wandb.ai/quickstart) for experiments tracking, log in with
|
To use [Weights and Biases](https://docs.wandb.ai/quickstart) for experiments tracking, log in with
|
||||||
|
@ -188,11 +199,11 @@ hydra.run.dir=outputs/train/aloha_act
|
||||||
|
|
||||||
Feel free to open issues and PRs, and to coordinate your efforts with the community on our [Discord Channel](https://discord.gg/VjFz58wn3R). For specific inquiries, reach out to [Remi Cadene](remi.cadene@huggingface.co).
|
Feel free to open issues and PRs, and to coordinate your efforts with the community on our [Discord Channel](https://discord.gg/VjFz58wn3R). For specific inquiries, reach out to [Remi Cadene](remi.cadene@huggingface.co).
|
||||||
|
|
||||||
**TODO**
|
### TODO
|
||||||
|
|
||||||
If you are not sure how to contribute or want to know the next features we working on, look on this project page: [LeRobot TODO](https://github.com/orgs/huggingface/projects/46)
|
If you are not sure how to contribute or want to know the next features we working on, look on this project page: [LeRobot TODO](https://github.com/orgs/huggingface/projects/46)
|
||||||
|
|
||||||
**Follow our style**
|
### Follow our style
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# install if needed
|
# install if needed
|
||||||
|
@ -201,25 +212,33 @@ pre-commit install
|
||||||
pre-commit
|
pre-commit
|
||||||
```
|
```
|
||||||
|
|
||||||
**Add dependencies**
|
### Add dependencies
|
||||||
|
|
||||||
Instead of `pip install some-package`, we use `poetry` to track the versions of our dependencies:
|
Instead of using `pip` directly, we use `poetry` for development purposes to easily track our dependencies.
|
||||||
|
If you don't have it already, follow the [instructions](https://python-poetry.org/docs/#installation) to install it.
|
||||||
|
|
||||||
|
Install the project with:
|
||||||
|
```bash
|
||||||
|
poetry install
|
||||||
|
```
|
||||||
|
|
||||||
|
Then, the equivalent of `pip install some-package`, would just be:
|
||||||
```bash
|
```bash
|
||||||
poetry add some-package
|
poetry add some-package
|
||||||
```
|
```
|
||||||
|
|
||||||
**NOTE:** Currently, to ensure the CI works properly, any new package must also be added in the CPU-only environment dedicated CI. To do this, you should create a separate environment and add the new package there as well. For example:
|
**NOTE:** Currently, to ensure the CI works properly, any new package must also be added in the CPU-only environment dedicated to the CI. To do this, you should create a separate environment and add the new package there as well. For example:
|
||||||
```bash
|
```bash
|
||||||
# add the new package to your main poetry env
|
# Add the new package to your main poetry env
|
||||||
poetry add some-package
|
poetry add some-package
|
||||||
# add the same package to the CPU-only env dedicated to CI
|
# Add the same package to the CPU-only env dedicated to CI
|
||||||
conda create -y -n lerobot-ci python=3.10
|
conda create -y -n lerobot-ci python=3.10
|
||||||
conda activate lerobot-ci
|
conda activate lerobot-ci
|
||||||
cd .github/poetry/cpu
|
cd .github/poetry/cpu
|
||||||
poetry add some-package
|
poetry add some-package
|
||||||
```
|
```
|
||||||
|
|
||||||
**Run tests locally**
|
### Run tests locally
|
||||||
|
|
||||||
Install [git lfs](https://git-lfs.com/) to retrieve test artifacts (if you don't have it already).
|
Install [git lfs](https://git-lfs.com/) to retrieve test artifacts (if you don't have it already).
|
||||||
|
|
||||||
|
@ -250,7 +269,7 @@ Run tests
|
||||||
DATA_DIR="tests/data" pytest -sx tests
|
DATA_DIR="tests/data" pytest -sx tests
|
||||||
```
|
```
|
||||||
|
|
||||||
**Add a new dataset**
|
### Add a new dataset
|
||||||
|
|
||||||
To add a dataset to the hub, first login and use a token generated from [huggingface settings](https://huggingface.co/settings/tokens) with write access:
|
To add a dataset to the hub, first login and use a token generated from [huggingface settings](https://huggingface.co/settings/tokens) with write access:
|
||||||
```bash
|
```bash
|
||||||
|
@ -311,7 +330,7 @@ Finally, you might want to mock the dataset if you need to update the unit tests
|
||||||
python tests/scripts/mock_dataset.py --in-data-dir data/$DATASET --out-data-dir tests/data/$DATASET
|
python tests/scripts/mock_dataset.py --in-data-dir data/$DATASET --out-data-dir tests/data/$DATASET
|
||||||
```
|
```
|
||||||
|
|
||||||
**Add a pretrained policy**
|
### Add a pretrained policy
|
||||||
|
|
||||||
Once you have trained a policy you may upload it to the HuggingFace hub.
|
Once you have trained a policy you may upload it to the HuggingFace hub.
|
||||||
|
|
||||||
|
@ -347,7 +366,7 @@ huggingface-cli upload $HUB_ID to_upload
|
||||||
See `eval.py` for an example of how a user may use your policy.
|
See `eval.py` for an example of how a user may use your policy.
|
||||||
|
|
||||||
|
|
||||||
**Improve your code with profiling**
|
### Improve your code with profiling
|
||||||
|
|
||||||
An example of a code snippet to profile the evaluation of a policy:
|
An example of a code snippet to profile the evaluation of a policy:
|
||||||
```python
|
```python
|
||||||
|
|
|
@ -327,6 +327,35 @@ files = [
|
||||||
{file = "cloudpickle-3.0.0.tar.gz", hash = "sha256:996d9a482c6fb4f33c1a35335cf8afd065d2a56e973270364840712d9131a882"},
|
{file = "cloudpickle-3.0.0.tar.gz", hash = "sha256:996d9a482c6fb4f33c1a35335cf8afd065d2a56e973270364840712d9131a882"},
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "cmake"
|
||||||
|
version = "3.29.0.1"
|
||||||
|
description = "CMake is an open-source, cross-platform family of tools designed to build, test and package software"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.7"
|
||||||
|
files = [
|
||||||
|
{file = "cmake-3.29.0.1-py3-none-macosx_10_10_universal2.macosx_10_10_x86_64.macosx_11_0_arm64.macosx_11_0_universal2.whl", hash = "sha256:ec8b39fdeb75c48fd5a2894658a1ca75f94fb49b421c1f753d86d3e5d5e9f196"},
|
||||||
|
{file = "cmake-3.29.0.1-py3-none-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:ead7dc5176a6c6347b3fc19532c25ec328f9279b6213902ac930242334e7b621"},
|
||||||
|
{file = "cmake-3.29.0.1-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f7c7dabf3dd40cb830d2eded43d51c5a3737625bbc5ab6916041c04e352b74f8"},
|
||||||
|
{file = "cmake-3.29.0.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:de8f55198f4a820daf2c57645a4bb8cd1064dc92d950ad95be14c5ffabc15bd4"},
|
||||||
|
{file = "cmake-3.29.0.1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7bb8aaa3419eafd466931e4dcc161d3e5e6a82730ab508c75946ff4fc883b3f6"},
|
||||||
|
{file = "cmake-3.29.0.1-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e956e4b6c2d8d6bbee399bf3c77e5b901d916fe8f35d6b2f58444d5892c4602b"},
|
||||||
|
{file = "cmake-3.29.0.1-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2a8f7c8b07e6ab0dd444c5b74e658d5013ca0da456041029f734d751090bb7ec"},
|
||||||
|
{file = "cmake-3.29.0.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:22493049b6383ea2baa7237a326c2914ab4a7b3e1642f4233245e3a34aae39f6"},
|
||||||
|
{file = "cmake-3.29.0.1-py3-none-musllinux_1_1_aarch64.whl", hash = "sha256:d09573411901fc8a3ede7433713c000ac7b81cda0d771874e9182770acf29eb4"},
|
||||||
|
{file = "cmake-3.29.0.1-py3-none-musllinux_1_1_i686.whl", hash = "sha256:c85e35ec572e54152154637f24d6bde316fbcf94dfea644bd8f22b1855a09abe"},
|
||||||
|
{file = "cmake-3.29.0.1-py3-none-musllinux_1_1_ppc64le.whl", hash = "sha256:a36f3b19a5caa6c63aa70bfa0b262bae8d296e68c6e6d8e918edc5c51d952bf8"},
|
||||||
|
{file = "cmake-3.29.0.1-py3-none-musllinux_1_1_s390x.whl", hash = "sha256:85a0e28eaaee311d50fcee60f730e5a44a65b3cefc556a1163bbabd7328acd60"},
|
||||||
|
{file = "cmake-3.29.0.1-py3-none-musllinux_1_1_x86_64.whl", hash = "sha256:58879ef15dd8344e1583a36cead794fb0fee13f78c590a56749283ac2e27d30a"},
|
||||||
|
{file = "cmake-3.29.0.1-py3-none-win32.whl", hash = "sha256:068a3e7461dd9e487f5f3f720ae8072c2eeb37239ebe4642c4ae29058d83347f"},
|
||||||
|
{file = "cmake-3.29.0.1-py3-none-win_amd64.whl", hash = "sha256:c097892b3653e2d2d41d055c80a9af029fdd24f9eff2ecb66576e4da8b85b1c7"},
|
||||||
|
{file = "cmake-3.29.0.1-py3-none-win_arm64.whl", hash = "sha256:1808071047cb49ed0fe2359e4c310b49880c2805cad4ea9f03c959f51b881ac7"},
|
||||||
|
{file = "cmake-3.29.0.1.tar.gz", hash = "sha256:ec49a7a4480959c229d9d2aa77f7885859c17a45fc66981aaf4551ceffb4d030"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.extras]
|
||||||
|
test = ["coverage (>=4.2)", "pytest (>=3.0.3)", "pytest-cov (>=2.4.0)"]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "colorama"
|
name = "colorama"
|
||||||
version = "0.4.6"
|
version = "0.4.6"
|
||||||
|
@ -3475,4 +3504,4 @@ testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "p
|
||||||
[metadata]
|
[metadata]
|
||||||
lock-version = "2.0"
|
lock-version = "2.0"
|
||||||
python-versions = "^3.10"
|
python-versions = "^3.10"
|
||||||
content-hash = "99addbfc02bcd35a308f4ecc5b4285c9c5054118f4aadea27650d8bf355d9616"
|
content-hash = "408099540ed625da8e50cfe543791d2d1b52e256bbd0c56cfda482c6c5ffff0e"
|
||||||
|
|
|
@ -51,6 +51,7 @@ huggingface-hub = {extras = ["hf-transfer"], version = "^0.21.4"}
|
||||||
robomimic = "0.2.0"
|
robomimic = "0.2.0"
|
||||||
gymnasium-robotics = "^1.2.4"
|
gymnasium-robotics = "^1.2.4"
|
||||||
gymnasium = "^0.29.1"
|
gymnasium = "^0.29.1"
|
||||||
|
cmake = "^3.29.0.1"
|
||||||
|
|
||||||
|
|
||||||
[tool.poetry.group.dev.dependencies]
|
[tool.poetry.group.dev.dependencies]
|
||||||
|
|
Loading…
Reference in New Issue