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
30 changes: 30 additions & 0 deletions docs/LOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -916,6 +916,36 @@ linii polecen trafilo wlasny push (README zawieral te slowa). LFS: 630 MB z 1 GB
Wiecej epizodow (`--resume=true`) i druga statyczna kamera, jesli polityka nie generalizuje po polozeniu szyszki.
**Sprzet:** dotkniety zdalnie (odczyt kamery `lerobot-find-cameras` na Pi, kopiowanie plikow; ramie nie ruszane)

## 2026-09-27 - frane + Claude - diagnoza padnietego treningu ACT, wznowienie
**Zrobione:** Pytanie frane "co sie dzieje z trenowaniem, wznowic?". Stan: run2 (`C:/Users/frane/outputs/act_so101_grasp2_run2`)
zabity przy kroku 3528 (restart sesji ~14:55), checkpointy 1000/2000/3000 z `training_state` cale. Blad `import torch`
(WinError 1114 `shm.dll`) z poprzedniej sesji to NIE uszkodzony torch: pliki torch 2.11+cu128 zgodne z RECORD (11821
plikow), reczne ladowanie wszystkich DLL z `torch/lib` przechodzi. Import pada TYLKO wewnatrz sandboxa narzedzia Bash/
PowerShell w Claude Code; z wylaczonym sandboxem (`dangerouslyDisableSandbox`) `import torch` + CUDA + matmul dzialaja.
Przeinstalowanie torcha (15:12, `torch_reinstall.log`) bylo niepotrzebne. Wznowienie: `python tools/train_win.py
--config_path=<run2>/checkpoints/003000/pretrained_model/train_config.json --resume=true` dziala BEZ symlinku `last`
(lerobot 0.6.1 bierze katalog checkpointu z `config_path`; "Resuming data order at epoch 1, sample 1544"). Odpalone
15:17:10 jako proces odlaczony (`Start-Process`, przezywa restart sesji), do 7000 krokow.
**Nie dziala / otwarte:** 20 s pozniej DRUGA sesja Claude (worktree `robot-pinecone-test-plan`) wznowila ten sam
checkpoint do tego samego katalogu z `--steps=4000` i do tego samego pliku `act_grasp2_run4.log` (ta sama numeracja) -
oba procesy dzielily GPU (1.7 zamiast 3.3 kroku/s) i obydwa zapisalyby `checkpoints/004000` w tej samej chwili.
Moj proces zabity (duplikat), trening drugiej sesji zostawiony: 15:24:25 checkpoint 4000 (loss 0.575 (l1 0.255)), koniec.
Kroki 4000 -> 7000 NIE trenowane; 4000 lezy tylko na laptopie (`.../act_so101_grasp2_run2/checkpoints/004000`).
Commity z checkpointami 2000/3000 (`models/`, LFS, branch `frane/act-training` w tamtym worktree) NIE sa na origin
(push nie doszedl; 2 x 207 MB przy 630 MB z 1 GB limitu LFS - kolejne checkpointy do LFS sie nie zmieszcza, wagi
na Pi przez scp jak w SETUP.md). Pulapka: dwie sesje przy jednym GPU/katalogu `outputs` - przed startem treningu
`Get-CimInstance Win32_Process | ? Name -eq python.exe` i wlasna nazwa logu.
15:30 wznowienie 4000 -> 7000 (`--config_path=.../004000/... --resume=true --steps=7000`, 3.4 kroku/s, loss 0.52 przy
~4300) ZATRZYMANE 15:34 na prosbe frane (nie obciazac laptopa) przy kroku ~4413, przed checkpointem 5000 - te ~400
krokow przepadlo, stan nadal = checkpoint 4000. Log `act_grasp2_run5_to7000.err`.
15:42 wznowienie od 004000 raz jeszcze (run6), na prosbe frane pauza 15:52-15:57 przez NtSuspendProcess (GPU 0 %,
postep zachowany), potem laptop na baterii = 1.1 kroku/s (36 W), po zasilaczu 3.5 kroku/s. 16:05 KONIEC: krok 7000,
loss 0.301 (l1 0.198, kld 0.010); checkpointy 5000/6000/7000 w `.../act_so101_grasp2_run2/checkpoints/` (laptop).
Loss po krokach: 3000 0.79 -> 4000 0.575 -> 7000 0.301. Log `act_grasp2_run6_to7000.err`.
**Nastepny krok:** wagi 7000 na Pi przez scp (SETUP.md), rollout z wylacznikiem; jesli ruch w zla strone - ARM_FRAMES
krok 1. Checkpoint 7000 NIE do LFS (limit 1 GB).
**Sprzet:** nie

