MimicKit

GitHub
1.8k 233 较难 1 次阅读 今天Apache-2.0其他视频
AI 解读 由 AI 自动生成,仅供参考

MimicKit 是一套轻量级的运动模仿方法套件,专为训练机器人控制器而设计。它旨在解决让机器人(如人形机器人或四足机器狗)通过强化学习精准复现复杂人类或动物动作的难题,将参考动作数据转化为流畅、自然的控制策略。

这套框架非常适合机器人学研究人员、算法开发者以及希望快速验证运动控制想法的工程团队使用。其核心优势在于代码结构清晰、依赖极少,能够大幅降低环境配置门槛。MimicKit 不仅集成了 DeepMimic、AMP、AWR、ASE 等多种业界主流的运动模仿算法,还提供了高度的灵活性,支持 Isaac Gym、Isaac Lab 和 Newton 等多种物理仿真后端。用户只需简单的配置即可在不同模拟器间切换,并行开展实验。无论是想要复现经典论文结果,还是探索新的运动技能学习方案,MimicKit 都能提供一个高效、干净的起点,帮助用户专注于算法创新而非繁琐的工程调试。

使用场景

某机器人实验室团队正致力于为人形机器人开发一套能流畅完成跑酷、后空翻等高难度动作的运动控制器。

没有 MimicKit 时

  • 算法复现成本极高:团队需从零搭建 DeepMimic 或 AMP 等复杂算法框架,耗费数周处理代码兼容性与依赖冲突。
  • 仿真环境切换困难:若需从 Isaac Gym 迁移至 Newton 模拟器,必须重写大量底层交互代码,难以快速验证不同物理引擎的效果。
  • 数据与训练脱节:缺乏统一的运动数据加载接口,处理动作捕捉数据格式繁琐,导致模型训练频繁因数据对齐问题中断。
  • 调试周期漫长:由于框架臃肿且可视化支持不足,研究人员难以直观观察机器人动作偏差,参数调优如同“盲人摸象”。

使用 MimicKit 后

  • 开箱即用的算法库:直接调用内置的 DeepMimic、AMP 等六种成熟方法,通过配置文件即可启动训练,将算法验证周期从数周缩短至数小时。
  • 灵活的引擎适配:仅需修改 engine_config 参数,即可在 Isaac Gym、Isaac Lab 和 Newton 之间无缝切换,轻松对比不同物理后端的表现。
  • 标准化的数据流程:利用预置的数据处理管道,快速加载并适配各类动作捕捉数据,确保训练过程稳定高效。
  • 直观的可视化反馈:开启 visualize 选项即可实时渲染机器人动作,结合 TensorBoard 或 WandB 日志,精准定位动作失真原因并快速迭代。

MimicKit 通过轻量化设计与模块化架构,让研发团队从重复造轮子中解放出来,专注于提升机器人运动控制的智能水平。

运行环境要求

操作系统
  • 未说明
GPU

需要 NVIDIA GPU(用于 Isaac Gym/Isaac Lab 及分布式训练),具体型号和显存未说明,需支持 CUDA

内存

未说明

依赖
notes1. 该框架支持多种仿真后端(Engine),包括 Isaac Gym、Isaac Lab 和 Newton,需单独安装对应仿真器。2. 强烈建议使用 Conda 为每个仿真器创建独立的 Python 环境。3. 运行前需手动下载约未说明大小的资产和动作数据文件并解压至 data/ 目录。4. 支持多 GPU 分布式训练。5. 部分功能(如并行环境模拟)仅在 Isaac Gym 等特定后端中支持。
python未说明
Isaac Gym (可选)
Isaac Lab (可选)
Newton Physics (可选)
torch (隐含依赖)
tensorboard (日志可视化)
wandb (可选日志)
conda (推荐环境管理)
MimicKit hero image

快速开始

MimicKit

该框架提供了一套用于训练运动控制器的运动模仿方法。此代码库设计简洁轻量,依赖项极少。MimicKit 的更详细概述可在 入门指南 中找到。如需功能更丰富、模块化程度更高的运动模仿框架,请查看 ProtoMotions

每种方法的使用说明如下:


安装

本框架支持不同的模拟器后端(称为“引擎”)。我们强烈建议使用包管理器,例如 Conda,为每个模拟器创建专用的 Python 环境。

  1. 安装您选择的模拟器。
Isaac Gym

安装 Isaac Gym

要使用 Isaac Gym,在运行代码时请指定参数 --engine_config data/engines/isaac_gym_engine.yaml

Isaac Lab

安装 Isaac Lab。本框架已在 2ed331acfcbb1b96c47b190564476511836c3754 版本上测试过。

要使用 Isaac Lab,在运行代码时请指定参数 --engine_config data/engines/isaac_lab_engine.yaml

Newton

安装 Newton。本框架已在 v1.0.0 版本上测试过。

要使用 Newton,在运行代码时请指定参数 --engine_config data/engines/newton_engine.yaml

  1. 安装依赖项。
pip install -r requirements.txt
  1. 这里 下载资产和运动数据,然后将内容解压到 data/ 目录中。

训练

要训练模型,请运行以下命令:

