Skip to content

[Bug Report] The set_physical_attr function in Articulation fails to properly set the mass. #218

@wuxinxin27

Description

@wuxinxin27

Describe the bug

The set_physical_attr function in Articulation fails to properly set the mass.

Steps to reproduce

I loaded a single-joint, two-link articulated pipette body. Although I set the mass parameter to 0.1 in gym_config.json, printing the actual mass of the link loaded into the environment reveals it remains at the default value of 1.0.

  "pipette_tip": {
    "get_mass": 1.0,
    "get_static_friction": 1.2000000476837158,
    "get_dynamic_friction": 1.0,
    "get_restitution": 0.0010000000474974513,
    "get_linear_damping": 0.699999988079071,
    "get_angular_damping": 0.699999988079071,
    "get_max_depenetration_velocity": 2.0
  },
  "pipette_button": {
    "get_mass": 1.0,
    "get_static_friction": 1.2000000476837158,
    "get_dynamic_friction": 1.0,
    "get_restitution": 0.0010000000474974513,
    "get_linear_damping": 0.699999988079071,
    "get_angular_damping": 0.699999988079071,
    "get_max_depenetration_velocity": 2.0
  },

System Info

  • Commit: main branch
  • OS: Ubuntu 22.04
  • GPU: RTX 5060Ti
  • CUDA: 12.8
  • GPU Driver: 580.142

Additional context

By individually specifying the mass for each link within set_dexsim_articulation_cfg, and then attempting to load and print the mass again, the system returned to normal operation.
Add any other context about the problem here.

      for name in link_names:
          physical_body = art.get_physical_body(name)

          if hasattr(physical_body, "set_mass") and cfg.attrs.mass is not None:
              if cfg.attrs.mass > 0:
                  physical_body.set_mass(cfg.attrs.mass)

The printed result is as follows:

  "pipette_tip": {
    "get_mass": 0.009999999776482582,
    "get_static_friction": 1.2000000476837158,
    "get_dynamic_friction": 1.0,
    "get_restitution": 0.0010000000474974513,
    "get_linear_damping": 0.699999988079071,
    "get_angular_damping": 0.699999988079071,
    "get_max_depenetration_velocity": 2.0
  },
  "pipette_button": {
    "get_mass": 0.009999999776482582,
    "get_static_friction": 1.2000000476837158,
    "get_dynamic_friction": 1.0,
    "get_restitution": 0.0010000000474974513,
    "get_linear_damping": 0.699999988079071,
    "get_angular_damping": 0.699999988079071,
    "get_max_depenetration_velocity": 2.0
  },

Checklist

  • I have checked that there is no similar issue in the repo (required)

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingobjectSimulation object assets

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions