ros学习之ros文件系统级

一个ROS程序的不同组件要放在不同欧冠你的文件夹下,这些文件夹根据功能的不同来对文件组织

(1)、功能包(package)

功能包构成ROS中的原子级,一个功能包具有创建ROS程序的最小结构和最少内容。他可以包含ROS运行时进程(节点)、配置文件等,

由一种特定结构的文件和文件夹组合,结构有

·include/package_name/:此目录包含了需要的库的头文件。
·msg/:如果开发需要非标准的消息,请把文件放在这里。
·scripts/:其中包括Bash、Python或任何其他脚本语言的可执行脚
本。
·src/:这是存储程序源文件的地方。你可能会为节点创建一个文件
夹或按照希望的方式组织它。
·srv/:这表示服务(srv)类型。
·CMakeLists.txt:这是CMake的生成文件。
·package.xml:这是功能包清单文件
打开一个package.xml文件,可以看到包的名称、依赖关系等信息。 功能包清单的作用就是为了方便安装和分发这些功能包。
在package.xml文件中使用的两个典型标记是<build_depend>和 <run_depend>。
<build_depend>标记会显示当前功能包安装之前必须先安装哪些功 能包。这是因为新的功能包会使用其他包的一些功能。
<run_depend>标记显示运行功能包中代码所需要的包

(2)、功能包清单(package manifest)

功能包清单提供关于功能包、许可证、依赖关系、编译标志等信息。包清单中有一个名为package.xml的文件管理

(3)、元功能包(metapackage)

元功能包是一些只有一个文件的特殊 包,这个文件就是package.xml,用于组织多个用于同一目的功能包。

(4)、消息类型(msg)

消息是ROS节点之间发布/订阅的通信消息,可以使用ROS提供的消息类型,也可以使用.msg文件在功能包的msg文件夹下自定义需要的消息类型

消息类型必须具有两个主要部分:字段(field)和常量 (constant)。字段定义了要在消息中传输的数据类型,例如int32、 float32、string或之前创建的新类型,如叫作type1和type2的新类型。常 量用于定义字段的名称。

(5)、服务类型(service)

服务类型定义了ROS服务器/客户端通信模型下的请求和应答数据类型,可以使用ROS系统提供的服务类型,也可以使用.srv文件在功能包的srv文件夹中定义

ROS中有一些在服务上执行某些操作的工具。rossrv工具能输出服 务说明、.srv文件所在的包,并可以找到使用某一服务类型的源文件。 如果你想要在ROS中创建一个服务,可以使用服务生成器。这些工 具能够从基本的服务说明中生成代码。只需要在CMakeLists.txt文件中加 一行gensrv()命令。

(6)、代码

放置功能包节点源代码的文件夹

原文地址:https://www.cnblogs.com/zhongllmm/p/14761461.html