ROS1云课→02系统架构

Posted zhangrelay

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ROS1云课→02系统架构相关的知识,希望对你有一定的参考价值。

ROS1云课→01简介和配置


ROS1系统的架构主要被设计和划分成了三部分,每一部分都代表一个层级的概念:

  • 文件系统级(The Filesystem level)
  • 计算图级(The Computation Graph level )
  • 开源社区级(The Community level)

第一级是文件系统级。在这一级,通过一组概念来解释ROS1的内部构成、文件夹结构,以及工作所需的核心文件。

第二级是计算图级,体现的是进程和系统之间的通信。在相关小节中,了解ROS的各个概念和功能,包括建立系统、处理各类进程、与多台计算机通信等。

第三级是开源社区级,解释一系列的工具和概念,其中包括在开发人员之间如何共享知识、算法和代码。这个层级非常重要,正是由于开源社区的大力支持,ROS1系统才得以快速成长。

这部分概念ROS1/2非常相似


一个ROS1程序的不同组件要被放在不同的文件夹下。这些文件夹是根据功能的不同来对文件进行组织的:

  • 功能包(Packages):功能包是ROS1中软件组织的基本形式。一个功能包具有用于创建ROS1程序的最小结构和最少内容。它可以包含ROS1运行的进程(节点)、配置文件等。
  • 功能包清单(Package Manifests):功能包清单提供关于功能包、许可信息、依赖关系、编译标志等的信息。一个包的清单由一个名为package.xml的文件管理。
  • 综合功能包(Metapackages):如果你将几个具有某些功能的功能包组织在一起,那么你将会获得一个综合功能包。在ROS Fuerte中,这种包的组织形式被称为功能包集(Stack)。为了保持ROS1简洁,功能包集被移除,现在使用综合功能包实现这个功能。在ROS1系统中,存在大量不同用途的综合功能包,例如导航功能包集。
  • 综合功能包清单(Metapackage manifests):综合功能包清单(package.xml)类似普通功能包但有一个XML格式的导出标记。它在结构上也有一定的限制。-又称为元功能包
  • 消息类型(Message(msg)types):消息是一个进程发送到其他进程的信息。ROS系统有很多的标准类型消息。消息类型的说明存储在my_package/msg/MyMessageType.msg中,也就是对应功能包的msg文件夹下。
  • 服务类型(Service(srv)types):服务描述说明存储在my_package/srv/MyServiceType.srv中,定义了在ROS中由每个进程提供的关于服务请求和响应的数据结构。

使用roscd到turtlesim功能包:

roscd turtlesim

使用tree,查看其文件组织形式:

如上是一个在ros中的功能包,如果是源码功能包,还包括src等程序代码如下: 

 

案例可以参考:

zhangrelay / ros_book · GitCode


^_^


以上是关于ROS1云课→02系统架构的主要内容,如果未能解决你的问题,请参考以下文章

ROS1云课→03工作空间

ROS1云课→03工作空间

ROS1云课→08基础实践(CLI命令行接口)

ROS1云课→08基础实践(CLI命令行接口)

ROS1云课→32愉快大扫除

ROS1云课→32愉快大扫除