设计架构

整个RCP2.0架构如下。自下而上,主要分为Robot和AI模块,在Robot模块中,主要包括数据管理,动作,传感器等相关服务,向外部提供数据采集,关节动作执行,传感器数据等工具能力。这些服务可通过中间件与底层执行节点进行通信,也可通过模块引入的方式。在AI模块中,主要包括模型管理,模型推理,技能,Agent服务,向外部提供模型更新,模型推理,技能执行,工作流等相关服务。而这些Tool Server统一通过通信插件向外提供服务,通信插件包括可在WebSocket,MCP,ROS/LCM,用户可根据实际场景在公网,局域网或本地使用这些服务。另外也可针对特定的平台提供通信插件,比如针对乐云平台,会提供Rynn Plugin。

图 RCP 2.0详细架构 架构简化版参考如下,其中各个Server构成RCP核心能力(简称为RCP Core),通信插件(简称为Comm Plugin)和RCP Core通过BUS统一高效交互。一般一个机器人本体维护一个RCP Core单例和一组Comm Plugin。

图 RCP 2.0简化架构

RCP Core

RCP Core目前包括Action,Sensor,Policy,Skill,Device Monitor以及Data的服务。一方面对接本体侧的基本数据和信息,另一方面将相关的tools包装为统一数据类型,并支持不同的Comm Plugin接入。以下是各个服务的详细介绍。 Action Server ————– Action Server实现对执行器以及状态等封装,面向的机器人形态包括人形,单臂,双臂等。目前市场中广泛使用的机器人的接入方式如下:

厂商

产品

接入方式

宇树 unitree

G1

cyclone DDS/ROS2

加速进化

T1/K1

FastDDS/ROS2(提供SDK的方式接入)

睿尔曼

rm75/rm65/人形等

UDP(json)/ROS2

松灵

piper/COBOT MAGIC/移动底盘

ROS1/ROS2

四川人形

——

ROS2

考虑到以上厂商提供的接入方,Action Server在接入外部机器人时,主要考虑基于ROS/DDS的方式接入。另外考虑到兼容性,也会加入LCM的方式支持。由于中间件的引入,一方面会增加系统部署的复杂度,另一方面在不同平台上,面向本体的相关短消息传输会引入短暂的延迟,考虑到部分控制场景的实时性需求,也将会支持直接调用模块的方式,以消除这部分的延迟。

../_images/tst1.png

Sensor Server

Action Server实现对传感器的封装,包括视觉,触觉等。参考Action Server中统计结果,在货架机器人产品中,腰部、头部,腕部相机均已通过对应的接入方式实现,故Sensor Server也会支持ROS/DDS/LCM的方式接入。但由于在某些特定场景中,比如一些性能较低的运行平台,如果用户使用ROS接入平台,会引入较大的负载和延迟,所以针对这种场景,Sensor Server提供基于device port的方式接入,用户只需要提供相机接入的port即可,框架已经针对一些常见设备提供基本实现。如果用户使用的设备需要使用特别的驱动方式接入,则需要按照框架提供的模板编写设备操作类。

图 传感器接入方式

Infer Server

框架可支持多种模型,包括VLA和RL,在本地或远程进行推理。Infer Server将提供所支持模型的推理服务工具。推理服务在运行时,会通过BUS调用Action Server和Sensor Server提供的接口。

Model Manager Server

Model Manager Server提供模型的更新,校验等服务工具。Infer Server可根据Model info发起本地或者远程推理服务。

Skill Server

Skill Server提供面向原子技能的工具,工具依靠包括Infer Server和Model Manager Server提供的能力,也包括直接通过模块引入的其他工具,比如基于SLAM的建图和导航能力。

Agent Server

Agent Server提供基于工作流引擎驱动的工具。用户可将编排后的工作流更新到本地,Agent Server可根据统一的工作流协议对其进行解析并按照既定流程完成任务。在之后也将接入规划模型,形成更加智能的工作流驱动。在整个执行过程中,Agent可调用本地Server提供的工具,无论是抽象程度更高的Skill,或者是直接面向关节模组的角度设置。当与其他机器人本体通过安全建联后,Agent也可以调用其他机器人执行特定任务。

comm plugin

通信插件主要是将各个server提供的能力向外部暴露。每个server会提供标准格式的工具调用方式和描述信息,这些描述信息将会基于统一的序列化方式,包括JSON-RPC,Protobuf,通过各个传输协议进行通信。由于传输协议和序列化方式存在一定的绑定关系,目前我们推荐按照如下方式接入。