Skip to content

Commit

Permalink
Merge branch 'og-develop' into trigger_volumes
Browse files Browse the repository at this point in the history
  • Loading branch information
hang-yin authored Oct 15, 2024
2 parents 1cac400 + 255a4e4 commit 89958d8
Show file tree
Hide file tree
Showing 60 changed files with 5,501 additions and 616 deletions.
32 changes: 32 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: bug
assignees: hang-yin

---

**Describe the bug**
A clear and concise description of what the bug is.

**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

**Expected behavior**
A clear and concise description of what you expected to happen.

**Screenshots**
If applicable, add screenshots to help explain your problem.

**Desktop (please complete the following information):**
- OS: [e.g. Ubuntu 22.04]
- Isaac Sim Version [e.g. 4.1.0]
- OmniGibson Version [e.g. 1.1.0]

**Additional context**
Add any other context about the problem here.
20 changes: 20 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: enhancement
assignees: cgokmen

---

**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

**Describe the solution you'd like**
A clear and concise description of what you want to happen.

**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.

**Additional context**
Add any other context or screenshots about the feature request here.
10 changes: 10 additions & 0 deletions .github/ISSUE_TEMPLATE/question.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
name: Question
about: PLEASE POST QUESTIONS IN THE DISCUSSIONS TAB
title: ''
labels: question
assignees: ''

---

**PLEASE POST QUESTIONS IN THE DISCUSSIONS TAB**
18 changes: 12 additions & 6 deletions .github/workflows/examples-as-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,19 @@ jobs:
submodules: true
path: omnigibson-src

- name: Install dev requirements
working-directory: omnigibson-src
run: pip install -r requirements-dev.txt
# These are temporarily disabled due to some errors they cause where some
# unknown important dependency has its version changed and Isaac Sim will
# no longer launch properly. The result is that if dependencies change,
# the tests will stop working. This is a temporary fix until we can figure
# out how to fix this issue.

# - name: Install dev requirements
# working-directory: omnigibson-src
# run: pip install -r requirements-dev.txt

- name: Install
working-directory: omnigibson-src
run: pip install -e .
# - name: Install
# working-directory: omnigibson-src
# run: pip install -e .

- name: Generate example tests
working-directory: omnigibson-src
Expand Down
18 changes: 13 additions & 5 deletions .github/workflows/profiling.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,19 @@ jobs:
- name: Checkout source
uses: actions/checkout@v3

- name: Install dev requirements
run: pip install -r requirements-dev.txt

- name: Install
run: pip install -e .
# These are temporarily disabled due to some errors they cause where some
# unknown important dependency has its version changed and Isaac Sim will
# no longer launch properly. The result is that if dependencies change,
# the tests will stop working. This is a temporary fix until we can figure
# out how to fix this issue.

# - name: Install dev requirements
# working-directory: omnigibson-src
# run: pip install -r requirements-dev.txt

# - name: Install
# working-directory: omnigibson-src
# run: pip install -e .

- name: Run performance benchmark
run: bash scripts/profiling.sh
Expand Down
32 changes: 23 additions & 9 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,13 +49,22 @@ jobs:
submodules: true
path: omnigibson-src

- name: Install dev requirements
working-directory: omnigibson-src
run: pip install -r requirements-dev.txt
# These are temporarily disabled due to some errors they cause where some
# unknown important dependency has its version changed and Isaac Sim will
# no longer launch properly. The result is that if dependencies change,
# the tests will stop working. This is a temporary fix until we can figure
# out how to fix this issue.

- name: Install
working-directory: omnigibson-src
run: pip install -e .
# - name: Install dev requirements
# working-directory: omnigibson-src
# run: pip install -r requirements-dev.txt

# - name: Install
# working-directory: omnigibson-src
# run: pip install -e .

- name: Print env
run: printenv

- name: Run tests
working-directory: omnigibson-src
Expand All @@ -68,17 +77,22 @@ jobs:
name: ${{ github.run_id }}-tests-${{ matrix.test_file }}
path: ${{ matrix.test_file }}.xml

- name: Check for failures or errors
- name: Check for failures, errors, or missing XML
run: |
if grep -Eq 'failures="[1-9][0-9]*"|errors="[1-9][0-9]*"' ${{ matrix.test_file }}.xml; then
if [ ! -f ${{ matrix.test_file }}.xml ]; then
echo "Error: XML file not found, probably due to segfault"
exit 1
elif grep -Eq 'failures="[1-9][0-9]*"|errors="[1-9][0-9]*"' ${{ matrix.test_file }}.xml; then
echo "Error: Test failures or errors found"
exit 1
else
echo "All tests passed successfully"
exit 0
fi
upload_report:
name: Compile Report
runs-on: [self-hosted, linux]
runs-on: ubuntu-latest
defaults:
run:
shell: micromamba run -n omnigibson /bin/bash -leo pipefail {0}
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@

- [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)

- [04/10/22] **v0.1.0**: Significantly improved stability, performance, and ease of installation :wrench: [[release notes]](https://github.com/StanfordVL/OmniGibson/releases/tag/v0.1.0)
- [04/10/23] **v0.1.0**: Significantly improved stability, performance, and ease of installation :wrench: [[release notes]](https://github.com/StanfordVL/OmniGibson/releases/tag/v0.1.0)

-------

Expand Down
2 changes: 1 addition & 1 deletion docker/prod.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ ENV OMNIGIBSON_KEY_PATH /data/omnigibson.key
RUN curl -Ls https://micro.mamba.pm/api/micromamba/linux-64/latest | tar -xvj -C / bin/micromamba
ENV MAMBA_ROOT_PREFIX /micromamba
RUN micromamba create -n omnigibson -c conda-forge python=3.10
RUN micromamba shell init --shell=bash --prefix=/micromamba
RUN micromamba shell init --shell=bash

# Make sure isaac gets properly sourced every time omnigibson gets called
ARG CONDA_ACT_FILE="/micromamba/envs/omnigibson/etc/conda/activate.d/env_vars.sh"
Expand Down
12 changes: 6 additions & 6 deletions docs/getting_started/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,11 +78,11 @@ There are three ways to setup **`OmniGibson`**, all built upon different ways of

3. Run the installation script to install Isaac Sim as well as **`OmniGibson`** dataset and assets:

```{.shell .annotate}
python -m omnigibson.install # (1)!
```shell
python -m omnigibson.install
```

1. You can apply additional flag `--no-install-datasets` to skip dataset install.
You can apply additional flag `--no-install-datasets` to skip dataset install.

If this step fails, we recommend considering the [source installation](#__tabbed_1_3) method.

Expand Down Expand Up @@ -207,11 +207,11 @@ There are three ways to setup **`OmniGibson`**, all built upon different ways of

4. Run the installation script to hook the environment up to Isaac Sim as well as **`OmniGibson`** dataset and assets:

```{.shell .annotate}
python -m omnigibson.install --launcher-install # (1)!
```shell
python -m omnigibson.install --launcher-install
```

1. You can specify your Isaac Sim install location using the argument `--isaac-sim-path` if it differs from the default. You can also apply additional flag `--no-install-datasets` to skip dataset install.
You can specify your Isaac Sim install location using the argument `--isaac-sim-path` if it differs from the default. You can also apply additional flag `--no-install-datasets` to skip dataset install.

!!! note "What does this do?"

Expand Down
2 changes: 1 addition & 1 deletion omnigibson/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@

nest_asyncio.apply()

__version__ = "1.1.0"
__version__ = "1.1.1"

root_path = os.path.dirname(os.path.realpath(__file__))

Expand Down
23 changes: 15 additions & 8 deletions omnigibson/action_primitives/curobo.py
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,7 @@ def __init__(
self,
robot,
robot_cfg_path=None,
robot_usd_path=None,
ee_link=None,
device="cuda:0",
motion_cfg_kwargs=None,
Expand All @@ -141,6 +142,8 @@ def __init__(
robot (BaseRobot): Robot for which to generate motion plans
robot_cfg_path (None or str): If specified, the path to the robot configuration to use. If None, will
try to use a pre-configured one directly from curobo based on the robot class of @robot
robot_usd_path (None or str): If specified, the path to the robot USD file to use. If None, will
try to use a pre-configured one directly from curobo based on the robot class of @robot
ee_link (None or str): If specified, the link name representing the end-effector to track. None defaults to
value already set in the config from @robot_cfg
device (str): Which device to use for curobo
Expand All @@ -156,11 +159,15 @@ def __init__(
self._tensor_args = lazy.curobo.types.base.TensorDeviceType(device=th.device(device))
self.debug = debug

# Load robot config and make sure paths point correctly
# Load robot config and usd paths and make sure paths point correctly
robot_cfg_path = robot.curobo_path if robot_cfg_path is None else robot_cfg_path
robot_cfg = lazy.curobo.util_file.load_yaml(robot_cfg_path)["robot_cfg"]
robot_cfg["kinematics"]["external_asset_path"] = gm.ASSET_PATH
robot_cfg["kinematics"]["external_robot_configs_path"] = robot_cfg_path
robot_usd_path = robot.usd_path if robot_usd_path is None else robot_usd_path

content_path = lazy.curobo.types.file_path.ContentPath(
robot_config_absolute_path=robot_cfg_path, robot_usd_absolute_path=robot_usd_path
)
robot_cfg = lazy.curobo.cuda_robot_model.util.load_robot_yaml(content_path)["robot_cfg"]
robot_cfg["kinematics"]["use_usd_kinematics"] = True

# Possibly update ee_link
if ee_link is not None:
Expand Down Expand Up @@ -337,17 +344,17 @@ def compute_trajectories(
finetune_attempts (int): Number of attempts to run finetuning trajectory optimization. Every attempt will
increase the `MotionGenPlanConfig.finetune_dt_scale` by `MotionGenPlanConfig.finetune_dt_decay` as a
path couldn't be found with the previous smaller dt
return_full_result (bool): Whether to return the full result or not. If False, will randomly sample a single
(successful) trajectory to return
return_full_result (bool): Whether to return a list of raw MotionGenResult object(s) or a 2-tuple of
(success, results); the default is the latter
success_ratio (None or float): If set, specifies the fraction of successes necessary given self.batch_size.
If None, will automatically be the smallest ratio (1 / self.batch_size), i.e: any nonzero number of
successes
attached_obj (None or BaseObject): If specified, the object to attach to the robot end-effector when
solving for this trajectory
Returns:
2-tuple or list of MotionGenResult: If @return_all is set, will return the raw MotionGenResult
object(s) computed from internal batch trajectory computations. If not set, will return 2-tuple
2-tuple or list of MotionGenResult: If @return_full_result is True, will return a list of raw MotionGenResult
object(s) computed from internal batch trajectory computations. If it is False, will return 2-tuple
(success, results), where success is a (N,)-shaped boolean tensor representing whether each requested
target pos / quat successfully generated a motion plan, and results is a (N,)-shaped array of
corresponding JointState objects.
Expand Down
Loading

0 comments on commit 89958d8

Please sign in to comment.