How lifelong-robot-learning/libero works
LIBERO is a benchmark and research framework for lifelong and multitask robot learning. The main workflow selects a task suite and demonstrations, trains a visuomotor policy with a lifelong-learning method, and evaluates task success in simulated manipulation environments. Its runtime spans task/environment construction, demonstration datasets, policy networks, learning algorithms, and evaluation. The README documents suite, policy, algorithm, and evaluation capabilities; sampled training and environment code shows parts of their wiring. The benchmark implementation itself is absent from the supplied tree, so its internals are not mapped.
Main entry points: bddl_base_domain.py BDDL domain · bc_transformer_policy.py BC Transformer · main.py Experiment runner · env_wrapper.py Environment API
Components 24
Task simulation
- Task suites
- BDDL domain
libero/libero/envs/bddl_base_domain.py - Task definitions
libero/libero/envs/problems - Scene objects
libero/libero/envs/objects - Region samplers
libero/libero/envs/regions/base_region_sampler.py - Scene arenas
libero/libero/envs/arenas - Robot models
libero/libero/envs/robots - Environment API
libero/libero/envs/env_wrapper.py - Vector environments
libero/libero/envs/venv.py
Learning workflow
- Experiment runner
libero/lifelong/main.py - Learning algorithms
libero/lifelong/algos/base.py - PackNet
libero/lifelong/algos/packnet.py - Success evaluation
libero/lifelong/metric.py
Policy networks
- Policy base
libero/lifelong/models/base_policy.py - BC Transformer
libero/lifelong/models/bc_transformer_policy.py - BC RNN
libero/lifelong/models/bc_rnn_policy.py - BC ViLT
libero/lifelong/models/bc_vilt_policy.py - RGB encoders
libero/lifelong/models/modules/rgb_modules.py - Language encoders
libero/lifelong/models/modules/language_modules.py - Transformer modules
libero/lifelong/models/modules/transformer_modules.py - Action head
libero/lifelong/models/policy_head.py
Demonstration data
- Demonstrations
- Sequence datasets
libero/lifelong/datasets.py
Other components
- Researcher
Connections 24
- Researcher → Task suites: selects suite
README.md - Task suites → Experiment runner: configures tasks
README.md - Researcher → Demonstrations: downloads data
README.md - Demonstrations → Sequence datasets: supplies samples
- Experiment runner → Sequence datasets: builds datasets
libero/lifelong/main.py - Experiment runner → Learning algorithms: selects algorithm
libero/lifelong/main.py - Experiment runner → Policy base: selects policy
libero/lifelong/main.py - Learning algorithms → Policy base: optimizes policy
libero/lifelong/algos/base.py - PackNet → Learning algorithms: extends
libero/lifelong/algos/packnet.py - BC Transformer → Policy base: extends
libero/lifelong/models/bc_transformer_policy.py - BC Transformer → RGB encoders: uses
libero/lifelong/models/bc_transformer_policy.py - BC Transformer → Language encoders: uses
libero/lifelong/models/bc_transformer_policy.py - BC Transformer → Transformer modules: uses
libero/lifelong/models/bc_transformer_policy.py - BC Transformer → Action head: uses
libero/lifelong/models/bc_transformer_policy.py - Experiment runner → Success evaluation: evaluates progress
libero/lifelong/main.py - Success evaluation → Environment API: creates environments
libero/lifelong/metric.py - Success evaluation → Task suites: evaluates tasks
- Environment API → Vector environments: wraps environments
- Task definitions → BDDL domain: subclasses
libero/libero/envs/problems/libero_living_room_tabletop_manipulation.py - BDDL domain → Scene objects: loads objects
libero/libero/envs/bddl_base_domain.py - BDDL domain → Region samplers: uses samplers
libero/libero/envs/bddl_base_domain.py - BDDL domain → Scene arenas: constructs arenas
libero/libero/envs/bddl_base_domain.py - BDDL domain → Robot models: configures robots
libero/libero/envs/bddl_base_domain.py - Environment API → BDDL domain: exposes simulation