Skip to content

小桥动作实验:李小龙、江南 Style、2 Phút Hơn ​

身份:本页所有小桥模型、重定向、训练任务与策略均为我们自制/适配的学习实验,可能与实机存在很大差距;不是官方实现、实机测试或官方基准。后续按 官方基准路线 先建立基准,再扩展。

记录:2026-10-18~19,整理于 2026-10-19。目标是验证小桥暂定模型上的动作重定向和动态平衡,不是直接部署真机。

共用模型和训练方法 ​

  • 模型:本地 CAD 派生 v0.4,21 个执行关节,13 kg 估算总质量,串联等效并联踝。
  • 代码:/home/z/bridge/rl/bridge_tracking/,任务 Mjlab-Tracking-Flat-Bridge。这是本地适配任务,不是厂家训练包。
  • 运行环境:/home/z/bridge/rl/BoosterT1mjlab/.venv/;mjlab 1.3.0、MuJoCo 3.8.0、Warp 1.12.0、torch 2.9.0、rsl-rl-lib 5.0.1。
  • 算力:用户 64 GB 内存、RTX 3090。以下训练时长来自本机日志,不是其他项目预算保证。
  • 方法:PPO 参考动作跟踪,策略输出位置目标,经 PD 执行;自由基座、重力、地面和自碰撞接触启用。
  • 控制/参考 50 Hz,物理积分 400 Hz;PD、armature 为工程选择,力矩上限采用官方峰值参数。
  • 此阶段关闭训练事件随机化和 actor 观测噪声,隔离模型/控制可行性。评估中的扰动不等于做过全面鲁棒训练。

动作更换或参考修复都创建独立 run。下面江南 v3、Phut v1 均从随机策略开始,没有加载旧动作权重补训练。每个 run 保留 experiment.json、参考快照、元数据和源码快照;baselines.json 保存准确路径与哈希。

一、李小龙:验证迁移方法 ​

参考为已经验收的 T1 李小龙动作,经小桥几何/轴线映射、腿部 IK、支撑与避碰处理生成;原 T1 checkpoint 没有直接给小桥用。

观看完整非官方学习视频。

run:/home/z/bridge/rl/bridge_tracking/logs/2026-10-18_14-45-59_bruce_lee_v1/。参考 725 帧、50 Hz,按帧计约 14.5 秒。model_2999.pt 的 nominal、perturbed、kick 三组各 32/32 完成;nominal 身体关键点平均误差约 1.27 cm,关节 RMSE 约 3.30°。

first_validated_checkpoint.json 另记下 model_500 曾首先通过该评估。更早通过不意味着所有细节已经最佳,后续仍检查动作外观与局部误差。这个实验建立了小桥训练链的可行性,不能推导为 T1/G1 其他技能无需适配。

二、江南 Style:完整动作与末段手臂 ​

数据和重定向 ​

输入来自 g1-dance-pipeline 的 Gangnam Style 示例。下载记录、源资产说明和通知保存在 /home/z/bridge/motions/gangnam_style/source/。这是已映射到 G1 的机器人动作,约 32 秒参考片段,不是整首歌曲;不能把这个输入直接称为我们取得的原始人体动捕。

源 G1 和小桥的自由度、臂长、腰部结构不同。使用源动作引导手臂姿态分支,以肘/手位置 IK 和时间正则重定向,做整段加速度/jerk 平滑与基础碰撞投影。小桥没有腕部三轴,不能完整复制 G1 腕姿态。

为什么重做 v3 ​

早期版本最后几秒手臂翻转、部分轨迹跳变。曾有版本通过了完整片段存活测试,但用户指出末段动作不对。因此保留完成率同时加入局部前臂姿态检查;先修重定向,再从头训练,避免用继续训练掩盖参考问题。

v3 的过程和运动学报告在 /home/z/bridge/rl/bridge_tracking/motions/bridge_gangnam_style_v3*.json。平滑权重和根部速度/加速度约束是工程参数,不是电机辨识得到的极限。

