学习ROS之前必须掌握的重要概念。主要根据古月居视频教程整理出来的干货。本人是干货爱好者。
文章目录
前言
对于第一次接触ROS的童鞋来说,ROS是通信机制还是比较特别的。其中包含很多概念,以及其中的实现机制,最好在学习之初就能够很好的理解它。
一、ROS中的通信机制:松耦合分布式通信
>节点(Node) --执行单元
执行具体任务,可独立运行独立完成的可执行文件;
不同节点可使用不同的编程语言,可分布运行在不同的主机;
节点在系统的名称必须是唯一的;
>节点管理器(NodeMaster) --控制中心
为节点提供命名和注册服务
跟踪和记录话题、服务通信,帮助节点相互查找,建立连接;
提供参数服务器,各个节点可以储存和检索运行时的参数。
二、两种通信方式:话题通信和服务通信
1.话题通信:----异步通信机制,无反馈
话题(Topic)
节点间用来传输数据的重要主线;
使用发布/订阅模型,数据由发布者传输到订阅者;
发布者和订阅者可以不是一对一;
消息(Message)
具有一定的类型和数据结构,包括ROS提供的标准类型和用户自定义类型;
使用编程语言无关的.msg文件定义,编译过程中生成对应的代码文件。
2.服务通信 -----同步通信机制,有反馈
服务(Service)
使用客户端/服务器(C/S)模型,客户端发送请求数据,服务器完成处理后返回应答数据;
使用编程语言无关的.srv文件定义请求和应答数据结构,编译过程中生成对应的代码文件。
3.话题通信和服务通信的对比
4.参数(Parameter) --全局共享字典
可通过网络访问的共享,多变量字典;
节点通过节点管理器来储存和检索运行时的参数;
不适合存储动态配置的数据;