ROS文件系统概述


这一篇我们来简单了解一下组成ROS的文件系统。

1 ROS Package的组成

当我们创建好工作空间后,对于每一个模型都是一个Package。组成这个ROS Package的文件通常包括:config文件夹,launch文件夹,meshes文件夹,src文件夹,scripts文件夹,urdf文件夹,worlds文件夹,package.xmlCMakeLists.txt。接下来依次予以说明。

  • config文件夹。该文件夹下所有文件的后缀名为.yaml,这种格式的文件将机器人控制器与每个关节链接起来。关节状态控制器将发布手臂的关节状态,并且关节位置控制器可以为每个关节接收目标位置并可以移动每个关节。
  • launch文件夹。该文件夹下所有文件的后缀名为.launch,我们称之为launch(启动)文件。launch文件是一种基于XML格式的文件。当我们将多个节点(node)写在一个launch文件中,就可以用roslaunch来启动,而不用通过Terminal一个一个来启动。
  • meshes文件夹。该文件夹下是模型用到的一些外部设备。例如,sensor中的xtion_pro_live是一个图像传感器。然后将这些东西集成起来写在urdf文件中。
  • src文件夹。此文件夹用来保存一些cpp源码。
  • scripts文件夹。此文件夹保留可执行的Python脚本。
  • urdf文件夹。该文件下的文件为.urdf.xacro两种格式。urdf文件描述了系统模型的组成。xacro文件则是urdf文件的另一种精简形式,但是据说ros对xacro文件的支持更好。在一些工具的帮助下,xacro文件可以转为urdf文件。
  • worlds文件夹。该文件下的文件是整体的世界模型。
  • package.xml文件。该文件是元软件包(metapackages),它是ROS中的专用软件包,仅包含一个文件。这是此软件包的软件包清单文件。
  • CMakeLists.txt。编译该包需要的依赖项。

除上述介绍的文件组成外,可能还会包含:

  • urdf.rviz。新版的RViz配置文件。
  • urdf.vcg。旧版的RViz配置文件。如果在当前版本的launch文件中使用这种格式的文件,会报错:ERROR: the config file ‘/home/yrm/smartcar/src/smartcar_description/urdf.vcg’ is a .vcg file, which is the old rviz config format.
  • README.md。该文件是模型包的说明文档。

2 ROS文件系统(ROS File System):

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

01

上图中的文件系统解释如下:

  • Packages(软件包):ROS软件包是ROS软件的最基本单元。它们包含一个或多个ROS程序(节点nodes),库,配置文件等,它们一起组织为一个单元。 Packages是ROS软件中的基本构建项目和发布项目。软件包包含有关软件包,作者,许可证,依赖项,编译标志等的信息。
  • Packages manifest(包清单):包含有关软件包,作者,许可证,依赖项,编译标志等的信息。 ROS软件包中的package.xml文件是该软件包的清单文件。
  • Metapackages(元包):元包是指一个或多个相关的程序包,可以将它们松散地分组在一起。 原则上,元包是虚拟包,不包含任何源代码或通常在包中找到的典型文件。
  • Metapackages manifest(元软件包清单):元软件包清单类似于软件包清单,不同之处在于它可能在其中包含作为运行时依赖项的软件包并声明一个导出标签。
  • Messages(.msg):消息。ROS消息是从一个ROS进程发送到另一个ROS进程的一种信息。 我们可以在包(my_package / msg / MyMessageType.msg)的msg文件夹内定义自定义消息。 消息文件的扩展名是.msg。
  • Services(.srv):服务。ROS服务是一种请求/答复交互进程之间。 可以在包内的srv文件夹中定义回复和请求数据类型(my_package / srv / MyServiceType.srv)。
------ 本文结束感谢您的阅读------
Donate a cup of cola?