本章节将以Pi0模型为例,为您介绍该模型的仿真与端侧运行流程。
VLA模型与机器人本体存在强耦合关系,表现为VLA模型的输入为机器人本体当前状态的视觉、关节传感器数据,模型的输出改变机器人本体状态,整体是一个不断交互更新的过程。 为方便在S600上体验Pi0,demo采用S600端侧推理结合PC仿真的方式完成,主要分为两个部分:
在PC部署RoboTwin仿真环境,用于得到模型输入和执行模型输出,以及观测Pi0模型推理效果。
在S600部署Pi0模型,用于端侧推理并统计耗时。
二者之间的通信通过以太网完成,S600需能通过网络连接至PC。
S600与PC仿真交互流程示意:
常见问题
尝试export CUROBO_DISABLE_CUDA_EXT=1然后执行
若您使用CUDA13.0及以上版本,需在执行uv sync后更新torch版本,在openpi虚拟环境中执行
修改RoboTwin/task_config/config.yaml配置文件,如下所示:
需要您重点关注的参数:
进入RoboTwin/policy/pi0目录运行指令:
阅读 端侧运行准备 章节做好端侧环境配置。
在oellm_runtime目录中,Pi0示例使用到的文件和文件夹如下所示:
端侧运行配置文件{model}_config.json的配置参数及其说明:
| 参数名称 | 参数说明 | 可选/必选 |
|---|---|---|
siglip_hbm_path | 参数描述:vision模型路径 参数类型: string | 必选 |
paligemma_hbm_path | 参数描述:language模型路径 参数类型: string | 必选 |
action_hbm_path | 参数描述:action模型路径 参数类型: string | 必选 |
siglip_bpu_core | 参数描述:vision模型使用的bpu核, 设定多个值时按照 [0,1,2,3]填写参数类型: [int] | 必选 |
paligemma_bpu_core | 参数描述:language模型使用的bpu核, 设定多个值时按照 [0,1,2,3]填写参数类型: [int] | 必选 |
action_bpu_core | 参数描述:action模型使用的bpu核, 设定多个值时按照 [0,1,2,3]填写参数类型: [int] | 必选 |
tokenizer_dir | 参数描述:Tokenizer配置文件路径 参数类型: string | 必选 |
norm_stats_path | 参数描述:norm stats文件路径 参数类型: string | 必选 |
server_ip | 参数描述:端口号,需和仿真侧config.yaml配置端口对齐参数类型: int默认配置: 8888 | 可选 |
stage | 参数描述:设定运行模式,通常无需修改,建议保持为6参数类型: int | 必选 |
preproc | 参数描述:是否在端侧做预处理,建议设定为true参数类型: bool | 必选 |
postproc | 参数描述:是否在端侧做后处理,建议设定为true参数类型: bool | 必选 |
fs | 参数描述:动作滤波的采样频率,可根据动作效果调整,0为关闭滤波 参数类型: double | 必选 |
pi0_config.json参考配置示例:
示例提供运行脚本run_pi0.sh,运行指令参考:
该脚本内容如下:
可执行文件的参数信息:
在pi0/RoboTwin/eval_result目录还会生成机械臂抓取过程的完整视频,以下为视频截图展示:
