Habitat-Baselines: Embodied AI baselines.
Project description
baselines
Installation
The habitat_baselines
sub-package is NOT included upon installation by default. To install habitat_baselines
, use the following command instead:
pip install -e habitat-lab
pip install -e habitat-baselines
This will also install additional requirements for each sub-module in habitat_baselines/
, which are specified in requirements.txt
files located in the sub-module directory.
Reinforcement Learning (RL)
Proximal Policy Optimization (PPO)
paper: https://arxiv.org/abs/1707.06347
code: The PPO implementation is based on pytorch-a2c-ppo-acktr.
dependencies: A recent version of pytorch, for installing refer to pytorch.org
For training on sample data please follow steps in the repository README. You should download the sample test scene data, extract it under the main repo (habitat-lab/
, extraction will create a data folder at habitat-lab/data
) and run the below training command.
train:
python -u -m habitat_baselines.run \
--config-name=pointnav/ppo_pointnav_example.yaml
You can reduce training time by changing the trainer from the default implement to VER by
setting trainer_name
to "ver"
in either the config or via the command line.
python -u -m habitat_baselines.run \
--config-name=pointnav/ppo_pointnav_example.yaml \
habitat_baselines.trainer_name=ver
test:
python -u -m habitat_baselines.run \
--config-name=pointnav/ppo_pointnav_example.yaml \
habitat_baselines.evaluate=True
We also provide trained RGB, RGBD, and Depth PPO models for MatterPort3D and Gibson. To use them download pre-trained pytorch models from link and unzip and specify model path here.
The habitat_baselines/config/pointnav/ppo_pointnav.yaml
config has better hyperparameters for large scale training and loads the Gibson PointGoal Navigation Dataset instead of the test scenes.
Change the /benchmark/nav/pointnav: pointnav_gibson
in habitat_baselines/config/pointnav/ppo_pointnav.yaml
to /benchmark/nav/pointnav: pointnav_mp3d
in the defaults list for training on MatterPort3D PointGoal Navigation Dataset.
Hierarchical Reinforcement Learning (HRL)
We provide a two-layer hierarchical policy class, consisting of a low-level skill that moves the robot, and a high-level policy that reasons about which low-level skill to use in the current state. This can be especially powerful in long-horizon mobile manipulation tasks, like those introduced in Habitat2.0. Both the low- and high- level can be either learned or an oracle. For oracle high-level we use PDDL, and for oracle low-level we use instantaneous transitions, with the environment set to the final desired state. Additionally, for navigation, we provide an oracle navigation skill that uses A-star and the map of the environment to move the robot to its goal.
To run the following examples, you need the ReplicaCAD dataset.
To train a high-level policy, while using pre-learned low-level skills (SRL baseline from Habitat2.0), you can run:
python -u -m habitat_baselines.run \
--config-name=rearrange/rl_hierarchical.yaml
To run a rearrangement episode with oracle low-level skills and a fixed task planner, run:
python -u -m habitat_baselines.run \
--config-name=rearrange/rl_hierarchical.yaml \
habitat_baselines.evaluate=True \
habitat_baselines/rl/policy=hl_fixed \
habitat_baselines/rl/policy/hierarchical_policy/defined_skills=oracle_skills
To change the task (like set table) that you train your skills on, you can change the line /habitat/task/rearrange: rearrange_easy
to /habitat/task/rearrange: set_table
in the defaults of your config.
Additional Utilities
Episode iterator options: Coming very soon
Tensorboard and video generation support
Enable tensorboard by changing tensorboard_dir
field in habitat_baselines/config/pointnav/ppo_pointnav.yaml
.
Enable video generation for eval
mode by changing video_option: tensorboard,disk
(for displaying on tensorboard and for saving videos on disk, respectively)
Generated navigation episode recordings should look like this on tensorboard:
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for habitat-baselines-0.2.520230729.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | f8b6992b418d730227dfe74ea2c1c2f635a54d37e8ac927b5261011de7852d58 |
|
MD5 | c775405b97aa32fa7d79dba2c47e9a51 |
|
BLAKE2b-256 | ab9bf9a7964ea001f6caae9f7ff8ced96a2b1d298f3b15384f854ad06199c25f |
Hashes for habitat_baselines-0.2.520230729-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cf69851f76fa59eb6ad004c033fd0fa9d26e2ea625242a0c942df82cf10db077 |
|
MD5 | 05d5e2afa77f40c119ce0cc9164bcdb9 |
|
BLAKE2b-256 | 033e85da3aa1d09c2fd7a4c455124d26b01978a04886894a540dc709b06ce0d9 |