• 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


    ^_^


  • 相关阅读:
    关于windows下ffmpeg视频(libx264,h264_qsv,h264_cuvid,h264_amf)编码参数纪要
    NC65根据sql读取缓存数据
    shell脚本基础教程,快速上手
    第一天 关于项目遇到的问题和缺少的知识点
    C# 圆弧与扇形
    【Linux】传输层协议:TCP/UDP
    python基础(五)----时间模块
    前端版本控制工具,常见的Git 和SVN
    视频剪辑的视频素材哪里下载?
    【Python】返回指定时间对应的时间戳
  • 原文地址:https://blog.csdn.net/ZhangRelay/article/details/126533483