天天看点

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

<b>2.1 理解ros文件系统级</b>

如果你刚接触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功能包的内容。你看到的是一系列文件和文件夹,包含代码、图片、启动文件、服务和消息。记住,截图显示文件的一个简短列表,真正的功能包会更多。