Spaces:
Sleeping
Sleeping
Access attributes programmatically using the MuJoCo Python API
Browse files- tray_sim.py +7 -4
tray_sim.py
CHANGED
|
@@ -44,6 +44,7 @@ def run_tray_simulation(
|
|
| 44 |
if mujoco.mj_name2id(model, mujoco.mjtObj.mjOBJ_BODY, name) == -1:
|
| 45 |
raise ValueError(f"Body '{name}' not found in model")
|
| 46 |
|
|
|
|
| 47 |
# Resolve joint offsets
|
| 48 |
joint_qpos_addrs = []
|
| 49 |
joint_qvel_addrs = []
|
|
@@ -59,6 +60,12 @@ def run_tray_simulation(
|
|
| 59 |
joint_qpos_addrs.append(model.jnt_qposadr[joint_addr])
|
| 60 |
joint_qvel_addrs.append(model.jnt_dofadr[joint_addr])
|
| 61 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 62 |
#tray_id = mujoco.mj_name2id(
|
| 63 |
# model,
|
| 64 |
# mujoco.mjtObj.mjOBJ_BODY,
|
|
@@ -72,10 +79,6 @@ def run_tray_simulation(
|
|
| 72 |
# Compute DOF offsets
|
| 73 |
|
| 74 |
# Set initial position and orientation for the puck
|
| 75 |
-
puck_pos = np.array([0.0, 0.0, 0.05])
|
| 76 |
-
puck_quat = [1, 0, 0, 0]
|
| 77 |
-
puck_vel_idx = joint_qvel_addrs[0]
|
| 78 |
-
|
| 79 |
data.qpos[joint_qpos_addrs[0]:joint_qpos_addrs[0]+3] = puck_pos
|
| 80 |
data.qpos[joint_qpos_addrs[0]+3:joint_qpos_addrs[0]+7] = puck_quat
|
| 81 |
|
|
|
|
| 44 |
if mujoco.mj_name2id(model, mujoco.mjtObj.mjOBJ_BODY, name) == -1:
|
| 45 |
raise ValueError(f"Body '{name}' not found in model")
|
| 46 |
|
| 47 |
+
# Validate all objects exist and get joint addresses
|
| 48 |
# Resolve joint offsets
|
| 49 |
joint_qpos_addrs = []
|
| 50 |
joint_qvel_addrs = []
|
|
|
|
| 60 |
joint_qpos_addrs.append(model.jnt_qposadr[joint_addr])
|
| 61 |
joint_qvel_addrs.append(model.jnt_dofadr[joint_addr])
|
| 62 |
|
| 63 |
+
# Extract puck's initial position and quaternion from the model
|
| 64 |
+
puck_body_id = mujoco.mj_name2id(model, mujoco.mjtObj.mjOBJ_BODY, "puck")
|
| 65 |
+
puck_pos = model.body_pos[puck_body_id].copy() # Extract initial position
|
| 66 |
+
puck_quat = model.body_quat[puck_body_id].copy() # Extract initial quaternion
|
| 67 |
+
puck_vel_idx = joint_qvel_addrs[0]
|
| 68 |
+
|
| 69 |
#tray_id = mujoco.mj_name2id(
|
| 70 |
# model,
|
| 71 |
# mujoco.mjtObj.mjOBJ_BODY,
|
|
|
|
| 79 |
# Compute DOF offsets
|
| 80 |
|
| 81 |
# Set initial position and orientation for the puck
|
|
|
|
|
|
|
|
|
|
|
|
|
| 82 |
data.qpos[joint_qpos_addrs[0]:joint_qpos_addrs[0]+3] = puck_pos
|
| 83 |
data.qpos[joint_qpos_addrs[0]+3:joint_qpos_addrs[0]+7] = puck_quat
|
| 84 |
|