Psi0真机部署指南:SONIC全身控制器+PICO的4进程部署架构详解
【免费下载链接】Psi0[RSS'26] Welcome to Psi-Zero, a Humanoid VLA towards Universal Humanoid Intelligence.项目地址: https://gitcode.com/gh_mirrors/ps/Psi0
Psi0(Ψ₀)是一个开源的人形机器人视觉-语言-行动(VLA)基础模型,在 Unitree G1 真机上通过 SONIC 全身控制器实现行走与操作,并支持 PICO VR 头显进行遥操作示教与视觉回传。本文将完整拆解 Psi0 真机部署的核心:一套4进程 RTC(Real-Time Chunking)部署架构,帮你从零理解每个进程的职责、启动顺序与安全操作,快速把模型跑在真机上。
一、Psi0 真机部署全景:VLA 大脑 + SONIC 小脑
Psi0 的部署分为三个层级:负责"想"的 VLA 模型(System-2 视觉语言骨干 + System-1 动作专家)、负责"动"的 SONIC 全身控制器(System-0 低层跟踪控制),以及提供第一视角画面的机器人相机。
模型内部结构上,Qwen3-VL 视觉语言骨干输出特征,条件化一个约 500M 参数的多模态扩散 Transformer 动作专家,预测全身动作块(action chunks);底层则由 SONIC 全身控制器实时执行下肢与手臂指令,保证稳定站立与运动。
💡 想先了解训练侧细节,可阅读发布说明 examples/psi0_for_sonic.md,其中解释了 SONIC 版 checkpoint 为什么要在 80 维 SONIC 动作空间上重新后训练。
二、部署前准备:一键克隆与环境检查
1️⃣ 克隆仓库并初始化 SONIC 子模块(SONIC 即 GR00T-WholeBodyControl 全身控制器):
git clone https://gitcode.com/gh_mirrors/ps/Psi0 cd Psi0 git submodule update --init --recursive third_party/GR00T-WholeBodyControl2️⃣ 准备两套运行环境:
- Psi0 策略环境:基于
uv管理的.venv-psi(依赖见 pyproject.toml),用于策略服务器; - sonic conda 环境:包含 TensorRT、C++ 控制器依赖,用于 SONIC 全身控制器与 RTC 客户端,初始化脚本见 real/SONIC/scripts/sonic_conda_env.sh。
3️⃣ 机器人侧准备一台运行相机服务的机器(G1 自带 PC),安装pyrealsense2等依赖,详见 real/README.md。
三、4 进程架构详解:谁负责什么?
Psi0 官方 RTC 部署流由4 个独立进程组成,每个进程运行在自己的终端里:
| 进程 | 运行位置 | 职责 | 入口脚本 |
|---|---|---|---|
| ① 相机服务器 | 机器人 PC | 采集 RealSense 第一视角(ego view)并推送 | real/SONIC/realsense_server.py |
| ② Psi0 策略服务器 | 工作站 GPU | 加载 checkpoint,RTC 模式推理动作块 | scripts/deploy/serve_psi0-rtc-sonic.sh |
| ③ SONIC 全身控制器 | 工作站 | C++/TensorRT 低层控制,接收动作 token 驱动机器人 | real/scripts/deploy_psi0-sonic-rtc-robot.sh |
| ④ Psi0 RTC 客户端 | 工作站 | 汇聚相机与本体状态,请求策略并下发动作 | real/scripts/deploy_psi0-sonic-rtc-client.sh |
下面按启动顺序逐个说明。
进程 1:相机服务器(机器人在环的"眼睛")
在机器人 PC 上启动相机服务,把第一视角图像经 ZMQ 推送到工作站:
python -m gear_sonic.camera.composed_camera \ --ego-view-camera realsense \ --port 5555该视角既是策略推理的输入,也会经 SIMPLE 的 Remote Vision 通道回传到 PICO 头显,让你以机器人"第一视角"观察作业过程。
进程 2:Psi0 策略服务器(RTC 模式)
在工作站上启动推理服务,核心参数为--rtc(实时分块执行)与--action_exec_horizon 30:
export CHECKPOINT_DIR=/path/to/psi0-sonic-run export CHECKPOINT_STEP=40000 bash scripts/deploy/serve_psi0-rtc-sonic.sh- 服务默认监听
0.0.0.0:8014,出现Application startup complete即就绪; - RTC(Real-Time Chunking)机制让模型在动作块执行到一半时就能用最新观测预测下一块,显著提升失败恢复能力——这也是官方 SONIC 训练配方中
--model.no-rtc测试时 RTC 的设计来源; - checkpoint 可从 HuggingFace 的
USC-PSI-Lab/psi-model仓库下载,SONIC 版目录为psi0/sonic-checkpoints/multi-task.psi-dream.2609092156,下载工具见 scripts/data/download.py。
进程 3:SONIC 全身控制器(C++ 实时控制)
bash real/scripts/deploy_psi0-sonic-rtc-robot.sh real这个启动器做了很多"脏活":自动探测192.168.123.x机器人网络接口、检查 TensorRT 与 ONNX 模型文件、用just构建并运行g1_deploy_onnx_ref。关键交互:
- 出现
Init done.后按一次],等待机器人回到默认站立姿态; - 此时不要开启 ZMQ 流,等客户端就绪再激活;
- 正常结束时按Enter回到默认参考姿态,按O退出;紧急情况下立即按 O 停止。
进程 4:Psi0 RTC 客户端(数据流调度中枢)
export SONIC_CONDA_PREFIX="$HOME/miniconda3/envs/sonic" bash real/scripts/deploy_psi0-sonic-rtc-client.sh \ --host 127.0.0.1 --port 8014 \ --camera-address tcp://192.168.123.164:5558 \ --network enp4s0 \ --instruction 'Pick up the object and place it in the container.'客户端从 real/SONIC/run_psi0_rtc_sonic_dex1.py 启动,它通过 DDS 订阅机器人本体状态、从相机服务器取图,组装成策略输入发往 8014 端口的策略服务器,再把预测的 80 维 SONIC 动作 token 经 ZMQ 发布给 C++ 控制器。当终端打印recv_action interval与Received action后,回到控制器终端按一次Enter,看到ZMQ STREAMING MODE: ENABLED即开始执行。
四、PICO 接入:VR 遥操作与第一视角回传
Psi0 的示教数据采集基于 PICO 头显(XRoboToolkit 方案),部署阶段同样可用:
- 工作站的
psi_deploy环境中编译安装 PICO 流式 Python SDK(步骤见 real/README.md 的 "PICO Only Setup" 章节); - PICO 与工作站连同一 WiFi,PC Service 中填入工作站 IP;
- Tracking Session 勾选
Head、Controller、Hand并打开Send开关,PICO 会自动进入手部跟踪模式(可见虚拟双手); - Remote Vision Session 选择
ZEDMINI,点Listen并输入 PC IP,即可在头显中看到机器人第一视角画面(H.264 码流,连接<workstation-ip>:13579)。
遥操作按键约定(与 SONIC 官方状态机一致):长按右摇杆单击 0.6 秒切换策略开关、Left Grip + A开始/结束一个 episode、Left Grip + Y丢弃 episode、A + X切换 Planner 与全身 POSE 模式。完整采集流程见 real/SONIC/README.md 的 real/SONIC/scripts/collect_psi0-sonic-data.sh。
五、启动顺序速查清单
✅正确顺序(每步一个独立终端):
- 机器人 PC:启动相机服务器(进程 1)
- 工作站:启动策略服务器,等待
Application startup complete(进程 2) - 工作站:启动 SONIC 控制器,
Init done.后按]让机器人站稳(进程 3) - 工作站:启动 RTC 客户端,看到
Received action后在控制器终端按Enter开启 ZMQ 流(进程 4)
✅收尾顺序:按Enter回默认姿态 → 客户端 Ctrl+C → 控制器终端按O退出。
⚠️安全提醒:机器人作业期间所有人员保持安全距离;任何异常先在控制器终端按O紧急停止。完整官方部署文档见 real/SONIC/DEPLOYMENT.md。
六、常见问题(Troubleshooting)
- 找不到 192.168.123.x 网络接口:机器人需设置为开发模式(遥控器 L2+B 后 L2+R2),工作站 IP 手动配置为
192.168.123.123/24; - 相机画面推不过来:确认
--camera-address指向机器人 PC 的正确 IP 与端口,机器人 PC 上realsense_server.py是否存活; - 模型文件缺失:控制器启动器会逐项检查 ONNX 模型与配置,缺失时执行
git lfs pull拉取; - TensorRT 未找到:设置
export TensorRT_ROOT=$HOME/TensorRT并写入~/.bashrc; - 数据格式转换问题:SONIC 采集的原始数据需先用 scripts/data/raw_sonic_to_psi_lerobot.py 转为 Psi0 的 LeRobot 格式,再计算统计量后微调训练。
小结
Psi0 的真机部署本质上是一个清晰的四层分工:相机服务器提供视觉、策略服务器输出"意图"、SONIC 控制器负责"落地"、RTC 客户端居中调度。理解了这 4 个进程的边界与启动顺序,你就能复现官方部署流,并进一步替换为自己的 checkpoint、指令或夹爪适配层(如 Dex1-1 双夹爪虚拟手映射,源码见 real/SONIC/psi0_vla_dex1_bridge.py)。
【免费下载链接】Psi0[RSS'26] Welcome to Psi-Zero, a Humanoid VLA towards Universal Humanoid Intelligence.项目地址: https://gitcode.com/gh_mirrors/ps/Psi0
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考