外观
T800 AMP:官方策略的本地 MuJoCo 学习回放
更新:2026-10-20。目标是研究带拟人风格的速度指令行走,为以后小桥适配做准备。
这次实际跑了什么
- 官方 T800 模型和网格:engineai_robotics_native_sdk,commit
335c60e88772c26c7852d0abd6b3c7439037dd8f。使用assets/resource/t800.xml,原始模型/惯量/碰撞/摩擦/armature 均未改动;模型合计约 84.92 kg。 - 官方 AMP ONNX 权重和保存的训练配置:engineai_rl_lab,commit
c53f7ec614e34f1ea514cefb935894082f3d4c2a,run2026-09-18_12-15-11,model_19999.onnx。SHA-256049df8f0d24bdad0a34d4b1dd9107c81029a7f6528d1de235494d0493cdd1e9b。 - 本地编写的播放器:
play.py,通过现有 MuJoCo/ONNX Runtime 推理。不是官方 SDK 可执行程序,也不是完整 Isaac Lab 训练环境复现。当前 SDK 有通用RlLabRunner和 PM01 AMP 配置,尚无配套的 T800rl_lab配置;T800 的普通rl_walking_example是另一套观测/策略,不能直接替换权重。 - 没有新训练,没有安装 Isaac Sim / Isaac Lab,也没有改变现有 T1/小桥训练环境。ONNX 和 MuJoCo 资产已可直接读取;训练
.pt、USD 和演示 GIF 的部分 LFS 资产尚未下载。
直接看效果
bash
bash /home/z/bridge/rl/t800_amp/play.sh终端或 MuJoCo 窗口:W 前进(0.65 m/s);S / 空格停步;A / D 带前进左转/右转(±0.35 rad/s);R 复位;P 暂停;Q 退出。按键设定目标,松开后保持;不需要持续按住。鼠标可转动、缩放视角。
自动播放站立 → 前进 → 左转 → 右转 → 停步,20 秒后退出:
bash
bash /home/z/bridge/rl/t800_amp/play.sh --demo --duration 20实际动力学录像:20 秒演示。960×720、30 fps、600 帧、H.264/yuv420p/faststart,画面字幕标明模型/权重来源、本地播放器、仿真身份、时间与速度指令。录像不裁剪、不变速、不循环拼接。
重新录制:
bash
MUJOCO_GL=egl bash /home/z/bridge/rl/t800_amp/play.sh \
--headless --demo --duration 20 \
--video /home/z/bridge/rl/t800_amp/videos/t800_amp_demo.mp4 \
--output /home/z/bridge/rl/t800_amp/results/recorded_demo.json配套核对
- 23 个策略动作关节,J00~J22,两个头部关节保持保存配置中的默认目标。
- 输入 1128 维:关节相对位置、速度、上一动作、机体角速度、投影重力各自保留 15 帧,按项展开,再拼接当前三维速度命令;不是按帧交错展开。
- 按官方
RlLabRunner初始化历史、处理动作、计算默认位姿偏移;使用 ONNX 内置观测归一化,不能再乘普通 walking 策略的0.05关节速度尺度。 - 初始位姿、默认关节、每关节动作尺度、Kp/Kd 都从该 run 保存的
params/env.yaml读取;YAML 以 BaseLoader 作为静态数据读取,不执行 Python 标签。 - 策略 100 Hz,MuJoCo 500 Hz。每个物理步按 SDK
TorqueController计算 PD 力矩,由原始 XML 执行器限幅。 - 重力、接触、自由基座开启,没有固定/托住机身;只在显示中隐藏碰撞几何。
- 使用 SDK 原始 MuJoCo 模型的名义动力学,不模拟 Isaac 训练中的执行器随机延时、观测噪声、随机推力或全部 PhysX 设置。因此不能称为完整官方训练配方的原样复现。
本机结果
结果是确定初态下的单次名义动力学回放,不能解释成统计鲁棒性或真机验收。
- 20 秒恒定直行:目标 0.65 m/s;2 秒后平均前向速度约 0.588 m/s,速度 RMSE 约 0.100 m/s;最低基座高度约 0.976 m,最大倾斜约 3.36°,无摔倒、无自动复位。
- 20 秒组合演示:0~2 秒停步,2~8 秒前进,8~12 秒左转,12~16 秒右转,16~20 秒停步。最低基座高度约 0.977 m,最大倾斜约 4.01°,无摔倒、无自动复位。
- 排除各段前 1 秒过渡后:前进平均约 0.578 m/s;左转角速度约 +0.213 rad/s,右转约 -0.190 rad/s;末段停步平均前向速度约 0.002 m/s。转向幅度低于命令,有待进一步分析。
- 独立录制运行与非渲染组合测试一致;完整时序保存在对应 NPZ,指标见
results/straight_065.json、results/stand_walk_turn_stop.json、results/recorded_demo.json。 - 额外的启动排查:最初在行走 Kp/Kd 下自由 PD 等待一秒,导致策略启用前已有约 0.84 m/s 前向速度和 11.8° 倾斜,随后失败。改为从保存的训练初态直接启用策略。失败日志保留为
diagnostic_failed_1s_unsupported_pd_warmup.*,不删除或混入成功结果。 - 桌面播放器对 MuJoCo 3.8 的 daemon 渲染线程做了退出等待,避免窗口关闭时 Python 提前销毁资源。
参考动作和下一步
后退能力排查(2026-10-20)
当前 S 为停步,不是后退。这份权重保存的训练命令范围为前向 0.5~0.8 m/s、横向 0,以及 yaw ±0.6 rad/s,另有零命令站立环境,没有负前向速度训练。
两次确定初态、20 秒、无自动复位的负速度测试均未摔倒,但后退速度跟踪没有通过:指令 -0.15 m/s 时,2 秒后平均机体前向速度约 -0.0009 m/s,几乎停步;指令 -0.30 m/s 时,平均约 -0.0492 m/s,明显低于目标。完整报告与轨迹分别为 results/backward_m015.*、results/backward_m030.*。
因此目前不把 S 改成已验证的后退功能。可靠后退需要另建实验,补充负速度命令训练,并优先加入后退参考动作,单独验收反向速度跟踪和前后切换;本次没有启动新训练。
−0.15 m/s 测试报告 · −0.30 m/s 测试报告。
官方参考位于 /home/z/bridge/rl/engineai_rl_lab/datasets/amp/t800/data/,四段均为 100 Hz:普通行走 3462 帧、左转慢走 4792 帧、右转慢走 4358 帧、直线慢走 1991 帧。目录已拉取;尚未在本机逐段可视化验收,也未重定向到小桥。
先看现成 T800 策略是否符合想要的步态,再选择参考片段研究步幅、节奏、摆臂和肩胯配合。这不是对指定 T800 宣传视频算法/数据来源的确认。小桥迁移需要重新重定向和训练;不能把 T800 权重直接换模型使用。当前小桥自制模型仍只作学习,后续按官方建立仿真/实机基准后再扩展。
官方源码下载时,训练仓库有 7 个文件触发“应为 LFS 指针但实际是普通 blob”的上游属性差异,git status 会标记它们;本地没有修改这些官方文件。SDK checkout 保持干净。资产来源与哈希见 provenance.json。
仓库内证据
恒定直行报告 · 组合动作报告 · 录像报告 · 来源与模型文件哈希。完整 NPZ 时序与播放器在本机 /home/z/bridge/rl/t800_amp。
