ROS系统由斯坦福大学开发作为科研的辅助工具。目前世界上使用的机器人操作系统有很多,但ROS系统的简便性、兼容性,以及开发工具、仿真工具和操作系统的融为一体,使其成为时下最火的机器人操作系统,广泛应用于智能机器人、视觉SLAM、自主导航等领域。
要想对ROS的概念有一个较为清晰的理解,需要从以下三个方面来入手:1.文件系统级;2.计算图级;3开源社区级。
今天主要讲述文件系统级。在此,笔者推荐读者先去其他博客或者github上下载一个完整的功能包,按照wiki说明亲自运行一个完整的功能。例如香港科技大学的Vins-Mono。不需要看源码,只需要运行起来,了解文件路径结构和组成部分即可。这样有利对文件系统级的理解。
文件系统级的概念如下:
1. 功能包:功能包是ROS系统中软件组织的基本形式,包含运行的节点以及配置文件等。
2. 功能包清单:这个清单是指明功能包的依赖关系、源文件编译标志信息等。功能包中的package.xml文件就是一个功能包清单。
3. 综合功能包:将几个功能包组织在一起,即可形成综合功能包。
4. 综合功能包清单:类似普通功能包清单.在格式上也有一定的限制。
5. 消息类型:ROS中节点之间发送消息时需要事先进行消息说明。ROS中提供了标准类型消息,也可以自行定义。消息类型的说明存储在功能包下的msg文件内。
6. 服务类型:定义了在ROS系统中由每个进程提供的关于服务请求和响应的数据结构。