python mimickit/run.py --mode train --num_envs 4096 --engine_config data/engines/isaac_gym_engine.yaml --env_config data/envs/deepmimic_humanoid_env.yaml --agent_config data/agents/deepmimic_humanoid_ppo_agent.yaml --visualize true --out_dir output/
  • --mode 选择 traintest 模式。
  • --num_envs 是用于仿真的并行环境数量。并非所有环境都支持并行环境,这主要用于 Isaac Gym 等环境;而 DeepMind Control Suite 等环境不支持此功能,因此应将环境数量设置为 1。
  • --engine_config 是引擎配置文件,用于在不同模拟器后端之间进行选择。
  • --env_config 是环境配置文件。
  • --agent_config 是智能体配置文件。
  • --visualize 启用可视化功能。为了加快训练速度,应关闭渲染。
  • --out_dir 是保存模型和日志的输出目录。
  • --logger 是用于记录训练统计信息的日志工具。可选文本 txt、TensorBoard tbwandb
  • --video 设置为 truefalse,以启用无头视频录制,这些视频将由日志工具记录。目前只有 Isaac Gym 和 Isaac Lab 支持视频日志记录。

除了通过命令行指定所有参数外,还可以从 arg_file 加载参数:

python mimickit/run.py --arg_file args/deepmimic_humanoid_ppo_args.txt --visualize true

arg_file 中的参数与命令行参数具有相同的作用。所有算法的参数均在 args/ 目录中提供。

测试

要测试模型,请运行以下命令:

python mimickit/run.py --arg_file args/deepmimic_humanoid_ppo_args.txt --num_envs 4 --visualize true --mode test --model_file data/models/deepmimic_humanoid_spinkick_model.pt
  • --model_file 指定包含已训练模型参数的 .pt 文件。预训练模型可在 data/models/ 目录中找到,相应的训练日志文件则位于 data/logs/ 目录中。

分布式训练

要使用多 CPU 或多 GPU 进行分布式训练:

python mimickit/run.py --arg_file args/deepmimic_humanoid_ppo_args.txt --devices cuda:0 cuda:1
  • --devices 指定用于训练的设备,可以是 cpucuda:{i}。可以提供多个设备,以实现跨多个进程的并行训练。

可视化界面

  • 相机控制: 按住 Alt 键并用鼠标左键拖动即可平移相机。使用鼠标滚轮可放大或缩小。
  • 暂停仿真: 按下 Enter 键可暂停或恢复仿真。
  • 单步仿真: 按下 Space 键可使仿真器每次向前推进一步。

可视化训练日志

在训练过程中使用 TensorBoard 日志工具时,会在与日志文件相同的输出目录中生成一个 TensorBoard events 文件。可通过以下命令查看日志:

tensorboard --logdir=output/ --port=6006 --samples_per_plugin scalars=999999

此外,还可以使用绘图脚本 plot_log.py 绘制输出的 log.txt 文件。


运动数据

运动数据存储在 data/motions/ 目录下。环境配置文件中的 motion_file 字段可用于指定参考运动片段。除了模仿单个运动片段外,motion_file 也可以指向位于 data/datasets/ 的数据集文件,从而训练模型来模仿包含多个运动片段的数据集。

可以使用 view_motion 环境来可视化运动片段:

python mimickit/run.py --mode test --arg_file args/view_motion_humanoid_args.txt --visualize true

运动片段由 motion.py 中实现的 Motion 类表示。每个运动片段都保存为 .pkl 文件。运动的每一帧通过以下方式指定角色的姿态:

[根位置 (3D), 根旋转 (3D), 关节旋转]

其中,3D 旋转采用 3D 指数映射表示,关节旋转则按照 .xml 文件中定义的关节顺序记录(即按运动学树的深度优先遍历顺序)。例如,对于 humanoid.xml,每帧的表示形式为:

[根位置 (3D), 根旋转 (3D), 腹部 (3D), 颈部 (3D), 右肩 (3D), 右肘 (1D), 左肩 (3D), 左肘 (1D), 右髋 (3D), 右膝 (1D), 右踝 (3D), 左髋 (3D), 左膝 (1D), 左踝 (3D)]

3D 关节的旋转使用 3D 指数映射表示,而 1D 关节的旋转则用 1D 旋转角度表示。

运动重定向

运动重定向可以使用 GMR 来完成。一个用于将 GMR 文件转换为 MimicKit 格式的脚本位于 tools/gmr_to_mimickit/ 目录下。

此外,还有一个用于将来自 AMASS 的 SMPL 运动文件转换为 MimicKit 格式的脚本,位于 tools/smpl_to_mimickit/ 目录下。


引用

如果您觉得本代码库有所帮助,请引用以下文献:

