ROS 系统由多个独立节点-nodes组成,每个节点都使用发布/订阅-publish/subscribe消息模型与其他节点通信。节点是如何做到这一点的?通过发布和订阅主题。
假设我们的机器人上有摄像头。我们希望能够从相机上、机器人本身和另一台笔记本电脑上看到图像。
在我们的示例中,我们有一个负责与相机通信的相机节点、处理图像数据的机器人上的图像处理节点以及一个在屏幕上显示图像的图像显示节点。首先,所有节点都已向 Master 登记注册。将 Master 视为查找表,所有节点都前往查找发送消息的确切位置。
在向 Master 登记注册中,相机节点指出,它将发布一个名为/image_data的主题(例如)。其他两个节点都注册它们被订阅到主题/image_data。
因此,一旦相机节点从相机接收到某些数据,它就会将 /image_data 消息直接发送到其他两个节点。
如果希望图像处理节点在特定时间从相机节点请求数据,可以通过 ROS 实施服务。
节点可以向 ROS 主机注册特定服务,就像它注册其消息一样。在下示例中,图像处理节点首先请求/image_data,相机节点从摄像机收集数据,然后发送回复。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)