ROS中的核心概念
一、ROS中的通信机制
不同节点有不同的功能,不同节点之间通过topic进行通信。
二、节点与节点管理器
1. 节点(Node)——执行单元
执行具体任务的进程、独立运行的可执行文件
2. 节点管理器(ROS Master) —―控制中心
跟踪和记录话题/服务通信,辅助节点相互查找、建立连接。
三、话题通信
1. 话题(Topic)—―异步通信机制(不知道发布者和订阅者之间的时效性,可能我发了一个消息,很长时间之后订阅者才接收到,类似于写信)
使用发布/订阅模型,数据由发布者传输到订阅者,同一个话题的订阅者或发布者2022-11-07-20-58-26.png。
2. 消息(Message)—―话题中传输的数据
使用编程语言无关的**.msg**文件定义,编译过程中生成对应的代码文件。
上图可以看出,话题是一个单项的通信机制,一个发布者可以有多个订阅者。
四、服务通信
1. 服务(Service) ——同步通信机制(请求和应答模式,类似于打电话)
使用客户端/服务器(C/S)模型,客户端发送请求数据,服务器完成处理后返回应答数据。
使用编程语言无关的**.srv**文件定义请求和应答数据结构,编译过程中生成对应的代码文件。
服务是双向通信机制,有请求也有回复,且只来往一次,一个发布者可以有多个订阅者。
二者对比区别
五、参数
1. 参数(Parameter)——全局共享字典
可通过网络访问的共享、多变量字典
节点使用此服务器来存储和检索运行时的参数
适合存储静态、非二进制的配置参数,不适合存储动态配置的数据
六、功能包(Package)
ROS软件中的基本单元,包含节点源码、配置文件、数据定义等
七、功能包清单(Package manifest)
记录功能包的基本信息,包含作者信息、许可信息、依赖选项、编译标志等
八、元功能包(Meta Packages)
组织多个用于同一功能的功能包