rlogh commited on
Commit
7d51c7b
·
verified ·
1 Parent(s): 1aaf825

Upload folder using huggingface_hub

Browse files
Files changed (5) hide show
  1. README.md +69 -0
  2. best.pt +3 -0
  3. norm_stats.json +1 -0
  4. train.log +0 -0
  5. training_status.md +40 -0
README.md ADDED
@@ -0,0 +1,69 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # climbing-holds-rig-with-taxonomy
2
+
3
+ DP3-style point-cloud diffusion policy for grasping climbing holds with a
4
+ Franka arm + LEAP hand, trained on the spring-testbed-era rig dataset
5
+ ([`rlogh/climbing-holds-rig`](https://huggingface.co/datasets/rlogh/climbing-holds-rig)).
6
+
7
+ **This is the taxonomy-conditioned model.** The point cloud + robot state are
8
+ fused with a 64-d grasp-type embedding (crimp / sloper / pinch / jug, one-hot)
9
+ before being passed into the diffusion U-Net. At inference time the operator
10
+ provides the grasp-type label.
11
+
12
+ The unconditioned counterpart (ablation) lives at
13
+ [`rlogh/climbing-holds-rig-no-taxonomy`](https://huggingface.co/rlogh/climbing-holds-rig-no-taxonomy).
14
+
15
+ ## Files
16
+
17
+ | File | Size | Purpose |
18
+ |------|------|---------|
19
+ | `best.pt` | 415 MB | EMA weights + optimizer + config dict (best training loss, epoch 2939) |
20
+ | `norm_stats.json` | 2 KB | Min-max normalization stats — required by `evaluate.py` |
21
+ | `training_status.md` | <1 KB | Final loss + recent-epoch table |
22
+ | `train.log` | ~170 KB | Full epoch-by-epoch loss + LR log |
23
+
24
+ ## Training summary
25
+
26
+ - Dataset: 200 episodes (50 / grasp type), 24,621 valid samples
27
+ - Epochs: 3000 (cosine LR decay after 500-step warmup)
28
+ - Batch size: 128, AMP enabled
29
+ - Best loss: **0.001670** (final 0.001760)
30
+ - Wall time: 8.9 h on RTX 2080 Ti
31
+ - Conditioning: PointNet(1024×3) → 256-d + State MLP → 128-d + **GraspType MLP → 64-d** → Fuse → 512-d
32
+ - U-Net dims: (256, 512, 1024), 100-step cosine DDPM
33
+ - State / action dim: 23 (Franka 7 + LEAP 16)
34
+ - `--no-grasp-conditioning` flag: OFF (taxonomy conditioning ENABLED)
35
+
36
+ ## Usage (robot machine)
37
+
38
+ ```bash
39
+ mkdir -p checkpoints/pc_with_taxonomy_rig
40
+ hf download rlogh/climbing-holds-rig-with-taxonomy \
41
+ --local-dir checkpoints/pc_with_taxonomy_rig
42
+
43
+ python3 data_collection/evaluate.py \
44
+ --checkpoint checkpoints/pc_with_taxonomy_rig/best.pt \
45
+ --pull-dist 0.130 \
46
+ --hold 1 --grasp-type crimp
47
+ ```
48
+
49
+ `evaluate.py` autodetects the encoder type and conditioning state from the
50
+ embedded config dict. `--grasp-type` is required and is fed into the model's
51
+ grasp-type embedding branch.
52
+
53
+ ## Paired-evaluation result (spring testbed, 80 paired trials, 2026-05-15)
54
+
55
+ | Grasp | WITH median | WITHOUT median | Δ | Wilcoxon p | Cohen's d |
56
+ |-------|-------------|----------------|---|------------|-----------|
57
+ | Crimp | 15.7 N | 9.2 N | +6.5 N | 0.0007 | 1.05 *** |
58
+ | Jug | 15.7 N | 14.4 N | +1.3 N | 0.0278 | 0.55 * |
59
+ | Sloper | 7.9 N | 5.2 N | +2.6 N | 0.0012 | 1.08 ** |
60
+ | Pinch | 15.7 N | 9.2 N | +6.5 N | <0.001 | 1.82 *** |
61
+ | **Overall** | **13.1 N** | **7.9 N** | **+5.2 N** | **<0.001** | **0.95 \*\*\*** |
62
+
63
+ Primary metric: slip force from a parallel-spring linear ratchet testbed. Pull is a
64
+ 13 cm impedance-controlled displacement (180°, toward robot base) after policy
65
+ convergence. See repository README for full protocol.
66
+
67
+ ## Citation
68
+
69
+ Repository: [github.com/rumilog/rock-climb](https://github.com/rumilog/rock-climb)
best.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:948116d2b3ba0eca6003d43a95bd439798e584ee69d89a8dc966d46b68611b5b
3
+ size 415566046
norm_stats.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"state_min": [-0.31995153427124023, -0.3798457980155945, -0.26970672607421875, -2.9576244354248047, -0.6354063749313354, 1.846912145614624, -0.5814480185508728, -0.6550073623657227, -0.23623061180114746, 0.09817719459533691, -0.050618886947631836, -0.1043081283569336, -0.14572572708129883, -0.055220842361450195, 0.053691864013671875, -0.16720128059387207, -0.17793917655944824, 0.1349928379058838, -0.19788098335266113, -0.40036654472351074, -0.5798420906066895, 0.0046045780181884766, 0.2193617820739746], "state_range": [0.4736313223838806, 1.529477834701538, 0.7550710439682007, 1.8895576000213623, 1.008399248123169, 1.2278730869293213, 2.4966161251068115, 1.2900779247283936, 1.4864275455474854, 1.532447099685669, 1.872990369796753, 0.40036892890930176, 2.3193788528442383, 1.6996510028839111, 1.5523886680603027, 1.3008158206939697, 2.2933013439178467, 1.5585243701934814, 1.9619615077972412, 2.3393208980560303, 0.5046796798706055, 1.5800001621246338, 1.685844898223877], "action_min": [-0.31995153427124023, -0.3418472409248352, -0.26970672607421875, -2.9576244354248047, -0.6354063749313354, 1.846912145614624, -0.5814480185508728, -0.6550073623657227, -0.23623061180114746, 0.09817719459533691, -0.050618886947631836, -0.1043081283569336, -0.14572572708129883, -0.055220842361450195, 0.053691864013671875, -0.16720128059387207, -0.17793917655944824, 0.1349928379058838, -0.19788098335266113, -0.40036654472351074, -0.5798420906066895, 0.0046045780181884766, 0.2193617820739746], "action_range": [0.4736313223838806, 1.4914793968200684, 0.7550674080848694, 1.8895576000213623, 1.008399248123169, 1.2278730869293213, 2.4966161251068115, 1.2900779247283936, 1.4864275455474854, 1.532447099685669, 1.872990369796753, 0.40036892890930176, 2.3193788528442383, 1.6996510028839111, 1.5523886680603027, 1.3008158206939697, 2.2933013439178467, 1.5585243701934814, 1.9619615077972412, 2.3393208980560303, 0.5046796798706055, 1.5800001621246338, 1.685844898223877], "normalization": "minmax"}
train.log ADDED
The diff for this file is too large to render. See raw diff
 
training_status.md ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Training Status
2
+
3
+ **Mode:** Point Cloud (DP3)
4
+
5
+ **Epoch:** 3000 / 3000
6
+
7
+ **Current loss:** 0.001760
8
+
9
+ **Best loss:** 0.001670
10
+
11
+ **Elapsed:** 8.9 hours
12
+
13
+ **ETA:** 0.0 hours
14
+
15
+ **Dataset:** /mnt/ssd/rumi_tele_datasets/climbing_holds_rig.zarr (23-dim, 24621 samples)
16
+
17
+ ## Recent Losses
18
+
19
+ | Epoch | Loss |
20
+ |---|---|
21
+ | 2981 | 0.001773 |
22
+ | 2982 | 0.001680 |
23
+ | 2983 | 0.001740 |
24
+ | 2984 | 0.001757 |
25
+ | 2985 | 0.001718 |
26
+ | 2986 | 0.001692 |
27
+ | 2987 | 0.001702 |
28
+ | 2988 | 0.001738 |
29
+ | 2989 | 0.001737 |
30
+ | 2990 | 0.001699 |
31
+ | 2991 | 0.001713 |
32
+ | 2992 | 0.001707 |
33
+ | 2993 | 0.001773 |
34
+ | 2994 | 0.001736 |
35
+ | 2995 | 0.001718 |
36
+ | 2996 | 0.001727 |
37
+ | 2997 | 0.001738 |
38
+ | 2998 | 0.001714 |
39
+ | 2999 | 0.001733 |
40
+ | 3000 | 0.001760 |