Upload README.md with huggingface_hub
Browse files
README.md
CHANGED
|
@@ -1,3 +1,40 @@
|
|
| 1 |
-
---
|
| 2 |
-
|
| 3 |
-
---
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
language: en
|
| 3 |
+
tags: [robotics, 6-axis-arm, visual-policy, pytorch, imitation-learning]
|
| 4 |
+
license: apache-2.0
|
| 5 |
+
---
|
| 6 |
+
|
| 7 |
+
# 6Net — 6-Axis Visual Robot Policy (~115M)
|
| 8 |
+
|
| 9 |
+
Custom transformer policy for visual 6-DoF robot arm control. Trained from scratch (no LoRA).
|
| 10 |
+
|
| 11 |
+
| Component | Detail | Params |
|
| 12 |
+
|---|---|---|
|
| 13 |
+
| Visual Encoder | ResNet-18 fine-tuned | ~11.7M |
|
| 14 |
+
| Visual Projection | Linear(512→768) | ~0.4M |
|
| 15 |
+
| State Encoder | MLP(6→256→768) | ~0.2M |
|
| 16 |
+
| Transformer | 14L · d=768 · 12h · ffn=3072 | ~99.1M |
|
| 17 |
+
| Action Head | MLP(768→256→6) | ~0.2M |
|
| 18 |
+
| **Total** | | **~111M** |
|
| 19 |
+
|
| 20 |
+
**Dataset:** `synthetic` · **Steps:** 455 · **Eff. batch:** 32
|
| 21 |
+
|
| 22 |
+
## Inference
|
| 23 |
+
```python
|
| 24 |
+
import torch
|
| 25 |
+
from train_6net_local import SixNet, Config
|
| 26 |
+
import torchvision.transforms as T
|
| 27 |
+
from PIL import Image
|
| 28 |
+
|
| 29 |
+
model = SixNet(Config())
|
| 30 |
+
ckpt = torch.load("6net_final.pt", map_location="cpu")
|
| 31 |
+
model.load_state_dict(ckpt["model_state"])
|
| 32 |
+
model.eval()
|
| 33 |
+
|
| 34 |
+
tf = T.Compose([T.Resize((224,224)), T.ToTensor(),
|
| 35 |
+
T.Normalize([.485,.456,.406],[.229,.224,.225])])
|
| 36 |
+
img = tf(Image.open("cam.jpg")).unsqueeze(0) # (1,3,224,224)
|
| 37 |
+
jts = torch.zeros(1, 6) # current joint angles (rad)
|
| 38 |
+
with torch.no_grad():
|
| 39 |
+
action = model(img, jts) # (1,6) predicted targets
|
| 40 |
+
```
|