移动机器人学 课件第四章 ROS系统_第1页
移动机器人学 课件第四章 ROS系统_第2页
移动机器人学 课件第四章 ROS系统_第3页
移动机器人学 课件第四章 ROS系统_第4页
移动机器人学 课件第四章 ROS系统_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

华南理工大学自动化科学与工程学院《移动机器人学》

华南理工大学自动化科学与工程学院第四章ROS系统

4.1什么是ROSROS的起源在ROS诞生之前,机器人软件开发非常困难,主要原因是机器人的硬件和软件都非常复杂,且缺乏一个统一的软件开发平台。ROS的目标是使得机器人的软件系统能够更容易地编写、测试和部署,同时也能够更好地支持机器人应用的开发和研究。ROS是一个机器人软件开发平台,最初由斯坦福人工智能实验室(StanfordAILab)于2007年发起。它为机器人研究提供了一个开放的、灵活的软件平台。图中展现了基于该系统的机器人PR2的一些功能,如做饭、叠衣服等,当初这款机器人的面世掀起了轰动,引起了巨大的关注。

PR2的应用功能ROS的发展史

4.1什么是ROS开发者能够按照自己的需求选择使用各种软件库和工具并能够快速适应新的硬件平台和机器人任务ROS的设计目标它在设计的时候基于以下一些目标:

4.1什么是ROS灵活性通过提供现成的库和工具,以及对组件化软件开发的支持,使得代码的重用变得更加容易可重复性用户轻松地添加新的功能和算法,同时也允许更好地管理和维护大型软件系统可扩展性ROS的代码基于开放源代码,可以在多种操作系统和硬件平台上运行可移植性多台计算机通过网络能够连接在一起,实现分布式计算,以便实现更高效的计算和控制分布式4.2ROS安装ROS的版本选择本书采用的是ROSKineticKame版本,是ROS机器人操作系统的一个稳定版本于2016年5月23日发布。它是为Ubuntu16.04TS(XenialXerus)操作系统设计的,支持Python2.7和C++11。ROSKinetic在ROS社区得到广泛使用,并且被视为当前最稳定和可靠的ROS版本之一。

配制系统软件源以Ubuntu系统软件源安装ROS为例,为了允许系统从软件源中下载和安装ROS需要配置系统软件源,包括restricted、universe、multiverse三种软件源。如果系统未被修改过,则默认已开启这三种软件源。为避免配置错误建议査看Ubuntu软件中心的软件源配置页面,确认是否与图中的选项相同。

Ubuntu系统软件源的设置4.2ROS安装添加ROS软件源在Ubuntu系统中,软件源地址保存在/etc/apt日录下的sources.list文件中,在安装ROS过程中,需要将ROS的软件源地址添加到该文件中,以确保能够正确找到ROS相关软件的下载地址。在终端中输人下面的命令添加ROS官方的软件源镜像:

为提高下载速度,建议使用以下任意一个国内的镜像源1)中国科学技术大学镜像源2)中山大学镜像源3)易科机器人实验室4.2ROS安装添加密钥使用如下命令添加密钥:

安装ROS现在可以进行ROS的安装。为了确保前面软件源的修改得以更新,输入以下命令来更新系统软件源:

1)推荐安装ROS的桌面完整版(Desktop-full),它包含了ROS的所有核心组件和库。它是最完整、最全面的ROS版本,适用于需要使用ROS所有功能和工具的用户。安装桌面完整版,只需输入以下命令

2)若只需要ROS的基础功能,同时还希望使用RVIZ可视化工具,那么可以选择桌面版(Desktop)安装。

4.2ROS安装3)基础版(ROS-base)是ROS的一个版本,它被简化为仅包含基础功能,如核心功能包、构建工具和通信机制,并去掉了GUI、机器人通用函数库、功能包和工具。

4)独立功能包(IndividualPackage)安装。

初始化rosdepROS提供了rosdep工具,用于安装功能包的系统依赖项,同时也是某些ROS核心功能包必须用到的工具。在完成ROS的安装后,需要使用以下两条命令进行rosdep的初始化和更新

设置环境变量在Ubuntu中,默认的终端为bash,因此在bash终端中,设置ROS环境变量的命令如下

4.2ROS安装完成安装在安装ROS的最后阶段,终于要验证一下是否安装成功了!现在打开终端,输入roscore命令,如果看到类似下图的信息,那么ROS已经成功地安装并可以运行了!

roscore成功启动后的日志消息4.3ROS节点ROS架构设计1)ROS的架构可以分为三个层次,分别是OS层、中间层和应用层

ROS架构12)ROS还有另外的分层方法,即从系统实现的视角看,ROS可以看作由文件系统、计算图和开源社区等部分组成

