火爆全网的春晚机器人舞蹈,我把保姆实战教程整出来了!
Datawhale干货作者陈可为Datawhale成员大家过年好呀今年春晚上的机器人舞蹈和武术表演《武Bot》是不是让大家眼前一亮看着那些铁疙瘩能做出那么丝滑、高难度的动作很多搞技术的同学估计手都痒了这玩意儿咱们普通人能不能自己复刻一个答案是必须能为了让大家少踩坑我把整个项目的安装、排错到最终跑通的关键步骤全部整理成了这篇保姆级实战教程。不论你是想输入一段文本描述还是直接丢一段视频进去都能让机器人跟着动起来甚至还支持多人轨迹和 MuJoCo 仿真录制视频教程已上线可以先马后看https://www.bilibili.com/video/BV1gBfCBpEEb代码已开源在https://github.com/datawhalechina/every-embodied欢迎来Star效果展示输入视频输出视频一、具体干什么核心流程简单来说我们的目标就是搭建一条从“人类动作”到“机器人动作”的转换流水线。核心处理流程如下文本 Prompt / 视频 Video - PromptHMR - SMPL-X - GMR - 机器人动作 Robot Motion日常玩转这个项目你只需要记住这几个常用命令# 基于文本生成动作 python scripts/generate_video.py --model seedance --action 动作序列角色向前走四步 # 提取视频中的人体姿态 python scripts/extract_pose.py --project data/video_001 # 转换为机器人动作支持多轨 python scripts/convert_to_robot.py --project data/video_001 --all-tracks # 可视化展示 python scripts/visualize.py --project data/video_001 --robot-viser --robot-all二、保姆教程搭建你的环境环境配置是咱们搞AI的“一生之敌”但我已经帮你们把坑都踩平了。强烈建议按推荐方式来0) 第0️⃣步新机器克隆与打补丁先拉取仓库并克隆依赖项⚠️注意本教程后续所有命令默认都在 video2robot 这个目录下执行git clone https://github.com/datawhalechina/every-embodied.git cd every-embodied/07-机器人操作、运动控制/Locomotion/video2robot cd third_party # 分别克隆 GMR 和 PromptHMR git clone --depth 1 https://github.com/taeyoun811/GMR.git GMR git clone --depth 1 https://github.com/taeyoun811/PromptHMR.git PromptHMR cd ..拿到新机器先把代码和依赖拉下来。如果你拿到的是 patch 交付包记得打上这三个补丁git clone --recursive https://github.com/hope5hope/video2robot.git cd video2robot git submodule update --init --recursive # 应用补丁 git apply patches/main.patch git -C third_party/PromptHMR apply ../../patches/prompthmr.patch git -C third_party/GMR apply ../../patches/gmr.patch接着用我已经写好的 YAML 文件一键创建环境。为了防止磁盘爆掉系统盘30G数据盘50G咱们把环境分开放conda env create -f envs/gmr.yml conda config --add envs_dirs /root/gpufree-data/conda_envs conda env create -f envs/phmr.yml(如果环境名已经存在用 conda env update -n gmr -f envs/gmr.yml --prune 更新即可。)1) 配置 GMR 环境conda create -n gmr python3.10 -y conda activate gmr cd /root/gpufree-data/every-embodied/07-机器人操作、运动控制/Locomotion/video2robot pip install -e . # 安装必备依赖包 pip install loop-rate-limiters pip install smplx pip install imageio pip install mink pip install rich pip install imageio[ffmpeg]2) 配置 PromptHMR 环境conda create -n phmr python3.10 -y conda activate phmr cd /root/gpufree-data/every-embodied/07-机器人操作、运动控制/Locomotion/video2robot/third_party/PromptHMR # 注意不推荐使用默认的 bash scripts/install.sh --pt_version2.4 一键安装bug较多。如果自动安装失败请直接滑到文末看“手动配置方案”。三、 启动炫酷的 Web UI稳定版环境配好了迫不及待想看看效果了吧conda activate phmr python -m pip install -U fastapi uvicorn[standard] jinja2 python-multipart # 清理可能卡住的进程 pkill -f video2robot/visualization/robot_viser.py cd /root/gpufree-data/every-embodied/07-机器人操作、运动控制/Locomotion/video2robot # 固定端口避免 iframe 随机端口拒绝连接的灵异事件 export VISER_FIXED_PORT8789 python -m uvicorn web.app:app --host 0.0.0.0 --port 8000打开浏览器访问 http://localhost:8000你就能看到一个支持中文的绝美界面了不仅可以上传视频还能一键切换铁皮/彩色机器人。 独家小技巧去豆包网页端输入提示词“帮我优化prompt生成中国武术视频人物需要完全在视频范围内”生成视频后传到 Web UI 里直接跑如果运行 Web 时自动下载 torch 小模型卡住了可以直接手动暴力下载mkdir -p /root/.cache/torch/hub/checkpoints rm -f /root/.cache/torch/hub/v0.10.0.zip.*.partial wget -O /root/.cache/torch/hub/v0.10.0.zip https://github.com/pytorch/vision/zipball/v0.10.0 wget -O /root/.cache/torch/hub/checkpoints/deeplabv3_resnet50_coco-cd0a2569.pth https://download.pytorch.org/models/deeplabv3_resnet50_coco-cd0a2569.pth ls -lh /root/.cache/torch/hub/v0.10.0.zip /root/.cache/torch/hub/checkpoints/deeplabv3_resnet50_coco-cd0a2569.pth四、 多人同屏轨迹提取与 MuJoCo 导出一个人跳舞不够震撼来个女团/男团齐舞1) 生成多轨与全视野展示conda activate gmr cd /root/gpufree-data/every-embodied/07-机器人操作、运动控制/Locomotion/video2robot # 提取多人轨迹 python scripts/convert_to_robot.py --project data/video_001 --all-tracks # viser 可视化所有机器人 python scripts/visualize.py --project data/video_001 --robot-viser --robot-all2) 导出 MuJoCo 物理仿真视频单人版直接跑conda activate gmr cd /root/gpufree-data/every-embodied/07-机器人操作、运动控制/Locomotion/video2robot/third_party/GMR python scripts/vis_robot_motion.py \ --robot unitree_g1 \ --robot_motion_path /root/gpufree-data/every-embodied/07-机器人操作、运动控制/Locomotion/video2robot/data/video_005/robot_motion.pkl \ --record_video \ --video_path /root/gpufree-data/every-embodied/07-机器人操作、运动控制/Locomotion/video2robot/data/video_005/mujoco_robot.mp4多人版这是我们优化的新脚本修复了0秒视频和相机不跟随画面的Bugpython scripts/vis_robot_motion_multi.py \ --robot unitree_g1 \ --robot_motion_paths \ /root/gpufree-data/every-embodied/07-机器人操作、运动控制/Locomotion/video2robot/data/video_005/robot_motion_track_1.pkl \ /root/gpufree-data/every-embodied/07-机器人操作、运动控制/Locomotion/video2robot/data/video_005/robot_motion_track_2.pkl \ --record_video \ --max_seconds 10 \ --camera_azimuth 0 \ --video_path /root/gpufree-data/every-embodied/07-机器人操作、运动控制/Locomotion/video2robot/data/video_005/mujoco_multi_robot_10s_front.mp4五、 进阶探讨为什么复刻的动作容易“摔跤”真机落地和仿真还是有很大差距的目前的落地难点在于动作映射精度SMPL-X 姿态到机器人关节的 Retargeting 存在物理限制。环境感知缺失开环控制不知道地面滑不滑碰到障碍物不会躲。动力学约束春晚那种腾空翻转不仅对电机扭矩要求极高控制响应稍慢就会失去平衡。所以未来我们将引入 IsaacSim 进行强化学习训练用它极高的物理仿真精度和碰撞检测把动作“映射”升级为真正的“稳健性训练”。避坑指南仓库组织与排错速查遇到 Bug 别砸电脑先看看这里Q1Web 任务秒退提示 conda 找不到已在主仓库修复支持自动探测 CONDA_EXE。Q2robot-viser 偶发“localhost 拒绝连接”老实使用固定端口export VISER_FIXED_PORT8789。Q3MuJoCo 录制报错缺少 imageio backend运行 pip install -U imageio[ffmpeg]。Q4lietorch/droid_backends 编译报错针对 PyTorch 2.4把源码里的 .type() 统统改成 .scalar_type() 即可搞定。如果你要跨机复刻或者做二次开发推荐使用这套丝滑组合拳YAML 导出 patch 补丁 模型下载脚本。源机器导出cd /root/gpufree-data/every-embodied/07-机器人操作、运动控制/Locomotion/video2robot mkdir -p envs conda env export -n gmr envs/gmr.yml conda env export -n phmr envs/phmr.yml目标机器导入并打补丁git clone https://github.com/datawhalechina/every-embodied.git cd every-embodied/07-机器人操作、运动控制/Locomotion/video2robot conda env create -f envs/gmr.yml conda env create -f envs/phmr.yml git apply patches/main.patch git -C third_party/PromptHMR apply ../../patches/prompthmr.patch git -C third_party/GMR apply ../../patches/gmr.patch记录一下当前的基线 commit 备查主仓库030f3410dac3cb15a2570376dca6a0f46c2d158cPromptHMR4f8915c5b9603344c56e95fadb9a01a23ba2272dGMR069b4fd48f440e813b2b4d69255c70f53e5f83fb附录一必备模型权重下载推荐从 HuggingFace 的 Datawhale 仓库直接拉git-lfs install git lfs clone https://huggingface.co/Datawhale/spring-festival-wushu-robot-replication-model或者走官方脚本的替代方案cd /root/gpufree-data/every-embodied/07-机器人操作、运动控制/Locomotion/video2robot/third_party/PromptHMR bash scripts/fetch_smplx.sh bash scripts/fetch_data.sh附录二硬核玩家专属——phmr环境纯手动配置指南如果你用前面的一键安装失败了跟着这段长长的命令走绝对能成# Clone main repo git clone https://github.com/datawhalechina/every-embodied.git cd every-embodied/07-机器人操作、运动控制/Locomotion/video2robot conda create -n phmr python3.10 -y conda activate phmr cd /root/gpufree-data/every-embodied/07-机器人操作、运动控制/Locomotion/video2robot/third_party/PromptHMR pip install -r requirements.txt mkdir -p python_libs git clone https://github.com/Arthur151/chumpy python_libs/chumpy python -m pip install -e python_libs/chumpy --no-build-isolation # 写入环境变量 export PYTHONPATH$PYTHONPATH:/root/gpufree-data/every-embodied/07-机器人操作、运动控制/Locomotion/video2robot/third_party/PromptHMR echoexport PYTHONPATH$PYTHONPATH:/root/gpufree-data/every-embodied/07-机器人操作、运动控制/Locomotion/video2robot/third_party/PromptHMR ~/.bashrc source ~/.bashrc conda install -c conda-forge eigen -y # 编译droidcalib source /opt/conda/etc/profile.d/conda.sh conda activate phmr conda install -c conda-forge eigen -y export CPATH$CONDA_PREFIX/include/eigen3:${CPATH:-} cd /root/gpufree-data/every-embodied/07-机器人操作、运动控制/Locomotion/video2robot/third_party/PromptHMR/pipeline/droidcalib python setup.py install # 添加动态链接库路径 export LD_LIBRARY_PATH/root/gpufree-data/conda_envs/phmr/lib/python3.10/site-packages/torch/lib:/usr/lib/x86_64-linux-gnu:/usr/local/cuda/lib64:/usr/lib64:/usr/local/lib echoexport LD_LIBRARY_PATH/root/gpufree-data/conda_envs/phmr/lib/python3.10/site-packages/torch/lib:/usr/lib/x86_64-linux-gnu:/usr/local/cuda/lib64:/usr/lib64:/usr/local/lib ~/.bashrc source ~/.bashrc # 编译 lietorch mkdir -p python_libs cd python_libs git clone https://github.com/princeton-vl/lietorch.git cd lietorch git submodule update --init --recursive python setup.py install cd ../.. # 安装 detectron2 与 SAM2 git clone https://github.com/facebookresearch/detectron2.git cd /root/gpufree-data/detectron2 pip install -e . --no-build-isolation git clone https://github.com/facebookresearch/segment-anything-2.git cd segment-anything-2 pip install -e . --no-build-isolation # 代码适配替换 sed -i s/load_video_frames, load_video_frames_from_np/load_video_frames/g /root/gpufree-data/every-embodied/07-机器人操作、运动控制/Locomotion/video2robot/third_party/PromptHMR/pipeline/detector/sam2_video_predictor.py # 补充最后的依赖包torch-scatter 会跑比较久喝杯咖啡耐心等 python -m pip install -U torch-scatter --no-build-isolation python -m pip install -U xformers代码和文档都在这里了剩下的就看你们的了如果复刻成功别忘了来评论区交作业哦以上就是全部内容啦所有核心代码、跳坑技巧和填坑代码都在这里了连按键和命令都手把手喂到嘴边了。更详细文字教程https://psce.pw/8rbp2s开源项目链接https://github.com/datawhalechina/every-embodied里面还有很多具身智能前沿项目的手把手复现欢迎大家体验反馈点上Star大家有问题随时可以在代码仓库提交issue~一起“点赞”三连↓

