版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
项目六:移动机器人高阶认知与实践机器人操作系统ROS的安装与基本操作任务一:机器人操作系统ROS的安装与基本操作任务目标:1.了解ROS的基本概念和发展历程2.掌握安装Ubuntu系统和ROS系统的方法3.学会创建ROS工作空间和功能包4.学会使用ROS节点和编写launch文件机器人操作系统ROS的安装与基本操作知识储备一机器人操作系统ROS的基本概念ROS(RobotOperatingSystem,机器人操作系统)是一个面向机器人的开源操作系统。它能够提供类似广义理解操作系统的诸多功能,包括:硬件抽象底层设备控制常用函数的实现进程间消息传递包管理提供跨计算机运行代码所需的工具和库函数ROS可以实现的功能机器人操作系统ROS的安装与基本操作知识储备一机器人操作系统ROS的基本概念ROS作为机器人的大脑,广泛的应用于多种不同功能的机器人的研发,学习和掌握ROS已经成为从事机器人开发与应用相关工作的必备技能。常见的ROS机器人机器人操作系统ROS的安装与基本操作知识储备二ROS的发展历程ROS起源于人工智能研究大发展阶段。2000年,斯坦福大学人工智能实验室开展了一系列相关研究项目,例如斯坦福人工智能机器人(StanfordArtificialIntelligenceRobot,STAIR)项目、个人机器人(PersonalRobots,PR)项目等。STAIR机器人不同版本PR2机器人仿真图机器人操作系统ROS的安装与基本操作知识储备二ROS的发展历程2007年,机器人公司WillowGarage和该项目组合作,提供了大量资源,将斯坦福大学项目中的软件系统进行扩展与完善。从WillowGarage衍生出的公司机器人操作系统ROS的安装与基本操作知识储备二ROS的发展历程ROS1.0版本发布于2010年,开发了一系列基于PR2机器人机器人相关的基础软件包。随后基本上ROS每年都在更新,其中ROS1.0目前最新的版本为适配Ubuntu20.04LTS的ROSNoeticNinjemys。经过十多年的发展,ROS逐渐趋于成熟,已经初步进入一种稳定的发展状态。目前越来越多的机器人、无人车和无人机都开始采用ROS作为开发平台。ROS的起源机器人操作系统ROS的安装与基本操作知识储备二ROS的发展历程ROS的版本代号是按照字母顺序编排的,并随着Ubuntu系统的更新而更新。ROS1.0版本从BoxTurtle开始,到ROSNoeticNinjemys经历了13次更新。ROS版本发布时间建议对应Ubuntu版本ROSBoxTurtle2010.03.02Ubuntu8.04(Hardy)ROSCTurtle2010.08.02Ubuntu9.04(Lucid)ROSDiamondback2011.03.02Ubuntu10.04(Lucid)ROSElectricEmys2011.08.30Ubuntu10.04(Lucid)ROSFuerteTurtle2012.04.23Ubuntu10.04(Lucid)ROSGroovyGalapagos2012.12.31Ubuntu12.04(Precise)ROSHydroMedusa2013.09.04Ubuntu12.04(Precise)ROSIndigoIgloo2014.07.22Ubuntu14.04(Trusty)ROSJadeTurtle2015.05.23Ubuntu15.04(Vivid)ROSKineticKame2016.05.23Ubuntu16.04(Xenial)ROSLunarLoggerhead2017.05.23Ubuntu17.04(Zesty)ROSMelodicMorenia2018.05.23Ubuntu18.04(Bionic)ROSNoeticNinjemys2020.05.23Ubuntu20.04(Focal)ROS1.0版本及发行时间机器人操作系统ROS的安装与基本操作知识储备二ROS的发展历程在ROS1.0更新的过程中,开发者们也意识到了存在一些问题:没有构建多机器人系统的标准方法无法适用于Windows、MacOS等系统缺少实时性方面的设计等于是开发者将ROS1.0彻底重构,推出了基于数据分发服务(DataDistributionService,DDS)的ROS2.0版本。相比于ROS1.0,ROS2.0除了解决以上痛点外,更主要的是在引入DDS后,使得ROS2.0的通信机制在实时性、可靠性、灵活性、可拓展性等都有了较大提升。机器人操作系统ROS的安装与基本操作知识储备三ROS文件系统级1.ROS工作空间在ROS系统中,工作空间是用户开发自己程序的文件夹(也称目录),简单来说相当于一个工程或者项目,由用户自行创建。工作空间中存放各种用户自己开发的功能包程序,文件是源代码形式,用户可自由修改。工作空间文件夹组成其中:src:存放代码文件build:存放编译过程中生成的中间文件devel:存放编译过程中生成的目标文件机器人操作系统ROS的安装与基本操作知识储备三ROS文件系统级2.ROS功能包在工作空间下的src文件夹中,存放了各种功能包文件。其中包括:综合功能包(Metapackage):综合功能包将特定应用程序包的列表组合在一起,方便集中管理。功能包:功能包是ROS软件组织的基本形式,是构成ROS的基本单元,也是catkin编译的基本单元。一个功能包可以包含多个可执行文件(节点),还包含可执行文件所需的所有文件,如依赖库和配置文件等。功能包清单:每个包都有一个名为package.xml的清单文件。综合功能包的pckage.xml文件由相关功能包的名称组成。如果一个文件夹下有CMakeLists.txt和package.xml这两个文件,则一般可以判断该文件夹为功能包。机器人操作系统ROS的安装与基本操作知识储备三ROS文件系统级2.ROS功能包以上图的package3为例,对其中的各个文件及文件夹进行讨论。CmakeLists.txt:定义编译的规则Package.xml:定义功能包的属性scripts:存放可执行脚本include:存放头文件src:存放源码文件msg:存放自定义消息类型文件srv:存放自定义服务类型文件launch:存放launch文件,launch文件可帮助一次运行多个可执行文件config:存放功能包中所需要使用的配置文件机器人操作系统ROS的安装与基本操作知识储备三ROS文件系统级2.ROS功能包(1).
CMakeLists.txt文件要了解CMakeLists.txt文件,首先需要先了解一下Makefile。在一个工程或者项目中,可能会有很多的源文件,按照类型、功能或者模块放到不同的文件夹中。Makefile定义了一个工程文件的编译规则,指定了哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作。Makefile就像一个shell脚本,使得项目工程的编译变得自动化。Makefile编译过程机器人操作系统ROS的安装与基本操作知识储备三ROS文件系统级2.ROS功能包(1).
CMakeLists.txt文件但是通常Makefile文件比较复杂,写下来需要耗费大量的时间和精力。而CMakeLists.txt文件则相对比较简单。在CMakeLists.txt确定后,直接使用cmake命令运行,将这个命令指向CMakeLists.txt所在的目录,cmake之后就会产生想要的Makefile文件,然后再直接make就可以编译出需要的结果,这带来了极大的便利。机器人操作系统ROS的安装与基本操作知识储备三ROS文件系统级2.ROS功能包(1).
CMakeLists.txt文件下表列出ROS下CMakeLists.txt的一个总体结构。代码含义Cmake_minimum_required()指定catkin最低版本Project()指定软件包的名称Find_package()引入外部依赖包Add_message_files()添加消息文件(*.msg)Add_service_files()添加服务文件(*.srv)Add_action_files()添加动作文件Generate_messages()生成消息、服务和动作Add_dependencies()确保自定义消息的头文件在使用之前已经被生成Add_library()添加目标库文件Add_executable()生成可执行文件Target_link_libraries()指定目标连接的库Install()安装目标文件编译代码表机器人操作系统ROS的安装与基本操作知识储备三ROS文件系统级2.ROS功能包(2).package.xml文件package.xml是ROS功能包的“功能包清单描述”,定义了包的属性,如名称、版本、描述、作者信息、依赖等,最重要的是声明了编译工具、编译依赖工具、编译输出依赖和运行依赖。下表列出package.xml文件的写法。package.xml文件标签标签含义<pacakge>根标签<name>包名<version>版本号<description>包描述<maintainer>维护者<license>软件许可证<buildtool_depend>编译构建工具,通产为catkin<depend>指定依赖项为编译、导出、运行需要的依赖<build_depend>编译依赖项<build_export_depend>导出依赖性<exec_depend>运行依赖项<test_depend>测试用例依赖项<doc_depend>文档依赖项机器人操作系统ROS的安装与基本操作知识储备四ROS计算图级计算图是ROS处理数据的一种点对点的网络形式。程序运行时,所有进程以及它们所进行的数据处理,将会通过一种点对点的网络形式表现出来。这一级主要包括几个重要概念:节点管理器(master)、节点(node)、消息(message)、服务(service)、主题(topic)、参数服务器(ParameterServer)和消息记录包(Bag)。ROS计算图级框架机器人操作系统ROS的安装与基本操作知识储备四ROS计算图级节点(Node)在ROS系统中是主要的计算执行进程。节点管理器(master)作为一个中间节点,用于在不同ROS节点之间建立连接。节点需要使用如roscpp或rospy的ROS客户端库进行编写,之后能通过主题、服务等与其他节点进行通信。节点与节点管理器之间的关系机器人操作系统ROS的安装与基本操作知识储备四ROS计算图级ROS同时为用户提供了处理节点的工具,如rosnode,它是一个用于显示节点信息的命令行工具。常见支持命令如下:rosnodelist:列出当前活动节点rosnodeinfo[节点名称]:输出当前节点信息rosnodekill[节点名称]:结束当前运行节点进程或发送给定信号rosnodemachine[PC名或IP]:列出某一特定计算机上运行的节点或列出主机名称rosnodeping[节点名称]:测试节点之间的连通性rosnodecleanup:将无法访问的节点注册信息清除机器人操作系统ROS的安装与基本操作知识储备四ROS计算图级在Ubuntu中,每打开一个节点就需要重新打开一个终端,当需要打开多个节点时就尤为繁琐,而启动文件(LaunchFile)可以通过xml文件实现多节点的配置和启动,省去了启动多个终端与多个节点的复杂操作。同时它还可以自动启动ROSMaster节点管理器,并且可以实现每个节点的各种配置,为多个节点的操作提供很大便利。Launch文件写法机器人操作系统ROS的安装与基本操作知识储备四ROS计算图级消息(message)是实现节点之间的逻辑联系和数据交换,每一个消息都是一个严格的数据结构,支持诸如整型、浮点型、布尔型等常见的数据类型。内置类型机器人操作系统ROS的安装与基本操作知识储备四ROS计算图级主题(topic)是ROS网络对消息进行路由和管理的数据总线,是一种单向异步通信机制。ROS节点之间通过话题的发布与订阅来进行交互,每一条消息都要发布到相应的话题。同时话题的名称必须是独一无二的,否则在同名话题之间的消息路由就会发生错误。单向异步通信机制机器人操作系统ROS的安装与基本操作知识储备四ROS计算图级服务(service)是另一种在节点之间传递数据的方法,是双向同步通信机制。它能够让一个节点调用运行在另一个节点中的函数。这种机制不仅可以发送消息,还存在反馈。双向同步通信机制机器人操作系统ROS的安装与基本操作工程实践一Ubuntu16.04LTS系统的安装步骤1:制作系统镜像。以安装有Windows10操作系统的计算机为例,首先在Ubuntu的官方网站/download/desktop或者其他国内的镜像网站下载Ubuntu16.04的ISO镜像文件,下载完成后,用UltraISO软件将U盘制作为启动盘。打开UltraISO软件,点击文件按钮,选择下载的镜像文件以及制作启动盘的U盘。选择完毕后,点击“启动”选择“写入硬盘镜像”,注意在制作启动盘之前需要将U盘内容备份然后格式化,到此U盘启动盘制作成功。UltraISO软件界面图制作U盘镜像示意图机器人操作系统ROS的安装与基本操作工程实践一Ubuntu16.04LTS系统的安装步骤2:磁盘分区。在Windows文件资源管理器上,右击此电脑,选择管理——磁盘管理,从一个磁盘中分出一个空磁盘用于安装Ubuntu,具体的数值可根据实际情况设定,建议大于50G。分配磁盘空间机器人操作系统ROS的安装与基本操作工程实践一Ubuntu16.04LTS系统的安装步骤3:完成Ubuntu安装。完成磁盘空间的划分和启动盘制作后,重启计算机,连续点按F12(不同计算机可能不太一样,可根据自己计算机型号自行查阅)选择U盘作为启动项,进入Ubuntu安装界面。语言选择简体中文,点击安装Ubuntu:Ubuntu系统安装步骤一机器人操作系统ROS的安装与基本操作工程实践一Ubuntu16.04LTS系统的安装取消安装下载中更新以及安装这个第三方软件,点击继续:Ubuntu系统安装步骤二机器人操作系统ROS的安装与基本操作工程实践一Ubuntu16.04LTS系统的安装由于需要自己分区,选择“其他选项”来调整分区,然后进入如下界面:Ubuntu系统安装步骤三机器人操作系统ROS的安装与基本操作工程实践一Ubuntu16.04LTS系统的安装下图中空闲的磁盘就是通过压缩卷分出来安装Ubuntu用的,点击下图中“+”:Ubuntu系统安装步骤四机器人操作系统ROS的安装与基本操作工程实践一Ubuntu16.04LTS系统的安装从划分的磁盘选择启动项安装的位置,大小200M左右,挂载点为/boot,确定后再选择剩余空间,点“+”号::Ubuntu系统安装步骤五机器人操作系统ROS的安装与基本操作工程实践一Ubuntu16.04LTS系统的安装选择交换空间,大小设置为系统内存大小,这里设置为3000M,点击确定,对剩余空闲磁盘空间,点“+”号:Ubuntu系统安装步骤六机器人操作系统ROS的安装与基本操作工程实践一Ubuntu16.04LTS系统的安装将剩余内存全部分配,选择Ubuntu的挂载点为/,点击确定:Ubuntu系统安装步骤七机器人操作系统ROS的安装与基本操作工程实践一Ubuntu16.04LTS系统的安装选择系统安装引导项的设备,一定要选择刚刚建立挂载点为/boot的磁盘(这里为/dev/sda1)。Ubuntu系统安装步骤八点击“现在安装”选项,后面按照指示进行即可安装完成。机器人操作系统ROS的安装与基本操作工程实践二ROSKinetic的安装实验步骤1:配置软件仓库。首先在开始安装ROS之前,第一步需要配置Ubuntu软件仓库,为此需要将Ubuntu系统设置中的软件与更新设置为如下状态,以允许使用“restricted”“universe”和“multiverse”存储库。如果下载速度缓慢,可以将软件源选择为国内的阿里云镜像,可以提高下载速度。Ubuntu软件与更新界面机器人操作系统ROS的安装与基本操作工程实践二ROSKinetic的安装实验步骤2:设置软件源。一旦添加了正确的软件源,Ubuntu就知道去哪里下载程序,并根据命令自动安装软件,设置软件源的命令如下,按“Ctrl+Alt+T”打开终端,输入以下指令:$sudosh-c'echo"deb/ros/ubuntu$(lsb_release-sc)main">/etc/apt/sources.list.d/ros-latest.list’实验步骤3:设置密钥。密钥是Ubuntu系统的一种安全机制,也是ROS安装中不可缺的一部分,通常情况下,当添加完软件库时,就已经添加了软件库的密钥。具体执行命令如下:$sudoapt-keyadv--keyserver'hkp://:80'--recv-keyC1CF6E31E6BADE8868B172B4F42ED6FBAB17C654机器人操作系统ROS的安装与基本操作工程实践二ROSKinetic的安装实验步骤4:安装ROS。在安装ROS之前最好先升级一下软件,避免错误的库版本或软件版本产生各种问题,运行命令:$sudoapt-getupdate在ROS中,有很多不同的库和工具,官网提供了四种默认的配置。具体安装代码如下:桌面完整版安装(推荐):包含ROS、rqt、rviz、机器人通用库、2D/3D模拟器、导航以及2D/3D感知。$sudoapt-getinstallros-kinetic-desktop-full桌面版安装:包含ROS、rqt、rviz以及通用机器人函数库。$sudoapt-getinstallros-kinetic-desktop基础版安装:包含ROS核心软件包、构建工具以及通信相关的程序库,无GUI工具。$sudoapt-getinstallros-kinetic-ros-base单个软件包安装:也可以安装某个指定的ROS软件包(使用软件包名称替换掉下面的PACKAGE)。$sudoapt-getinstallros-kinetic-ros-base机器人操作系统ROS的安装与基本操作工程实践二ROSKinetic的安装实验步骤5:初始化rosdep。在开始使用ROS之前还需要初始化rosdep。rosdep可以方便在需要编译某些源码的时候为其安装一些系统依赖,同时也是某些ROS核心功能组件所必需用到的工具。初始化rosdep命令为:$sudorosdepinit$rosdepupdate由于是国外网站无法访问,程序无法下载相应的文件,可能会导致运行上面两行代码可能会不成功。所以要确保能够被正常访问,当出现以下界面时,才可以被认为是成功。rosdep成功界面截图机器人操作系统ROS的安装与基本操作工程实践二ROSKinetic的安装实验步骤6:配置环境。为了能够运行ROS,系统需要知道可执行文件以及其他命令的位置。为了实现以上目的,需要添加ROS环境变量,这样每打开一个终端时,会自动添加环境变量,具体命令为:$echo"source/opt/ros/kinetic/setup.bash">>~/.bashrc$source~/.bashrc实验步骤7:构建依赖。到目前为止,已经安装了运行核心ROS包所需的内容。为了创建和管理ROS工作区,有各种各样的工具可以使用。例如:rosinstall是一个经常使用的命令行工具,它能够轻松地从一个命令中下载许多ROS包的源码。在Ubuntu中运行以下命令安装这个工具:$sudoapt-getinstallpython-rosinstallpython-rosinstall-generatorpython-wstoolbuild-essential机器人操作系统ROS的安装与基本操作工程实践二ROSKinetic的安装实验步骤8:ROS系统测试。当完成ROS的安装后,可以通过测试roscore和turtlesim来测试安装是否成功。具体做法是打开两个终端,快捷键为“Ctrl+Alt+T”,在两个终端中分别输入以下命令:$roscore$rosrunturtlesimturtlesim_node如果一切正常就会看到以下界面(海龟的形状可能不完全相同):ROSKinetic安装测试图机器人操作系统ROS的安装与基本操作工程实践三创建工作空间对于ROSGroovy以后的版本可以参考以下步骤创建工作空间。步骤1:初始化工作空间。打开一个终端,运行以下命令:$mkdir-p~/catkin_ws/src$cd~/catkin_ws/src$catkin_init_workspace步骤2:编译工作空间。工作空间初始化完成后,可以在src文件夹下看到一个CMakeLists.txt的文件,即使这个工作空间是空的,依然可以直接编译。打开一个新的终端,运行以下命令:$cd~/catkin_ws/$catkin_make机器人操作系统ROS的安装与基本操作工程实践三创建工作空间步骤3:设置环境变量。编译完成后,在该工作空间下可以看到有build和devel两个文件夹,devel文件夹中有许多个setup.*sh文件,启动这些文件会覆盖现在的环境变量。在终端中执行以下命令设置环境变量:$echo"source~/catkin_ws/devel/setup.bash">>~/.bashrc$source~/.bashrc为了确认环境变量是否设置成功,可以运行以下命令来确认当前的目录是否在环境变量中:$echo$ROS_PACKAGE_PATH如果输出:/home/username/catkin_ws/src:/opt/ros/kinetic/share:/opt/ros/kinetic/stacks,则说明工作环境已经建立。机器人操作系统ROS的安装与基本操作工程实践四创建ROS功能包工作空间创建完成后,可以在工作空间下创建功能包。具体操作步骤如下:步骤1:新建功能包。使用以下命令在刚刚建立的工作空间中创建新的功能包:$cd~/catkin_ws/src$catkin_create_pkgexample1std_msgsroscpp其中example1为功能包的名称,std_msgs为包含常见消息类型和其他基本消息构造依赖,roscpp是用c++来实现ROS的各种功能。如果所有步骤执行正确,将会得到如下所示的结果:创建功能包结果图机器人操作系统ROS的安装与基本操作工程实践四创建ROS功能包步骤2:编译功能包。一旦创建了功能包,就可以在功能包下编写代码来实现各种功能。命令行如下:$cd~/catkin_ws$catkin_make如果编译没有错误,将会看到如下的画面:创建功能包结果图需要注意的是,编译功能包时必须是在工作空间文件夹下运行catkin_make命令,如果在其他文件夹下这样做,可能会生成错误的文件。机器人操作系统ROS的安装与基本操作工程实践五使用ROS节点步骤1:安装turtlesim功能包。如果已经安装完整版的ROS系统,那么已经有了turtlesim功能包,如果没有安装成功,可以用以下的命令行来进行安装:$sudoapt-getinstallros-kinetic-turtlesim步骤2:运行节点管理器。安装好turtlesim相关功能包,在开始使用节点之前,必须先运行节点管理器。命令行如下:$roscore机器人操作系统ROS的安装与基本操作工程实践五使用ROS节点步骤3:启动节点。运行主节点后,现在需要用rosrun命令启动一个新的节点,打开一个新的终端,运行以下命令:$rosrunturtlesimturtlesim_node会看到一个新的窗口,在这个窗口中有一个小海龟,如下图所示:tuetlesim_node运行结果示意机器人操作系统ROS的安装与基本操作工程实践五使用ROS节点步骤4:查看节点信息。通过rosnode工具来查看节点列表,会看到出现了一个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安全在我心中演讲稿大全(9篇)
- 区域养老中心入住协议书
- 商铺消防施工协议
- 劳务服务项目风险评估与控制
- 施工期间成本预算最终协议
- 电子商务平台招投标流程
- 房地产企业融资策略
- 保健食品企业参股管理建议
- 市政道路外围围墙施工协议
- 医院化粪池清掏工程合同
- 超星尔雅学习通走近核科学技术章节测试答案
- 初中艺术鄂教七年级上册(2022年新编) 漫步艺术长廊舞剧欣赏《永不消逝的电波》教学设计
- python学习课件(共73张PPT)
- 中考数学复习专题课件:瓜豆原理之直线型
- 桩基及基坑质量通病防治讲义PPT(105页)
- 精品堆垛机安装指导书
- 前台月度绩效考核表(KPI)
- 鸡的饲养管理-优质课件
- 德育课(共19张PPT)
- 化学微生物学第7章 微生物转化
- 《少年正是读书时》-完整版PPT课件
评论
0/150
提交评论