Skip to content

Commit fa772de

Browse files
update
1 parent 1f584ec commit fa772de

File tree

2 files changed

+36
-1
lines changed

2 files changed

+36
-1
lines changed
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
"""A script to generate the XML file for the model."""
2+
3+
import os
4+
import time
5+
import numpy as np
6+
import mujoco
7+
from dm_control import mjcf
8+
9+
from mujoco_robot_environments.tasks.lasa_draw import LasaDrawEnv
10+
11+
if __name__ == "__main__":
12+
# generate the XML file for the model
13+
env = LasaDrawEnv(viewer=True)
14+
env.reset()
15+
env._physics.step()
16+
17+
# ensure cubes are in the correct position
18+
mjcf_model = env._arena.mjcf_model
19+
physics = mjcf.Physics.from_mjcf_model(mjcf_model)
20+
21+
# save as mjb
22+
model_size = mujoco.mj_sizeModel(physics.model.ptr)
23+
buffer = np.empty(model_size, dtype=np.uint8)
24+
mujoco.mj_saveModel(physics.model.ptr, os.path.join(os.getcwd(), "lasa_draw.mjb"), None)
25+
26+
# sleep to allow for inspection of saved environment
27+
time.sleep(10.0)

mujoco_robot_environments/tasks/lasa_draw.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ def __init__(
8989
self._arena.mjcf_model.visual.__getattr__("global").offwidth = cfg.offwidth
9090
self._arena.mjcf_model.visual.map.znear = cfg.znear
9191

92+
9293
# add table for manipulation task
9394
table = Rectangle(
9495
name="table",
@@ -195,7 +196,7 @@ def __init__(
195196
self.depth_renderer = mujoco.Renderer(self._physics.model.ptr, height=self.main_camera_height, width=self.main_camera_width)
196197
self.depth_renderer.enable_depth_rendering()
197198
self.passive_view = None
198-
199+
199200
def close(self) -> None:
200201
if self.passive_view is not None:
201202
self.passive_view.close()
@@ -352,9 +353,16 @@ def move_to_joint_position_target(self, target_position):
352353
"""
353354
Move to position and velocity target for drawing task.
354355
"""
356+
scale = 0
357+
# sample random force and torque to apply to arm
358+
force = np.random.uniform(-scale, scale, size=3)
359+
# force = np.array([scale, 0, 0])
360+
torque = np.random.uniform(-scale, scale, size=3)
361+
355362
# step the simulation
356363
for _ in range(5):
357364
self._physics.set_control(target_position)
365+
self._physics.data.xfrc_applied[12] = np.concatenate([force, torque])
358366
self._physics.step()
359367
if self.passive_view is not None:
360368
self.passive_view.sync()

0 commit comments

Comments
 (0)