nepyope commited on
Commit
a11aca3
·
verified ·
1 Parent(s): 6b970d7

Update sim/base_sim.py

Browse files
Files changed (1) hide show
  1. sim/base_sim.py +7 -0
sim/base_sim.py CHANGED
@@ -86,6 +86,8 @@ class DefaultEnv:
86
  str(assets_root / self.config["ROBOT_SCENE"])
87
  )
88
  self.mj_data = mujoco.MjData(self.mj_model)
 
 
89
  self.mj_model.opt.timestep = self.sim_dt
90
  self.torso_index = mujoco.mj_name2id(self.mj_model, mujoco.mjtObj.mjOBJ_BODY, "torso_link")
91
  self.root_body = "pelvis"
@@ -502,6 +504,11 @@ class DefaultEnv:
502
 
503
  def reset(self):
504
  mujoco.mj_resetData(self.mj_model, self.mj_data)
 
 
 
 
 
505
 
506
 
507
  class BaseSimulator:
 
86
  str(assets_root / self.config["ROBOT_SCENE"])
87
  )
88
  self.mj_data = mujoco.MjData(self.mj_model)
89
+ # Set valid floating base quaternion (MjData initializes qpos to zeros)
90
+ self.mj_data.qpos[3:7] = [1.0, 0.0, 0.0, 0.0]
91
  self.mj_model.opt.timestep = self.sim_dt
92
  self.torso_index = mujoco.mj_name2id(self.mj_model, mujoco.mjtObj.mjOBJ_BODY, "torso_link")
93
  self.root_body = "pelvis"
 
504
 
505
  def reset(self):
506
  mujoco.mj_resetData(self.mj_model, self.mj_data)
507
+ # Set valid floating base quaternion (identity: w=1, x=y=z=0)
508
+ # mj_resetData sets qpos to zeros, which gives invalid [0,0,0,0] quaternion
509
+ self.mj_data.qpos[3:7] = [1.0, 0.0, 0.0, 0.0]
510
+ # Propagate qpos to derived quantities (xquat, xpos, etc.)
511
+ mujoco.mj_forward(self.mj_model, self.mj_data)
512
 
513
 
514
  class BaseSimulator: