Skip to content

Commit e2bbb71

Browse files
authored
Merge pull request #3 from rohit-kumar-j/main
Added joint, wireframe overlay
2 parents 5db4db5 + 580a6d8 commit e2bbb71

File tree

1 file changed

+35
-1
lines changed

1 file changed

+35
-1
lines changed

mujoco_viewer/mujoco_viewer.py

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,10 @@ def __init__(self, model, data):
2222
self._paused = False
2323
self._transparent = False
2424
self._contacts = False
25+
self._joints = False
26+
self._wire_frame = False
27+
self._inertias = False
28+
self._com = False
2529
self._render_every_frame = True
2630
self._image_idx = 0
2731
self._image_path = "/tmp/frame_%07d.png"
@@ -108,7 +112,9 @@ def _key_callback(self, window, key, scancode, action, mods):
108112
elif key == glfw.KEY_C:
109113
self._contacts = not self._contacts
110114
self.vopt.flags[mujoco.mjtVisFlag.mjVIS_CONTACTPOINT] = self._contacts
111-
self.vopt.flags[mujoco.mjtVisFlag.mjVIS_CONTACTFORCE] = self._contacts
115+
elif key == glfw.KEY_J:
116+
self._joints = not self._joints
117+
self.vopt.flags[mujoco.mjtVisFlag.mjVIS_JOINT] = self._joints
112118
# Display coordinate frames
113119
elif key == glfw.KEY_E:
114120
self.vopt.frame = 1 - self.vopt.frame
@@ -122,6 +128,18 @@ def _key_callback(self, window, key, scancode, action, mods):
122128
self.model.geom_rgba[:, 3] /= 5.0
123129
else:
124130
self.model.geom_rgba[:, 3] *= 5.0
131+
# Display inertia
132+
elif key == glfw.KEY_I:
133+
self._inertias = not self._inertias
134+
self.vopt.flags[mujoco.mjtVisFlag.mjVIS_INERTIA] = self._inertias
135+
# Display center of mass
136+
elif key == glfw.KEY_M:
137+
self._com = not self._com
138+
self.vopt.flags[mujoco.mjtVisFlag.mjVIS_COM] = self._com
139+
# Wireframe Rendering
140+
elif key == glfw.KEY_W:
141+
self._wire_frame = not self._wire_frame
142+
self.scn.flags[mujoco.mjtRndFlag.mjRND_WIREFRAME] = self._wire_frame
125143
# Geom group visibility
126144
elif key in (glfw.KEY_0, glfw.KEY_1, glfw.KEY_2, glfw.KEY_3, glfw.KEY_4):
127145
self.vopt.geomgroup[key - glfw.KEY_0] ^= 1
@@ -369,10 +387,26 @@ def add_overlay(gridpos, text1, text2):
369387
topleft,
370388
"[C]ontact forces",
371389
"On" if self._contacts else "Off")
390+
add_overlay(
391+
topleft,
392+
"[J]oints",
393+
"On" if self._joints else "Off")
394+
add_overlay(
395+
topleft,
396+
"[I]nertia",
397+
"On" if self._inertias else "Off")
398+
add_overlay(
399+
topleft,
400+
"Center of [M]ass",
401+
"On" if self._com else "Off")
372402
add_overlay(
373403
topleft,
374404
"T[r]ansparent",
375405
"On" if self._transparent else "Off")
406+
add_overlay(
407+
topleft,
408+
"[W]ireframe",
409+
"On" if self._wire_frame else "Off")
376410
if self._paused is not None:
377411
if not self._paused:
378412
add_overlay(topleft, "Stop", "[Space]")

0 commit comments

Comments
 (0)