zl程序教程

您现在的位置是:首页 >  硬件

当前栏目

ROS机器人程序设计(原书第2版)2.1 理解ROS文件系统级

机器人 理解 程序设计 文件系统 2.1 ros 原书
2023-09-11 14:16:04 时间

2.1 理解ROS文件系统级

如果你刚接触ROS,无论是准备使用ROS系统还是准备开发ROS项目,你都会觉得ROS中的各种概念非常奇怪。而一旦你驾轻就熟,那么这些概念就会变得熟悉了。

 

与其他操作系统类似,一个ROS程序的不同组件要被放在不同的文件夹下。这些文件夹是根据功能的不同来对文件进行组织的:

功能包(Package):功能包是ROS中软件组织的基本形式。一个功能包具有用于创建ROS程序的最小结构和最少内容。它可以包含ROS运行的进程(节点)、配置文

件等。

功能包清单(Package Manifest):功能包清单提供关于功能包、许可信息、依赖关系、编译标志等的信息。一个包的清单由一个名为package.xml的文件管理。

综合功能包(Metapackage):如果你将几个具有某些功能的功能包组织在一起,那么你将会获得一个综合功能包。在ROS Fuerte中,这种包的组织形式被称为功能包集(Stack)。为了保持ROS简洁,功能包集被移除,现在使用综合功能包实现这个功能。在ROS系统中,存在大量不同用途的综合功能包,例如导航功能包集。

综合功能包清单(Metapackage manifest):综合功能包清单(package.xml)类似普通功能包但有一个XML格式的导出标记。它在结构上也有一定的限制。

消息类型(Message(msg)type):消息是一个进程发送到其他进程的信息。ROS系统有很多的标准类型消息。消息类型的说明存储在my_package/msg/MyMessageType.msg中,也就是对应功能包的msg文件夹下。

服务类型(Service(srv)type):服务描述说明存储在my_package/srv/MyServiceType.srv中,定义了在ROS中由每个进程提供的关于服务请求和响应的数据结构。

在右侧的截图中,可以看到turtlesim功能包的内容。你看到的是一系列文件和文件夹,包含代码、图片、启动文件、服务和消息。记住,截图显示文件的一个简短列表,真正的功能包会更多。



一个包含功能包、可编辑源文件或编译包的文件夹。 同时编译不同的功能包时非常有用,并且可以用来保存本地开发包。