设计思想

RCP 2.0相比于RCP 1.0做了如下修改: 1.更加明确各个server相互之间的通信方式; 2.将所有服务模块独立封装,并对外提供统一的服务,服务的提供方式可根据通信方式适配; 3.将协议和通信更加明确地分离,方便开发者从不同层级使用或修改RCP; 4.调整目录架构,匹配新的设计思想,使开发人员更好地理解代码架构。 关于第2点修改,可以类比典型的操作系统架构。典型操作系统的功能是对底层硬件进行系统性的管理,并在此基础上提供标准的系统调用接口——POSIX,广泛使用的操作系统都会遵循此接口协议,使得上层的应用可以比较方便地移植。当然,比如Windows,也针对POSIX的接口标准进行了一些修改。APP通过系统调用的方式去操作硬件资源。在现代机器人系统中,RCP需要管理的资源包括机器人本体,相关联的传感器,以及模型等,RCP对这些资源进行封装后对外提供Tool List,Tool涉及到多个模块,包括action,sensor,model,data,skill等,Tool对外提供的调用方式为Comm Plugin,它是一系列可选的通信方式,包括MCP,WebSocket等等,上层的应用或者模型可通过合适的接入方式去驱动物理世界的行为。

图 传统OS架构和现代机器人OS架构