Hi there,
I am modifying the environment Isaac-Lift-Cube-Franka-v0
by changing the rigid object in the environment into a deformable object, and the goal is to train the robot to pick up and lift the deformable object.
What I have done:
I modified the environment file ' joint_pos_env_cfg.py'
in lab_tasks/manager_based/manipulation/lift/config
. My modification was simply changing
self.scene.object = RigidObjectCfg(a bunch of stuff)
into
self.scene.object = DeformableObjectCfg(another bunch of stuff),
and then I also changed
class FrankaCubeLiftEnvCfg(LiftEnvCfg):
into
class NewEnvName(LiftEnvCfg):
so that I can register this new environment.
Right now I am having issue launching this new environment. I did:
cfg = load_cfg_from_registry("New-Env-Name", "env_cfg_entry_point")
env = gym.make("New-Env-Name", cfg=cfg, render_mode="rgb_array")
and got this error:
Traceback (most recent call last):
File "/home/jiexing/ws/manipulation_with_Isaac/test_gym.py", line 28, in <module>
env = gym.make("Isaac-Lift-Soft-Franka-v0", cfg=cfg, render_mode="rgb_array")
File "/home/jiexing/miniconda3/envs/isaaclab/lib/python3.10/site-packages/gymnasium/envs/registration.py", line 802, in make
env = env_creator(**env_spec_kwargs)
File "/home/jiexing/ws/IsaacLab/source/extensions/omni.isaac.lab/omni/isaac/lab/envs/manager_based_rl_env.py", line 75, in __init__
super().__init__(cfg=cfg)
File "/home/jiexing/ws/IsaacLab/source/extensions/omni.isaac.lab/omni/isaac/lab/envs/manager_based_env.py", line 136, in __init__
self.load_managers()
File "/home/jiexing/ws/IsaacLab/source/extensions/omni.isaac.lab/omni/isaac/lab/envs/manager_based_rl_env.py", line 115, in load_managers
super().load_managers()
File "/home/jiexing/ws/IsaacLab/source/extensions/omni.isaac.lab/omni/isaac/lab/envs/manager_based_env.py", line 216, in load_managers
self.event_manager = EventManager(self.cfg.events, self)
File "/home/jiexing/ws/IsaacLab/source/extensions/omni.isaac.lab/omni/isaac/lab/managers/event_manager.py", line 65, in __init__
super().__init__(cfg, env)
File "/home/jiexing/ws/IsaacLab/source/extensions/omni.isaac.lab/omni/isaac/lab/managers/manager_base.py", line 130, in __init__
self._prepare_terms()
File "/home/jiexing/ws/IsaacLab/source/extensions/omni.isaac.lab/omni/isaac/lab/managers/event_manager.py", line 333, in _prepare_terms
self._resolve_common_term_cfg(term_name, term_cfg, min_argc=2)
File "/home/jiexing/ws/IsaacLab/source/extensions/omni.isaac.lab/omni/isaac/lab/managers/manager_base.py", line 244, in _resolve_common_term_cfg
value.resolve(self._env.scene)
File "/home/jiexing/ws/IsaacLab/source/extensions/omni.isaac.lab/omni/isaac/lab/managers/scene_entity_cfg.py", line 121, in resolve
self._resolve_body_names(scene)
File "/home/jiexing/ws/IsaacLab/source/extensions/omni.isaac.lab/omni/isaac/lab/managers/scene_entity_cfg.py", line 221, in _resolve_body_names
self.body_ids, _ = entity.find_bodies(self.body_names, preserve_order=self.preserve_order)
AttributeError: 'DeformableObject' object has no attribute 'find_bodies'. Did you mean: 'num_bodies'?
My question:
I know the error is resulted by changing RigidObjectCfg()
into DeformableObjectCfg()
which does not have the same attribute. So how should I solve this error? Am I on the right track doing everything above?