版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ROS星火计划 ROS起源及特色 NXROBO&ExBotROS起源及特色什么是ROS?RobotOperatingSystem(ROS)是一个适用于机器人的开源的元操作系统。它提供了操作系统应有的服务,包括硬件抽象,底层设备控制,常用函数的实现,进程间消息传递,以及包管理。它也提供用于获取、编译、编写、和跨计算机运行代码所需的工具和库函数。松耦合点对点进程网络,一个分布式的通信框架,帮助程序进程之间更方便地通信。支持的操作系统:ROS主流在基于Unix的平台上运行。ROS的软件主要在Ubuntu和MacOSX系统上测试,同时ROS小区仍持续支持Fedora,Gentoo,ArchLinux和其它Linux平台。MicrosoftWindows已开始支持ROS,功能尚待完善。从计算图视角理解ROS:ROS中可执行程序的基本单位叫节点(node)节点之间通过消息、服务、动作等机制进行通信这样就组成了一张网状图,也叫计算图从文件系统视角理解ROSROS程序的不同组件放在不同的文件夹中文件夹根据不同的功能对文件进行组织这就是ROS的文件系统结构从开源社区视角理解ROSROS是开源软件,全球机器人专家分享、贡献自己的智慧在网络社区分享和贡献软件及教程形成了强大的ROS开源社区ROS的起源脱胎于斯坦福的STAIR项目成长于PR2机器人项目,ROS是该项目的软件部分遵循OS理念:为了提高机器人设计和开发效率避免机器人领域工作者重复造轮子,统一了开发标准为什么学习ROS?机器人开发:软件开发的比重越来越大软件框架选择:是软件架构设计中一个重要的决策ROSPlayerYARPOrocosCARMENOrcaMOOSMicrosoftRoboticsStudioROS的优势松散耦合的机制方便机器人软件框架的组织最丰富的机器人功能库方便快速搭建原型便利的数据记录、分析、仿真工具,方便调试学界和产业界的标准方便学习和交流对于开发者:快速搭建机器人原型通过ROS平台学习先进机器人技术掌握机器人框架体系构建学习先进的机器人算法跟踪当前最先进的硬件技术把握技术潮流跟踪技术前沿对于企业:License许可ROS的核心是BSD许可证。这是一个非常宽松的开放许可证。允许在商业和闭源产品使用。/licenses/BSD-3-Clause/wiki/BSD_licenses对于研究人员:丰富的资源,最新的成果目前学术领域大部分最新成果都会发布ROS的版本“ROS:anopensourceRobotOperatingSystem”(Quigleyetal.,2009)论文引用量9869Source:GoogleScholar2022-07-13最庞大的使用者群体,事实上的机器人标准2018年数据:目前在使用操作系统做开发的人员用户超过60万。(个人用户中国第二)官方支持ROS的机器人100+产品:目前已经有很多机器人公司采用了ROS系统来开发一些应用于全新市场的产品,如ClearPath,Rethink,Unbounded,Neurala,BlueRiver,BIG-i,最典型的就是WillowGarage的PR2机器人。大公司的支持:Nvidia、博世、谷歌、高通、英特尔、宝马、小米、华为以及大疆等。投资机构的热捧:仅2015年,相关风险投资机构就在基于ROS操作系统的机器人公司投资了超过1.5亿美元。代码统计Thetotallinecountisover14millionlinesofcodeTherehavebeen2477authorsAnd181509commitsAveraging73.3commitsperauthor代码语言cpp:2608592(63.98%)python:553332(13.57%)ansic:297629(7.30%)xml:280615(6.88%)lisp:149439(3.67%)java:135343(3.32%)ruby:26484(0.65%)sh:21120(0.52%)ROS的不足目前基于Ubuntu系统,移植嵌入式系统困难无实时性设计体积较大系统整体运行效率低总的来说,ROS不擅长开发对实时性及成本要求严苛的产品。一句话概括ROS帮助你快速制作机器人的众多软件库和工具的集合。规定了统一通信接口的松耦合分布式开源软件框架。最大的好处:即插即用,提供统一软件接口,事实上的机器人研究的统一平台。有了统一的平台,我们才有共同交流的可能,以上也是我们学习ROS的主要原因。ROS应用场景商业上的机器人产品一般会给出ROS的软件接口(比如ROS-I基于的工业机器人的MoveIt!接口)商业上很多机器人相关软件也会给出ROS界面(比如Webots仿真器,MATLAB的robotsystemtoolbox),从一方面说明ROS的普及程度。ROS现在最广泛的用途:算法与硬件的快速结合,系统集成方案快速构建、评估与验证。现阶段不建议将ROS整体、直接用于对实时性及成本要求严苛的产品。ROS2.0:新的架构(取消了Master),新的通信机制(DDS数据分发协议),对实时性的支持,有望实现嵌入式应用。ROS应该学什么入门起步设计思想核心概念核心模块核心工具设计思想:分布式架构核心概念Nodes(节点)MessagesandTopics(消息与话题)Services(服务)ROSMaster(ROS管理器)Parameters(参数)Stacksandpackages(功能包集与功能包)ROSNodes节点是各自独立的可执行文件,能够通过话题、服务或参数服务器与其他进程(节点)通信。ROS通过使用节点将代码和功能解耦,提高了系统容错能力和可维护性,使系统简化。同时,节点允许了ROS系统能够布置在任意多个机器上并同时运行。节点在系统中必须有唯一的名称。节点可以使用不同的库进行编写,如roscpp和rospy。roscpp基于C++rospy基于Python。ROSTopics话题是节点间用来传输数据的总线。1-to-NPublish/Subscribe模式:同一个话题也可以有很多个订阅者。使用TCP/IP传输,称为TCPROS,ROS默认。使用UDP传输,称为UDPROS,适合于远程操控任务。(低延迟高效率的传输方式,但可能产生数据丢失)。ROSMessages一个节点通过向特定话题发布消息。消息具有一定的类型和数据结构,包括ROS提供的标准类型和用户自定义类型。消息的类型标准命名方式进行约定:功能包名称/.msg文件名。最常用的有geometry_msgs/Twist包括线速度和角速度Vectors三维向量ROSServices1-to-1Service/Client模型:当你需要直接与节点通信并获得应答时,将无法通过话题实现,这时需要使用服务。服务需要由使用者开发,节点并不提供标准服务。命令行工具:rossrv查看有关服务数据结构的信息rosservice列出服务清单和查询某个服务ROSMaster向ROS系统中其他节点提供命名和注册服务跟踪和记录话题的发布者和订阅者使ROS节点之间能够相互查找。一旦节点找到了彼此,就能建立一种点对点的通信方式。提供参数服务器ParameterServer参数服务器是可通过网络访问的共享的多变量字典。节点使用此服务器来存储和检索运行时的参数。ROSPackages功能包(Package)ROS中软件组织的基本形式,用于创建ROS程序。它包含源文件、脚本文件、配置文件、可执行文件等。本质是一个特殊的文件夹,此文件夹中的文件和子文件夹按前面所说的文件系统的约定来编排,以方便管理、编译、使用此功能包。功能包管理:package.xml和CMakelists.txt文件,其中package.xml用来描述此功能包的基本信息,包括包名、作者、包之间的依赖等。CMakelists.txt主要描述如何构建、编译此功能包程序。ROSPackageSystem核心模块ROSPackage种类ROS常用命令工具rostopic(Topics)rosservice(Services)rosnode(Nodes)rosparam(Parameters)rosmsg(Messages)rossrv(Services)roswtf(Generaldebugging)ROS常用可视化工具rviz–3D可视化工具rqt–集成图像交互接口怎么学习ROS?两种教学模式InstructionismVs.Constructionism指导主义(Instructionism):传统教学方式:老师讲,学生听。特点:开环,或是死循环周期过长,等到期末考试或若干年工作后。建造主义(Constructionism):Learningbymaking,closetheloopofunderstandingAstepbystepguide学习步骤安装:/ROS/Installation官网教程:/ROS/Tutorials建议初学者认真学完整个“初级”20个教程!听到最多的问题之一:问:老师,我tutorials做完了,接下来该干什么?答:运行真实的机器人、解决真实的问题!问:没有机器人怎么办?答:仿真环境仿真环境:由易至难Turtlesim一个QT开发的2D轨迹显示接口只能显示运动轨迹ArbotiX含有一个差速驱动机器人的rviz仿真器机器人运动及topic数据的3D显示Gazebo功能齐全的3D物理仿真工具非常重,对内存和显卡要求高,慎入!进阶部分结合硬件平台和具体应用学习使用各种packageOpenCV、PCL、MoveIt!、Control、Navigation、SLAM在开发过程中学习使用调试仿真工具rqt、rviz、Gazebo开发测试新的机器人算法集成各类package构建机器人原型ROS版本那么多,该用哪一个?下载使用统计Hydroandearlier:0.17%Indigo:14.50%(LongTermSupport)Jade:0.50%Kinetic:62.89%(LongTermSupport)Lunar:2.70%Melodic:6.49%(LongTermSupport)版本选择建议初学者:KineticLinux程序设计能力比较强的:Melodic注意:Ubuntu版本要与ROS版本需匹配ROSIndigo+Ubuntu(14.04.1LTS)ROSKinetic+Ubuntu(16.04LTS)ROSDistributionReleases命令行不熟悉怎么办?有IDE/IDEsEclipseCodeBlocksEmacsVimNetBeansQtCreatorQtCreatorPluginforROSPyCharm(communityedit
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版塔吊租赁与验收及付款合同3篇
- 二零二五版科技公司股份交易与反垄断合规合同3篇
- 二零二五年度共享办公空间租赁与服务合同2篇
- 二零二五年度咖啡厅高品质咖啡豆供应合同3篇
- 2025年度个人向科技公司借款合同2篇
- 二零二五年度商业街区临时摊位租赁及管理服务合同2篇
- 2025年度“销售合同”英文翻译与海外市场品牌推广合作框架3篇
- 2025年度木地板施工安全与质量责任合同4篇
- KTV员工劳动合同范本
- 2025年度煤矿井巷工程应急救援预案编制合同
- 2023-2024学年度人教版一年级语文上册寒假作业
- 空气动力学仿真技术:格子玻尔兹曼方法(LBM)简介
- 对表达方式进行选择与运用
- GB/T 18488-2024电动汽车用驱动电机系统
- 投资固定分红协议
- 高二物理题库及答案
- 职业发展展示园林
- 七年级下册英语单词默写表直接打印
- 2024版医疗安全不良事件培训讲稿
- 中学英语教学设计PPT完整全套教学课件
- 移动商务内容运营(吴洪贵)项目五 运营效果监测
评论
0/150
提交评论