ROS1云课→02系统架构

举报
zhangrelay 发表于 2022/08/27 00:53:23 2022/08/27
【摘要】 ROS1云课→01简介和配置 ROS1系统的架构主要被设计和划分成了三部分,每一部分都代表一个层级的概念: 文件系统级(The Filesystem level)计算图级(The Computation Graph level )开源社区级(The Community level) 第一级是文件系统级。在这一级,通过一组概念来解释...

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


^_^


文章来源: zhangrelay.blog.csdn.net,作者:zhangrelay,版权归原作者所有,如需转载,请联系作者。

原文链接:zhangrelay.blog.csdn.net/article/details/126533483

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。