Instructions to use squaredcuber/asimov-groot-n17 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Asimov
How to use squaredcuber/asimov-groot-n17 with Asimov:
# Run the policy in a browser simulation of the Asimov 1 humanoid (no GPU needed) git clone https://github.com/menloresearch/humanoid-policy-viewer cd humanoid-policy-viewer npm install npm run hf squaredcuber/asimov-groot-n17
- Notebooks
- Google Colab
- Kaggle
File size: 16,556 Bytes
d7f7318 a2d8a6e 01e3f49 1a7c025 | 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 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 | GL backend: egl; seeds: checked against 926 dataset seeds: no overlap (max training seed 1200300)
/root/work/Isaac-GR00T/.venv/lib/python3.12/site-packages/albumentations/__init__.py:13: UserWarning: A new version of Albumentations is available: 2.0.8 (you have 1.4.18). Upgrade using: pip install -U albumentations. To disable automatic update checks, set the environment variable NO_ALBUMENTATIONS_UPDATE to 1.
check_for_updates()
Flash Attention 2 only supports torch.float16 and torch.bfloat16 dtypes, but the current dype in Qwen3VLForConditionalGeneration is torch.float32. You should run training or inference using Automatic Mixed-Precision via the `with torch.autocast(device_type='torch_device'):` decorator, or load the model with the `dtype` argument. Example: `model = AutoModel.from_pretrained("openai/whisper-tiny", attn_implementation="flash_attention_2", dtype=torch.float16)`
Flash Attention 2 only supports torch.float16 and torch.bfloat16 dtypes, but the current dype in Qwen3VLModel is torch.float32. You should run training or inference using Automatic Mixed-Precision via the `with torch.autocast(device_type='torch_device'):` decorator, or load the model with the `dtype` argument. Example: `model = AutoModel.from_pretrained("openai/whisper-tiny", attn_implementation="flash_attention_2", dtype=torch.float16)`
Flash Attention 2 only supports torch.float16 and torch.bfloat16 dtypes, but the current dype in Qwen3VLVisionModel is torch.float32. You should run training or inference using Automatic Mixed-Precision via the `with torch.autocast(device_type='torch_device'):` decorator, or load the model with the `dtype` argument. Example: `model = AutoModel.from_pretrained("openai/whisper-tiny", attn_implementation="flash_attention_2", dtype=torch.float16)`
Flash Attention 2 only supports torch.float16 and torch.bfloat16 dtypes, but the current dype in Qwen3VLTextModel is torch.float32. You should run training or inference using Automatic Mixed-Precision via the `with torch.autocast(device_type='torch_device'):` decorator, or load the model with the `dtype` argument. Example: `model = AutoModel.from_pretrained("openai/whisper-tiny", attn_implementation="flash_attention_2", dtype=torch.float16)`
/root/work/Isaac-GR00T/gr00t/model/modules/dit.py:278: FutureWarning: Accessing config attribute `compute_dtype` directly via 'AlternateVLDiT' object attribute is deprecated. Please access 'compute_dtype' over 'AlternateVLDiT's config object instead, e.g. 'unet.config.compute_dtype'.
embedding_dim=self.inner_dim, compute_dtype=self.compute_dtype
/root/work/Isaac-GR00T/gr00t/model/modules/dit.py:309: FutureWarning: Accessing config attribute `output_dim` directly via 'AlternateVLDiT' object attribute is deprecated. Please access 'output_dim' over 'AlternateVLDiT's config object instead, e.g. 'unet.config.output_dim'.
self.proj_out_2 = nn.Linear(self.inner_dim, self.output_dim)
Total number of DiT parameters: 1091722240
Total number of SelfAttentionTransformer parameters: 201433088
Loading checkpoint shards: 0%| | 0/3 [00:00<?, ?it/s]
Loading checkpoint shards: 100%|ββββββββββ| 3/3 [00:00<00:00, 44.04it/s]
[push 1/50] OK 'push the yellow block onto the green pad' steps=78
[push 2/50] OK 'push the yellow block onto the blue pad' steps=104
[push 3/50] OK 'push the orange block onto the red pad' steps=117
[push 4/50] OK 'push the green block onto the blue pad' steps=88
[push 5/50] OK 'push the orange block onto the yellow pad' steps=85
[push 6/50] OK 'push the blue block onto the orange pad' steps=55
[push 7/50] OK 'push the blue block onto the blue pad' steps=192
[push 8/50] OK 'push the yellow block onto the blue pad' steps=160
[push 9/50] OK 'push the purple block onto the red pad' steps=75
[push 10/50] OK 'push the purple block onto the yellow pad' steps=88
[push 11/50] OK 'push the blue block onto the purple pad' steps=76
[push 12/50] FAIL 'push the red block onto the yellow pad' steps=440 target_short_of_pad
[push 13/50] FAIL 'push the green block onto the purple pad' steps=440 target_short_of_pad
[push 14/50] OK 'push the yellow block onto the yellow pad' steps=75
[push 15/50] OK 'push the red block onto the yellow pad' steps=54
[push 16/50] FAIL 'push the red block onto the yellow pad' steps=440 target_not_moved
[push 17/50] OK 'push the blue block onto the red pad' steps=73
[push 18/50] FAIL 'push the red block onto the purple pad' steps=440 target_short_of_pad
[push 19/50] OK 'push the red block onto the orange pad' steps=82
[push 20/50] OK 'push the orange block onto the blue pad' steps=84
[push 21/50] OK 'push the red block onto the red pad' steps=76
[push 22/50] OK 'push the green block onto the red pad' steps=88
[push 23/50] OK 'push the purple block onto the orange pad' steps=74
[push 24/50] OK 'push the orange block onto the red pad' steps=72
[push 25/50] OK 'push the orange block onto the blue pad' steps=60
[push 26/50] OK 'push the blue block onto the green pad' steps=55
[push 27/50] FAIL 'push the purple block onto the orange pad' steps=440 target_short_of_pad
[push 28/50] FAIL 'push the purple block onto the orange pad' steps=440 target_not_moved
[push 29/50] OK 'push the orange block onto the yellow pad' steps=174
[push 30/50] FAIL 'push the red block onto the red pad' steps=440 target_not_moved
[push 31/50] OK 'push the yellow block onto the red pad' steps=87
[push 32/50] OK 'push the orange block onto the purple pad' steps=85
[push 33/50] OK 'push the purple block onto the blue pad' steps=63
[push 34/50] OK 'push the purple block onto the orange pad' steps=96
[push 35/50] OK 'push the blue block onto the green pad' steps=74
[push 36/50] OK 'push the green block onto the green pad' steps=78
[push 37/50] OK 'push the yellow block onto the blue pad' steps=77
[push 38/50] OK 'push the yellow block onto the green pad' steps=92
[push 39/50] OK 'push the green block onto the green pad' steps=76
[push 40/50] FAIL 'push the yellow block onto the green pad' steps=440 target_short_of_pad
[push 41/50] OK 'push the purple block onto the orange pad' steps=92
[push 42/50] OK 'push the red block onto the purple pad' steps=95
[push 43/50] OK 'push the purple block onto the green pad' steps=72
[push 44/50] OK 'push the purple block onto the purple pad' steps=45
[push 45/50] OK 'push the yellow block onto the purple pad' steps=97
[push 46/50] OK 'push the red block onto the yellow pad' steps=65
[push 47/50] OK 'push the purple block onto the red pad' steps=75
[push 48/50] OK 'push the blue block onto the orange pad' steps=58
[push 49/50] OK 'push the blue block onto the yellow pad' steps=110
[push 50/50] OK 'push the blue block onto the blue pad' steps=156
[button 1/50] OK 'press the blue button' steps=68
[button 2/50] OK 'press the orange button' steps=48
[button 3/50] OK 'press the purple button' steps=53
[button 4/50] FAIL 'press the orange button' steps=260 no_press
[button 5/50] FAIL 'press the blue button' steps=260 no_press
[button 6/50] FAIL 'press the purple button' steps=260 no_press
[button 7/50] OK 'press the red button' steps=112
[button 8/50] OK 'press the blue button' steps=49
[button 9/50] OK 'press the red button' steps=63
[button 10/50] OK 'press the yellow button' steps=47
[button 11/50] FAIL 'press the red button' steps=260 no_press
[button 12/50] OK 'press the purple button' steps=75
[button 13/50] OK 'press the red button' steps=246
[button 14/50] FAIL 'press the purple button' steps=260 wrong_button_pressed
[button 15/50] FAIL 'press the green button' steps=260 partial_press
[button 16/50] OK 'press the red button' steps=57
[button 17/50] FAIL 'press the blue button' steps=260 partial_press
[button 18/50] OK 'press the purple button' steps=63
[button 19/50] FAIL 'press the yellow button' steps=260 wrong_button_pressed
[button 20/50] OK 'press the red button' steps=53
[button 21/50] OK 'press the red button' steps=52
[button 22/50] OK 'press the purple button' steps=94
[button 23/50] FAIL 'press the yellow button' steps=260 partial_press
[button 24/50] OK 'press the green button' steps=53
[button 25/50] FAIL 'press the blue button' steps=260 no_press
[button 26/50] OK 'press the yellow button' steps=53
[button 27/50] OK 'press the yellow button' steps=48
[button 28/50] OK 'press the green button' steps=49
[button 29/50] OK 'press the yellow button' steps=138
[button 30/50] OK 'press the blue button' steps=49
[button 31/50] OK 'press the red button' steps=44
[button 32/50] FAIL 'press the red button' steps=260 partial_press
[button 33/50] OK 'press the yellow button' steps=56
[button 34/50] FAIL 'press the purple button' steps=260 no_press
[button 35/50] OK 'press the orange button' steps=82
[button 36/50] OK 'press the red button' steps=68
[button 37/50] FAIL 'press the red button' steps=260 partial_press
[button 38/50] OK 'press the purple button' steps=70
[button 39/50] OK 'press the purple button' steps=50
[button 40/50] FAIL 'press the red button' steps=260 no_press
[button 41/50] OK 'press the yellow button' steps=53
[button 42/50] OK 'press the orange button' steps=41
[button 43/50] OK 'press the blue button' steps=58
[button 44/50] FAIL 'press the yellow button' steps=260 no_press
[button 45/50] OK 'press the red button' steps=57
[button 46/50] FAIL 'press the orange button' steps=260 no_press
[button 47/50] OK 'press the purple button' steps=40
[button 48/50] FAIL 'press the green button' steps=260 no_press
[button 49/50] FAIL 'press the blue button' steps=260 partial_press
[button 50/50] OK 'press the purple button' steps=40
[box 1/50] FAIL 'lift the box and put it on the shelf' steps=440 dropped_or_not_placed
[box 2/50] FAIL 'lift the box and put it on the shelf' steps=440 tipped
[box 3/50] OK 'lift the box and put it on the shelf' steps=278
[box 4/50] OK 'lift the box and put it on the shelf' steps=228
[box 5/50] FAIL 'lift the box and put it on the shelf' steps=440 dropped_or_not_placed
[box 6/50] FAIL 'lift the box and put it on the shelf' steps=440 off_shelf_footprint_or_moving
[box 7/50] OK 'lift the box and put it on the shelf' steps=297
[box 8/50] FAIL 'lift the box and put it on the shelf' steps=440 dropped_or_not_placed
[box 9/50] FAIL 'lift the box and put it on the shelf' steps=440 dropped_off_table
[box 10/50] OK 'lift the box and put it on the shelf' steps=229
[box 11/50] OK 'lift the box and put it on the shelf' steps=236
[box 12/50] FAIL 'lift the box and put it on the shelf' steps=440 dropped_or_not_placed
[box 13/50] OK 'lift the box and put it on the shelf' steps=339
[box 14/50] FAIL 'lift the box and put it on the shelf' steps=440 dropped_or_not_placed
[box 15/50] FAIL 'lift the box and put it on the shelf' steps=440 dropped_or_not_placed
[box 16/50] OK 'lift the box and put it on the shelf' steps=440
[box 17/50] OK 'lift the box and put it on the shelf' steps=244
[box 18/50] OK 'lift the box and put it on the shelf' steps=243
[box 19/50] OK 'lift the box and put it on the shelf' steps=186
[box 20/50] OK 'lift the box and put it on the shelf' steps=190
[box 21/50] OK 'lift the box and put it on the shelf' steps=220
[box 22/50] FAIL 'lift the box and put it on the shelf' steps=440 dropped_or_not_placed
[box 23/50] OK 'lift the box and put it on the shelf' steps=207
[box 24/50] OK 'lift the box and put it on the shelf' steps=258
[box 25/50] FAIL 'lift the box and put it on the shelf' steps=440 dropped_or_not_placed
[box 26/50] FAIL 'lift the box and put it on the shelf' steps=440 dropped_or_not_placed
[box 27/50] OK 'lift the box and put it on the shelf' steps=326
[box 28/50] OK 'lift the box and put it on the shelf' steps=197
[box 29/50] FAIL 'lift the box and put it on the shelf' steps=440 dropped_or_not_placed
[box 30/50] OK 'lift the box and put it on the shelf' steps=365
[box 31/50] FAIL 'lift the box and put it on the shelf' steps=440 dropped_or_not_placed
[box 32/50] FAIL 'lift the box and put it on the shelf' steps=440 off_shelf_footprint_or_moving
[box 33/50] FAIL 'lift the box and put it on the shelf' steps=440 dropped_or_not_placed
[box 34/50] FAIL 'lift the box and put it on the shelf' steps=440 dropped_or_not_placed
[box 35/50] FAIL 'lift the box and put it on the shelf' steps=440 dropped_or_not_placed
[box 36/50] FAIL 'lift the box and put it on the shelf' steps=440 dropped_or_not_placed
[box 37/50] OK 'lift the box and put it on the shelf' steps=277
[box 38/50] FAIL 'lift the box and put it on the shelf' steps=440 not_released
[box 39/50] OK 'lift the box and put it on the shelf' steps=314
[box 40/50] OK 'lift the box and put it on the shelf' steps=238
[box 41/50] OK 'lift the box and put it on the shelf' steps=414
[box 42/50] OK 'lift the box and put it on the shelf' steps=217
[box 43/50] OK 'lift the box and put it on the shelf' steps=314
[box 44/50] FAIL 'lift the box and put it on the shelf' steps=440 dropped_or_not_placed
[box 45/50] OK 'lift the box and put it on the shelf' steps=195
[box 46/50] OK 'lift the box and put it on the shelf' steps=325
[box 47/50] OK 'lift the box and put it on the shelf' steps=254
[box 48/50] FAIL 'lift the box and put it on the shelf' steps=440 tipped
[box 49/50] OK 'lift the box and put it on the shelf' steps=230
[box 50/50] OK 'lift the box and put it on the shelf' steps=405
# Closed-loop evaluation: groot (/root/work/runs/asimov_n17/checkpoint-10000)
50 held-out episodes per task (seeds 2**40 + task_id * 2**20 + k; checked against 926 dataset seeds: no overlap (max training seed 1200300)), 8 of 16 actions executed per inference at 20 Hz, success held 10 steps, GL egl.
| Task | Success | 95% CI | Mean time to success | Failures |
| --- | --- | --- | --- | --- |
| push | 42/50 (84%) | 0.71-0.92 | 3.93 s | target_short_of_pad 5, target_not_moved 3 |
| button | 32/50 (64%) | 0.50-0.76 | 2.88 s | no_press 10, partial_press 6, wrong_button_pressed 2 |
| box | 28/50 (56%) | 0.42-0.69 | 13.26 s | dropped_or_not_placed 16, tipped 2, off_shelf_footprint_or_moving 2, dropped_off_table 1, not_released 1 |
Policy calls: {'mean': 0.095, 'p50': 0.0943, 'p90': 0.096, 'calls': 3970}
## push: per instruction
| Instruction | Success |
| --- | --- |
| push the blue block onto the blue pad | 2/2 |
| push the blue block onto the green pad | 2/2 |
| push the blue block onto the orange pad | 2/2 |
| push the blue block onto the purple pad | 1/1 |
| push the blue block onto the red pad | 1/1 |
| push the blue block onto the yellow pad | 1/1 |
| push the green block onto the blue pad | 1/1 |
| push the green block onto the green pad | 2/2 |
| push the green block onto the purple pad | 0/1 |
| push the green block onto the red pad | 1/1 |
| push the orange block onto the blue pad | 2/2 |
| push the orange block onto the purple pad | 1/1 |
| push the orange block onto the red pad | 2/2 |
| push the orange block onto the yellow pad | 2/2 |
| push the purple block onto the blue pad | 1/1 |
| push the purple block onto the green pad | 1/1 |
| push the purple block onto the orange pad | 3/5 |
| push the purple block onto the purple pad | 1/1 |
| push the purple block onto the red pad | 2/2 |
| push the purple block onto the yellow pad | 1/1 |
| push the red block onto the orange pad | 1/1 |
| push the red block onto the purple pad | 1/2 |
| push the red block onto the red pad | 1/2 |
| push the red block onto the yellow pad | 2/4 |
| push the yellow block onto the blue pad | 3/3 |
| push the yellow block onto the green pad | 2/3 |
| push the yellow block onto the purple pad | 1/1 |
| push the yellow block onto the red pad | 1/1 |
| push the yellow block onto the yellow pad | 1/1 |
Videos: videos/push_success_seed1099511627776.mp4, videos/push_failure_seed1099511627787.mp4
## button: per instruction
| Instruction | Success |
| --- | --- |
| press the blue button | 4/8 |
| press the green button | 2/4 |
| press the orange button | 3/5 |
| press the purple button | 8/11 |
| press the red button | 9/13 |
| press the yellow button | 6/9 |
Videos: videos/button_success_seed1099512676352.mp4, videos/button_failure_seed1099512676355.mp4
## box: per instruction
| Instruction | Success |
| --- | --- |
| lift the box and put it on the shelf | 28/50 |
Videos: videos/box_failure_seed1099513724928.mp4, videos/box_success_seed1099513724930.mp4
|