版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ROS概述汽车计算机基础一、课程导入近年来机器人领域持续升温,涌现出了一大批机器人产品,像机器狗、无人机、无人车、各式各样的服务机器人、聊天机器人。在许多机器人背后都用到了一个共同的软件平台,那就是机器人操作系统(RobotOperatingSystem,ROS)。ROS好比机器人的中枢神经系统,这个系统把原本松散的功能模块耦合在了一起,为他们提供了通信架构。这样机器人的各个零部件就可以协同工作,完成更为复杂的任务了。ROS的架构课程导入ROS的安装与体验ROS简介ROS的应用总结一、课程导入ROS是什么?为什么使用ROS?ROS节点之间是如何相互通信的呢?ROS的架构课程导入ROS的安装与体验ROS简介ROS的应用总结二、ROS简介2.1ROS的诞生与发展(1)ROS诞生背景机器人是一种高度复杂的系统性实现,机器人设计包含了机械加工、机械结构设计、硬件设计、嵌入式软件设计、上层软件设计....是各种硬件与软件集成,甚至可以说机器人系统是当今工业体系的集大成者。机器人体系是相当庞大的,其复杂度之高,以至于没有任何个人、组织甚至公司能够独立完成系统性的机器人研发工作。ROS的架构课程导入ROS的安装与体验ROS简介ROS的应用总结二、ROS简介2.1ROS的诞生与发展(1)ROS诞生背景在此大背景下,于2007年,一家名为柳树车库(WillowGarage)的机器人公司发布了ROS(机器人操作系统),ROS是一套机器人通用软件框架,可以提升功能模块的复用性,并且随着该系统的不断迭代与完善,如今ROS已经成为机器人领域的事实标准。ROS的架构课程导入ROS的安装与体验ROS简介ROS的应用总结二、ROS简介2.1ROS的诞生与发展(2)ROS的发展历程ROS的架构课程导入ROS的安装与体验ROS简介ROS的应用总结二、ROS简介2.2ROS的概念ROS全称RobotOperatingSystem(机器人操作系统)。ROS是适用于机器人的开源元操作系统。ROS集成了大量的工具,库,协议,提供类似OS所提供的功能,简化对机器人的控制。还提供了用于在多台计算机上获取,构建,编写和运行代码的工具和库,ROS在某些方面类似于“机器人框架”。ROS设计者将ROS表述为“ROS=Plumbing+Tools+Capabilities+Ecosystem”,即ROS是通讯机制、工具软件包、机器人高层技能以及机器人生态系统的集合体。ROS的架构课程导入ROS的安装与体验ROS简介ROS的应用总结二、ROS简介2.3ROS的设计目标机器人开发的分工思想,实现了不同研发团队间的共享和协作,提升了机器人的研发效率,为了服务“分工”,ROS主要设计了如下目标:代码复用分布式松耦合精简语言独立性易于测试大型应用丰富的组件化工具包、免费且开源ROS的架构课程导入ROS的安装与体验ROS简介ROS的应用总结三、ROS的安装与体验3.1ROS的安装我们使用的是ROS版本是Noetic,那么可以在ubuntu20.04、Mac或windows10系统上安装,虽然一般用户平时使用的操作系统以windows居多,但是ROS之前的版本基本都不支持windows,所以当前我们选用的操作系统是ubuntu,以方便向历史版本过渡。ubuntu安装常用方式有两种:实体机安装ubuntu,可以保证性能,且不需要考虑硬件兼容性问题,但是和windows系统交互不便。虚拟机安装ubuntu,可以方便的实现windows与ubuntu交互,不过性能稍差,且与硬件交互不便。ROS的架构课程导入ROS的安装与体验ROS简介ROS的应用总结三、ROS的安装与体验3.1ROS的安装如果采用虚拟机安装ubuntu,再安装ROS的话,大致流程如下:①安装虚拟机软件(比如:virtualbox或VMware);②使用虚拟机软件虚拟一台主机;③在虚拟主机上安装ubuntu20.04;④在ubuntu上安装ROS;⑤测试ROS环境是否可以正常运行。虚拟机软件选择上,对于我们学习而言virtualbox和VMware都可以满足需求。ROS的架构课程导入ROS的安装与体验ROS简介ROS的应用总结三、ROS的安装与体验3.2ROS体验ROS中涉及的编程语言以C++和Python为主,ROS中的大多数程序两者都可以实现,在本课程中,案例使用C++的方案演示。ROS中的程序即便使用不同的编程语言,实现流程也大致类似,以当前HelloWorld程序为例,实现流程大致如下:(1)创建工作空间并初始化上述命令,首先会创建一个工作空间以及一个src子目录,然后再进入工作空间调用catkin_make命令编译。ROS的架构课程导入ROS的安装与体验ROS简介ROS的应用总结三、ROS的安装与体验(2)进入src创建ros包并添加依赖上述命令,会在工作空间下生成一个功能包,该功能包依赖于roscpp、rospy与std_msgs,其中roscpp是使用C++实现的库,而rospy则是使用python实现的库,std_msgs是标准消息库,创建ROS功能包时,一般都会依赖这三个库实现。3.2ROS体验ROS的架构课程导入ROS的安装与体验ROS简介ROS的应用总结三、ROS的安装与体验(3)进入ros包的src目录编辑源文件C++源码实现(文件名自定义)3.2ROS体验ROS的架构课程导入ROS的安装与体验ROS简介ROS的应用总结三、ROS的安装与体验(4)编辑ros包下的Cmakelist.txt文件3.2ROS体验ROS的架构课程导入ROS的安装与体验ROS简介ROS的应用总结(5)进入工作空间目录并编译生成builddevel....三、ROS的安装与体验3.2ROS体验ROS的架构课程导入ROS的安装与体验ROS简介ROS的应用总结(6)执行先启动命令行1:再启动命令行2:命令行输出:HelloWorld!三、ROS的安装与体验3.2ROS体验ROS的架构课程导入ROS的安装与体验ROS简介ROS的应用总结按照官方的说法,可以分别从计算图、文件系统和开源社区视角来理解ROS架构。四、ROS的架构ROS的架构课程导入ROS的安装与体验ROS简介ROS的应用总结四、ROS的架构4.1从计算图视角理解ROS架构ROS中可执行程序的基本单位叫节点(node),节点之间通过消息机制进行通信,这样就组成了一张网状图,也叫计算图,如图所示。ROS的架构课程导入ROS的安装与体验ROS简介ROS的应用总结四、ROS的架构4.1从计算图视角理解ROS架构(1)节点节点是可执行程序,通常也叫进程。ROS功能包中创建的每个可执行程序在被启动加载到系统进程中后,就是一个ROS节点,如图1-3中的节点1、节点2、节点3等。节点之间通过收发消息进行通信,消息收发机制分为话题(topic)、服务(service)和动作(action)三种,如图1-3中的节点2与节点3、节点2与节点5采用话题通信,节点2与节点4采用服务通信,节点1与节点2采用动作通信。计算图中的节点、话题、服务、动作都要有唯一名称作为标识。ROS利用节点将代码和功能解耦,提高了系统的容错性和可维护性。所以最好让每个节点都具有特定的单一功能,而不是创建一个包罗万象的庞大节点。如果用C++编写节点,需要用到ROS提供的roscpp库;如果用Python编写节点,需要用到ROS提供的rospy库。ROS的架构课程导入ROS的安装与体验ROS简介ROS的应用总结四、ROS的架构4.1从计算图视角理解ROS架构(2)消息消息是构成计算图的关键,包括消息机制和消息类型两部分。消息机制有话题、服务和动作三种,每种消息机制中传递的数据都具有特定的数据类型(即消息类型),消息类型可分为话题消息类型、服务消息类型和动作消息类型。(3)数据包数据包(rosbag)是ROS中专门用来保存和回放话题中数据的文件,可以将一些难以收集的传感器数据用数据包录制下来,然后反复回放来进行算法性能调试。ROS的架构课程导入ROS的安装与体验ROS简介ROS的应用总结四、ROS的架构4.1从计算图视角理解ROS架构(4)参数参数服务器能够为整个ROS网络中的节点提供便于修改的参数。参数可以认为是节点中可供外部修改的全局变量,有静态参数和动态参数。静态参数一般用于在节点启动时设置节点工作模式;动态参数可以用于在节点运行时动态配置节点或改变节点工作状态,比如电机控制节点里的PID控制参数。主节点负责各个节点之间通信过程的调度管理。因此主节点必须要最先启动,可以通过roscore命令启动。ROS的架构课程导入ROS的安装与体验ROS简介ROS的应用总结四、ROS的架构4.2从文件系统视角理解ROS架构ROS程序的不同组件要放在不同的文件夹中,这些文件夹根据不同的功能对文件进行组织,这就是ROS的文件系统结构,如图1-4所示。ROS的架构课程导入ROS的安装与体验ROS简介ROS的应用总结四、ROS的架构4.2从文件系统视角理解ROS架构ROS的架构课程导入ROS的安装与体验ROS简介ROS的应用总结四、ROS的架构4.3从开源社区视角理解ROS架构ROS是开源软件,各个独立的网络社区分享和贡献软件及教程,形成了强大的ROS开源社区,如图1-5所示。ROS的发展依赖于开源和共享的软件,这些代码由不同的机构共享和发布,比如GitHub源码共享、Ubuntu软件仓库发布、第三方库等。ROS的官方wiki是重要的文档讨论社区,在里面可以很方便地发布与修改相应的文档页面。ROS的answer主页里有大量ROS开发者的提问和回答,对ROS开发中遇到的各种问题的讨论很活跃ROS的架构课程导入ROS的安装与体验ROS简介ROS的应用总结五、ROS的应用5.1ROS应用领域ROS是全球范围内智能机器人领域最为前沿的开源操作系统。ROS作为机器人的大脑,广泛应用与工厂AGV作业机器人、智能立体仓库、送餐及快递等服务机器人、自动驾驶、机械手智能控制等新兴智能机器人领域。例如:机器人控制器中的大佬人物KEBA,他们的控制器已经支持ROS,美国NASA基于ROS开发的Robonaut2已经在国际空间站里干活了,百度apollo无人车的底层是基于ROS开发的,ROS-I最近正准备和微软、宝马合作,开发一套自动化解决方案。ROS的架构课程导入ROS的安装与体验ROS简介ROS的应用总结五、ROS的应用5.2ROS在自动驾驶上的应用想要制造无人驾驶汽车,有很多关键问题需要解决。例如怎么在车内搭建可靠的网络,如何管理内存、存储数据和日志记录,如何使传感器和计算机能够同时相互通信,以及如何确保它们都很稳定且安全。机器人操作系统ROS为许多问题提供了开源解决方案。要保证一个复杂的系统稳定、高效地运行,每个模块都能发挥出最大的潜能,需要一个成熟有效的管理机制。的资源管理及隔离。ROS的架构课程导入ROS的安装与体验ROS简介ROS的应用总结1.RobotOperatingSystem(机器人操作系统)适用于机器人的开源元操作系统,集成了大量的工具,库,协议,提供类似OS所提供的功能,简化对机器人的控制。2.ROS设计思想是“分工合作”,ROS的设计目标:代码复用、分布式、松耦合、精简、语言独立性、易于测试、大型应用、丰富的组件化工具包、免费且开源。3.ROS的发行版本指ROS软件包的版本,按照英文字母顺序命名,ROS目前已经发布了ROS1的终极版本:noetic。4.按照官方的说法,可以分别从计算图、
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 飞机的教案8篇
- 有关市场营销社会实践调查报告(3篇)
- 工程师个人总结工作总结范文6篇
- 校内奖学金获奖感言500字(30篇)
- DB12-1100-2021 平板玻璃工业大气污染物排放标准
- 山东省临沂市(2024年-2025年小学五年级语文)统编版专题练习(上学期)试卷及答案
- 2024年家用电力器具专用配件项目资金需求报告代可行性研究报告
- 水弹性城市道路绿化施工技术规范编制说明
- 上海市县(2024年-2025年小学五年级语文)统编版摸底考试((上下)学期)试卷及答案
- 荆楚理工学院《习近平新时代中国特色社会主义思想概论》2022-2023学年第一学期期末试卷
- 空调水系统的节能措施以及水泵调节
- 奇妙的黄金数在生活中广泛应用学习资料
- 三菱FX3U 485无协议通讯程序详解(含程序)参考
- TCCFAGS031-2022即食鲜切果蔬制作服务规范(食品经营者)
- 中国石油天然气集团公司安全生产责任
- 论柳永与李清照词中的女性形象
- 双胎妊娠 PPT课件
- 大气物理学题库
- 沙市中学李昌坤等高中化学竞赛辅导经验浅谈
- 计算机图形学文献综述
- 话说温州计划及其教案
评论
0/150
提交评论