1.2 理解ROS文件系统级别

ROS不仅仅是一个开发框架。我们可以将ROS称为元操作系统,因为它不仅提供工具和库,还提供类似操作系统的功能(如硬件抽象、包管理)和开发人员工具链。与真实的操作系统一样,ROS文件以特定的方式组织在硬盘上,如图1.1所示。

以下是对文件系统中每个板块的解释:

功能包:ROS功能包(也叫软件包,或者简称包)是ROS软件的核心元素,包含一个或多个ROS程序(节点)、库、配置文件等,它们作为一个单元组织在一起。包是ROS软件中的原子构建和发布项。

功能包清单:功能包清单文件位于包内,包含有关包、作者、许可证、依赖项、编译标志等的信息。ROS包中的package.xml文件就是清单文件。

图1.1 ROS文件系统级别

元功能包:元功能包(简称元包)指的是一个或多个可以松散分组的相关包。原则上,元包是不包含任何源代码或通常可以在包中找到的典型文件的虚拟包。

元功能包清单:元功能包清单与功能包清单类似,区别在于它可以将包作为运行时的依赖项包含在其中,并声明一个导出(export)标记。

消息(.msg:我们可以在包内的msg文件夹中自定义消息(my_package/msg/MyMessageType.msg)。消息文件的扩展名是.msg。

服务(.srv):回复和请求数据类型可以在包内的srv文件夹中定义(my_package/srv/MyServiceType.srv)。

存储库:大多数ROS包都是使用版本控制系统(VCS)维护的,比如Git、SubversionSVN)或Mercurialhg)。放在VCS上的一组文件称为存储库。

图1.2所示是我们将要创建的功能包的文件和文件夹。

接下来将讨论ROS包的所有文件和目录的目标。

图1.2 示例包中的文件列表