相关新闻

C++ Concepts与函数签名验证

C++ Concepts与函数签名验证

在现代C++编程中,Concepts(概念)是一个强大的工具,用于约束模板参数,确保代码的类型安全性和可读性。本篇博客将探讨如何使用Concepts来验证函数的签名,特别是针对单参数(Unary)函数和多参数(Nary)函数的具体实现。 一、什么是Concepts? Concepts是C++20引入的一个…

2026/5/17 6:54:22 阅读更多 →
一篇文章带你搞懂“设计模式”! - - 单例模式(2)

一篇文章带你搞懂“设计模式”! - - 单例模式(2)

单例模式所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法。单例模式有八种方式:饿汉式(静态常量)、饿汉式(静态代码块)、懒汉式(线程不安全…

2026/5/17 6:54:22 阅读更多 →
大规模语言模型在自动编程助手中的交互式应用

大规模语言模型在自动编程助手中的交互式应用

大规模语言模型在自动编程助手中的交互式应用关键词:大规模语言模型、自动编程助手、交互式应用、代码生成、编程辅助摘要:本文深入探讨了大规模语言模型在自动编程助手中的交互式应用。首先介绍了相关背景,包括目的、预期读者、文档结构和术…

2026/5/17 6:54:22 阅读更多 →

最新新闻

医疗预测建模实战:从临床共识到可行动预警

医疗预测建模实战:从临床共识到可行动预警

医疗预测建模这件事,我干了整整十二年——从三甲医院信息科借调支援的“临时工”,到后来牵头搭建省级慢病风险预警平台,再到如今帮基层社区卫生服务中心落地轻量化AI辅助决策工具。说实话,第一次看到“Predictive Modeling in Hea…

2026/7/3 2:50:37 阅读更多 →
终极B站视频下载指南:解锁大会员4K和充电专属内容

终极B站视频下载指南:解锁大会员4K和充电专属内容

终极B站视频下载指南:解锁大会员4K和充电专属内容 【免费下载链接】bilibili-downloader B站视频下载,支持下载大会员清晰度4K,持续更新中 项目地址: https://gitcode.com/gh_mirrors/bil/bilibili-downloader 你是否曾经想要永久保存…

2026/7/3 2:44:33 阅读更多 →
Loki MCP Server -支持Claude Desktop/Claude Code/Cursor 等客户端通过自然语言查询日志

Loki MCP Server -支持Claude Desktop/Claude Code/Cursor 等客户端通过自然语言查询日志

MCP定位,技术栈,架构,项目结构,基础框架搭建,开发部署及常见问题 # Loki MCP Server - CLAUDE.md> Go 实现的 MCP Server,集成 Grafana Loki 日志查询。支持 Claude Desktop / Claude Code / Cursor 等…

2026/7/3 2:42:31 阅读更多 →
嵌套 H5 的跨端通信:iOS / Android / 小程序 / 浏览器

嵌套 H5 的跨端通信:iOS / Android / 小程序 / 浏览器

一、为什么要做“统一桥接层”? “Write once, run anywhere” 对于纯展示型 H5 是成立的。但只要涉及到业务交互,比如:调起原生登录、保存图片到相册、修改系统状态栏颜色、分享到朋友圈,浏览器标准的 Web API 根本无能为力。 …

2026/7/3 2:40:31 阅读更多 →
交叉熵损失函数实战指南:原理、陷阱与工业级调优

交叉熵损失函数实战指南:原理、陷阱与工业级调优

1. 项目概述:为什么交叉熵损失函数不是“又一个公式”,而是模型精度的隐形操盘手在机器学习项目里,你调用model.compile(losscategorical_crossentropy)可能只需要0.3秒,但背后这个看似简单的函数,却直接决定了模型是“…

2026/7/3 2:38:31 阅读更多 →
ThreadLocalMap 设计及工作原理

ThreadLocalMap 设计及工作原理

把焦点深入到 ThreadLocalMap 这个核心容器上。它是理解整个 ThreadLocal 机制的关键,也是一个精巧的、为特定场景优化的定制化哈希表。下面我从数据结构、哈希冲突解决、扩容机制和关键操作四个维度,剖析它的设计精髓。1. 数据结构:弱引用的…

2026/7/3 2:36:30 阅读更多 →

日新闻

Nginx防御TLS重协商攻击实战:从原理到配置与监控

Nginx防御TLS重协商攻击实战:从原理到配置与监控

1. 项目概述:为什么TLS重协商攻击至今仍需警惕十多年前的CVE-2011-1473,一个关于TLS/SSL协议重协商机制的漏洞,现在提起来还有必要吗?很多运维和开发朋友可能会觉得,这都老掉牙了,现代服务器和客户端不都默…

2026/7/3 0:03:59 阅读更多 →
华为防火墙双通道远程管理实战:Web与SSH配置详解

华为防火墙双通道远程管理实战:Web与SSH配置详解

1. 项目概述:为什么需要双通道远程管理防火墙?在任何一个稍具规模的企业网络里,防火墙都是那个默默守护在边界的关键角色。作为网络工程师,我们不可能每次都跑到机房,插上console线去配置它。远程管理能力,…

2026/7/3 0:03:59 阅读更多 →
AD74413R与PIC18F65K40的高精度工业数据采集方案

AD74413R与PIC18F65K40的高精度工业数据采集方案

1. 项目概述:AD74413R与PIC18F65K40的协同工作在工业自动化和精密测量领域,同时实现高精度模数转换(ADC)和数模转换(DAC)功能是许多复杂系统的核心需求。AD74413R作为一款四通道可配置模拟输入/输出器件,与PIC18F65K40微控制器的组合&#xf…

2026/7/3 0:05:59 阅读更多 →

周新闻

月新闻