in robogym/robot/shadow_hand/mujoco/parameter_manager.py [0:0]
def set_parameters(self, actuator: str, assignments: Dict[str, float]):
assert actuator in ACTUATORS
actuator_id = self.mj_sim.model.actuator_name2id(actuator)
# Based on http://www.mujoco.org/book/XMLreference.html#position.
# second value in biasprm should be equal to -kp (first value of gainprm)
# for actuators of "position" type.
self.mj_sim.model.actuator_gainprm[actuator_id][0] = assignments[
"actuator_gainprm_kp"
]
self.mj_sim.model.actuator_gainprm[actuator_id][1] = assignments[
"actuator_gainprm_ti"
]
self.mj_sim.model.actuator_gainprm[actuator_id][2] = assignments[
"actuator_gainprm_iclamp"
]
self.mj_sim.model.actuator_gainprm[actuator_id][3] = assignments[
"actuator_gainprm_td"
]
self.mj_sim.model.actuator_gainprm[actuator_id][4] = assignments[
"actuator_gainprm_dsmooth"
]
self.mj_sim.model.actuator_gainprm[actuator_id][5] = assignments[
"actuator_gainprm_error_deadband"
]
self.mj_sim.model.actuator_forcerange[actuator_id][0] = -assignments[
"actuator_forcerange"
]
self.mj_sim.model.actuator_forcerange[actuator_id][1] = assignments[
"actuator_forcerange"
]
if self._has_spring_tendon(actuator):
tendon = self._spring_tendon_name(actuator)
tendon_id = self.mj_sim.model.tendon_name2id(tendon)
self.mj_sim.model.tendon_stiffness[tendon_id] = assignments[
"tendon_stiffness"
]
self.mj_sim.model.tendon_lengthspring[tendon_id] = assignments[
"tendon_lengthspring"
]
self.mj_sim.model.tendon_range[tendon_id][1] = assignments["tendon_range"]
for joint in ACTUATOR_JOINT_MAPPING[actuator]:
geom = f"coupling_{joint}_pulley"
geom_id = self.mj_sim.model.geom_name2id(geom)
self.mj_sim.model.geom_size[geom_id][0] = assignments[
f"{joint}_tendon_geom_0"
]
for joint in ACTUATOR_JOINT_MAPPING[actuator]:
joint_id = self.mj_sim.model.joint_name2id(joint)
self.mj_sim.model.dof_damping[joint_id] = assignments[
f"{joint}_dof_damping"
]
self.mj_sim.model.jnt_range[joint_id][0] = assignments[
f"{joint}_jnt_range_0"
]
self.mj_sim.model.jnt_range[joint_id][1] = assignments[
f"{joint}_jnt_range_1"
]