机器人操作系统(ROS)课件3.ROS的概述 .pptx

机器人操作系统(ROS)课件3.ROS的概述 .pptx

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

机器人操作系统(ROS)

机器人操作系统(ROS)ROS概述3

机器人操作系统(ROS)3.ROS的概述在这一章,我们将深入探讨ROS的架构和一些重要概念。ROS是两个程序或者进程间通信的框架,是一个优秀的机器人分布式框架。ROS系统的架构主要被设计和划分为三部分,每一部分代表一个层级的概念: 文件系统级(Thefilesystemlevel) 计算图级(Thecomputationgraphlevel) 开源社区级(Thecommunitylevel)

机器人操作系统(ROS)3.1ROS文件系统级如果你是刚刚接手ROS方面的开发或项目,你肯定会觉得ROS中的各种概念非常奇怪,但是当你对ROS的使用熟练之后,你就觉得这些概念很好理解了。与其他操作系统相似,一个ROS程序的不同组件要被放在不同的文件夹下,这些文件夹是根据不同的功能来对文件进行组织的,如图3-1所示:

机器人操作系统(ROS)3.1ROS文件系统级功能包(Package):功能包是ROS中软件组织的基本形式。它可以包含ROS运行的进程(节点)、配置文件等。功能包清单(PackageManifest):功能包清单提供关于功能包、许可信息、依赖关系、编译标志等的信息。一个包的清单一个名为package.xml的文件管理。元功能包(Metapackage):将几个具有某些功能的功能包组织在一起,就获得了一个元功能包。例如一个ROS导航的元功能包中会包含建模、定位、导航等功能包。消息类型(Message):消息是一个节点发送到其他节点的信息。ROS系统有很多的标准消息类型。消息类型的说明存储在对应功能包的msg文件夹下。服务类型(Service):服务描述说明存储在对应功能包的src文件夹下,定义了在ROS中由每个进程提供的关于服务请求和响应的数据结构。

机器人操作系统(ROS)3.1.1工作空间工作空间就是一个包含功能包、可编辑源文件或编译包的文件夹。当想同时编译不同的功能包时非常有用,并且可以用来保存本地开发包,一般包含src、bulid和devel这三个文件夹。开发过程中只需要更改src文件夹里的文件,build和devel无需手动创建,编译功能包时会自动生成。源文件空间(src文件夹):在源文件空间放置了功能包等。编译空间(build文件夹):build文件夹存放CMake和catkin的缓存信息、配置和其他中间文件。开发空间(devel文件夹):devel文件夹用来保存编译后的程序。典型的ROS程序包结构

机器人操作系统(ROS)3.1.2功能包功能包是ROS中软件组织的基本形式,一个功能包具有用于创建ROS程序的最小结构和最少内容,它可以包含ROS运行的进程(节点)、配置文件等。一个功能包中主要包含这几个文件:CMakeLists.txt功能包配置文件:用于这个功能包cmake编译时的配置文件。package.xml功能包清单文件:用xml的标签格式标记这个功能包的各类相关信息,比如包的名称、依赖关系等。主要作用是为了更容易的安装和分发功能包。includepackage_name功能包头文件目录:你可以把你的功能包程序包含的*.h头文件放在这里,include下之所以还要加一级路径package_name是为了更好的区分自己定义的头文件和系统标准头文件,package_name用实际功能包的名称替代。不过这个文件夹不是必要项,比如有些程序没有头文件的情况。msg非标准消息定义目录:消息是ROS中一个进程(节点)发送到其他进程(节点)的信息,消息类型是消息的数据结构,ROS系统提供了很多标准类型的消息可以直接使用,如果你要使用一些非标准类型的消息,就需要自己来定义该类型的消息,并把定义的文件放在这里。不过这个文件夹不是必要项,比如程序中只使用标准类型的消息的情况。

机器人操作系统(ROS)3.1.2功能包srv服务类型定义目录:服务是ROS中进程(节点)间的请求/响应通信过程,服务类型是服务请求/响应的数据结构,服务类型的定义放在这里。如果要调用此服务,你需要使用该功能包名称和服务名称。不过这个文件夹不是必要项,比如程序中不使用服务的情况。scripts可执行脚本文件存放目录:这里用于存放bash、Python或其他脚本的可执行文件。不过这个文件夹不是必要项,比如程序中不使用可执行脚本的情况。launch文件目录:这里用于存放*.launch文件,*.launch文件用于启动ROS功能包中的一个或多个节点,在含有多个节点启动的大型项目中很有用。不过这个文件夹不是必要项,节点也可以不通过launch文件启动。src功能包中节点源文件存放目录:一个功能包中可以有多个进程(

您可能关注的文档

文档评论(0)

balala11 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档