Skip to content

Commit dfa3387

Browse files
authored
Merge pull request #161 from vikashplus/fix_actuator_moment
fix actuator_moment usage
2 parents ff6ecd6 + 1dd2a84 commit dfa3387

1 file changed

Lines changed: 14 additions & 4 deletions

File tree

robohive/envs/myo/base_v0.py

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
================================================= """
55

66
from robohive.envs import env_base
7+
import mujoco
78
import numpy as np
89

910
class BaseV0(env_base.MujocoEnv):
@@ -88,15 +89,24 @@ def step(self, a, **kwargs):
8889

8990
# implement abnormalities
9091
if self.muscle_condition == 'fatigue':
92+
actuator_moment = np.zeros((self.sim.model.nu, self.sim.model.nv))
93+
mujoco.mju_sparse2dense(
94+
actuator_moment,
95+
self.sim.data.actuator_moment.reshape(-1),
96+
self.sim.data.moment_rownnz,
97+
self.sim.data.moment_rowadr,
98+
self.sim.data.moment_colind.reshape(-1),
99+
)
91100
for mus_idx in range(self.sim.model.actuator_gainprm.shape[0]):
92101

93-
if self.sim.data.actuator_moment.shape[1]==1:
94-
self.f_load[mus_idx].append(self.sim.data.actuator_moment[mus_idx].copy())
102+
if actuator_moment.shape[1] == 1:
103+
self.f_load[mus_idx].append(actuator_moment[mus_idx].copy())
95104
else:
96-
self.f_load[mus_idx].append(self.sim.data.actuator_moment[mus_idx,1].copy())
105+
self.f_load[mus_idx].append(actuator_moment[mus_idx, 1].copy())
97106

98107
if self.MVC_rest[mus_idx] != 0:
99-
f_int = np.sum(self.f_load[mus_idx]-np.max(self.f_load[mus_idx],0),0)/self.MVC_rest[mus_idx]
108+
f_load = np.asarray(self.f_load[mus_idx])
109+
f_int = np.sum(f_load - np.max(f_load, 0), 0)/self.MVC_rest[mus_idx]
100110
f_cem = self.MVC_rest[mus_idx]*np.exp(self.k_fatigue*f_int)
101111
else:
102112
f_cem = 0

0 commit comments

Comments
 (0)