ROS Master

    xiaoxiao2023-09-20  29

    Master名称service示例

    例如,我们有两个节点;一个摄像机节点和一个Image_viewer节点。一个典型的事件序列会从摄像头节点开始,通知Master它想要发布主题为“images”的图片:

     

                                                                

    现在,Camera将图像发布到“images”主题,但是没有人订阅该主题,所以实际上没有发送任何数据。现在,Image_viewer想订阅主题“images”,看看是否有一些图像:

      

                                                                             

    既然主题“images”有发布者和订阅者,主节点就会通知Camera和Image_viewer彼此的存在,以便它们可以开始相互传输图像:

                                                                                   

    ROS Master具体解析:

    master,顾名思义,它就是大师一般的存在。在ROS 1.0版本中(当前主流版本),master是整个ROS运行的核心,它主要的功能就是登记注册节点、服务和话题的名称,并维护一个参数服务器。没有它你就甭想启动任何一个节点,roscore就是用来启动master的。

    那么,这个核心在干什么呢?

    他在抄名单、给人指路,顺带记录点个人隐私。

    一旦master被启动,ROS的网络中就有了一位在背后默默抄名单的人。比如,节点A启动了,master就在小本本上记下A的名字,节点B也是一样,这时候,A要订阅B的话题,就问master,谁是B?master给A指了指方向,那个角落里翻白眼的就是,这时A找到了B,话题就联系上了,master也就完成了一次指路。

    同样的,master也在记录服务和话题的名称,确保人群里别重名。然后呢,master还在维护一个参数服务器,这个服务器记录各个节点的一些内部数据,比如A节点在程序里写道,请将num这个变量上传到参数服务器,A启动后,master的参数服务器上就有了num,你能够在不关闭A节点的情况下修改num,挺好吧。这就是master。

    Master能不启动吗?可以,此时哪个ROS节点也甭想启动。

    Master能启动了再关吗?可以,此时,已经启动的节点和建立的话题安然无恙,但后续新节点和新话题甭想再建立了。

    Master自己宕机了怎么办?太常见了,习惯就好,重来吧。

    ROS可以不要master吗?可以,ROS2.0已经不要master了,但ROS1.0版本下,master永远是你master。

     

     

    最新回复(0)