-
Notifications
You must be signed in to change notification settings - Fork 2
Open
Description
While running grasp_sim.py with a custom grasp file (e.g. banana.yaml), the simulator still loads mug.obj.
After debugging, I found that ObjectConfig.from_isaac_grasp_dict() overwrites the YAML object_file with the default CLI argument (objects/mug.obj) even when --object_file isn’t explicitly passed.
I solved it by modifying the scripts/graspgen/object.py file:
def from_isaac_grasp_dict(cls, grasp_dict, grasp_file_args=None):
# Initialize default values
object_file = default_object_file
object_scale = default_object_scale
obj2usd_use_existing_usd = default_obj2usd_use_existing_usd
obj2usd_collision_approximation = default_obj2usd_collision_approximation
obj2usd_friction = default_obj2usd_friction
# First, apply values from grasp file (lowest priority)
if 'object_file' in grasp_dict:
object_file = grasp_dict["object_file"]
if 'object_scale' in grasp_dict:
object_scale = grasp_dict["object_scale"]
if 'obj2usd_use_existing_usd' in grasp_dict:
obj2usd_use_existing_usd = grasp_dict["obj2usd_use_existing_usd"]
if 'obj2usd_collision_approximation' in grasp_dict:
obj2usd_collision_approximation = grasp_dict["obj2usd_collision_approximation"]
if 'obj2usd_friction' in grasp_dict:
obj2usd_friction = grasp_dict["obj2usd_friction"]
# Then, override with command line arguments *only if explicitly set* (highest priority)
if grasp_file_args is not None:
def arg_explicit(attr, default_val):
"""Return True if CLI arg differs from its parser default."""
return hasattr(grasp_file_args, attr) and getattr(grasp_file_args, attr) != default_val
if arg_explicit("object_file", default_object_file):
object_file = grasp_file_args.object_file
if arg_explicit("object_scale", default_object_scale):
object_scale = grasp_file_args.object_scale
if arg_explicit("obj2usd_use_existing_usd", default_obj2usd_use_existing_usd):
obj2usd_use_existing_usd = grasp_file_args.obj2usd_use_existing_usd
if arg_explicit("obj2usd_collision_approximation", default_obj2usd_collision_approximation):
obj2usd_collision_approximation = grasp_file_args.obj2usd_collision_approximation
if arg_explicit("obj2usd_friction", default_obj2usd_friction):
obj2usd_friction = grasp_file_args.obj2usd_friction
return cls(object_file=object_file, object_scale=object_scale,
obj2usd_use_existing_usd=obj2usd_use_existing_usd,
obj2usd_collision_approximation=obj2usd_collision_approximation,
obj2usd_friction=obj2usd_friction)Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels