• 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


    ^_^


  • 相关阅读:
    初识java——数据类型重点梳理
    【flask入门系列】Cookie与Session
    若依(ruoyi)前后端分离版使用教程之用户注册(1)单表操作
    C++11新特性③ | 可变参数模板介绍
    【计算机网络】IP协议详解
    进程的状态
    elment-ui中el-table刷新
    读写锁ReentrantReadWriteLock&StampLock详解
    七、Kafka-Kraft 模式
    LinkedList详解
  • 原文地址:https://blog.csdn.net/ZhangRelay/article/details/126533483