-
Notifications
You must be signed in to change notification settings - Fork 2.6k
Closed
Labels
enhancementNew feature or requestNew feature or request
Description
Proposal
Right now, explicit actuators default_joint_stiffness and default_joint_damping are set to zeros. This makes the data structure inconsistent. I think we should correct this issue as it can simplify domain randomization functions.
See this comment for more details
IsaacLab/source/extensions/omni.isaac.lab/omni/isaac/lab/assets/articulation/articulation.py
Lines 1139 to 1158 in 55ab947
| if isinstance(actuator, ImplicitActuator): | |
| self._has_implicit_actuators = True | |
| # the gains and limits are set into the simulation since actuator model is implicit | |
| self.write_joint_stiffness_to_sim(actuator.stiffness, joint_ids=actuator.joint_indices) | |
| self.write_joint_damping_to_sim(actuator.damping, joint_ids=actuator.joint_indices) | |
| self.write_joint_effort_limit_to_sim(actuator.effort_limit, joint_ids=actuator.joint_indices) | |
| self.write_joint_armature_to_sim(actuator.armature, joint_ids=actuator.joint_indices) | |
| self.write_joint_friction_to_sim(actuator.friction, joint_ids=actuator.joint_indices) | |
| else: | |
| # the gains and limits are processed by the actuator model | |
| # we set gains to zero, and torque limit to a high value in simulation to avoid any interference | |
| self.write_joint_stiffness_to_sim(0.0, joint_ids=actuator.joint_indices) | |
| self.write_joint_damping_to_sim(0.0, joint_ids=actuator.joint_indices) | |
| self.write_joint_effort_limit_to_sim(1.0e9, joint_ids=actuator.joint_indices) | |
| self.write_joint_armature_to_sim(actuator.armature, joint_ids=actuator.joint_indices) | |
| self.write_joint_friction_to_sim(actuator.friction, joint_ids=actuator.joint_indices) | |
| # set the default joint parameters based on the changes from the actuators | |
| self._data.default_joint_stiffness = self.root_physx_view.get_dof_stiffnesses().to(device=self.device).clone() | |
| self._data.default_joint_damping = self.root_physx_view.get_dof_dampings().to(device=self.device).clone() |
The defaults are set to zeros because we get the defaults from the sim
Please advise if you see any compatibility issues with this idea.
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request