File size: 3,593 Bytes
ee7feb0
 
 
 
 
 
 
 
 
 
 
 
1e09dca
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ee7feb0
1e09dca
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
---
license: apache-2.0
tags:
  - robotics
  - isaaclab
  - isaac-lab-arena
  - lerobot
  - envhub
  - simulation
  - manipulation
---

# env-assembly-bench

[EnvHub](https://huggingface.co/docs/lerobot/en/envhub) package for the NIST
taskboard **assembly** benchmark on
[Isaac Lab Arena](https://github.com/isaac-sim/IsaacLab-Arena).

Load with one line (executes Hub code β€” pin a commit in production):

```python
from lerobot.envs import make_env
from lerobot.envs.configs import IsaaclabArenaEnv

cfg = IsaaclabArenaEnv(
    hub_path="lukasskellijs/env_assembly_bench",
    environment="assembly_bench",
    embodiment="droid_abs_joint_pos_softmimic",
    headless=True,
    enable_cameras=True,
    state_keys="joint_pos,gripper_pos,eef_pos,eef_quat",
    camera_keys="front_cam_rgb,wrist_camera_rgb",
    state_dim=15,
    action_dim=8,
    enable_pinocchio=False,
    kwargs={"variant": "peg_round_M1_loose", "reward": "none"},
)
suites = make_env(cfg, n_envs=1, trust_remote_code=True)
env = next(iter(next(iter(suites.values())).values()))
```

`cfg.task` is the natural-language prompt (LeRobot convention). The Arena
variant id is `kwargs.variant` (for example `peg_round_M1_loose`).

## Prerequisites

Same stack as [Isaac Lab Arena + EnvHub](https://huggingface.co/docs/lerobot/en/envhub_isaaclab_arena):

- NVIDIA GPU, Isaac Sim 6.x, Isaac Lab + Isaac Lab Arena installed locally
- `pip install -r requirements.txt` (Hub glue only)
- Optional: `pip install -e .` so `assembly_bench` imports without a Hub snapshot

EULA (once per shell):

```bash
export ACCEPT_EULA=Y PRIVACY_CONSENT=Y OMNI_KIT_ACCEPT_EULA=YES
```

## Variants

15 loose-clearance tasks plus `debug` (apple→bowl). Peg sizes use suite codes
`S/M1/M2/L` (4/8/12/16 mm):

| family | examples |
|---|---|
| peg insert | `peg_round_M1_loose`, `peg_square_L_loose` |
| gear mesh | `gear_small`, `gear_medium`, `gear_large` |
| nut thread | `nut_M8`, `nut_M12`, `nut_M16`, `nut_M20` |

Default embodiment: `droid_abs_joint_pos_softmimic` (Franka + Robotiq, 8-D
absolute joint targets, DROID cameras).

## LeRobot eval

```bash
lerobot-eval \
  --env.type=isaaclab_arena \
  --env.hub_path=lukasskellijs/env_assembly_bench \
  --env.environment=assembly_bench \
  --env.embodiment=droid_abs_joint_pos_softmimic \
  --env.headless=true \
  --env.enable_cameras=true \
  --env.state_keys=joint_pos,gripper_pos,eef_pos,eef_quat \
  --env.camera_keys=front_cam_rgb,wrist_camera_rgb \
  --env.state_dim=15 \
  --env.action_dim=8 \
  --env.enable_pinocchio=false \
  --env.kwargs='{"variant": "peg_round_M1_loose"}' \
  --trust_remote_code=True \
  --eval.batch_size=1 \
  --policy.path=<your-policy>
```

## HUD

[`hud_env.py`](hud_env.py) is the standard HUD robot entry: it snapshot-downloads
this Hub repo, calls `env.py:make_env`, and exposes the sim via `env.gym(...)`.

```bash
OMNI_KIT_ACCEPT_EULA=YES ACCEPT_EULA=Y PRIVACY_CONSENT=Y \
  python -m hud.environment.server hud_env.py --port 8765
```

Point a `RobotAgent` / `Runtime("tcp://127.0.0.1:8765")` at that port as in the
HUD robots guide.

## Layout

```
env_assembly_bench/
β”œβ”€β”€ env.py                  # EnvHub make_env
β”œβ”€β”€ hud_env.py              # HUD Environment (Hub download path)
β”œβ”€β”€ isaaclab_env_wrapper.py
β”œβ”€β”€ example_envs.yaml
β”œβ”€β”€ contract.json           # HUD obs/action contract
└── assembly_bench/         # Arena package + USD/HDR assets
```

## Security

`trust_remote_code=True` runs Hub Python. Review `env.py`, pin
`lukasskellijs/env_assembly_bench@<commit>`, and prefer this org only if you
trust it.