go1_sft_go2 — G2 双臂吸盘搬铝板 VLA (GO-1 / AgiBot-World)

GO-1 架构的 Vision-Language-Action 策略,用于智元 G2 双臂人形在料箱中用吸盘抓取铝板并抬出。本仓库含一个 SFT checkpoint(checkpoint_22000/)+ G2 真机部署/测试代码(deploy/)。

仓库结构

go1_sft_go2/
├── README.md                    # 本卡片
├── .gitattributes               # LFS: *.safetensors/*.model/*.npy/...
├── .gitignore
├── checkpoint_22000/            # ★ 模型 (step 22000, 推理必需文件)
│   ├── model-0000{1,2}-of-00002.safetensors   # 权重 ~5.6GB (LFS)
│   ├── model.safetensors.index.json
│   ├── config.json
│   ├── dataset_stats.json       # 归一化必需
│   └── added_tokens / special_tokens_map / tokenizer_config / tokenizer.model / tokenization_internlm2.py
└── deploy/                      # G2 真机部署+测试代码 (入口 INDEX.md / COMMANDS_v2.md)
    └── go1_env.py               # 路径配置: GO1_* 环境变量 + 仓库相对默认值

加载时 from_pretrained 指向 **checkpoint_22000/**。

模型概览

  • 架构go1(model_type);InternLM2 主干(hidden 2048)+ action expert(hidden 1024,输出 22 维)
  • 输入:3 路相机(head / hand_l / hand_r)+ 22 维本体 state + 文本指令
  • 输出:动作 chunk,shape (1, 30, 22) —— 未来 30 帧 × 22 维,控制频率 30Hz
  • 规模:~2.82B 参数,bf16,推理约 11.5GB 显存

22 维 state/action 布局(lerobot 序,固定)

[0:7] 左臂 | [7:14] 右臂 | [14] 左吸盘 | [15] 右吸盘 | [16:21] 下半身 | [21] 头 pitch

来源 profile:GO2_SUCTION_EXTRACT_V1。qpos ↔ lerobot:左臂=qpos[8:15]、右臂=qpos[15:22]、下半身=qpos[0:5]、头 pitch=qpos[7]。

任务 prompt

What action should the robot take to reach into the bin, attach both suction cups to the part and lift it out level?

归一化

推理前 state 用 checkpoint_22000/dataset_stats.json 的 mean/std 标准化;action 输出反标准化(×std + mean)。

配置(路径可移植)

所有宿主机/机器人相关路径都由 deploy/go1_env.py 统一解析:默认值按本仓库目录结构推导,用环境变量即可覆盖,无需改代码。

环境变量 含义 默认值
GO1_CKPT 模型 checkpoint 目录 <repo>/checkpoint_22000
GO1_WORKSPACE GDK / go2_data_recorder 安装位置 /home/agi/workspace
GO1_AGIBOT_WORLD AgiBot-World 模型代码 /data/agi/AgiBot-World
GO1_POSE_FILE 初始位姿 .npy <repo>/deploy/saved_init_pose.npy
GO1_OUT_DIR grab_*.jpg 等输出目录 <repo>/deploy
  • 默认即指向仓库自带的 checkpoint_22000/,clone 后离线脚本openloop_verify / check_model_load)配好 GO1_AGIBOT_WORLD 后可直接跑。
  • 真机脚本infer_* / pose_io / head_pitch_test 等)还需机器人侧 GDK 运行时:先 source $GO1_WORKSPACE/env.sh 再运行。
  • 示例:
    # 机器人上想用原 checkpoint, 覆盖默认即可:
    export GO1_CKPT=/data/agi/checkpoint_0617
    source /home/agi/workspace/env.sh
    python deploy/infer_stage_a_v2_0617.py     # 不设 GO1_CKPT 时默认从 <repo>/checkpoint_22000 加载
    

部署(G2 真机)

完整流程/命令见 **deploy/COMMANDS_v2.md**(入口索引 deploy/INDEX.md)。要点:

  • 推理用 venv go1_torch;state 按 lerobot 序拼;臂下发用 move_arm_joint_servo(group=2);100Hz 平滑。
  • 起手必需:①头预下俯 ~0.50(让头镜头看到料箱,否则视觉 OOD 卡 home)②开腰(躯干前倾带动伸手,勿用 --no-waist)。
  • 当前能做"弯腰探入 → 双臂伸到铝板正上方";吸盘 actuation(EVS08)部署侧未接、模型自主闭环也未触发吸附,故"吸附+抬出"未在真机验证。

数据来源

AgiBot-World 风格示教,59 episodes。dataset_stats.json 的归一化量由各 episode 的逐条统计(episodes_stats.jsonl)聚合生成(训练产物 episodes/trainer_state 未随本仓库分发)。

使用与许可

内部研发用私有模型。真机控制脚本会驱动双臂人形,运行前务必人守急停、按 deploy/COMMANDS_v2.md 的权限规则操作。

Downloads last month

-

Downloads are not tracked for this model. How to track
Video Preview
loading