ROS架构24.3ROS节点计算图从计算图的角度来看,ROS系统软件的功能模块以节点为单位独立运行,可以分布于多个相同或不同的主机中,在系统运行时通过端对端的拓扑结构进行连接。(1)ROS是一个基于节点的系统,其核心概念是节点(Node)。节点是执行运算任务的进程,一个系统通常包含多个节点。节点之间的通信通过端对端的连接实现,而这些连接关系可以形象地表示为节点关系图

ROS中的节点关系图4.3ROS节点(2)在ROS中,节点之间主要是通过发布/订阅模型进行消息通信的。每个消息都是一个严格的数据结构,支持多种标准数据类型,包括整型、浮点型、布尔型等,并且还支持嵌套结构和数组类型。开发者可以根据自己的需求自定义数据结构,以便更好地适应各种应用场景。

(3)消息通过发布/订阅的方式进行传递,如图所示。发布者和订阅者分别注册所关注的话题(Topic),然后系统自动将消息从发布者传递到订阅者。

ROS中基于发布/订阅模型的话题通信(4)在ROS中,除了基于话题的发布/订阅模型外,还有一种同步传输模式称为服务(Service),该模型是基于客户端/服务器(Client/Server)模型的。4.3ROS节点文件系统与操作系统类似,ROS按照特定的规则对所有文件进行组织和管理,以便不同功能的文件能够放置在各自对应的文件夹下,方便进行更加高效的管理和使用,具体的组织形式可见图

ROS中的文件系统结构功能包:功能包是ROS软件中的基本单元,包含ROS节点、库、配置文件等。

功能包清单:是一个名为package.xml的XML文件,包含ROS功能包的基本信息,如功能包的名称、版本、作者、许可证、其他依赖选项、编译标志等。

元功能包:是一种组织多个功能包的方式。它将多个用于同一目的的功能包集成在一起,并提供一个简单的接口,使用户能够轻松地安装和使用这些功能包。

4.3ROS节点元功能包清单:在ROS中,元功能包清单是指一个XML文件,其中包含多个功能包的信息和依赖关系,以及一些元功能包级别的参数。

消息类型:是指用于节点间发布和订阅通信信息的数据格式,可以使用ROS系统提供的标准消息类型,也可以在自定义功能包的msg文件夹下定义所需的消息类型。

服务类型:定义了ROS客户端/服务器通信模型下的请求与应答数据类型。一个服务类型包含两个部分:一个请求类型和一个应答类型,分别对应了客户端请求服务器和服务器向客户端返回响应所使用的数据类型。

开源社区ROS的开源社区拥有着丰富的共享资源,可以在其中找到以下一些资源

ROS社区资源的组织形式4.4ROS通信话题通信机制在ROS中,话题(Topic)是最为常用的通信方式之一,其通信模型也比较复杂。通过话题,ROS的不同节点可以实现发布和订阅消息的功能,以完成各种机器人应用的任务。假设有两个节点:发布者

Talker和订阅者

Listener,它们分别发布和订阅同一个话题。节点的启动顺序没有强制要求,发布者和订阅者建立通信的过程可以分成以下几个步骤,

基于发布/订阅模型的话题通信机制4.4ROS通信服务通信机制服务是ROS中一种带有请求和应答的通信方式,其通信原理与话题不同。服务通信机制主要包含5个部分:

Talker注册、Listener注册、ROSMaster进行信息匹配、Listener与Talker建立网络连接、Talker向Listener发布服务应答数据。原理如图所示

基于服务器/客户端的服务通信机制4.4ROS通信参数管理机制参数和ROS中的全局变量类似,是用来存储程序运行过程中需要使用的数据,ROSMaster对其进行管理,其通信机制相较于服务机制更加简单,不需要使用TCP/UDP进行通信,具体通信机制如图

基于RPC的参数管理机制4.4ROS通信话题与服务的区别话题和服务是ROS中最基础也是使用最多的通信方法,从前面介绍的ROS通信机制中可以看到这两者有明确的区别,具体总结见表

话题与服务的区别总的来说,ROS中的通信模型主要有两种:基于发布/订阅模型的异步通信模型和基于客户端/服务器模型的同步通信模型。发布/订阅模型中,消息的产生方将消息发布到特定话题,而消息的使用方则订阅该话题以接收消息;而在客户端/服务器模型中,客户端会向服务端发送请求,等待服务端返回结果后再继续执行后续的操作。4.5ROS工具QT工具箱ROS提供了rqt_common_plugins这个Qt架构的工具套件,旨在方便用户进行可视化调试和显示操作。这个工具套件中有很多实用的工具,可供用户灵活选择和使用。

日志输出工具—rqt_console计算图可视化工具—rqt_graph数据绘图工具—rqt_plot图像渲染工具—rqt_image_view4.5ROS工具RVIZ三维可视化平台RVIZ是ROS中的一个可视化工具,用于可视化ROS系统中的传感器数据、机器

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论