|
Download Isaac-GR00T/external_dependencies/LIBERO/README.md from Timsty/groot_deployment: direct link, hf CLI and curl.
- Browser
- Download file 8.13 kB
-
https://huggingface.co/Timsty/groot_deployment/resolve/main/Isaac-GR00T/external_dependencies/LIBERO/README.md
- Command line
-
hf download hf://Timsty/groot_deployment/Isaac-GR00T/external_dependencies/LIBERO/README.md
-
curl -L -o README.md https://huggingface.co/Timsty/groot_deployment/resolve/main/Isaac-GR00T/external_dependencies/LIBERO/README.md
8.13 kB
| <div align="center"> | |
| <img src="https://github.com/Lifelong-Robot-Learning/LIBERO/blob/master/images/libero_logo.png" width="360"> | |
| <p align="center"> | |
| <a href="https://github.com/Lifelong-Robot-Learning/LIBERO/actions"> | |
| <img alt="Tests Passing" src="https://github.com/anuraghazra/github-readme-stats/workflows/Test/badge.svg" /> | |
| </a> | |
| <a href="https://github.com/Lifelong-Robot-Learning/LIBERO/graphs/contributors"> | |
| <img alt="GitHub Contributors" src="https://img.shields.io/github/contributors/Lifelong-Robot-Learning/LIBERO" /> | |
| </a> | |
| <a href="https://github.com/Lifelong-Robot-Learning/LIBERO/issues"> | |
| <img alt="Issues" src="https://img.shields.io/github/issues/Lifelong-Robot-Learning/LIBERO?color=0088ff" /> | |
| ## **Benchmarking Knowledge Transfer for Lifelong Robot Learning** | |
| Bo Liu, Yifeng Zhu, Chongkai Gao, Yihao Feng, Qiang Liu, Yuke Zhu, Peter Stone | |
| [[Website]](https://libero-project.github.io) | |
| [[Paper]](https://arxiv.org/pdf/2306.03310.pdf) | |
| [[Docs]](https://lifelong-robot-learning.github.io/LIBERO/) | |
| ______________________________________________________________________ | |
|  | |
| </div> | |
| **LIBERO** is designed for studying knowledge transfer in multitask and lifelong robot learning problems. Successfully resolving these problems require both declarative knowledge about objects/spatial relationships and procedural knowledge about motion/behaviors. **LIBERO** provides: | |
| - a procedural generation pipeline that could in principle generate an infinite number of manipulation tasks. | |
| - 130 tasks grouped into four task suites: **LIBERO-Spatial**, **LIBERO-Object**, **LIBERO-Goal**, and **LIBERO-100**. The first three task suites have controlled distribution shifts, meaning that they require the transfer of a specific type of knowledge. In contrast, **LIBERO-100** consists of 100 manipulation tasks that require the transfer of entangled knowledge. **LIBERO-100** is further splitted into **LIBERO-90** for pretraining a policy and **LIBERO-10** for testing the agent's downstream lifelong learning performance. | |
| - five research topics. | |
| - three visuomotor policy network architectures. | |
| - three lifelong learning algorithms with the sequential finetuning and multitask learning baselines. | |
| --- | |
| # Contents | |
| - [Installation](#Installation) | |
| - [Datasets](#Dataset) | |
| - [Getting Started](#Getting-Started) | |
| - [Task](#Task) | |
| - [Training](#Training) | |
| - [Evaluation](#Evaluation) | |
| - [Citation](#Citation) | |
| - [License](#License) | |
| # Installtion | |
| Please run the following commands in the given order to install the dependency for **LIBERO**. | |
| ``` | |
| conda create -n libero python=3.8.13 | |
| conda activate libero | |
| git clone https://github.com/Lifelong-Robot-Learning/LIBERO.git | |
| cd LIBERO | |
| pip install -r requirements.txt | |
| pip install torch==1.11.0+cu113 torchvision==0.12.0+cu113 torchaudio==0.11.0 --extra-index-url https://download.pytorch.org/whl/cu113 | |
| ``` | |
| Then install the `libero` package: | |
| ``` | |
| pip install -e . | |
| ``` | |
| # Datasets | |
| We provide high-quality human teleoperation demonstrations for the four task suites in **LIBERO**. To download the demonstration dataset, run: | |
| ```python | |
| python benchmark_scripts/download_libero_datasets.py | |
| ``` | |
| By default, the dataset will be stored under the ```LIBERO``` folder and all four datasets will be downloaded. To download a specific dataset, use | |
| ```python | |
| python benchmark_scripts/download_libero_datasets.py --datasets DATASET | |
| ``` | |
| where ```DATASET``` is chosen from `[libero_spatial, libero_object, libero_100, libero_goal`. | |
| **NEW!!!** | |
| Alternatively, you can download the dataset from HuggingFace by using: | |
| ```python | |
| python benchmark_scripts/download_libero_datasets.py --use-huggingface | |
| ``` | |
| This option can also be combined with the specific dataset selection: | |
| ```python | |
| python benchmark_scripts/download_libero_datasets.py --datasets DATASET --use-huggingface | |
| ``` | |
| The datasets hosted on HuggingFace are available at [here](https://huggingface.co/datasets/yifengzhu-hf/LIBERO-datasets). | |
| # Getting Started | |
| For a detailed walk-through, please either refer to the documentation or the notebook examples provided under the `notebooks` folder. In the following, we provide example scripts for retrieving a task, training and evaluation. | |
| ## Task | |
| The following is a minimal example of retrieving a specific task from a specific task suite. | |
| ```python | |
| from libero.libero import benchmark | |
| from libero.libero.envs import OffScreenRenderEnv | |
| benchmark_dict = benchmark.get_benchmark_dict() | |
| task_suite_name = "libero_10" # can also choose libero_spatial, libero_object, etc. | |
| task_suite = benchmark_dict[task_suite_name]() | |
| # retrieve a specific task | |
| task_id = 0 | |
| task = task_suite.get_task(task_id) | |
| task_name = task.name | |
| task_description = task.language | |
| task_bddl_file = os.path.join(get_libero_path("bddl_files"), task.problem_folder, task.bddl_file) | |
| print(f"[info] retrieving task {task_id} from suite {task_suite_name}, the " + \ | |
| f"language instruction is {task_description}, and the bddl file is {task_bddl_file}") | |
| # step over the environment | |
| env_args = { | |
| "bddl_file_name": task_bddl_file, | |
| "camera_heights": 128, | |
| "camera_widths": 128 | |
| } | |
| env = OffScreenRenderEnv(**env_args) | |
| env.seed(0) | |
| env.reset() | |
| init_states = task_suite.get_task_init_states(task_id) # for benchmarking purpose, we fix the a set of initial states | |
| init_state_id = 0 | |
| env.set_init_state(init_states[init_state_id]) | |
| dummy_action = [0.] * 7 | |
| for step in range(10): | |
| obs, reward, done, info = env.step(dummy_action) | |
| env.close() | |
| ``` | |
| Currently, we only support sparse reward function (i.e., the agent receives `+1` when the task is finished). As sparse-reward RL is extremely hard to learn, currently we mainly focus on lifelong imitation learning. | |
| ## Training | |
| To start a lifelong learning experiment, please choose: | |
| - `BENCHMARK` from `[LIBERO_SPATIAL, LIBERO_OBJECT, LIBERO_GOAL, LIBERO_90, LIBERO_10]` | |
| - `POLICY` from `[bc_rnn_policy, bc_transformer_policy, bc_vilt_policy]` | |
| - `ALGO` from `[base, er, ewc, packnet, multitask]` | |
| then run the following: | |
| ```shell | |
| export CUDA_VISIBLE_DEVICES=GPU_ID && \ | |
| export MUJOCO_EGL_DEVICE_ID=GPU_ID && \ | |
| python libero/lifelong/main.py seed=SEED \ | |
| benchmark_name=BENCHMARK \ | |
| policy=POLICY \ | |
| lifelong=ALGO | |
| ``` | |
| Please see the documentation for the details of reproducing the study results. | |
| ## Evaluation | |
| By default the policies will be evaluated on the fly during training. If you have limited computing resource of GPUs, we offer an evaluation script for you to evaluate models separately. | |
| ```shell | |
| python libero/lifelong/evaluate.py --benchmark BENCHMARK_NAME \ | |
| --task_id TASK_ID \ | |
| --algo ALGO_NAME \ | |
| --policy POLICY_NAME \ | |
| --seed SEED \ | |
| --ep EPOCH \ | |
| --load_task LOAD_TASK \ | |
| --device_id CUDA_ID | |
| ``` | |
| # Citation | |
| If you find **LIBERO** to be useful in your own research, please consider citing our paper: | |
| ```bibtex | |
| @article{liu2023libero, | |
| title={LIBERO: Benchmarking Knowledge Transfer for Lifelong Robot Learning}, | |
| author={Liu, Bo and Zhu, Yifeng and Gao, Chongkai and Feng, Yihao and Liu, Qiang and Zhu, Yuke and Stone, Peter}, | |
| journal={arXiv preprint arXiv:2306.03310}, | |
| year={2023} | |
| } | |
| ``` | |
| # License | |
| | Component | License | | |
| |------------------|-------------------------------------------------------------------------------------------------------------------------------------| | |
| | Codebase | [MIT License](LICENSE) | | |
| | Datasets | [Creative Commons Attribution 4.0 International (CC BY 4.0)](https://creativecommons.org/licenses/by/4.0/legalcode) | | |