SuperMimic运动参考库详解: LAFAN1重采样、跟踪刚体FK与K帧目标编码的完整指南 【免费下载链接】supermimic_vibedvibe coded supermimic within 1h, LAFAN passed within 1.5 gpuh training项目地址https://gitcode.com/gh_mirrors/su/supermimic_vibed点击查看免费下载SuperMimic 是一个在 Isaac Lab 3kit-less MuJoCo-Warp上复现的人形机器人全身运动跟踪项目只用 1 张 GPU、约 1.5 小时训练就得到一个能跟踪全部 40 条 LAFAN1 舞蹈/跑酷动作的 G1 运动策略评估回报 0.829、0/40 失败。本文面向新手逐层拆解它的运动参考库三大核心LAFAN1 的 30→50 Hz 重采样、可微正向运动学FK计算的 14 个跟踪刚体以及 K10 帧的未来目标编码并给出对应源码路径方便你快速上手阅读。一张图看懂结果1.5 GPU 小时打平论文 18 小时先看成绩。下图是主训练曲线评估归一化回报在 1.24 h 达到 0.824论文目标 0.82 1.2 h, H1001.47 h 时 40/40 动作全部跟踪成功。完整训练日志MILESTONES.md这套小成本策略的底层就是一个组织得非常干净的运动参考库MotionLib。它做的事只有三件把原始动作数据变成 50 Hz 的帧序列、用同一套可微 FK 算出参考姿态与速度、把未来 K 帧打包成策略的目标向量。下面逐一拆解。运动参考库是什么MotionLib 与数据流原始数据来自 40 条重定向到 G129 自由度的 LAFAN1 动作 CSVdance、jumps、fallAndGetUp、sprint 等共 264,705 帧 30 fps每条包含字段列说明根部位姿前 3 列pelvis 位置 (x, y, z)根部四元数4~7 列姿态xyzw 存储内部转 wxyz关节角8~36 列29 个关节顺序与 Unitree SDK 一致MotionLib在 supermimic/motion.py 中一次性加载所有 CSV拼接成一个大张量并建立索引clip_len/clip_start/clip_end每条动作的帧数与起止帧clip_id全局帧号 → 所属动作bin_clip/bin_start1 秒一个 bin用于后面按回报采样重置点。数据流可以概括为40 × CSV(30Hz) ──重采样──▶ 50Hz 帧序列 ──中心差分──▶ 速度/角速度 │ ▼ 可微 FK14个跟踪刚体位姿速度 │ goal(f, K10) ◀┘ ▼ 策略 π 的目标向量 gLAFAN1 重采样详解30 Hz 到 50 Hz 的关键一步控制频率是 50 HzCONTROL_DT 0.024 个 5 ms 子步所以第一步就是把 30 fps 的原始数据重采样到 50 Hz。实现见 supermimic/motion.py#L28-L39位置 / 关节角按时间线性插值Lerp根部姿态四元数用quat_slerp球面插值而不是线性插值保证旋转路径平滑且单位长度不漂移帧数n floor(dur / 0.02) 1每条动作末尾帧自然对齐到 50 Hz 网格。插值之后再算速度这一步直接决定了奖励信号的干净程度线速度v、关节速度qd用中心差分_gradient两端单侧差分见 supermimic/motion.py#L116-L120世界系角速度w由旋转矩阵差R[t1]ᵀR[t-1]取so3_log再除以2dt得到见 supermimic/motion.py#L51-L55。小细节重采样后的根速、根角速度还会预转到根局部系root_v_local/root_w_local根帧投影重力root_gz也一并缓存supermimic/motion.py#L67-L71这些正是 10 帧历史观测里的字段。跟踪刚体 FK用一套可微运动学对齐模拟器跟踪哪些部位TRACKED_BODIES定义了14 个刚体pelvis、左右髋/膝/踝 roll 连杆、torso、左右肩/肘/腕见 supermimic/robot.py#L52-L58。项目的巧劲在于它没有直接信任仿真器输出的 link 状态而是在 supermimic/kinematics.py 里用 PyTorch 从零写了一套可微正向运动学G1Kinematics从编译好的 MJCFdata/g1_description/g1_29dof.xml读取 kinematic tree每个 body 的父节点、关节轴axes、局部偏移offs_p/offs_Rforward()沿树递推supermimic/kinematics.py#L62-L89位置pᵢ p父 R父·offᵢ姿态Rᵢ R父·R_off·Rot(axis, q)速度用刚体运动学递推vᵢ v父 ω父 × (pᵢ − p父)ωᵢ ω父 q̇·axis_world。同一套 FK 三处共用参考动作、仿真器记录状态、世界模型预测。因此解析奖励头与仿真标注的奖励严格一致且与模拟器的 link 位姿/速度对到 ~1e-6可用 tools/test_env.py 验证。这也是一个可微世界模型能稳定收敛的地基之一。K 帧目标编码未来 10 帧如何变成 73 维向量策略的目标不是下一帧姿态而是未来 K10 帧的参考运动序列--goal_frames 10supermimic/train.py#L23由MotionLib.goal()生成见 supermimic/motion.py#L94-L110取未来帧f1 … fK并在动作末尾钳位到最后一帧future_frames避免越界yaw 不变性用当前参考根帧的yaw_mat只保留朝向投影把所有量变换到去掉全局航向的坐标系策略无需知道机器人在世界里的绝对朝向每帧特征73 维特征维度含义Δp3未来帧相对当前参考帧的位移yaw 系下6D 旋转6未来帧根姿态mat_to_6d连续且无万向锁root_v_local / root_w_local6未来帧根局部速度q / 0.1·qd29 29未来帧关节角与缩小 10 倍权重的关节速度K帧 flatten 成730维向量g与 10 帧历史观测o_hist一起送入运动编码器 MLP2048→1024→512→256输出 z∈R³²tanh见 supermimic/networks.py 与 README Implementation 一节。为什么这样设计目标只由参考数据构成不依赖机器人当前状态——同一个编码的 z 可以被想象imaginedrollout 反复使用配合 32 步 BPTT 与世界模型即可在脑内更新策略这正是 1.5 小时训完的关键。彩蛋1 秒 Bin 与按回报采样的重置MotionLib还把每条动作按 1 秒切成 binBIN_FRAMES 50supermimic/motion.py#L72-L87维护frame_bin反向索引。这是模拟器重置采样supermimic/env.py的基础50% 均匀 40% softmax(−25·G_b/G_max) 10% 偏向过去的采样让训练时间优先花在难但接近成功的片段上而不是平均用力。小结三个要点带走重采样Lerp Slerp 到 50 Hz中心差分算速度四元数转 wxyz全部在加载时一次算完supermimic/motion.pyFK一套 torch 可微正向运动学同时服务参考、仿真与世界模型14 个跟踪刚体位姿速度对齐到 1e-6supermimic/kinematics.py目标K10 帧、yaw 不变、73 维/帧的未来参考序列让策略看得见未来supermimic/motion.py#L100-L110。想复现完整流程tools/setup.sh准备环境 →tools/download_data.sh拉取 LAFAN1 数据与 G1 模型 →CPUS0-23 ./run_train.sh lafan1_main开训最后用 tools/plot.py 画出你自己的成功曲线。赞分享【免费下载链接】supermimic_vibedvibe coded supermimic within 1h, LAFAN passed within 1.5 gpuh training项目地址https://gitcode.com/gh_mirrors/su/supermimic_vibed点击查看免费下载相关推荐SuperMimic入门指南:1小时AI编程复现人形机器人全身运动跟踪的完整原理SuperMimic入门指南:1小时AI编程复现人形机器人全身运动跟踪的完整原理 SuperMimic 是一个面向 人形机器人全身运动跟踪 Whole BodySuperMimic渲染与可视化:如何生成带幽灵参考的人形机器人运动跟踪对比视频SuperMimic渲染与可视化:如何生成带幽灵参考的人形机器人运动跟踪对比视频 在SuperMimic开源项目中训练好人形机器人Unitree G1的运如何用 Molmo2-8B-mxfp4 做视频问答与目标跟踪帧采样与时间戳注入机制详解如何用 Molmo2 8B mxfp4 做视频问答与目标跟踪帧采样与时间戳注入机制详解 Molmo2 8B mxfp4 是 Molmo2 8B 多模态大模型的大模型多模态模型量化本地部署人工智能上一篇openEuler/oemaker从0到1打造专属Linux DVD镜像的终极工具下一篇不重启Codex也能用第三方模型Codex-X的秘诀是什么创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考