Skip to content

Commit

Permalink
Merge pull request #429 from fxia22/ig-develop
Browse files Browse the repository at this point in the history
upgrade master branch to ig-develop (official igibson 2.0 release)
  • Loading branch information
ChengshuLi committed Aug 10, 2021
2 parents 555dc3d + a77cb78 commit afe24c6
Show file tree
Hide file tree
Showing 382 changed files with 35,804 additions and 7,878 deletions.
10 changes: 10 additions & 0 deletions .github/workflows/black.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
name: Lint

on: [push, pull_request]

jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: psf/black@stable
12 changes: 12 additions & 0 deletions .github/workflows/isort.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
name: Run isort
on: [push, pull_request]

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: 3.7
- uses: jamescurtin/isort-action@master
14 changes: 14 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
*.pyc
*.pyd
*.pkl
*.so
*.egg-info/
Expand All @@ -8,6 +9,7 @@ src/
pw
*.o
*.ipynb
*.ipynb_checkpoints/
*.out
npz/
*.npy
Expand All @@ -33,6 +35,10 @@ physics/models
*/events*
0_VRDemoSettings.txt

# VR
# This is the folder where the pyd files get put after setup.py builds gibson
Release

cnn_policy*
*ppo_policy*
checkpoint
Expand Down Expand Up @@ -66,3 +72,11 @@ gibson/assets
notebook
build
dist

# Directories used for QC pipeline
igibson/utils/data_utils/mesh_decimation/collision
igibson/utils/data_utils/mesh_decimation/visual
igibson/utils/data_utils/mesh_decimation/final_videos

# libcryptopp
igibson/render/mesh_renderer/libcryptopp.so.8.6
6 changes: 6 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,9 @@
[submodule "igibson/render/glm"]
path = igibson/render/glm
url = https://github.com/g-truc/glm
[submodule "igibson/render/openvr"]
path = igibson/render/openvr
url = https://github.com/ValveSoftware/openvr
[submodule "igibson/render/cryptopp"]
path = igibson/render/cryptopp
url = https://github.com/fxia22/cryptopp
11 changes: 11 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
repos:
- repo: https://github.com/psf/black
rev: stable # Replace by any tag/version: https://github.com/psf/black/tags
hooks:
- id: black
language_version: python3 # Should be a command that runs python3.6+
- repo: https://github.com/pycqa/isort
rev: 5.8.0
hooks:
- id: isort
name: isort (python)
5 changes: 0 additions & 5 deletions .style.yapf

This file was deleted.

1 change: 0 additions & 1 deletion .yapfignore

This file was deleted.

4 changes: 3 additions & 1 deletion Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,8 @@ pipeline {
sh 'pytest igibson/test/test_igsdf_scene_importing.py --junitxml=test_result/test_igsdf_scene_importing.py.xml'
sh 'pytest igibson/test/test_sensors.py --junitxml=test_result/test_sensors.py.xml'
sh 'pytest igibson/test/test_motion_planning.py --junitxml=test_result/test_motion_planning.py.xml'
sh 'pytest igibson/test/test_states.py --junitxml=test_result/test_states.py.xml'
sh 'pytest igibson/test/test_determinism_against_same_version.py --junitxml=test_result/test_determinism_against_same_version.py.xml'
}
}

Expand Down Expand Up @@ -84,4 +86,4 @@ pipeline {
}
}
}
}
}
61 changes: 33 additions & 28 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,14 @@
iGibson is a simulation environment providing fast visual rendering and physics simulation based on Bullet. iGibson is equipped with fifteen fully interactive high quality scenes, hundreds of large 3D scenes reconstructed from real homes and offices, and compatibility with datasets like CubiCasa5K and 3D-Front, providing 8000+ additional interactive scenes. Some of the features of iGibson include domain randomization, integration with motion planners and easy-to-use tools to collect human demonstrations. With these scenes and features, iGibson allows researchers to train and evaluate robotic agents that use visual signals to solve navigation and manipulation tasks such as opening doors, picking up and placing objects, or searching in cabinets.

