注意:ROS并不是真正意义上的操作系统,只能算是中间件。
ROS具有很强的代码可复用性和硬件抽象性能,采用分布式架构,通过各功能独立的节点实现消息传递任务的分层次运行,从而减轻实时计算的压力。同时ROS为常用的机器人和传感器提供了硬件驱动接口。
ROS 本身是基于消息机制的,这样的做法使得开发者可以根据软件的功能把软件拆分成各个模块。ROS底层会识别某一个消息的使用者,然后把消息数据分发给他们。
ROS 1.0 的主要部分主要有三种:ROS Master、ROS Node 和 ROS Service。
通信流程:首先节点会向master节点发布(advertise)或者订阅(subscribe)主题。当连接创建后,下游节点会向上游节点TCP server发布连接请求,连接创建后上游节点消息会通过连接送至下游节点。
注:ROS因为存在消息流,存在上下游的概念,可以理解为数据的处理步骤/流程。
ROS 2.0 主要是为了让ROS符合工业级的运行标准,采用了DDS这个工业级别的中间件股则可靠的额通信。
注:ROS 2.0 还是一个开发中的框架,还需要时间。
ROS1 存在一些问题:性能不高、信息传输安全性不高、有一个主节点,主节点崩溃,系统崩溃,比较脆弱。这些问题在ROS2有得到解决。