## 2026-09-27 - pawel120 + Claude - panel zbiorczy robota (wizytowka)
**Zrobione:** `tools/robot_panel.py` (:8090) + `robot_panel.html`: jeden panel zamiast trzech okien SSH (panel.md).
Nadzorca uslug `pinecone_bot/supervisor.py` (start/stop SIGINT -> terminate -> kill, logi w pamieci i `logs/<usluga>.log`,
Expand Down
7 changes: 7 additions & 0 deletions docs/STATUS.md
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,13 @@ zadania i przypisania na tablicy Projects (link nizej). Czego nie ma tutaj albo
kroku 2000 (l1 0.31). Checkpointy 1000/2000 na Pi w `~/models/act_so101_grasp2/<krok>/pretrained_model`, 1000 tez
na masterze (`models/`, LFS). Rollout lokalnie na Pi (0.65 s na 100 akcji): komenda w SETUP.md "Rollout polityki
ACT na Pi". NIE sprawdzone na robocie w chwili pisania.
15:24: run2 padl przy 3528 (restart sesji); wznowienie z 3000 (`--config_path=.../003000/pretrained_model/
train_config.json --resume=true`, bez `last`) doszlo do 4000 (loss 0.575 (l1 0.255)), checkpoint `C:/Users/frane/outputs/
act_so101_grasp2_run2/checkpoints/004000`. 16:05: trening DOKONCZONY do 7000 (loss 0.301, l1 0.198); checkpointy
5000/6000/7000 w tym samym katalogu na laptopie, NIE na Pi, NIE w LFS (limit 1 GB) - na Pi przez scp (SETUP.md).
Pulapka: `import torch` pada w sandboxie narzedzia Claude Code (WinError 1114 shm.dll) - trening poza sandboxem,
JEDEN proces naraz (dwie sesje naraz dzielily GPU i katalog, LOG 15:20). Checkpointy 2000/3000 w LFS tylko
lokalnie (branch `frane/act-training`, push nie doszedl; limit LFS 1 GB).
- Zera stawow vs URDF i kamera na ramieniu: `tools/frame_check.py` (FK placo + werdykt operatora) i
`tools/hand_eye_calib.py` (marker/collect/solve/predict, AX=XB) gotowe z testami (28), instrukcja `docs/ARM_FRAMES.md`.
NIE uruchomione na sprzecie - do zrobienia przez sesje przy Pi. To warunek wstepny dla IK/GraspGenX.
Expand Down
7 changes: 5 additions & 2 deletions models/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,13 @@
- `act_so101_grasp2/001000/pretrained_model/` - ACT po 1000 krokach (batch 8, AMP) na
`datasets/so101_grasp2` (50 epizodow, kamera wrist), 2026-09-27 14:32, loss 2.28 przy kroku 800.
Pierwszy uzywalny checkpoint do testu toru inferencji; kolejne (2000+) dochodza w miare treningu.
- `act_so101_grasp2/007000/pretrained_model/` - ten sam trening dokonczony do 7000 krokow (wznawiany z 3000 i 4000),
2026-09-27 16:05, loss 0.301 (l1 0.198). TEN checkpoint do rolloutu. Posrednie 2000-6000 tylko na laptopie frane
(`C:/Users/frane/outputs/act_so101_grasp2_run2/checkpoints/`) - nie w LFS, limit 1 GB.

`*.safetensors` sa w Git LFS: po klonie `git lfs install` i `git lfs pull`. Na Pi:

tar -cf - -C models/act_so101_grasp2/001000 pretrained_model | ssh robot@172.20.10.4 \
'mkdir -p ~/models/act_so101_grasp2/001000 && tar -xf - -C ~/models/act_so101_grasp2/001000'
tar -cf - -C models/act_so101_grasp2/007000 pretrained_model | ssh robot@172.20.10.4 \
'mkdir -p ~/models/act_so101_grasp2/007000 && tar -xf - -C ~/models/act_so101_grasp2/007000'

Rollout: docs/SETUP.md, sekcja "Rollout polityki ACT na Pi".
64 changes: 64 additions & 0 deletions models/act_so101_grasp2/007000/pretrained_model/config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
{
"type": "act",
"n_obs_steps": 1,
"input_features": {
"observation.state": {
"type": "STATE",
"shape": [
6
]
},
"observation.images.wrist": {
"type": "VISUAL",
"shape": [
3,
480,
640
]
}
},
"output_features": {
"action": {
"type": "ACTION",
"shape": [
6
]
}
},
"device": "cuda",
"use_amp": true,
"use_peft": false,
"push_to_hub": false,
"repo_id": null,
"private": null,
"tags": null,
"license": null,
"pretrained_path": "C:\\Users\\frane\\outputs\\act_so101_grasp2_run2\\checkpoints\\004000\\pretrained_model",
"pretrained_revision": null,
"chunk_size": 100,
"n_action_steps": 100,
"normalization_mapping": {
"VISUAL": "MEAN_STD",
"STATE": "MEAN_STD",
"ACTION": "MEAN_STD"
},
"vision_backbone": "resnet18",
"pretrained_backbone_weights": "ResNet18_Weights.IMAGENET1K_V1",
"replace_final_stride_with_dilation": 0,
"pre_norm": false,
"dim_model": 512,
"n_heads": 8,
"dim_feedforward": 3200,
"feedforward_activation": "relu",
"n_encoder_layers": 4,
"n_decoder_layers": 1,
"use_vae": true,
"latent_dim": 32,
"n_vae_encoder_layers": 4,
"temporal_ensemble_coeff": null,
"dropout": 0.1,
"kl_weight": 10.0,
"optimizer_lr": 1e-05,
"optimizer_weight_decay": 0.0001,
"optimizer_lr_backbone": 1e-05
}
Git LFS file not shown
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
{
"name": "policy_postprocessor",
"steps": [
{
"registry_name": "unnormalizer_processor",
"config": {
"eps": 1e-08,
"features": {
"action": {
"type": "ACTION",
"shape": [
6
]
}
},
"norm_map": {
"VISUAL": "MEAN_STD",
"STATE": "MEAN_STD",
"ACTION": "MEAN_STD"
}
},
"state_file": "policy_postprocessor_step_0_unnormalizer_processor.safetensors"
},
{
"registry_name": "device_processor",
"config": {
"device": "cpu",
"float_dtype": null
}
}
]
}
Git LFS file not shown
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
{
"name": "policy_preprocessor",
"steps": [
{
"registry_name": "rename_observations_processor",
"config": {
"rename_map": {}
}
},
{
"registry_name": "to_batch_processor",
"config": {}
},
{
"registry_name": "device_processor",
"config": {
"device": "cuda",
"float_dtype": null
}
},
{
"registry_name": "normalizer_processor",
"config": {
"eps": 1e-08,
"features": {
"observation.state": {
"type": "STATE",
"shape": [
6
]
},
"observation.images.wrist": {
"type": "VISUAL",
"shape": [
3,
480,
640
]
},
"action": {
"type": "ACTION",
"shape": [
6
]
}
},
"norm_map": {
"VISUAL": "MEAN_STD",
"STATE": "MEAN_STD",
"ACTION": "MEAN_STD"
}
},
"state_file": "policy_preprocessor_step_3_normalizer_processor.safetensors"
}
]
}
Git LFS file not shown
Loading
Loading