动作原语#

planner 决定执行什么操作,而 动作原语 决定如何执行。每个原语 都会将一次工具调用(如 pi0_pickmove_torotate_wrist)转换成一段可由环境直接执行的动作。

RPent 内置两类原语:

  • VLA 策略:VLA 模型运行在独立的 vla_server 进程中,将 GPU 权重与物理引擎隔离。toolkit 通过各机器人对应的 model client 调用模型,例如 Pi0.5(LIBERO)和 RLDX-1(RoboCasa)。

  • 脚本化原语:用于执行 move_torotate_wristreleaseback_project 等确定性动作。这类原语位于 agent 侧,不需要加载 VLA 权重,并通过 RPC 调用 env_server

各机器人的具体配置,例如使用哪个 VLA、checkpoint 路径以及对外提供的工具, 请参考对应的机器人页面:LIBERORoboCasaFrankaDual FrankaSO-101

各机器人使用的 VLA#

环境 / 机器人

默认 VLA

传输协议

服务实现

LIBERO (仿真)

Pi0.5

HTTP 或 socket RPC

rpent/robots/components/pi05_vla_server.py

RoboCasa (仿真)

RLDX-1

HTTP 或 socket RPC

robots/robocasa/vla_server.py

Franka (真机)

Pi0.5 或 RLDX-1 (依任务而定)

HTTP 或 socket RPC

robots/franka/vla_server.py (规划中)

SO-101 (真机)

RLDX-1 (依任务而定)

HTTP 或 socket RPC

robots/so101/vla_server.py (规划中)

VLA server 通过统一的 predicthealthz 方法提供服务,并支持 HTTP(JSON)和 socket(pickle-framed)两种传输方式。直接启动 VLA server 时,可通过服务端的 --transport {http,socket} 选项选择传输方式,默认为 http。 设计理由参见 添加新机器人

独立服务、远程 endpoint 和跨运行复用模型的方法参见 远程服务

新增原语类别#

如果要接入的既不是 VLA 也不是脚本化运动 —— 比如一个 WAM (World Action Model)、Diffusion Policy 或 MPC 原语 —— 参见 添加动作原语