π0.5 LoRA — gắp khối đỏ chuyển động (Yahboom X3Plus)
Fine-tune LoRA của π0.5 cho tay máy Yahboom X3Plus (5 khớp + gripper, 20 Hz, 2 camera). Khác bản pi05-x3plus-lora đúng một biến: khối đỏ bị kéo bằng dây (~1 cm/s) trong lúc gắp, thay vì đứng yên.
| Dữ liệu | x3plus-grasp-moving-cube — 110 episode · 25.536 frame · 21,3 phút |
| Khởi tạo | pi05_base |
| Train | 10.000 bước · batch 16 · 6,3 epoch · 4h02m trên RTX 5090 |
| Loss | 0,1071 → 0,0042 |
| Prompt | pick up the red cube and put it in the bowl |
Chạy
git clone --recurse-submodules https://github.com/Physical-Intelligence/openpi.git
cd openpi && GIT_LFS_SKIP_SMUDGE=1 uv sync
huggingface-cli download hoanghieu16720/pi05-x3plus-moving --local-dir ./ckpt
JAX_PLATFORMS=cuda .venv/bin/python ./ckpt/code/serve_moving.py --dir ./ckpt
serve_moving.py tự đăng ký config vào openpi trong bộ nhớ — không cần vá mã nguồn.
Muốn train tiếp thì vá thật: python ./ckpt/code/patch_moving.py.
Phía robot dùng openpi_client gửi:
{"image": uint8 HWC RGB, # astra_rgb — camera cố định
"wrist_image": uint8 HWC RGB, # usb_cam — camera trên kẹp
"state": float32 (6,), # joint1..5 radian + gripper 0..1
"prompt": "pick up the red cube and put it in the bowl"}
Trả về (10, 6) — góc khớp tuyệt đối, chạy ở 20 Hz.
Checkpoint
Repo chứa một checkpoint duy nhất: bước 9999 (cuối cùng, loss thấp nhất 0,0042),
nằm ngay ở gốc repo nên serve_moving.py --dir ./ckpt chạy được luôn.
Loss vẫn còn giảm rõ rệt ở bước 10.000 (hồi quy trên 2.000 bước cuối: −8,1 % mỗi 1.000 bước, t = −3,12), tức chưa bão hoà. loss huấn luyện tiếp tục giảm cũng chính là hình dạng của ghi nhớ — không phân biệt được từ số liệu này. Chỉ thử trên robot thật mới trả lời được.
Bốn chỗ hỏng mà không báo lỗi
| Lỗi | Hậu quả |
|---|---|
| Đảo 2 camera | model vẫn ra hành động mượt nhưng sai hoàn toàn |
| Ảnh BGR (OpenCV) | khối đỏ thành xanh dương với SigLIP |
state sai đơn vị |
radian, không phải độ — lệch 57× |
| Gripper | 5 khớp là delta, gripper tuyệt đối, ngưỡng hoá tại 0,5 |
"LoRA" của openpi không phải LoRA thuần
| Nhóm | Tham số | |
|---|---|---|
| LLM PaliGemma | 2.936.464.384 | đóng băng |
| SigLIP vision | 414.803.696 | được train |
| Adapter LoRA (hạng 16/32) | 49.987.584 | train |
| Projection | 2.165.792 | train |
| Tổng train | 466.957.072 (13,72 %) |
Giới hạn
- Một nhiệm vụ, một bối cảnh, một bộ camera. Đổi vị trí giỏ, ánh sáng hay nền bàn nhiều khả năng hỏng.
- Khối được kéo ~1 cm/s. Nhanh hơn ~3,8 cm/s thì quan sát cũ hết giá trị trong một chunk —
giảm số bước thực thi mỗi lần hỏi (
CHUNK_EXEC) thay vì train lại.
Apache-2.0, theo openpi.