haosulab / ManiSkill

SAPIEN Manipulation Skill Framework, a GPU parallelized robotics simulator and benchmark
https://maniskill.ai/
Apache License 2.0
703 stars 127 forks source link

[Bug] Inconsistent env state parameterization for tasks with object randomizations #444

Open SparKgod1 opened 1 month ago

SparKgod1 commented 1 month ago

in ./mani_skill/envs/tasks/tabletop/pick_single_ycb.py

for i, model_id in enumerate(model_ids):
          # TODO: before official release we will finalize a metadata dataclass that these build functions should return.
                builder = actors.get_actor_builder(
                    self.scene,
                    id=f"ycb:{model_id}",
                )
                builder.set_scene_idxs([i])
                self._objs.append(builder.build(name=f"{model_id}-{i}"))
            self.obj = Actor.merge(self._objs, name="ycb_object")

In demonstrations, should I set the name of the YCB object to {model_id}-{i}? What does the i represent in this context?

StoneT2000 commented 1 month ago

What do you mean by in demonstrations should I set object names?

SparKgod1 commented 1 month ago

I want to use my own grasping sequence data as demonstrations to train RFCL. While organizing the data, I noticed that the actors in env_state require actor_id, so I want to find the naming in the builder.

StoneT2000 commented 1 month ago

Ah I remember this particular / potential issue. Env state is not well defined when there might be different objects in the environment. Previously in maniskill 2 all objects had the same name since we only did CPU simulation whereas to support GPU sim they should have different names.

I think I have one potential solution that I will try and add in this week. For now tasks with object geometry randomization might not have useable env states.