-
Notifications
You must be signed in to change notification settings - Fork 172
Description
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:
- 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
- Download the datasets with the
omnigibson.download_datasetscript. - 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.