主题
主题是ROS 2提供的三种主要接口样式之一。主题应该用于连续的数据流,如传感器数据、机器人状态等。
如前所述,ROS 2是一个强类型的匿名发布/订阅系统。让我们分解这句话并对其进行更详细的解释。
发布/订阅
发布/订阅系统是一种数据生产者(发布者)和数据消费者(订阅者)共存的系统。发布者和订阅者通过"主题"的概念知道如何联系彼此,主题是一个共同的名称,以便实体能够找到彼此。例如,当您创建一个发布者时,必须为它提供一个主题名称的字符串;订阅者也是如此。在任何特定主题上可能有零个或多个发布者和零个或多个订阅者。当任何一个发布者向主题发布数据时,系统中的所有订阅者都会接收到数据。这个系统也被称为"总线",因为它在某种程度上类似于电气工程中的设备总线。总线的概念是ROS 2成为一个强大而灵活的系统的一部分。发布者和订阅者可以根据需要添加或移除,这意味着调试和内省是系统的自然扩展。例如,如果您想要记录数据,可以使用``ros2 bag record``命令。在内部,``ros2 bag record``会创建一个新的订阅者来订阅您告诉它的任何主题,而不会中断数据流向系统的其他部分。