Skip to content

Commit

Permalink
Release v1.4 (#362)
Browse files Browse the repository at this point in the history
# robosuite 1.4.0 Release Notes
- Highlights
- New Features
- Improvements
- Critical Bug Fixes
- Other Bug Fixes

# Highlights
This release of robosuite refactors our backend to leverage DeepMind's new [mujoco](https://github.com/deepmind/mujoco) bindings. Below, we discuss the key details of this refactoring:

## Installation
Now, installation has become much simpler, with mujoco being directly installed on Linux or Mac via `pip install mujoco`. Importing mujoco is now done via `import mujoco` instead of `import mujoco_py`

## Rendering
The new DeepMind mujoco bindings do not ship with an onscreen renderer. As a result, we've implented an [OpenCV renderer](https://github.com/ARISE-Initiative/robosuite/blob/master/robosuite/utils/opencv_renderer.py), which provides most of the core functionality from the original mujoco renderer, but has a few limitations (most significantly, no glfw keyboard callbacks and no ability to move the free camera).

# Improvements
The following briefly describes other changes that improve on the pre-existing structure. This is not an exhaustive list, but a highlighted list of changes.

- Standardize end-effector frame inference (#25). Now, all end-effector frames are correctly inferred from raw robot XMLs and take into account arbitrary relative orientations between robot arm link frames and gripper link frames.

- Improved robot textures (#27). With added support from DeepMind's mujoco bindings for obj texture files, all robots are now natively rendered with more accurate texture maps.

- Revamped macros (#30). Macros now references a single macro file that can be arbitrarily specified by the user.

- Improved method for specifying GPU ID (#29). The new logic is as follows:
  1. If `render_device_gpu_id=-1`, `MUJOCO_EGL_DEVICE_ID` and `CUDA_VISIBLE_DEVICES` are not set, we either choose the first available device (usually `0`) if `macros.MUJOCO_GPU_RENDERING` is `True`, otherwise use CPU;
  2. `CUDA_VISIBLE_DEVICES` or `MUJOCO_EGL_DEVICE_ID` are set, we make sure that they dominate over programmatically defined GPU device id.
  3. If `CUDA_VISIBLE_DEVICES` and `MUJOCO_EGL_DEVICE_ID` are both set, then we use `MUJOCO_EGL_DEVICE_ID` and make sure it is defined in `CUDA_VISIBLE_DEVICES`

- robosuite docs updated

- Add new papers


# Critical Bug Fixes
- Fix Sawyer IK instability bug (#25)


# Other Bug Fixes
- Fix iGibson renderer bug (#21)


-------

## Contributor Spotlight
We would like to introduce the newest members of our robosuite core team, all of whom have contributed significantly to this release!
@awesome-aj0123
@snasiriany
@zhuyifengzju
  • Loading branch information
yukezhu authored Dec 1, 2022
1 parent 2540b04 commit c57e282
Show file tree
Hide file tree
Showing 330 changed files with 6,015,559 additions and 2,326 deletions.
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -111,4 +111,7 @@ mjkey.txt
*.jpg
.idea

.pytest_cache/
.pytest_cache/

# private macros
macros_private.py
8 changes: 5 additions & 3 deletions AUTHORS
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,11 @@
Core Team
Yuke Zhu <[email protected]>
Josiah Wong <[email protected]>
Ajay Mandlekar <[email protected]>
Roberto Martín-Martín <[email protected]>
Ajay Mandlekar <[email protected]>
Roberto Martín-Martín <[email protected]>
Abhishek Joshi <[email protected]>
Soroush Nasiriany <[email protected]>
Yifeng Zhu <[email protected]>

Past Contributors
Jiren Zhu <[email protected]>
Expand All @@ -25,5 +28,4 @@ Jonathan Booher <[email protected]>
Danfei Xu <[email protected]>
Rachel Gardner <[email protected]>
Albert Tung <[email protected]>
Abhishek Joshi <[email protected]>
Divyansh Jha <[email protected]>
7 changes: 7 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,10 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

This software includes the partial implementation of Deepmind Mujoco https://github.com/deepmind/mujoco.
Deepmind Mujoco is licensed under the Apache License, Version 2.0 (the "License");
you may not use the files except in compliance with the License.

You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
6 changes: 4 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@

-------
## Latest Updates
- [11/15/2022] **v1.4**: Backend migration to DeepMind's official [MuJoCo Python binding](https://github.com/deepmind/mujoco), robot textures, and bug fixes :robot: [[release notes]](https://github.com/ARISE-Initiative/robosuite/releases/tag/v1.4)

- [10/19/2021] **v1.3**: Ray tracing and physically based rendering tools :sparkles: and access to additional vision modalities 🎥 [[video spotlight]](https://www.youtube.com/watch?v=2xesly6JrQ8) [[release notes]](https://github.com/ARISE-Initiative/robosuite/releases/tag/v1.3)

- [02/17/2021] **v1.2**: Added observable sensor models :eyes: and dynamics randomization :game_die: [[release notes]](https://github.com/ARISE-Initiative/robosuite/releases/tag/v1.2)
Expand All @@ -14,7 +16,7 @@

-------

**robosuite** is a simulation framework powered by the [MuJoCo](http://mujoco.org/) physics engine for robot learning. It also offers a suite of benchmark environments for reproducible research. The current release (v1.3) features rendering tools, ground-truth of vision modalities, and camera utilities. This project is part of the broader [Advancing Robot Intelligence through Simulated Environments (ARISE) Initiative](https://github.com/ARISE-Initiative), with the aim of lowering the barriers of entry for cutting-edge research at the intersection of AI and Robotics.
**robosuite** is a simulation framework powered by the [MuJoCo](http://mujoco.org/) physics engine for robot learning. It also offers a suite of benchmark environments for reproducible research. The current release (v1.4) features long-term support with the official MuJoCo binding from DeepMind. This project is part of the broader [Advancing Robot Intelligence through Simulated Environments (ARISE) Initiative](https://github.com/ARISE-Initiative), with the aim of lowering the barriers of entry for cutting-edge research at the intersection of AI and Robotics.

Data-driven algorithms, such as reinforcement learning and imitation learning, provide a powerful and generic tool in robotics. These learning paradigms, fueled by new advances in deep learning, have achieved some exciting successes in a variety of robot control problems. However, the challenges of reproducibility and the limited accessibility of robot hardware (especially during a pandemic) have impaired research progress. The overarching goal of **robosuite** is to provide researchers with:

Expand All @@ -38,7 +40,7 @@ Please cite [**robosuite**](https://robosuite.ai) if you use this framework in y
```bibtex
@inproceedings{robosuite2020,
title={robosuite: A Modular Simulation Framework and Benchmark for Robot Learning},
author={Yuke Zhu and Josiah Wong and Ajay Mandlekar and Roberto Mart\'{i}n-Mart\'{i}n},
author={Yuke Zhu and Josiah Wong and Ajay Mandlekar and Roberto Mart\'{i}n-Mart\'{i}n and Abhishek Joshi and Soroush Nasiriany and Yifeng Zhu},
booktitle={arXiv preprint arXiv:2009.12293},
year={2020}
}
Expand Down
328 changes: 328 additions & 0 deletions docs/_static/css/theme.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,328 @@
/* From https://github.com/rusty1s/pytorch_geometric */

.wy-side-nav-search {
background: rgb(143,144,147);
}

.wy-side-nav-search > div.version {
color: black;
}


.wy-nav-content-wrap {
background: inherit;
}

.wy-side-nav-search input[type="text"] {
border: none;
box-shadow: none;
background: white;
border-radius: 0;
font-size: 100%;
}

.wy-menu-vertical li.current a,
.wy-menu-vertical li.toctree-l1.current > a {
border: none;
}

.ethical-rtd > div.ethical-sidebar,
.ethical-rtd > div.ethical-footer {
display: none !important;
}

h1 {
/* text-transform: uppercase; */
font-family: inherit;
font-weight: 200;
}

h2,
.rst-content .toctree-wrapper p.caption {
font-family: inherit;
font-weight: 200;
}

.rst-content a:visited {
color: #3091d1;
}

/* Begin code */
.rst-content pre.literal-block,
.rst-content div[class^="highlight"] {
border: none;
}

.rst-content pre.literal-block,
.rst-content div[class^="highlight"] pre,
.rst-content .linenodiv pre {
font-size: 80%;
}

.highlight {
background: #f6f8fa;
border-radius: 6px;
}

.highlight .kn,
.highlight .k {
color: #d73a49;
}

.highlight .nn {
color: inherit;
font-weight: inherit;
}

.highlight .nc {
color: #e36209;
font-weight: inherit;
}

.highlight .fm,
.highlight .nd,
.highlight .nf,
.highlight .nb {
color: #6f42c1;
}

.highlight .bp,
.highlight .n {
color: inherit;
}

.highlight .kc,
.highlight .s1,
.highlight .s2,
.highlight .mi,
.highlight .mf,
.highlight .bp,
.highlight .bn,
.highlight .ow {
color: #005cc5;
font-weight: inherit;
}

.highlight .c1 {
color: #6a737d;
}

.rst-content code.xref {
padding: .2em .4em;
background: rgba(27,31,35,.05);
border-radius: 6px;
border: none;
}
/* End code */

.rst-content dl:not(.docutils) dt,
.rst-content dl:not(.docutils) dl dt {
background: rgb(243,244,247);
}

.rst-content dl:not(.docutils) dt.field-odd,
.rst-content dl:not(.docutils) dt.field-odd {
text-transform: uppercase;
background: inherit;
border: none;
padding: 6px 0;
}

.rst-content dl:not(.docutils) .property {
text-transform: uppercase;
font-style: normal;
padding-right: 12px;
}

em.sig-param span.n:first-child, em.sig-param span.n:nth-child(2) {
color: black;
font-style: normal;
}

em.sig-param span.n:nth-child(3),
em.sig-param span.n:nth-child(3) a {
color: inherit;
font-weight: normal;
font-style: normal;
}

em.sig-param span.default_value {
font-family: SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",Courier,monospace;
font-style: normal;
font-size: 90%;
}

.sig-paren {
padding: 0 4px;
}

.wy-table-responsive table td,
.wy-table-responsive table th {
white-space: normal;
}

.wy-table-bordered-all,
.rst-content table.docutils {
border: none;
}

.wy-table-bordered-all td,
.rst-content table.docutils td {
border: none;
}

.wy-table-odd td,
.wy-table-striped tr:nth-child(2n-1) td,
.rst-content table.docutils:not(.field-list) tr:nth-child(2n-1) td {
background: rgb(243,244,247);
}

.wy-table td,
.rst-content table.docutils td,
.rst-content table.field-list td,
.wy-table th,
.rst-content table.docutils th,
.rst-content table.field-list th {
padding: 16px;
}
/*
.admonition {
content: '\f12a';
font-family: FontAwesome;
} */

.admonition.note, div.admonition.note {
border-color: rgba(var(--pst-color-admonition-note),1);
}

.admonition.note>.admonition-title:before, div.admonition.note>.admonition-title:before {
color: rgba(var(--pst-color-admonition-note),1);
content: '\f12a'!important;
/* content: var(--pst-icon-admonition-note); */
}

.admonition.question>.admonition-title:before, div.admonition.question>.admonition-title:before {
color: rgba(var(--pst-color-admonition-note),1);
content: '\003f'!important;
/* content: var(--pst-icon-admonition-note); */
}

.admonition.explanation>.admonition-title:before, div.admonition.explanation>.admonition-title:before {
color: rgba(var(--pst-color-admonition-note),1);
content: '\f02d'!important;
/* content: var(--pst-icon-admonition-note); */
}

.card {
/* Add shadows to create the "card" effect */
box-shadow: 0 4px 8px 0 rgba(0,0,0,0.2);
transition: 0.3s;
border-radius: 5px; /* 5px rounded corners */
width: 100%;
padding-bottom: 10px;
}

/* On mouse-over, add a deeper shadow */
.card:hover {
box-shadow: 0 8px 16px 0 rgba(0,0,0,0.2);

}

/* Add some padding inside the card container */
.container {
padding: 2px 16px;
}

.row:after {
content: "";
display: table;
clear: both;
}

.column {
float: left;
width: 50%;
padding: 20px 10px;
}

.box{
display: none;
width: 100%;
}

a:hover + .box,.box:hover{
display: block;
position: absolute;
z-index: 100;
border-radius: 50px!important;
margin-left: 60px;
margin-top: 0px;
}

a:hover + .card:hover{
display: block;
position: absolute;
z-index: 100;
border-radius: 50px!important;
margin-left: 60px;
margin-top: 0px;
}

a.reference.external {
color: #6695B0!important;
}

#p1 a {
color: #E98D64!important;
}


#frame { zoom: 0.75; -moz-transform: scale(0.75); -moz-transform-origin: 0 0; }

/* Google Fonts */
@import url(https://fonts.googleapis.com/css?family=Anonymous+Pro);

/* Global */

#typewriter body{
height: calc(100vh - 8em);
padding: 4em;
color: rgba(255,255,255,.75);
font-family: 'Anonymous Pro', monospace;
background-color: rgb(25,25,25);
}
#typewriter .line-1{
position: relative;
top: 50%;
width: 24em;
margin: 0 auto;
border-right: 2px solid rgba(255,255,255,.75);
font-size: 180%;
text-align: center;
white-space: nowrap;
overflow: hidden;
transform: translateY(-50%);
}

/* Animation */
.anim-typewriter{
animation: typewriter 4s steps(44) 1s 1 normal both,
blinkTextCursor 500ms steps(44) infinite normal;
}
@keyframes typewriter{
from{width: 0;}
to{width: 24em;}
}
@keyframes blinkTextCursor{
from{border-right-color: rgba(255,255,255,.75);}
to{border-right-color: transparent;}
}


.trimmed-cover {
object-fit: cover;
width: 120%;
height: 177px;
object-position: center 40%;
margin-right: -100px;
}
Loading

0 comments on commit c57e282

Please sign in to comment.