A1 — RoboDojo joint-delta VLA (step88000)
A1 是基于 AllenAI Molmo 的视觉-语言-动作(VLA)模型。本仓库提供在 RoboTwin 3.0 / RoboDojo(ARX5 双臂)上训练的 joint-delta checkpoint,以及一套开箱即用的部署代码(XPolicyLab socket server),下载后即可起服务、被仿真器调用。
A1 is a Molmo-based Vision-Language-Action model. This repo ships a RoboDojo (ARX5 dual-arm) joint-delta checkpoint plus a ready-to-run serving stack (XPolicyLab socket server).
仓库内容 / Contents
| 路径 | 说明 |
|---|---|
checkpoint/step88000-unsharded/model.pt |
模型权重(~32GB,unsharded) |
checkpoint/step88000-unsharded/config.yaml |
该 checkpoint 的训练配置 |
assets/robodojo_joint_delta.json |
反归一化统计(bounds_q99),与该 checkpoint 配套 |
code/XPolicyLab_a1_robodojo_full.tar.gz |
完整 XPolicyLab 部署代码(含 vendor 的 delta-capable A1、含 .git) |
模型规格 / Model spec
- 机器人 / robot: ARX5 双臂 (dual-arm)
- 动作 / action: 14 维关节
[L_arm(6), L_grip(1), R_arm(6), R_grip(1)] - joint-delta: 双臂关节预测的是 delta,夹爪是绝对值 →
delta_mask = "6,-1,6,-1" - 归一化 / normalization:
bounds_q99 - chunk 长度 / action chunk: 50,序列长度 / sequence length: 600
快速使用 / Quick start
# 1) 下载本仓库(用 hf-mirror 更快;国内环境关掉代理)
pip install -U "huggingface_hub[cli]"
HF_ENDPOINT=https://hf-mirror.com \
hf download D-eon/a1-robodojo-joint-delta --local-dir ./a1_robodojo
# 2) 解压部署代码
cd a1_robodojo
tar -xzf code/XPolicyLab_a1_robodojo_full.tar.gz # 得到 XPolicyLab/
# 3) 准备 conda 环境(参考 XPolicyLab/policy/A1/README.md 与 A1 安装说明)
# 需要 torch==2.6.0 / transformers<5 等;环境名假设为 a1
# 4) 起 A1 策略服务(指向下载的 checkpoint 目录)
MODEL_PATH="$PWD/checkpoint/step88000-unsharded" \
bash XPolicyLab/policy/A1/serve_a1.sh
# 可选: PORT=32180 GPU=0 CONDA_ENV=a1 ...
# norm stats 默认用 XPolicyLab/policy/A1/assets/robodojo_joint_delta.json(已随代码包提供)
服务以端口进入 LISTEN 为就绪标志(checkpoint ~32GB,加载需几分钟)。详见解压后的
XPolicyLab/policy/A1/README.md(「独立部署 / 开环验证」一节)。
开环验证 / Open-loop check
python XPolicyLab/policy/A1/test_openloop_client.py \
--episode /abs/.../RoboDojo/<task>/arx_x5/data/episode_0000007.hdf5 \
--host 127.0.0.1 --port 32180 --chunk 50 --max_frames 400
在 arrange_largest_number 上整体 L1 ≈ 0.02–0.03(关节空间绝对动作)属正常范围。
关键对齐点 / Notes
- delta 还原在 server 端完成(
policy/A1/model.py):按delta_mask把原始 state 加回臂关节。 - 输入图像保留原分辨率(交给模型自带预处理),相机顺序
cam_head / cam_left_wrist / cam_right_wrist,需 RGB。 - obs 必须带真实
instruction,否则精度明显下降。