Robotics
Transformers
Safetensors
English
Chinese
vision-language-action
vla
go-1
agibot-world
imitation-learning
dual-arm
suction
Instructions to use EmbodyX/go1_sft_go2 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use EmbodyX/go1_sft_go2 with Transformers:
# Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("EmbodyX/go1_sft_go2", dtype="auto") - Notebooks
- Google Colab
- Kaggle
测试命令速查 v2(checkpoint_0617,实测验证版)
06-21 实测定稿:头预下俯 + 开腰 后,当前 checkpoint 能完成"弯腰探入→双臂伸到铝板正上方"。 本文件只放验证过的有效命令(旧版默认
--no-waist闭环不起手,已废弃)。
⚠️ 执行权限规则(硬约束)
- 可自动跑:只有模型推理脚本(
infer_stage_c_v3/infer_stage_a_v2/openloop_verify)。 - 必须先经用户同意:任何
--live的复位/调姿/恢复脚本(pose_io --restore、head_pitch_test、staged_restore、smallstep)。 - 出问题(臂卡料箱等)由用户遥操恢复,不自动跑恢复脚本去"捞"。
0. 环境(每个终端先跑)
ssh agi@172.16.64.220 # 真机脚本在机器人上跑; 离线脚本任意机器均可
cd <path-to>/go1_sft_go2 # 仓库根, 下面以 deploy/ 为脚本目录
source "${GO1_WORKSPACE:-/home/agi/workspace}/env.sh" # 机器人侧 GDK 运行时(真机脚本需要)
export TMPDIR=/data/agi/tmp # 机器人临时目录(大模型加载需要)
export GO1_CKPT=${GO1_CKPT:-/data/agi/checkpoint_0617} # 可选; 不设则默认 <repo>/checkpoint_22000
PY=/data/agi/venvs/go1_torch/bin/python # 带 torch+gdk 的解释器(机器人上的 venv)
D=deploy # 脚本目录
路径均由
deploy/go1_env.py解析(GO1_*环境变量 + 仓库相对默认),见 README.md「配置(路径可移植)」。
1. 不动机器人的检查(可自动跑)
# 离线: pred vs 训练真值, |p0-gt0| 应小
$PY $D/openloop_verify_0617.py 2>/dev/null | grep -E "p0|pred|gt"
# 真机只读: 抓相机+关节→推理, |action[0]-state| 应小(~0.08)
$PY $D/infer_stage_a_v2_0617.py 2>/dev/null | grep -E "iter|action\[0\]-state|suction"
2. 准备起始位姿(⚠️动机器人,需先同意)
# 复位到 init(注意: 此脚本不驱动头关节)
$PY $D/pose_io_0617.py --restore --live --speed 0.4
# 头下俯到 0.50 让头镜头看到料箱(关键! pitch=0 看墙→OOD不起手)
$PY $D/head_pitch_test_0617.py --live --pitch 0.50
# 确认料箱在画面中央(只读,抓三相机帧到 $GO1_OUT_DIR, 默认 deploy/)
$PY $D/grab_headcam_0617.py 2>/dev/null | grep -E "head yaw|cam_head"
3. 闭环模型推理(主命令,可自动跑)
# 验证有效配置: 开腰 + 头冻结在下俯 + slew0.3。会弯腰探入→双臂伸向铝板。
LOG=run_$(date +%H%M%S).log
$PY $D/infer_stage_c_v3_0617.py --live --no-head \
--max-chunks 30 --exec-frames 30 --max-slew 0.3 --max-time-s 120 > $LOG 2>&1
grep -E "^ chunk|done|release" $LOG | tail -34
- 从当前状态续跑:同一条命令再跑一次即可(脚本每次重抓当前 state)。
- 关键参数:**不要加
--no-waist(开腰才起手);保留--no-head**(冻结头在下俯,保持料箱在视野)。
4. 恢复到 init / 把双臂从料箱取出(⚠️动机器人,需先同意)
# 首选: 一键复位, 实测可把双臂从料箱中带出来、回到 init
$PY $D/pose_io_0617.py --restore # 先 dry-run 看计划(不动)
$PY $D/pose_io_0617.py --restore --live --speed 0.4 # 实跑复位(带臂出箱)
# 兜底: 万一一键 restore 被自碰撞避让冻住(rc=0但臂不动) → 逐关节顺序复位
$PY $D/staged_restore_0617.py --live --slew 0.25
# 仍卡停(如先扫肩撞箱) → 由用户遥操把臂抬出, 再复位。
关键事实(实测)
- 不起手的两个阻塞已解:① 头 pitch=0 严重 OOD(看墙),下俯到 0.50 料箱才入画;②
--no-waist冻死了模型最想动的腰(躯干前倾带动伸手)。两个修掉就起手。 - 头 pitch 真实极限 ≈ 0.52(脚本 clamp 写的 0.65 过大,发 0.55 报
idx13_head_joint3 out of range)。 - 吸盘:v3 脚本只记录不下发;且模型自主闭环里
suc输出一直 ~0、从不触发吸附 → 到抓取位就停、进不到抬出。要真搬:接 EVS08 + 把 cmd[14/15] 接真实吸盘阀(阈值>0.5) + 铝板摆位贴合训练。 - 取臂出箱/复位:首选
pose_io --restore --live,实测可把双臂从料箱带回 init;个别极深姿态可能被自碰撞避让冻住(rc=0但臂不动),退staged_restore(逐关节) 或遥操。
当前正确脚本
| 脚本 | 用途 | 动机器人 |
|---|---|---|
openloop_verify_0617.py |
离线 pred vs gt | 否 |
infer_stage_a_v2_0617.py |
真机只读推理 | 否 |
grab_headcam_0617.py |
抓三相机帧 | 否 |
infer_stage_c_v3_0617.py |
闭环主脚本(正确IO+100Hz平滑) | 是 |
pose_io_0617.py |
复位 --restore(不动头) |
是 |
head_pitch_test_0617.py |
头下俯到指定 pitch | 是 |
staged_restore_0617.py |
逐关节复位(解自碰撞冻臂) | 是 |
smallstep_test_0617.py |
单关节控制权/跟踪自检 | 是 |