Skip to content
forked from StanfordVL/iGibson

Large Scale Virtualized Interactive Environments for Robot Learning

License

Notifications You must be signed in to change notification settings

dnandha/iGibson

 
 

Repository files navigation

iGibson: A Simulation Environment to train Robots in Large Realistic Interactive Scenes

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.

Installation

  • git clone --recurse-submodules https://github.com/dnandha/iGibson.git
  • conda env create -f environment.yml
  • conda activate py2-igibson
  • pip install -e .
  • mkdir ~/tmp
  • python -m gibson2.utils.assets_utils --download_assets
  • python -m gibson2.utils.assets_utils --download_demo_data
  • python -m gibson2.utils.assets_utils --download_ig_dataset

Run Tiago example

  • cd gibson2/examples/demo
  • python tiago_dual_ik.py

Installation for ROS Melodic

  • export PYTHONPATH="$PYTHONPATH:<PATH_TO_IGIBSON>" (add this line to ".bashrc" for auto export in future)
  • sudo apt install python-catkin-tools ros-melodic-turtlebot3-teleop ros-melodic-depthimage-to-laserscan ros-melodic-hector-mapping
  • mkdir -p ~/catkin_ws/src
  • cd <PATH_TO_IGIBSON>/gibson2
  • ln -s $PWD/examples/ros/gibson2-ros ~/catkin_ws/src/
  • cd ~/catkin_ws
  • rosdep install --from-paths src --ignore-src -r -y
  • catkin build

Running with ROS

  • source ~/catkin_ws/devel/setup.bash
  • roslaunch gibson2-ros turtlebot_rgbd.launch

Latest Updates

[12/1/2020] Major update to iGibson to reach iGibson v1.0, for details please refer to our arxiv preprint.

  • 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.
  • Compatibility to import CubiCasa5K and 3D-Front scene descriptions leading to more than 8000 extra interactive scenes!
  • New features in iGibson: Physically based rendering, 1-beam and 16-beam LiDAR, domain randomization, motion planning integration, tools to collect human demos and more!
  • Code refactoring, better class structure and cleanup.

[05/14/2020] Added dynamic light support 🔦

[04/28/2020] Added support for Mac OSX 💻

Citation

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}
}

Documentation

The documentation for iGibson can be found here: iGibson Documentation. 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, our updated arxiv preprint and our previous RAL+ICRA20 paper.

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.

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 [form].

Contributing

This is the github repository for iGibson (pip package gibson2) 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.

The support for our previous version of the environment, Gibson, can be found in the following repository .

About

Large Scale Virtualized Interactive Environments for Robot Learning

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 46.7%
  • Python 34.6%
  • C++ 15.2%
  • GLSL 1.9%
  • CMake 0.9%
  • Jupyter Notebook 0.2%
  • Other 0.5%