Skip to content

ParticleRequirement does not implement s_compatible_asset(cls, prim, **kwargs) #1092

@matthiasmoe

Description

@matthiasmoe

Describe the bug

The class omnigibson.object_states.particle.ParticleRequirement inherits from BaseObjectRequirement but does not implement its function is_compatible_asset(cls, prim, **kwargs). This leads to an error in the nested function supports_abilities(info, obj_prim) of omnigibson.utils.asset_utils.get_all_object_category_models_with_abilities(category, abilities). Prims that are assigned of the ability type "particleRemover", "particleSource" or "particleSink" in the omnigibson.object_states.factory._ABILITY_DEPENDENCIES will assign use the same requirement and result in the same error.

To Reproduce

Steps to reproduce the behavior:

  1. Install OmniGibson:
pip install isaacsim==4.1.0.0 isaacsim-extscache-physics==4.1.0.0 isaacsim-extscache-kit==4.1.0.0 isaacsim-extscache-kit-sdk==4.1.0.0 --extra-index-url https://pypi.nvidia.com
git clone git@github.com:StanfordVL/OmniGibson.git
pip install -e OmniGibson
  1. Download the datasets with the omnigibson.download_dataset script.
  2. Run following script:
import omnigibson as og
from omnigibson import gm

gm.USE_GPU_DYNAMICS=True
gm.ENABLE_FLATCACHE=False

cfg = {
    "scene": {
        "type": "InteractiveTraversableScene",
        "scene_model": "restaurant_asian",
    },
    "robots": [
        {
            "type": "Fetch",
            "obs_modalities": ["rgb"],
            "default_arm_pose": "diagonal30",
            "default_reset_mode": "tuck",
        },
    ],
    "task": {
        "type": "BehaviorTask",
        "activity_name": "cook_spinach",
        "activity_definition_id": 0,
        "activity_instance_id": 0,
        "online_object_sampling": True,
        # "online_object_sampling": False,
    },
}

env = og.Environment(configs=cfg)
input("Click something")

Expected behavior

An error is thrown in the ObjectStateBase indicating that a class (ParticleRequirement) did not implement the function

Traceback (most recent call last):
  File "<MYDIR>/test.py", line 53, in <module>
    env = og.Environment(configs=cfg)
  File "<MYDIR>/OmniGibson/omnigibson/utils/python_utils.py", line 93, in wrapper
    func(*values.args, **values.kwargs)
  File "<MYDIR>/OmniGibson/omnigibson/envs/env_base.py", line 128, in __init__
    self.load()
  File "<MYDIR>/OmniGibson/omnigibson/envs/env_base.py", line 432, in load
    self._load_task()
  File "<MYDIR>/OmniGibson/omnigibson/envs/env_base.py", line 240, in _load_task
    self._task.load(env=self)
  File "<MYDIR>/OmniGibson/omnigibson/tasks/task_base.py", line 120, in load
    self._load(env=env)
  File "<MYDIR>/OmniGibson/omnigibson/tasks/behavior_task.py", line 194, in _load
    success, self.feedback = self.initialize_activity(env=env)
  File "<MYDIR>/OmniGibson/omnigibson/tasks/behavior_task.py", line 320, in initialize_activity
    accept_scene, feedback = self.sampler.sample()
  File "<MYDIR>/OmniGibson/omnigibson/utils/bddl_utils.py", line 615, in sample
    accept_scene, feedback = self._prepare_scene_for_sampling()
  File "<MYDIR>/OmniGibson/omnigibson/utils/bddl_utils.py", line 692, in _prepare_scene_for_sampling
    error_msg = self._import_sampleable_objects()
  File "<MYDIR>/OmniGibson/omnigibson/utils/bddl_utils.py", line 1246, in _import_sampleable_objects
    get_all_object_category_models_with_abilities(
  File "<MYDIR>/OmniGibson/omnigibson/utils/asset_utils.py", line 295, in get_all_object_category_models_with_abilities
    if supports_abilities(abilities_info, prim):
  File "<MYDIR>/OmniGibson/omnigibson/utils/asset_utils.py", line 278, in supports_abilities
    if not requirement.is_compatible_asset(prim=obj_prim)[0]:
  File "<MYDIR>/OmniGibson/omnigibson/object_states/object_state_base.py", line 53, in is_compatible_asset
    raise NotImplementedError
NotImplementedError

Desktop :

  • OS: Pop_os
  • Isaac Sim Version 4.1.0
  • OmniGibson Version 1.1.0 and origin/main branch.

Additional context
I believe this happens at the sinks in the kitchen settings but I am not sure.

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions