从零部署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 开源社区。

相关推荐
tq10864 小时前
因果叙事、劳动分层与协作秩序
笔记
渴了喝洗衣液5 小时前
课堂笔记 学习笔记
笔记
大明者省5 小时前
ONNX Runtime 跑 OpenPose 超详细讲解
笔记
Upsy-Daisy5 小时前
AI Agent 项目学习笔记(十一):TerminateTool、工具调用闭环与安全边界
人工智能·笔记·学习
lqj_本人5 小时前
鸿蒙electron跨端框架PC青简笔记实战:从笔记列表、编辑器到桌面导出,一次做完整
笔记·编辑器
lunzi_08266 小时前
【学习笔记】《Python编程 从入门到实践》第2章:变量命名规则、字符串操作与数值类型详解
笔记·python·学习
xian_wwq6 小时前
【学习笔记】“网络空间安全≠网络安全”——ISO SC27标准组十四年仍在求解的不等式
笔记·学习·安全
心中有国也有家6 小时前
pytorch-adapter:让 PyTorch 模型“无缝”跑在昇腾 NPU 上
人工智能·pytorch·笔记·python·学习
咸甜适中7 小时前
rust语言学习笔记Trait(九)PartialEq、 Eq(相等比较)
笔记·学习·rust