### Latest Updates
[8/9/2021] Major update to iGibson to reach iGibson 2.0, for details please refer to our [arxiv preprint](https://arxiv.org/abs/2108.03272).

[12/1/2020] Major update to iGibson to reach iGibson v1.0, for details please refer to our [arxiv preprint](https://arxiv.org/abs/2012.02924).
- iGibson 2.0 supports object states, including temperature, wetness level, cleanliness level, and toggled and sliced states, necessary to cover a wider range of tasks.
- iGibson 2.0 implements a set of predicate logic functions that map the simulator states to logic states like Cooked or Soaked.
- iGibson 2.0 includes a virtual reality (VR) interface to immerse humans in its scenes to collect demonstrations.


[12/1/2020] Major update to iGibson to reach iGibson 1.0, for details please refer to our [arxiv preprint](https://arxiv.org/abs/2012.02924).

- Release of iGibson dataset that includes 15 fully interactive scenes and 500+ object models annotated with materials and physical attributes on top of [existing 3D articulated models](https://cs.stanford.edu/~kaichun/partnet/).
- Compatibility to import [CubiCasa5K](https://github.com/CubiCasa/CubiCasa5k) and [3D-Front](https://tianchi.aliyun.com/specials/promotion/alibaba-3d-scene-dataset) scene descriptions leading to more than 8000 extra interactive scenes!
Expand All @@ -21,46 +27,45 @@ iGibson is a simulation environment providing fast visual rendering and physics
If you use iGibson or its assets and models, consider citing the following publication:

```
@article{shenigibson,
title={iGibson, a Simulation Environment for Interactive Tasks in Large Realistic Scenes},
author={Shen*, Bokui and Xia*, Fei and Li*, Chengshu and Mart{\'i}n-Mart{\'i}n*, Roberto and Fan, Linxi and Wang, Guanzhi and Buch, Shyamal and D’Arpino, Claudia and Srivastava, Sanjana and Tchapmi, Lyne P and Vainio, Kent and Fei-Fei, Li and Savarese, Silvio},
journal={arXiv preprint arXiv:2012.02924},
year={2020}
@misc{shen2021igibson,
title={iGibson 1.0: a Simulation Environment for Interactive Tasks in Large Realistic Scenes},
author={Bokui Shen and Fei Xia and Chengshu Li and Roberto Martín-Martín and Linxi Fan and Guanzhi Wang and Claudia Pérez-D'Arpino and Shyamal Buch and Sanjana Srivastava and Lyne P. Tchapmi and Micael E. Tchapmi and Kent Vainio and Josiah Wong and Li Fei-Fei and Silvio Savarese},
year={2021},
eprint={2012.02924},
archivePrefix={arXiv},
primaryClass={cs.AI}
}
```

```
@misc{li2021igibson,
title={iGibson 2.0: Object-Centric Simulation for Robot Learning of Everyday Household Tasks},
author={Chengshu Li and Fei Xia and Roberto Martín-Martín and Michael Lingelbach and Sanjana Srivastava and Bokui Shen and Kent Vainio and Cem Gokmen and Gokul Dharan and Tanish Jain and Andrey Kurenkov and Karen Liu and Hyowon Gweon and Jiajun Wu and Li Fei-Fei and Silvio Savarese},
year={2021},
eprint={2108.03272},
archivePrefix={arXiv},
primaryClass={cs.RO}
}
```

### Documentation
The documentation for iGibson can be found here: [iGibson Documentation](http://svl.stanford.edu/igibson/docs/). It includes installation guide (including data download instructions), quickstart guide, code examples, and APIs.

If you want to know more about iGibson, you can also check out [our webpage](http://svl.stanford.edu/igibson), [our
updated arxiv preprint](https://arxiv.org/abs/2012.02924) and [our previous RAL+ICRA20 paper](https://arxiv.org/abs/1910.14442).
If you want to know more about iGibson, you can also check out [our webpage](http://svl.stanford.edu/igibson), [iGibson 2.0 arxiv preprint](https://arxiv.org/abs/2108.03272) and [iGibson 1.0 arxiv preprint](https://arxiv.org/abs/2012.02924).

### Dowloading the Dataset of 3D Scenes

With iGibson v1.0 release, you will have access to 15 fully interactive scenes (100+ rooms) that can be
used in simulation. As a highlight, here
are the features we support. We also include 500+ object models.

- Scenes are the
result of converting 3D reconstructions of real homes into fully interactive simulatable models.
- Each scene corresponds to one floor of a real-world home.
The scenes are annotated with bounding box location and size of different objects, mostly furniture, e.g. cabinets, doors, stoves, tables, chairs, beds, showers, toilets, sinks...
- Scenes include layout information (occupancy, semantics)
- Each scene's lighting effect is designed manually, and the texture of the building elements (walls, floors, ceilings
) is baked offline with high-performant ray-tracing
- Scenes are defined in iGSDF (iGibson Scene Definition Format), an extension of URDF, and shapes are OBJ files with
associated materials

For instructions to install iGibson and download dataset, you can visit [installation guide](http://svl.stanford.edu/igibson/docs/installation.html).
For instructions to install iGibson and download dataset, you can visit [installation guide](http://svl.stanford.edu/igibson/docs/installation.html) and [dataset download guide](http://svl.stanford.edu/igibson/docs/dataset.html).

There are other datasets we link to iGibson. We include support to use CubiCasa5K and 3DFront scenes, adding up more than 8000 extra interactive scenes to use in iGibson! Check our documentation on how to use those.

We also maintain compatibility with datasets of 3D reconstructed large real-world scenes (homes and offices) that you can download and use with iGibson, for example from our previous simulator, Gibson. All of them will be accessible once you fill in this <a href="https://forms.gle/36TW9uVpjrE1Mkf9A" target="_blank">[form]</a>.

### Using iGibson with VR
If you want to use iGibson VR interface, please visit the [VR guide (TBA)].


### Contributing
This is the github repository for iGibson (pip package `igibson`) 1.0 release. Bug reports, suggestions for improvement, as
well as community
developments are encouraged and appreciated. Please, consider creating an issue or sending us an email.
This is the github repository for iGibson (pip package `igibson`) 2.0 release. (For iGibson 1.0, please use `1.0` branch.) Bug reports, suggestions for improvement, as well as community developments are encouraged and appreciated. Please, consider creating an issue or sending us an email.

The support for our previous version of the environment, Gibson, can be found in the [following repository
](http://github.com/StanfordVL/GibsonEnv/).
The support for our previous version of the environment, Gibson, can be found in the [following repository](http://github.com/StanfordVL/GibsonEnv/).
38 changes: 38 additions & 0 deletions docker/behavior/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
FROM nvidia/cudagl:11.1.1-devel-ubuntu20.04

ARG DEBIAN_FRONTEND=noninteractive

RUN apt-get update && apt-get install -y --no-install-recommends \
cmake \
git \
vim \
wget \
curl \
python3-dev \
python3-opencv \
python3-pip && \
rm -rf /var/lib/apt/lists/*

RUN curl -LO http://repo.continuum.io/miniconda/Miniconda-latest-Linux-x86_64.sh
RUN bash Miniconda-latest-Linux-x86_64.sh -p /miniconda -b
RUN rm Miniconda-latest-Linux-x86_64.sh
ENV PATH=/miniconda/bin:${PATH}
RUN conda update -y conda
RUN conda create -y -n igibson python=3.8.0

ENV PATH /miniconda/envs/igibson/bin:$PATH

RUN pip install torch pytest ray[default,rllib] stable-baselines3

RUN git clone --branch ig-develop https://github.com/StanfordVL/iGibson /opt/iGibson --recursive
WORKDIR /opt/iGibson
RUN pip install -e .

RUN git clone --branch master https://github.com/StanfordVL/BDDL /opt/BDDL --recursive
WORKDIR /opt/BDDL
RUN pip install -e .

RUN python3 -m igibson.utils.assets_utils --download_assets
RUN python3 -m igibson.utils.assets_utils --download_demo_data

WORKDIR /opt/iGibson/igibson
9 changes: 9 additions & 0 deletions docker/behavior/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#!/bin/bash

IMAGE=igibson/behavior_challenge_2021

docker build -t $IMAGE . \
&& echo BUILD SUCCESSFUL

# podman build -t $IMAGE . \
# && echo BUILD SUCCESSFUL
13 changes: 13 additions & 0 deletions docker/behavior/run.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#!/usr/bin/env bash

IMAGE=igibson/behavior_challenge_2021

# For docker
docker run --gpus all -ti --rm $IMAGE:latest

# Or if your cluster uses podman
# podman run --rm -it --net=host \
# --security-opt=no-new-privileges \
# --security-opt label=type:nvidia_container_t \
# -e DISPLAY \
# $IMAGE:latest
34 changes: 34 additions & 0 deletions docker/igibson2/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
FROM nvidia/cudagl:11.1.1-devel-ubuntu20.04

ARG DEBIAN_FRONTEND=noninteractive

RUN apt-get update && apt-get install -y --no-install-recommends \
cmake \
git \
wget \
curl \
python3-dev \
python3-opencv \
python3-pip && \
rm -rf /var/lib/apt/lists/*

RUN curl -LO http://repo.continuum.io/miniconda/Miniconda-latest-Linux-x86_64.sh
RUN bash Miniconda-latest-Linux-x86_64.sh -p /miniconda -b
RUN rm Miniconda-latest-Linux-x86_64.sh
ENV PATH=/miniconda/bin:${PATH}
RUN conda update -y conda
RUN conda create -y -n igibson python=3.8.0

ENV PATH /miniconda/envs/igibson/bin:$PATH

RUN pip install --no-cache-dir https://github.com/StanfordVL/bullet3/archive/master.zip
RUN pip install torch pytest ray[default,rllib] stable-baselines3

RUN git clone --branch master https://github.com/StanfordVL/iGibson /opt/igibson --recursive
WORKDIR /opt/igibson
RUN pip install -e .

RUN python3 -m igibson.utils.assets_utils --download_assets
RUN python3 -m igibson.utils.assets_utils --download_demo_data

WORKDIR /opt/igibson/igibson/examples/demo
11 changes: 11 additions & 0 deletions docker/igibson2/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#!/bin/bash

IMAGE=igibson/igibson

docker build -t $IMAGE:v2.0.0 . \
&& docker tag $IMAGE:v2.0.0 $IMAGE:latest \
&& echo BUILD SUCCESSFUL

# podman build -t $IMAGE:v2.0.0 . \
# && podman tag $IMAGE:v2.0.0 $IMAGE:latest \
# && echo BUILD SUCCESSFUL
11 changes: 11 additions & 0 deletions docker/igibson2/run.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#!/usr/bin/env bash

# For docker
docker run --gpus all -ti --rm igibson/igibson:latest

# Or if your cluster uses podman
# podman run --rm -it --net=host \
# --security-opt=no-new-privileges \
# --security-opt label=type:nvidia_container_t \
# -e DISPLAY \
# igibson/igibson:latest
Loading

0 comments on commit afe24c6

Please sign in to comment.