Merge branch 'og-develop' into better-install
This commit is contained in:
commit
a34866aee3
|
@ -0,0 +1,38 @@
|
||||||
|
# This workflow will upload a Python Package using Twine when a release is created
|
||||||
|
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python#publishing-to-package-registries
|
||||||
|
|
||||||
|
# This workflow uses actions that are not certified by GitHub.
|
||||||
|
# They are provided by a third-party and are governed by
|
||||||
|
# separate terms of service, privacy policy, and support
|
||||||
|
# documentation.
|
||||||
|
|
||||||
|
name: Upload Python Package
|
||||||
|
|
||||||
|
on:
|
||||||
|
release:
|
||||||
|
types: [published]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
pypi-publish:
|
||||||
|
name: Upload release to PyPI
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
environment:
|
||||||
|
name: pypi
|
||||||
|
url: https://pypi.org/p/omnigibson
|
||||||
|
permissions:
|
||||||
|
id-token: write # IMPORTANT: this permission is mandatory for trusted publishing
|
||||||
|
contents: read
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- name: Set up Python
|
||||||
|
uses: actions/setup-python@v3
|
||||||
|
with:
|
||||||
|
python-version: '3.x'
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
python -m pip install --upgrade pip
|
||||||
|
pip install setuptools wheel twine
|
||||||
|
- name: Build package
|
||||||
|
run: python setup.py sdist
|
||||||
|
- name: Publish package distributions to PyPI
|
||||||
|
uses: pypa/gh-action-pypi-publish@v1.10.2
|
|
@ -72,6 +72,7 @@ gibson/assets
|
||||||
notebook
|
notebook
|
||||||
build
|
build
|
||||||
dist
|
dist
|
||||||
|
omnigibson.egg-info
|
||||||
|
|
||||||
# Directories used for QC pipeline
|
# Directories used for QC pipeline
|
||||||
omnigibson/utils/data_utils/mesh_decimation/collision
|
omnigibson/utils/data_utils/mesh_decimation/collision
|
||||||
|
|
|
@ -13,6 +13,8 @@
|
||||||
-------
|
-------
|
||||||
|
|
||||||
### Latest Updates
|
### Latest Updates
|
||||||
|
- [10/01/24] **v1.1.0**: Major improvements, stability fixes, pip installation, and much more! [[release notes]](https://github.com/StanfordVL/OmniGibson/releases/tag/v1.1.0)
|
||||||
|
|
||||||
- [03/17/24] **v1.0.0**: First full release with 1,004 pre-sampled tasks, all 50 scenes, and many new objects! [[release notes]](https://github.com/StanfordVL/OmniGibson/releases/tag/v1.0.0)
|
- [03/17/24] **v1.0.0**: First full release with 1,004 pre-sampled tasks, all 50 scenes, and many new objects! [[release notes]](https://github.com/StanfordVL/OmniGibson/releases/tag/v1.0.0)
|
||||||
|
|
||||||
- [08/04/23] **v0.2.0**: More assets! 600 pre-sampled tasks, 7 new scenes, and many new objects 📈 [[release notes]](https://github.com/StanfordVL/OmniGibson/releases/tag/v0.2.0)
|
- [08/04/23] **v0.2.0**: More assets! 600 pre-sampled tasks, 7 new scenes, and many new objects 📈 [[release notes]](https://github.com/StanfordVL/OmniGibson/releases/tag/v0.2.0)
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
FROM nvcr.io/nvidia/isaac-sim:4.0.0
|
FROM nvcr.io/nvidia/isaac-sim:4.1.0
|
||||||
|
|
||||||
# Set up all the prerequisites.
|
# Set up all the prerequisites.
|
||||||
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y \
|
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y \
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 46 KiB |
Binary file not shown.
After Width: | Height: | Size: 53 KiB |
Binary file not shown.
After Width: | Height: | Size: 37 KiB |
Binary file not shown.
Before Width: | Height: | Size: 700 KiB After Width: | Height: | Size: 1.8 MiB |
|
@ -1,3 +1,7 @@
|
||||||
|
---
|
||||||
|
icon: material/email
|
||||||
|
---
|
||||||
|
|
||||||
# **Contact**
|
# **Contact**
|
||||||
|
|
||||||
If you have any questions, comments, or concerns, please feel free to reach out to us by joining our Discord server:
|
If you have any questions, comments, or concerns, please feel free to reach out to us by joining our Discord server:
|
||||||
|
|
|
@ -1,3 +1,7 @@
|
||||||
|
---
|
||||||
|
icon: material/arm-flex
|
||||||
|
---
|
||||||
|
|
||||||
# **Contribution Guidelines**
|
# **Contribution Guidelines**
|
||||||
|
|
||||||
We sincerely welcome contributions of any form to OmniGibson, as our aim is to make it a more robust and useful resource for the community. We have always held the belief that a collective effort from the community is essential to tailor BEHAVIOR/OmniGibson to meet diverse needs and unlock its full potential.
|
We sincerely welcome contributions of any form to OmniGibson, as our aim is to make it a more robust and useful resource for the community. We have always held the belief that a collective effort from the community is essential to tailor BEHAVIOR/OmniGibson to meet diverse needs and unlock its full potential.
|
||||||
|
@ -48,4 +52,18 @@ The BEHAVIOR suite has continuous integration running via Github Actions in cont
|
||||||
* Docs builds are run on the behavior-website repo along with the rest of the website.
|
* Docs builds are run on the behavior-website repo along with the rest of the website.
|
||||||
* When GitHub releases are created, a source distribution will be packed and shipped on PyPI by a hosted runner
|
* When GitHub releases are created, a source distribution will be packed and shipped on PyPI by a hosted runner
|
||||||
|
|
||||||
For more information about the workflows and runners, please reach out on our Discord channel.
|
For more information about the workflows and runners, please reach out on our Discord channel.
|
||||||
|
|
||||||
|
## **Release Process**
|
||||||
|
At the time of each release, we follow the below process:
|
||||||
|
|
||||||
|
1. Update the version of OmniGibson in the pyproject.toml and __init__.py files.
|
||||||
|
2. Add a release note on the README.md file
|
||||||
|
3. Push to `og-develop`
|
||||||
|
4. Wait for all tests to finish, confirm they are passing, confirm docs build on behavior-website
|
||||||
|
5. Push `og-develop` to `main`
|
||||||
|
6. Click on create release on GitHub, tag the version starting with the letter `v`
|
||||||
|
7. Create release notes. You can use the automated release notes but edit to include the important info.
|
||||||
|
8. Create the release.
|
||||||
|
9. Wait for docker and PyPI releases to finish, confirm success
|
||||||
|
10. Announce on Discord, user channels.
|
|
@ -1,3 +1,7 @@
|
||||||
|
---
|
||||||
|
icon: material/file-question
|
||||||
|
---
|
||||||
|
|
||||||
# **Frequently Asked Questions**
|
# **Frequently Asked Questions**
|
||||||
|
|
||||||
## **What is the relationship between BEHAVIOR-1K and OmniGibson?**
|
## **What is the relationship between BEHAVIOR-1K and OmniGibson?**
|
||||||
|
|
|
@ -1,3 +1,7 @@
|
||||||
|
---
|
||||||
|
icon: octicons/question-16
|
||||||
|
---
|
||||||
|
|
||||||
# **Known Issues & Troubleshooting**
|
# **Known Issues & Troubleshooting**
|
||||||
|
|
||||||
## 🤔 **Known Issues**
|
## 🤔 **Known Issues**
|
||||||
|
|
|
@ -80,7 +80,7 @@ Controllers and sensors can be accessed directly via the `controllers` and `sens
|
||||||
|
|
||||||
|
|
||||||
## Types
|
## Types
|
||||||
**`OmniGibson`** currently supports 9 robots, consisting of 4 mobile robots, 2 manipulation robots, 2 mobile manipulation robots, and 1 anthropomorphic "robot" (a bimanual agent proxy used for VR teleoperation). Below, we provide a brief overview of each model:
|
**`OmniGibson`** currently supports 12 robots, consisting of 4 mobile robots, 3 manipulation robots, 4 mobile manipulation robots, and 1 anthropomorphic "robot" (a bimanual agent proxy used for VR teleoperation). Below, we provide a brief overview of each model:
|
||||||
|
|
||||||
### Mobile Robots
|
### Mobile Robots
|
||||||
These are navigation-only robots (an instance of [`LocomotionRobot`](../reference/robots/locomotion_robot.md)) that solely consist of a base that can move.
|
These are navigation-only robots (an instance of [`LocomotionRobot`](../reference/robots/locomotion_robot.md)) that solely consist of a base that can move.
|
||||||
|
@ -170,6 +170,19 @@ These are manipulation-only robots (an instance of [`ManipulationRobot`](../refe
|
||||||
<img src="../assets/robots/VX300S.png" alt="rgb">
|
<img src="../assets/robots/VX300S.png" alt="rgb">
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td valign="top" width="60%">
|
||||||
|
[**`A1`**](../reference/robots/A1.md)<br><br>
|
||||||
|
The 6-DOF A1 model equipped with a Inspire-Robots Dexterous Hand.<br><br>
|
||||||
|
<ul>
|
||||||
|
<li>_Controllers_: Arm, Gripper</li>
|
||||||
|
<li>_Sensors_: Wrist Camera</li>
|
||||||
|
</ul>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<img src="../assets/robots/A1.png" alt="rgb">
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
|
||||||
|
@ -203,6 +216,32 @@ These are robots that can both navigate and manipulate (and inherit from both [`
|
||||||
<img src="../assets/robots/Tiago.png" alt="rgb">
|
<img src="../assets/robots/Tiago.png" alt="rgb">
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td valign="top" width="60%">
|
||||||
|
[**`Stretch`**](../reference/robots/stretch.md)<br><br>
|
||||||
|
The <a href="https://hello-robot.com/stretch-3-product">Stretch</a> model from Hello Robot, composed of a two-wheeled base, 2-DOF head, 5-DOF arm, and 1-DOF gripper.<br><br>
|
||||||
|
<ul>
|
||||||
|
<li>_Controllers_: Base, Head, Arm, Gripper</li>
|
||||||
|
<li>_Sensors_: Head Camera</li>
|
||||||
|
</ul>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<img src="../assets/robots/Stretch.png" alt="rgb">
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td valign="top" width="60%">
|
||||||
|
[**`R1`**](../reference/robots/R1.md)<br><br>
|
||||||
|
The bimanual R1 model, composed of a holonomic base (which we model as a 3-DOF (x,y,rz) set of joints), 4-DOF torso, x2 6-DOF arm, and x2 2-DOF parallel jaw grippers.<br><br>
|
||||||
|
<ul>
|
||||||
|
<li>_Controllers_: Base, Left Arm, Right Arm, Left Gripper, Right Gripper</li>
|
||||||
|
<li>_Sensors_: Head Camera</li>
|
||||||
|
</ul>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<img src="../assets/robots/R1.png" alt="rgb">
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
### Additional Robots
|
### Additional Robots
|
||||||
|
|
|
@ -34,3 +34,75 @@ action = teleop_sys.get_action(teleop_sys.get_obs())
|
||||||
```
|
```
|
||||||
|
|
||||||
to get the action based on the user teleoperation input, and pass the action to the `env.step` function.
|
to get the action based on the user teleoperation input, and pass the action to the `env.step` function.
|
||||||
|
|
||||||
|
## Data Collection and Playback
|
||||||
|
|
||||||
|
OmniGibson provides tools for collecting demonstration data and playing it back for further analysis, training, or evaluation. This is implemented via two environment wrapper classes: `DataCollectionWrapper` and `DataPlaybackWrapper`.
|
||||||
|
|
||||||
|
### DataCollectionWrapper
|
||||||
|
|
||||||
|
The `DataCollectionWrapper` is used to collect data during environment interactions. It wraps around an existing OmniGibson environment and records relevant information at each step.
|
||||||
|
|
||||||
|
Key features:
|
||||||
|
|
||||||
|
- Records actions, states, rewards, and termination conditions
|
||||||
|
- Optimizes the simulator for data collection
|
||||||
|
- Tracks object and system transitions within the environment
|
||||||
|
|
||||||
|
Example usage:
|
||||||
|
|
||||||
|
```python
|
||||||
|
import omnigibson as og
|
||||||
|
from omnigibson.envs import DataCollectionWrapper
|
||||||
|
|
||||||
|
# Create your OmniGibson environment
|
||||||
|
env = og.Environment(configs=your_config)
|
||||||
|
|
||||||
|
# Wrap it with DataCollectionWrapper
|
||||||
|
wrapped_env = DataCollectionWrapper(
|
||||||
|
env=env,
|
||||||
|
output_path="path/to/save/data.hdf5",
|
||||||
|
only_successes=False, # Set to True to only save successful episodes
|
||||||
|
)
|
||||||
|
|
||||||
|
# Use the wrapped environment as you would normally
|
||||||
|
obs, info = wrapped_env.reset()
|
||||||
|
for _ in range(num_steps):
|
||||||
|
action = your_policy(obs)
|
||||||
|
obs, reward, terminated, truncated, info = wrapped_env.step(action)
|
||||||
|
|
||||||
|
# Save the collected data
|
||||||
|
wrapped_env.save_data()
|
||||||
|
```
|
||||||
|
|
||||||
|
### DataPlaybackWrapper
|
||||||
|
|
||||||
|
The `DataPlaybackWrapper` is used to replay collected data and optionally record additional observations. This is particularly useful for gathering visual data or other sensor information that wasn't collected during the initial demonstration.
|
||||||
|
|
||||||
|
Key features:
|
||||||
|
- Replays episodes from collected data
|
||||||
|
- Can record additional observation modalities during playback
|
||||||
|
- Supports custom robot sensor configurations and external sensors
|
||||||
|
|
||||||
|
Example usage:
|
||||||
|
|
||||||
|
```python
|
||||||
|
from omnigibson.envs import DataPlaybackWrapper
|
||||||
|
|
||||||
|
# Create a playback environment
|
||||||
|
playback_env = DataPlaybackWrapper.create_from_hdf5(
|
||||||
|
input_path="path/to/collected/data.hdf5",
|
||||||
|
output_path="path/to/save/playback/data.hdf5",
|
||||||
|
robot_obs_modalities=["proprio", "rgb", "depth_linear"],
|
||||||
|
robot_sensor_config=your_robot_sensor_config,
|
||||||
|
external_sensors_config=your_external_sensors_config,
|
||||||
|
n_render_iterations=5,
|
||||||
|
only_successes=False,
|
||||||
|
)
|
||||||
|
|
||||||
|
# Playback the entire dataset and record observations
|
||||||
|
playback_env.playback_dataset(record=True)
|
||||||
|
|
||||||
|
# Save the recorded playback data
|
||||||
|
playback_env.save_data()
|
||||||
|
```
|
|
@ -131,9 +131,9 @@ nav:
|
||||||
- FAQ: miscellaneous/faq.md
|
- FAQ: miscellaneous/faq.md
|
||||||
- Known Issues & Troubleshooting: miscellaneous/known_issues.md
|
- Known Issues & Troubleshooting: miscellaneous/known_issues.md
|
||||||
- Contributing: miscellaneous/contributing.md
|
- Contributing: miscellaneous/contributing.md
|
||||||
- Changelog: https://github.com/StanfordVL/OmniGibson/releases
|
|
||||||
- Contact Us: miscellaneous/contact.md
|
- Contact Us: miscellaneous/contact.md
|
||||||
- API Reference: reference/*
|
- API Reference: reference/*
|
||||||
|
- Changelog: https://github.com/StanfordVL/OmniGibson/releases
|
||||||
|
|
||||||
extra:
|
extra:
|
||||||
analytics:
|
analytics:
|
||||||
|
|
|
@ -28,7 +28,7 @@ import nest_asyncio
|
||||||
|
|
||||||
nest_asyncio.apply()
|
nest_asyncio.apply()
|
||||||
|
|
||||||
__version__ = "1.0.0"
|
__version__ = "1.1.0"
|
||||||
|
|
||||||
root_path = os.path.dirname(os.path.realpath(__file__))
|
root_path = os.path.dirname(os.path.realpath(__file__))
|
||||||
|
|
||||||
|
|
2
setup.py
2
setup.py
|
@ -13,7 +13,7 @@ long_description = "".join(lines)
|
||||||
|
|
||||||
setup(
|
setup(
|
||||||
name="omnigibson",
|
name="omnigibson",
|
||||||
version="1.0.0",
|
version="1.1.0",
|
||||||
author="Stanford University",
|
author="Stanford University",
|
||||||
long_description_content_type="text/markdown",
|
long_description_content_type="text/markdown",
|
||||||
long_description=long_description,
|
long_description=long_description,
|
||||||
|
|
Loading…
Reference in New Issue