Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,15 +26,15 @@ Run a pre-trained motion mimic policy on the Unitree G1 humanoid:

```bash
uv run --extra rl scripts/tracking/rl/play.py \
--task Tracking-Flat-G1-Play-v0 \
--task Mjlab-Tracking-Flat-G1-Play-v0 \
--wandb-run-path gcbc_researchers/mjlab_alpha/rfdej55h
```

You can train this exact motion mimic policy using the following command:

```bash
MUJOCO_GL=egl uv run --extra rl scripts/tracking/rl/train.py \
--task Tracking-Flat-G1-v0 \
--task Mjlab-Tracking-Flat-G1-v0 \
--registry-name gcbc_researchers/csv_to_npz/lafan_cartwheel \
--num_envs 4096
```
Expand Down
39 changes: 39 additions & 0 deletions scripts/list_envs.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
"""Script to list MJLab environments."""

import gymnasium as gym
from prettytable import PrettyTable

import mjlab.tasks # noqa: F401 to register environments


def main():
"""Print all environments registered whose id contains `Mjlab-`."""
prefix_substring = "Mjlab-"

table = PrettyTable(["#", "Task ID", "Entry Point", "env_cfg_entry_point"])
table.title = "Available Environments in Mjlab"
table.align["Task ID"] = "l"
table.align["Entry Point"] = "l"
table.align["env_cfg_entry_point"] = "l"

idx = 0
for spec in gym.registry.values():
try:
if prefix_substring in spec.id:
env_cfg_ep = spec.kwargs.get("env_cfg_entry_point", "")
table.add_row([idx + 1, spec.id, spec.entry_point, env_cfg_ep])
idx += 1
except Exception:
continue

print(table)
if idx == 0:
print(f"[INFO] No tasks matched filter: '{prefix_substring}'")
return idx


if __name__ == "__main__":
try:
main()
except Exception as e:
raise RuntimeError(f"Error listing environments: {e}") from e
2 changes: 1 addition & 1 deletion src/mjlab/tasks/locomotion/velocity/config/go1/__init__.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import gymnasium as gym

gym.register(
id="Velocity-Flat-Unitree-Go1-v0",
id="Mjlab-Velocity-Flat-Unitree-Go1-v0",
entry_point="mjlab.envs:ManagerBasedRlEnv",
disable_env_checker=True,
kwargs={
Expand Down
4 changes: 2 additions & 2 deletions src/mjlab/tasks/tracking/config/g1/__init__.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import gymnasium as gym

gym.register(
id="Tracking-Flat-G1-v0",
id="Mjlab-Tracking-Flat-G1-v0",
entry_point="mjlab.envs:ManagerBasedRlEnv",
disable_env_checker=True,
kwargs={
Expand All @@ -11,7 +11,7 @@
)

gym.register(
id="Tracking-Flat-G1-Play-v0",
id="Mjlab-Tracking-Flat-G1-Play-v0",
entry_point="mjlab.envs:ManagerBasedRlEnv",
disable_env_checker=True,
kwargs={
Expand Down
4 changes: 2 additions & 2 deletions src/mjlab/tasks/tracking/config/t1/__init__.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import gymnasium as gym

gym.register(
id="Tracking-Flat-T1-v0",
id="Mjlab-Tracking-Flat-T1-v0",
entry_point="mjlab.envs:ManagerBasedRlEnv",
disable_env_checker=True,
kwargs={
Expand All @@ -11,7 +11,7 @@
)

gym.register(
id="Tracking-Flat-T1-Play-v0",
id="Mjlab-Tracking-Flat-T1-Play-v0",
entry_point="mjlab.envs:ManagerBasedRlEnv",
disable_env_checker=True,
kwargs={
Expand Down