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
| # HANDOFF — checkpoint_0617 真机测试(新会话精简交接) | |
| > 早期交接快照(命令以 `/data/agi` 原路径示意)。**当前规范命令与最新结论以 [COMMANDS_v2.md](COMMANDS_v2.md) 为准**(含"头下俯+开腰"使闭环起手的实测验证)。 | |
| > 详细见同目录 [README.md](README.md) / [COMMANDS_v2.md](COMMANDS_v2.md)。 | |
| ## 基本信息 | |
| - 机器人 `agi@172.16.64.220`;模型 `/data/agi/checkpoint_0617`(G2 22维 吸盘搬铝板 GO-1 / AgiBot-World) | |
| - 推理 venv:`/data/agi/venvs/go1_torch/bin/python`;模型代码 `/data/agi/AgiBot-World` | |
| - 环境:`source /home/agi/workspace/env.sh; export TMPDIR=/data/agi/tmp; export PYTHONPATH=/home/agi/workspace:$PYTHONPATH` | |
| - 脚本:机器人 `/data/agi/*_0617.py`,本地副本本目录 | |
| ## 22维 state/action 布局(lerobot 序,FIXED) | |
| 来源:`/home/agi/workspace/go2_data_recorder/offline/profiles/go1.py` 的 `GO2_SUCTION_EXTRACT_V1` | |
| ``` | |
| [0:7]左臂 | [7:14]右臂 | [14]左吸盘 | [15]右吸盘 | [16:21]下半身(idx01-05) | [21]头pitch(idx13) | |
| ``` | |
| qpos ↔ lerobot:左臂=qpos[8:15],右臂=qpos[15:22],下半身=qpos[0:5],头pitch=qpos[7],吸盘=EVS08 | |
| ## 三个已验证的关键修复(必须带上) | |
| 1. **关节顺序**:必须按上面 lerobot 序拼 state、解 action(**不是** qpos 原序「身体5+头3+臂14」)。错序 → 动作完全乱(action[0] 离当前 ~3rad)。 | |
| 2. **臂下发 API**:用 `move_arm_joint_servo(positions14, period, control_group=2)`;**禁用** `joint_servo_control`(顺序错位 → 手臂跳变 → 整机断电重启)。 | |
| 3. **平滑**:伺服 **100Hz + control_period=0.01(= 发送周期)**;**不要** 30Hz + control_period=0.04(会一顿一顿)。步长按 rad/s 折算。头 pitch clamp 到 `[-0.10, 0.65]`。 | |
| ## 基本测试方法(三级 + 工具) | |
| ```bash | |
| # 0) 环境(见上); PY=/data/agi/venvs/go1_torch/bin/python | |
| # 1) 离线验证推理(不动机器人): pred vs 训练真值 | |
| $PY /data/agi/openloop_verify_0617.py | |
| # 2) 真机只读(不动机器人): 抓相机+关节 → 推理 → 打印 action[0] | |
| $PY /data/agi/infer_stage_a_v2_0617.py | |
| # 3) 自检臂控制权(动腕5°): moved~5° = 可控; moved~0 = 遥操占着,需释放 | |
| $PY /data/agi/smallstep_test_0617.py --live --joint 6 --delta-deg 5 | |
| # 4) 闭环(⚠️动机器人): 正确IO + 100Hz平滑 | |
| $PY /data/agi/infer_stage_c_v3_0617.py --live --no-waist --max-chunks 30 --exec-frames 30 --max-slew 0.5 | |
| # 复位到初始位姿(⚠️动机器人) | |
| $PY /data/agi/pose_io_0617.py --restore --live --speed 0.4 | |
| ``` | |
| ## 注意(事实,非结论) | |
| - 闭环需臂控制权在手(遥操释放,否则 `move_arm_joint_servo` 返回 0 但臂不动;`left/right_arm_control` 标志不可靠,以小步实测为准)。 | |
| - 默认 `--no-waist` = 不发腰指令(此模式腰可能前倾下沉,留意)。吸盘只记录不下发(EVS08 未接)。 | |
| - 所有 live 脚本 Ctrl-C 立即停并保持当前位姿;结束自动 `set_control_mode(priority=1)` 交还。 | |
| - 默认恢复位姿文件 `/data/agi/saved_init_pose.npy`。 | |
| ## 当前正确脚本(用这些) | |
| | 脚本 | 用途 | | |
| |---|---| | |
| | `openloop_verify_0617.py` | 离线 pred vs gt | | |
| | `infer_stage_a_v2_0617.py` | 真机只读推理 | | |
| | `infer_stage_c_v3_0617.py` | 闭环主脚本(正确 IO + 100Hz 平滑)| | |
| | `pose_io_0617.py` | 位姿快照 `--save` / 恢复 `--restore` | | |
| | `go_home_servo_0617.py` | 平滑驱动到 home / 指定位姿(`--target-npy`) | | |
| | `smallstep_test_0617.py` / `smooth_all_test_0617.py` / `squat_test_0617.py` | 关节/平滑测试 | | |
| | `verify_arm_order_0617.py` / `verify_headwaist_0617.py` | 顺序/通路验证 | | |
| ❌ 废弃(错序/旧逻辑):`infer_stage_a_0617.py`、`infer_stage_c_0617.py`、`infer_stage_c_v2_0617.py`、`ramp_to_start_0617.py`、`openloop_check_0617.py`、`go_to_init_pose_0617.py`、`go_head_init_0617.py` | |