手把手教你配置服务端、连接客户端、运行仿真并录制结果
最近在捣鼓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端口开放 |
| 仿真器无法启动 | 确认资产路径和环境变量已正确设置 |
六、总结
整套流程下来,核心就是三步:
-
服务端跑起OpenPI策略
-
客户端通过SSH隧道连接
-
仿真器加载配置并录制
虽然细节不少,但只要按步骤来,都能顺利跑通。录制出来的视频可以直接用于演示或分析,非常实用。
如果你也在研究具身智能仿真,欢迎一起交流讨论~
来源处:
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.md
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://www.datawhale.cn/learn/content/258/6172?from=homepage
https://www.datawhale.cn/learn/content/258/6172?from=homepage详细请关注 Datawhale 开源社区。