为学习对照保留的 v3 ​

江南 Style v3:非官方学习仿真

完整动态视频。

run:/home/z/bridge/rl/bridge_tracking/logs/2026-10-19_14-05-32_gangnam_style_v3_fresh_4096/。

  • 4096 环境、3000 轮,seed 42,从头训练;日志用时 01:18:38。
  • 参考 1618 帧、50 Hz,评估约 32.36 秒,从第 0 帧开始。
  • model_2999.pt:nominal、perturbed、kick 各 32/32,失败前观察到的摔倒均为 0。
  • nominal 身体关键点误差均值 0.021297 m,关节 RMSE 6.2156°。
  • 最后 5 秒单次 nominal 前臂世界姿态误差:左平均 12.29°/最大 18.78°;右平均 7.37°/最大 17.41°。这是相对该 run 参考的误差,不能称为源人体腕姿态复现误差。
  • 用户反馈:“这个训练算通过,很不错”。选版记录在该 run 的 baseline_acceptance.json。

证据:evaluations/model_2999/evaluation.json、arm_tracking_audit.json、preview/dynamic_tracking.mp4。

三、2 Phút Hơn:源格式、头部方向与最终选版 ​

实际拿到的是什么 ​

用户确认“大摆锤”是 2 Phút Hơn,并提供 PrimeMocap.2PhutHon.2.var。来源:PrimeMocap 发布页。本地源包在 /home/z/bridge/motions/phut_hon/source/。

这是 VaM 场景包,不是 BVH/FBX 或完整人体骨骼。检查得到 9 个片段、每段 13 个位置/四元数控制目标,包括 pelvis/chest/head、两臂/肘/手、膝/脚。按 Timeline 序列化/曲线格式解码,控制目标不直接当解剖骨骼坐标。

选用 swayLoop_01,作者时间长度 5.3 秒,端点姿态闭合;重采样 50 Hz、266 样本。解码轨迹位于 /home/z/bridge/motions/phut_hon/controllers/,检查和预览位于同级 inspection/、preview/。源许可单独记录;本笔记不上传源包或派生动作数据;用户要求加入的学习仿真录像以带非官方身份标识的观看副本保存。

重定向中的实际取舍 ​

源坐标经 Unity 到机器人坐标变换,检查左右和旋转。按人体控制器相对运动缩放到小桥;双脚近似保持固定平地支撑,腿部 IK 跟骨盆和膝部趋势;手臂主要跟头部相对手位置和上臂方向。然后循环平滑、避碰,并重算所有 FK/速度。

双脚固定是这个循环的工程支撑假设,不是从足底力传感器确认的接触。手臂没有独立腕姿态,骨盆/胸腔也没有独立 roll/pitch 腰关节。

v1 中,头部摆动相对人体参考存在已知方向差异。原因包括头部固定、源骨盆与胸/头倾斜目标冲突,以及重定向选择;不能简单归为全局镜像或“没颈关节所以只能反着摆”。完整审核保存在 /home/z/bridge/motions/phut_hon/inspection/bridge_head_mapping_audit.json。

为什么最后保留 v1 ​

  • v1:原骨盆/上身折中,用户最认可它的扭胯效果;只有这个版本完成了正式动态训练。
  • v2:调整目标,优先人体头/胸摆动方向,同时保留骨盆横移和 yaw;牺牲独立骨盆 roll/pitch 目标。用户认为扭胯变弱。
  • v3:增加 v2 的横移、侧倾和骨盆 yaw。虽然数值范围接近/超过 v1,用户认为与 v2 几乎没有区别。
  • v4:严格保留 v1 根部及其他关节轨迹,仅腰 yaw 振幅加倍(约 21.7° → 43.4°);运动学无新增穿透,用户仍认为无明显区别。

后续诊断发现,v1 的骨盆横移与上身侧摆主要反相,v2/v3 更多同向移动。峰峰值只表示范围,不表示相位或动作观感。不能用范围变大宣称已经恢复 v1 的舞蹈表现。

