| # Jason's multi_task_dit — SC1 Final Checkpoint |
|
|
| **成功率: 9/9 (100%) on SO-101 real robot (2026-04-17)** |
| Policy: `multi_task_dit` (lerobot 0.5.1 built-in, ~277M params) |
|
|
| ## 環境 |
|
|
| ```bash |
| conda activate a # Jason's env on idlab2 |
| # lerobot 來自 /home/kunhsiang/jdk/lib/lerobot/ |
| # CLIP weights: /home/kunhsiang/jdk/hf_weights/clip-vit-base-patch16/ |
| ``` |
|
|
| ## 訓練指令(完整復現) |
|
|
| ```bash |
| cd /home/kunhsiang/jdk |
| CUDA_VISIBLE_DEVICES=1 lerobot-train \ |
| --dataset.root=datasets/sc1_newcolor \ |
| --dataset.repo_id=YOUR_DATASET \ |
| --output_dir=outputs/train/multi_task_dit_repro \ |
| --policy.type=multi_task_dit \ |
| --policy.device=cuda \ |
| --policy.horizon=32 \ |
| --policy.n_action_steps=24 \ |
| --policy.objective=diffusion \ |
| --policy.noise_scheduler_type=DDIM \ |
| --policy.num_train_timesteps=100 \ |
| --policy.num_inference_steps=20 \ |
| --policy.clip_sample=true \ |
| --policy.clip_sample_range=1.0 \ |
| --policy.hidden_dim=512 \ |
| --policy.num_layers=6 \ |
| --policy.num_heads=8 \ |
| --policy.repo_id=jedeka30/grasp_box \ |
| --wandb.enable=true \ |
| --wandb.project=act \ |
| --steps=50000 \ |
| --save_freq=5000 \ |
| --batch_size=24 \ |
| --num_workers=8 \ |
| --eval_freq=2000 |
| ``` |
|
|
| ## 超參數摘要 |
|
|
| | 參數 | 值 | |
| |------|-----| |
| | Policy | multi_task_dit | |
| | Objective | diffusion (DDIM) | |
| | horizon | 32 | |
| | n_action_steps | 24 | |
| | **num_inference_steps** | **20** (關鍵,比 10 好很多) | |
| | num_train_timesteps | 100 | |
| | hidden_dim | 512 | |
| | num_layers | 6 | |
| | num_heads | 8 | |
| | batch_size | 24 | |
| | steps | 50,000 | |
| | Dataset | sc1_newcolor (3色: red/blue/green, ~80 episodes) | |
| |
| ## Eval 指令 |
| |
| ```bash |
| cd /home/kunhsiang/jdk |
| |
| # SC1: red/green/blue 三色(自動循環) |
| bash 3kh.sh ckpts/final_ckpts/pretrained_model |
| |
| # SC2/3: on/outside the plate |
| bash 2test.sh ckpts/final_ckpts/pretrained_model |
| ``` |
| |
| ## 硬體設定 |
| |
| | 設備 | 值 | |
| |------|-----| |
| | Robot | SO-101 follower | |
| | Port | /dev/ttyACM1 | |
| | GPU | CUDA_VISIBLE_DEVICES=1 | |
| | cam_front | /dev/video2 (640×480, 30fps, MJPG) | |
| | cam_gripper | /dev/video0 (640×480, 30fps, MJPG) | |
| | cam_top | /dev/video4 (640×480, 30fps, MJPG) | |
| | episode_time_s | 90 | |
|
|
| ## 評測結果 |
|
|
| | Task | SR | Date | |
| |------|-----|------| |
| | grasp sc1 (9 trials: red×3 / green×3 / blue×3) | **9/9 (100%)** | 2026-04-17 | |
| | grasp sc4 (put on plate) | 2/6 (33%) | 2026-05-04 | |
|
|
| ## 注意 |
|
|
| - lerobot 的 `multi_task_dit` 有 offline CLIP hack: 讀 `/home/kunhsiang/jdk/hf_weights/clip-vit-base-patch16/` |
| 標準 lerobot 0.5.1 會從 HF 下載 `openai/clip-vit-base-patch16`(需網路) |
| - `TRANSFORMERS_OFFLINE=1` + `HF_DATASETS_OFFLINE=1` 在訓練時設定(離線模式) |
| - 訓練完後 `make reset` 會把 robot 歸位(Makefile 在 jdk 根目錄) |
|
|
| ## 相關 Repo |
|
|
| - Dataset: `kunhsiang/jason-sc1-newcolor-dataset` |
| - Eval scripts: 此 repo 內 `scripts/` 目錄 |
|
|