从零部署GenieSim:基于OpenPI的仿真环境搭建与录制教程

手把手教你配置服务端、连接客户端、运行仿真并录制结果

最近在捣鼓GenieSim这个仿真环境,踩了不少坑,也总结了一些经验。今天就把完整的部署流程分享出来,希望能帮到同样在折腾的小伙伴。

一、环境概览

  • 服务端:运行OpenPI策略服务,提供决策接口

  • 客户端:GenieSim仿真器,执行策略输出的动作

  • 录制工具:自动将仿真过程保存为MP4视频

二、服务端部署(OpenPI)

2.1 启动策略服务

进入OpenPI目录:

bash 复制代码
cd /root/openpi

推荐使用python启动 (不要用uv run,否则会重新创建虚拟环境,浪费空间和时间):

bash 复制代码
XLA_PYTHON_CLIENT_MEM_FRACTION=0.7 python scripts/serve_policy.py \
    --host='0.0.0.0' \
    --port=8999 \
    policy:checkpoint \
    --policy.config=organize_items \
    --policy.dir ./checkpoints/organize_items/29999

⚠️ 重要提示:

  • 模型文件默认下载到 ~/.cache/openpi,千万不要删除该目录!重新下载极其耗时。

  • 启动成功后,终端会显示类似 INFO: Started server process [xxx] 的日志,并带有IP信息(如 100.88.33.251),记下这个IP。

2.2 常见问题修复

如果遇到av版本报错,根据lerobot的依赖要求,将pyav改为正确版本(新版镜像已修复,若使用旧镜像需手动改pyproject.toml)。

三、客户端配置(GenieSim)

3.1 SSH端口转发

在客户端机器上执行(将服务端的8999端口映射到本地):

bash 复制代码
ssh -CNg -L 8999:127.0.0.1:8999 root@<服务端IP>
# 示例:ssh -CNg -L 8999:127.0.0.1:8999 root@100.88.33.251

输入密码后保持连接。

验证转发是否成功:

bash 复制代码
python -c "import socket; s=socket.socket(); s.connect(('localhost', 8999)); print('OK')"

输出OK表示端口连通。

3.2 下载资产文件

注:社区提供的镜像已预先配置好资产,一般无需额外操作。

如需手动下载,请将资源放到:

bash 复制代码
/root/genie_sim/source/geniesim/assets

资源地址:GenieSimAssets on ModelScope

3.3 设置环境变量

社区镜像已在.bashrc中配置好,如需手动设置:

bash 复制代码
export SIM_REPO_ROOT=/root/genie_sim
export BASE_URL="https://dashscope.aliyuncs.com/compatible-mode/v1"
export API_KEY="sk-xxxx"          # 替换为你的key
export MODEL="qwen3-max"
export VL_MODEL="qwen3-vl-plus"
export SIM_ASSETS=$SIM_REPO_ROOT/source/geniesim/assets

3.4 启动仿真器

进入GenieSim目录:

bash 复制代码
cd /root/genie_sim

使用以下任一命令启动(推荐omni_python):

bash 复制代码
omni_python source/geniesim/app/app.py --config source/geniesim/config/organize_items.yaml

或

bash 复制代码
/isaac-sim/python.sh source/geniesim/app/app.py --config source/geniesim/config/organize_items.yaml

稍等片刻,就会看到仿真窗口开始执行动作。

仿真窗口执行片段

四、录制仿真结果

4.1 替换录制脚本

将教程提供的auto_record_and_extract.py复制到:

bash 复制代码
/root/genie_sim/scripts/auto_record_and_extract.py

修改启动脚本/root/genie_sim/scripts/start_auto_record.sh中的相关配置(路径、参数等)。

建议先备份再修改。

4.2 启动录制模式

使用录制专用的配置文件:

bash 复制代码
cd /root/genie_sim
omni_python source/geniesim/app/app.py --config source/geniesim/config/organize_items_record.yaml

当终端出现类似"仿真频率"的稳定输出后,新开一个终端执行:

bash 复制代码
cd /root/genie_sim
bash scripts/start_auto_record.sh

4.3 获取录制的视频

仿真结束后,录制的.mcap文件会自动解析并保存为.mp4。文件位置示例:

bash 复制代码
/root/genie_sim/output/recording_data/recording_data/place_object_into_box_color/recording_20260204_121814/recording_20260204_121814_0.mcap

如果已有.mcap文件,可直接解析:

bash 复制代码
cd /root/genie_sim
python3 scripts/auto_record_and_extract.py \
  --bag_path "/root/genie_sim/output/recording_data/.../recording_20260204_141040"

最后没截上图,没算力时间了,^^!

五、常见问题备忘

问题 解决方法
uv run创建新虚拟环境 改用python直接运行
~/.cache/openpi被误删 不要删除!重下极慢
av版本报错 改为pyav或使用新版镜像
端口转发失败 检查服务端IP和防火墙,确保8999端口开放
仿真器无法启动 确认资产路径和环境变量已正确设置

六、总结

整套流程下来,核心就是三步:

  1. 服务端跑起OpenPI策略

  2. 客户端通过SSH隧道连接

  3. 仿真器加载配置并录制

虽然细节不少,但只要按步骤来,都能顺利跑通。录制出来的视频可以直接用于演示或分析,非常实用。

如果你也在研究具身智能仿真,欢迎一起交流讨论~

来源处:

https://github.com/datawhalechina/every-embodied/blob/main/10-%E5%85%B7%E8%BA%AB%E6%99%BA%E8%83%BD%E5%85%B6%E4%BB%96%E4%BB%BF%E7%9C%9F%E5%B7%A5%E5%85%B7%E5%8F%8A%E4%BB%BF%E7%9C%9F%E5%89%8D%E6%B2%BF/07GenieSim%E9%85%8D%E7%BD%AE.mdhttps://github.com/datawhalechina/every-embodied/blob/main/10-%E5%85%B7%E8%BA%AB%E6%99%BA%E8%83%BD%E5%85%B6%E4%BB%96%E4%BB%BF%E7%9C%9F%E5%B7%A5%E5%85%B7%E5%8F%8A%E4%BB%BF%E7%9C%9F%E5%89%8D%E6%B2%BF/07GenieSim%E9%85%8D%E7%BD%AE.mdhttps://www.datawhale.cn/learn/content/258/6172?from=homepagehttps://www.datawhale.cn/learn/content/258/6172?from=homepage详细请关注 Datawhale 开源社区。

相关推荐
启观川1 小时前
数据结构与算法-第 3 章 常用算法-贪心算法
数据结构·笔记·python·算法·贪心算法
猫先生Mr.Mao3 小时前
具身智能之京东 WLA³详解:用世界状态转换统一人类视频和机器人动作
机器人·论文解读·具身智能·vla·京东·wla3
ab1237683 小时前
Spring WebSocket(STOMP)
笔记·websocket·springboot·stomp
Xudde.3 小时前
PwnLab: init 靶机渗透测试(Vulnhub Writeup)
笔记·学习·安全·web安全
2402_846295773 小时前
eDNA常用的基因片段
笔记
AI视觉网奇4 小时前
3Dconnexion 按照笔记
笔记
海海不掉头发4 小时前
软件开发方法第七周笔记_CSDN博客
人工智能·笔记·学习·软件工程
Vae_Mars4 小时前
幂等性学习笔记
笔记·学习·wpf
Xudde.5 小时前
HackMe 靶机渗透测试(Vulnhub Writeup)
笔记·学习·安全·web安全
先途检测认证5 小时前
塑料、硅胶、不锈钢材质,欧盟食品接触的测试项目有什么区别?
笔记·材质