ROS的三种通信方式:话题(topic)、服务(service)、动作(action)
话题类型通信方式:
话题媒介一般以/chatter表示。发布话题则需要对消息类型和内容进行定义: std_msgs属于官方定义的标准的消息类型类,作为作用域,同时也可以自定义消息类型。
服务类型通信方式:
节点2作为一个提供服务的函数调用来进行传递和执行。服务类型中的消息内容包装一般需要根据自己的参数进行处理,官方的包装很难满足各种各样的需求。
服务消息内容的包装如图所示,‘---’来对请求信息和响应信息进行区别。
动作类型通信方式:
消息类型的定义与服务类型相似。但是在中间过程会额外给予反馈,而不同于服务类型的通信只有单次响应结果。
消息的自定义方法如上,需要用两次‘---’来进行分割 传入,反馈和结果三种信息。
通信过程以及注册:
主要分为两个部分,一是进行连接的建立,二是通过网络协议进行传输。
1、对主节点发布注册消息,比如:A表示我想要发送一个话题1,B表示我要订阅一个话题1。此时注册完成,主节点判定建立连接成功。