ROS自学笔记:基本概念

节点
1 执行具体任务的可执行文件
2 不同节点可分布式运行在不同设备上,可以使用不同编程语言
3 节点不可重名

节点管理器(ROS Master)
1 为节点提供命名和注册服务
2 记录话题和服务通信,辅助节点相互查找,连接
3 提供参数服务器

注:ROS里通信使用广播模型,因此包含ROS Master这样一个总管理服务器。这一点和ROS2里的DDS模型有很大区别

话题
1 单向异步通信机制
2 使用发布者/订阅者模型,同一话题发布者和订阅者不唯一
消息
1 话题数据数据结构,使用.msg文件定义
2 系统里提供了很多现成消息接口,也可以自定义消息接口。消息文件不指定编程语言,在编译时会自动生成对应语言文件

服务
1 双向同步通信机制
2 使用客户端/服务器模型,客户端发送服务请求,服务器端进行应答。可以有多个客户端,但只有一个服务器
3 使用.srv文件作为通信接口

注:话题通信由于是异步通信,设有缓冲区以暂时储存信息。而服务由于是阻塞型同步通信,没有缓冲区

参数
1 存储在ROS Master里面的全局字典
2 节点可以访问ROS Master获取参数,参数最好用于存储静态数据而非动态数据,因为一个节点修改参数后,其他节点在访问该参数之前不会跟着更新

文件系统
1 功能包(package):完成特定功能的基本单元,包含节点源码,配置文件,数据定义等
2 元功能包(meta package):包含多个功能包的大型工程
3 功能包清单(package manifest):对功能包描述(类似于ReadMe文件)

你可能感兴趣的:(实习记录,ROS)