go1_sft_go2 / deploy /HANDOFF.md
xianglarry's picture
Upload folder using huggingface_hub
0c95a27 verified
|
Raw
History Blame Contribute Delete
3.89 kB

HANDOFF — checkpoint_0617 真机测试(新会话精简交接)

早期交接快照(命令以 /data/agi 原路径示意)。当前规范命令与最新结论以 COMMANDS_v2.md 为准(含"头下俯+开腰"使闭环起手的实测验证)。 详细见同目录 README.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.pyGO2_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]

基本测试方法(三级 + 工具)

# 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.pyinfer_stage_c_0617.pyinfer_stage_c_v2_0617.pyramp_to_start_0617.pyopenloop_check_0617.pygo_to_init_pose_0617.pygo_head_init_0617.py