@article{
      MimicKitPeng2025,
      title={MimicKit: 用于运动模仿与控制的强化学习框架}, 
      author={彭雪彬},
      year={2025},
      eprint={2510.13794},
      archivePrefix={arXiv},
      primaryClass={cs.GR},
      url={https://arxiv.org/abs/2510.13794}, 
}

版本历史

v02026/01/11

常见问题

相似工具推荐

Deep-Live-Cam

Deep-Live-Cam 是一款专注于实时换脸与视频生成的开源工具,用户仅需一张静态照片,即可通过“一键操作”实现摄像头画面的即时变脸或制作深度伪造视频。它有效解决了传统换脸技术流程繁琐、对硬件配置要求极高以及难以实时预览的痛点,让高质量的数字内容创作变得触手可及。 这款工具不仅适合开发者和技术研究人员探索算法边界,更因其极简的操作逻辑(仅需三步:选脸、选摄像头、启动),广泛适用于普通用户、内容创作者、设计师及直播主播。无论是为了动画角色定制、服装展示模特替换,还是制作趣味短视频和直播互动,Deep-Live-Cam 都能提供流畅的支持。 其核心技术亮点在于强大的实时处理能力,支持口型遮罩(Mouth Mask)以保留使用者原始的嘴部动作,确保表情自然精准;同时具备“人脸映射”功能,可同时对画面中的多个主体应用不同面孔。此外,项目内置了严格的内容安全过滤机制,自动拦截涉及裸露、暴力等不当素材,并倡导用户在获得授权及明确标注的前提下合规使用,体现了技术发展与伦理责任的平衡。

88.9k|★★★☆☆|1周前
开发框架图像Agent

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85.3k|★★☆☆☆|今天
图像数据工具视频

funNLP

funNLP 是一个专为中文自然语言处理(NLP)打造的超级资源库,被誉为"NLP 民工的乐园”。它并非单一的软件工具,而是一个汇集了海量开源项目、数据集、预训练模型和实用代码的综合性平台。 面对中文 NLP 领域资源分散、入门门槛高以及特定场景数据匮乏的痛点,funNLP 提供了“一站式”解决方案。这里不仅涵盖了分词、命名实体识别、情感分析、文本摘要等基础任务的标准工具,还独特地收录了丰富的垂直领域资源,如法律、医疗、金融行业的专用词库与数据集,甚至包含古诗词生成、歌词创作等趣味应用。其核心亮点在于极高的全面性与实用性,从基础的字典词典到前沿的 BERT、GPT-2 模型代码,再到高质量的标注数据和竞赛方案,应有尽有。 无论是刚刚踏入 NLP 领域的学生、需要快速验证想法的算法工程师,还是从事人工智能研究的学者,都能在这里找到急需的“武器弹药”。对于开发者而言,它能大幅减少寻找数据和复现模型的时间;对于研究者,它提供了丰富的基准测试资源和前沿技术参考。funNLP 以开放共享的精神,极大地降低了中文自然语言处理的开发与研究成本,是中文 AI 社区不可或缺的宝藏仓库。

79.9k|★☆☆☆☆|1周前
语言模型数据工具其他

cs-video-courses

cs-video-courses 是一个精心整理的计算机科学视频课程清单,旨在为自学者提供系统化的学习路径。它汇集了全球知名高校(如加州大学伯克利分校、新南威尔士大学等)的完整课程录像,涵盖从编程基础、数据结构与算法,到操作系统、分布式系统、数据库等核心领域,并深入延伸至人工智能、机器学习、量子计算及区块链等前沿方向。 面对网络上零散且质量参差不齐的教学资源,cs-video-courses 解决了学习者难以找到成体系、高难度大学级别课程的痛点。该项目严格筛选内容,仅收录真正的大学层级课程,排除了碎片化的简短教程或商业广告,确保用户能接触到严谨的学术内容。 这份清单特别适合希望夯实计算机基础的开发者、需要补充特定领域知识的研究人员,以及渴望像在校生一样系统学习计算机科学的自学者。其独特的技术亮点在于分类极其详尽,不仅包含传统的软件工程与网络安全,还细分了生成式 AI、大语言模型、计算生物学等新兴学科,并直接链接至官方视频播放列表,让用户能一站式获取高质量的教育资源,免费享受世界顶尖大学的课堂体验。

79.8k|★☆☆☆☆|1周前
其他图像数据工具

ragflow

RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。

77.1k|★★★☆☆|2周前
Agent图像开发框架

PaddleOCR

PaddleOCR 是一款基于百度飞桨框架开发的高性能开源光学字符识别工具包。它的核心能力是将图片、PDF 等文档中的文字提取出来,转换成计算机可读取的结构化数据,让机器真正“看懂”图文内容。 面对海量纸质或电子文档,PaddleOCR 解决了人工录入效率低、数字化成本高的问题。尤其在人工智能领域,它扮演着连接图像与大型语言模型(LLM)的桥梁角色,能将视觉信息直接转化为文本输入,助力智能问答、文档分析等应用场景落地。 PaddleOCR 适合开发者、算法研究人员以及有文档自动化需求的普通用户。其技术优势十分明显:不仅支持全球 100 多种语言的识别,还能在 Windows、Linux、macOS 等多个系统上运行,并灵活适配 CPU、GPU、NPU 等各类硬件。作为一个轻量级且社区活跃的开源项目,PaddleOCR 既能满足快速集成的需求,也能支撑前沿的视觉语言研究,是处理文字识别任务的理想选择。

75.9k|★★★☆☆|今天
语言模型图像开发框架