核心概念
1.ROS介绍
1.1 什么是ROS
- ROS全称 Robot Operating System(机器人操作系统), 取首字母即为ROS,是一个适用于机器人的开源的元操作系统,起源于2007年斯坦福的项目,后经过无数研究人员的共同努力,其核心思想与基础软件包不断完善。到现在已经发行过10余个版本,每个版本的维护周期为5年,当前最新版本为ROS Noetic Ninjemys,但由于我的操作系统为Ubuntu18.04,所以我选择使用2018年发行的ROS Melodic Morenia。
1.2 ROS能干嘛
通过ROS,你能进行节点间的通讯,能开发新的功能,也能调用别人的应用功能,还能和其他ROS使用者相互交流,共同完善扩展其功能。
总而言之,ROS是集通信机制、开发工具、应用功能和生态环境于一身的操作系统,大大提高了机器人研发的软件复用率。
2.ROS核心概念
2.1 通信机制
ROS采用的是松耦合分布式通信,松耦合的特点使得客户端和远程服务之间并不知道对方是如何实现的,两者之间的通讯由消息架构所决定。如果消息满足约定的架构,客户端或服务的实现就可以根据需要进行更改。
- 节点和节点管理器概念
节点是执行单元,是执行具体任务的进程、独立运行的可执行文件,可使用不同编程语言,可分布在不同的主机,但其名称在系统中是唯一的。
节点管理器是控制中心,控制节点的命名与注册,可跟踪记录通信,辅助节点相互查找、建立联系。 - 话题通信
话题(Topic)是一种异步通信机制,使用发布(Publisher)/订阅(Subscriber)模型,数据由发布者传输到订阅者,同一话题的的订阅者或发布者可以不唯一。
消息(Message)是传输数据,具有标准或自定义的数据类型和数据结构,使用前需要定义 .msg 文件,编译生成对应文件。