1.3.2 计算图层级
ROS计算图是一个基于点对点的网络,它将所有信息一起处理。ROS图的概念包括节点、话题、消息、节点管理器、参数服务器、服务和数据包,具体如图1.6所示。
图1.6 ROS计算图层级
图1.6展示了ROS计算图中的各种概念。以下是对每个概念的简单描述:
·节点:ROS节点是使用ROS API相互通信的处理过程(即功能模块)。机器人可能有许多节点来执行计算。例如,自主移动机器人可以具有用于硬件接口、读取激光扫描以及定位和地图构建的节点。我们可以使用roscpp和rospy等ROS客户端库创建ROS节点,我们将在1.4节中讨论这些。
·节点管理器:ROS节点管理器(后简称master)作为中间节点工作,帮助在不同的ROS节点之间建立连接。master拥有在ROS环境中运行的所有节点的所有细节。它可以在节点之间交换各类信息,以便在节点之间建立连接。交换相应信息后,两个ROS节点之间即可开始通信。
·参数服务器:参数服务器在ROS中具有重要作用。节点可以在参数服务器中存储变量并设置其隐私权限。如果参数具有全局作用域,则其他所有节点都可以访问它。ROS参数服务器与master一起运行。
·消息:ROS节点可以通过多种方式相互通信。在各种通信方式中,节点均以ROS消息的形式发送和接收数据。ROS消息是ROS节点用来交换数据的数据结构。
·话题:在两个ROS节点之间通信和交换ROS消息的方法之一称为ROS话题。话题是使用ROS消息交换数据的命名总线。每个话题都有一个特定的名称,一个节点将数据发布到一个话题,另一个节点可以通过订阅该话题来读取数据。
·服务:服务是另一种通信方法,其功能类似于话题。话题使用发布或订阅交互,而服务使用请求或回复方法。一个节点将充当服务提供者,在其中运行服务例程,而客户端节点从服务器请求服务。服务器将执行服务例程并将结果发送给客户端。客户端节点将会等待服务器响应并提供结果。
·数据包:数据包是ROS提供的一个有效工具,用于记录和回放ROS话题。当开展机器人相关研究时,可能有些情况下我们需要在没有实际硬件的情况下工作。使用rosbag,我们可以记录传感器数据,并将数据包文件复制到其他计算机上,通过回放来检查数据以及应用程序的执行结果。