Description
Creating any MIMo environment fails with AttributeError: 'MIMoReachEnv' object has no attribute 'model'. This seems to happen because MIMoEnv._initialize_simulation() calls super()._initialize_simulation() without storing and passing the return value, so self.model and self.data are not set.
Possible cause
In mimo_env.py in line 380:
def _initialize_simulation(self):
super()._initialize_simulation() # returns (model, data) but discards it
fps = int(np.round(1 / self.dt)) # self.dt needs self.model, which i snot assigned
It seems, Gymnasium's MujocoEnv.__init__ expects _initialize_simulation() to return (model, data):
# gymnasium/envs/mujoco/mujoco_env.py line 77:
self.model, self.data = self._initialize_simulation()
Suggested fix
Assign the return values during the initialization and then retunr them:
def _initialize_simulation(self):
self.model, self.data = super()._initialize_simulation()
fps = int(np.round(1 / self.dt))
...
self.actuation_model = self.actuation_model(self, self.mimo_actuators)
return self.model, self.data
Environment
- Python 3.12.3
- gymnasium 1.2.3
- mujoco 3.3.0
- MIMo tagged as v2.0.0
Description
Creating any MIMo environment fails with
AttributeError: 'MIMoReachEnv' object has no attribute 'model'. This seems to happen becauseMIMoEnv._initialize_simulation()callssuper()._initialize_simulation()without storing and passing the return value, soself.modelandself.dataare not set.Possible cause
In
mimo_env.pyin line 380:It seems, Gymnasium's
MujocoEnv.__init__expects_initialize_simulation()to return(model, data):Suggested fix
Assign the return values during the initialization and then retunr them:
Environment