用户最终选择:“就保留 V1,V1 和 V4 没区别”。v2/v3/v4 为未采用的运动学实验,没有对应训练结果。v1 头部方向差异作为已知取舍保留。

v1 本地训练和测试 ​

2 Phút Hơn v1:非官方学习仿真

完整动态视频。

把原循环展开 6 次,使用 1591 样本的参考,端点跨度 31.8 秒。这使策略可以连续经过循环交界,避免只在 5.3 秒末尾重采样复位而掩盖接缝。

run:/home/z/bridge/rl/bridge_tracking/logs/2026-10-19_15-35-24_phut_hon_sway_v1_fresh_4096/。

  • 4096 环境、3000 轮、seed 42,从头训练;日志用时 01:19:21。
  • model_2999.pt:nominal、perturbed、kick 各 32/32,失败前观察到的摔倒均为 0。
  • 1591 个控制步,评估约 31.82 秒;这是六循环动态执行,不是重复拼接一个录像。
  • nominal 身体关键点误差均值 0.008838 m,关节 RMSE 1.8020°。
  • 参考快照 SHA-256:0c9ada3b5a4f7150fdd52a64112ac3e97e86ca3d4ec07cc4fac49d00bb09b851。
  • 用户选版和 checkpoint 哈希在该 run 的 baseline_acceptance.json。

证据:evaluations/model_2999/evaluation.json、head_direction_audit.json、preview/dynamic_tracking.mp4。短流程试验目录 pipeline_smoke_evaluation/ 只用于验证导出/渲染,不能拿其未训练策略结果当最终验收。

四、复现入口 ​

看已训练策略的动态效果 ​

江南 Style v3:

bash
bash /home/z/bridge/rl/bridge_tracking/play.sh \
  --checkpoint /home/z/bridge/rl/bridge_tracking/logs/2026-10-19_14-05-32_gangnam_style_v3_fresh_4096/model_2999.pt

2 Phút Hơn v1:

bash
bash /home/z/bridge/rl/bridge_tracking/play.sh \
  --checkpoint /home/z/bridge/rl/bridge_tracking/logs/2026-10-19_15-35-24_phut_hon_sway_v1_fresh_4096/model_2999.pt

显式指定 checkpoint,避免 latest_run.txt 以后指向别的实验。播放器从该 run 的 experiment.json 找对应参考快照。

只看重定向参考 ​

bash
bash /home/z/bridge/rl/bridge_tracking/preview_gangnam_style_v3.sh --speed 0.5
bash /home/z/bridge/rl/bridge_tracking/preview_phut_hon.sh --speed 0.5

--speed 0.5 只控制预览播放速度,不代表训练使用半速动作。参考预览不进行动态平衡验证。

重新训练相同参考 ​

下列命令会新建从头训练的 run;已有基线不需要重新训练才能回放:

bash
bash /home/z/bridge/rl/bridge_tracking/train_gangnam_style_v3_4096.sh
bash /home/z/bridge/rl/bridge_tracking/train_phut_hon_4096.sh

第二条要求已经生成 v1 六循环参考;准备脚本为 /home/z/bridge/rl/bridge_tracking/prepare_phut_hon_training.py,当前专用于 v1,不能借它给其他版本训练却记成 v2/v3/v4。

当前脚本与历史源码快照可能不同,精确核查用 run 内 source_snapshot/ 和哈希。完整评估协议见 training-and-evaluation.md。

五、已知边界和下一个问题 ​

目前是暂定动力学参数下、固定种子和有限扰动的仿真结果;没有覆盖实机零位、并联踝耦合、电机热限制或新增设备负载。32/32 完成只针对该协议,局部误差和源动作失真仍需另外解释。

下一项目尚未选定。正式小桥路线先根据官方模型/配置/流程建立相应仿真和实机基准,再扩展新能力。起身、速度/高度协调、Quest 或感知越障作为学习/扩展候选保留,见 候选方案。

dqx46 · Robotics / 算法工程项目与技术记录