ROS 学习笔记(一)
ROS的核心概念理解
一、通讯机制
节点(Node)与节点管理器(ROS Master)
节点(执行单元):
-
执行具体任务的进程,独立可自主执行的文件;
-
不同节点可用不同编程语言,可分布式运行在不同的主机;
-
节点在系统中的名称是唯一的。
节点管理器(控制中心): -
可为每个节点提供命名和注册服务;
-
跟踪和记录话题/服务通讯,辅助建立节点之间的联系;
-
提供参数服务器,节点可使用此服务器对运行时的参数进行储存和检索。[在这里插
话题与通讯(msg)(异步通讯)
话题: -
节点之间传输数据的总线;
-
使用发布/订阅模型,数据由发布者传输到订阅者,且同一个话题可以有多个发布者或订阅者。
消息: -
具有一定的类型和数据结构,包括ROS提供的默认类型和用户自定义类型;
-
使用与编程语言无关的.msg文件,编译过程会生产对应代码文件。
服务通讯(同步通讯)
服务:
- 使用客户端/服务器(C/S)模型,客户端发送请求数据,服务器处理数据后返回应答数据;
- 使用与编程语言无关的.srv文件定义请求与应答数据结构,编译过程会产生对应代码文件。
参数: - 可通过网络共享,访问的多变量字典;
- 节点通过此服务器来储存,检索运行时的参数;
- 适合储存静态,非二进制的配置参数,不适合储存动态配置数据。
二、文件系统
- 功能包:ROS基本单元,包含节点源码,配置文件,数据定义等;
- 功能包清单:记录功能包的信息,包含作者信息,许可信息,依赖选项,编译标志等;
- 元功能包:由多个用于统一目的的功能包组成。