版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ROS起源及特色SmoothingTheROSLearningCurve本课目的:给出学习ROS的有效路径,加快学习速度内容:WhatisROS?WhyisROS?Whattolearn?HowtoLearn?©NXROBO20232机器人的开发©NXROBO20233什么是ROS?RobotOperatingSystem(ROS)是一个适用于机器人的开源的元操作系统。它提供了操作系统应有的服务,包括硬件抽象,底层设备控制,常用函数的实现,进程间消息传递,以及包管理。它也提供用于获取、编译、编写、和跨计算机运行代码所需的工具和库函数。松耦合点对点进程网络。支持的操作系统ROS主流在基于Unix的平台上运行。ROS的软件主要在Ubuntu和MacOSX系统上测试,同时ROS小区仍持续支持Fedora,Gentoo,ArchLinux和其它Linux平台。MicrosoftWindows已开始支时ROS,功能尚待完善。©NXROBO20234ROS的起源©NXROBO20235在科研项目上避免重复造轮子统一开发标准ROS的历史©NXROBO20236为什么学习ROS?机器人开发:软件开发的比重越来越大软件框架选择:是软件架构设计中一个重要的决策ROSPlayerYARPOrocosCARMENOrcaMOOSMicrosoftRoboticsStudio©NXROBO20237ROS的优势1,松散耦合的机制方便机器人软件框架的组织2,最丰富的机器人功能库方便快速搭建原型3,便利的数据记录、分析、仿真工具,方便调试4,学界和产业界的标准方便学习和交流©NXROBO20238对于开发者而言:快速搭建机器人原型©NXROBO20239License许可ROS的核心是BSD许可证。这是一个非常宽松的开放许可证。允许在商业和闭源产品使用。/licenses/BSD-3-Clause/wiki/BSD_licenses©NXROBO202310最庞大的使用者群体,事实上的机器人标准ROS集聚了超过20个国家740家成员单位和29.1万开发者。(个人用户中国第二)©NXROBO202311学术研究领域目前学术领域大部分最新成果都会发布ROS的版本“ROS:anopensourceRobotOperatingSystem”(Quigleyetal.,2009):论文引用量4806Source:GoogleScholar2023-09-28
©NXROBO202312官方支持ROS的机器人100+产品:目前已经有很多机器人公司采用了ROS系统来开发一些应用于全新市场的产品,如ClearPath,Rethink,Unbounded,Neurala,BlueRiver,BIG-i,最典型的就是WillowGarage的PR2机器人。大公司的支持:Nvidia、博世、谷歌、高通、英特尔、宝马、小米、华为以及大疆等。投资机构的热捧:仅2015年,相关风险投资机构就在基于ROS操作系统的机器人公司投资了超过1.5亿美元。©NXROBO202313代码统计Thetotallinecountisover14millionlinesofcodeTherehavebeen2477authorsAnd181509commitsAveraging73.3commitsperauthor©NXROBO202314代码语言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不擅长开发对实时性及成本要求严苛的产品。©NXROBO202315一句话概括ROS规定了统一通信接口的松耦合分布式开源软件框架。最大的好处:即插即用,提供统一软件接口,事实上的机器人研究的统一平台。有了统一的平台,我们才有共同交流的可能,以上也是我们学习ROS的主要原因。©NXROBO202316ROS应用场景商业上的机器人产品一般会给出ROS的软件接口(比如ROS-I基于的工业机器人的MoveIt!接口)商业上很多机器人相关软件也会给出ROS界面(比如Webots仿真器,MATLAB的robotsystemtoolbox),从一方面说明ROS的普及程度。ROS现在最广泛的用途:算法与硬件的快速结合,系统集成方案快速构建、评估与验证。现阶段不建议将ROS整体、直接用于对实时性及成本要求严苛的产品。ROS2.0:新的架构(取消了Master),新的通信机制(DDS数据分发协议),对实时性的支持,有望实现嵌入式应用。©NXROBO202317ROS10YearMontage©NXROBO202318/245826128ROS应该学什么?©NXROBO202319入门起步设计思想核心概念核心模块核心工具©NXROBO202320设计思想:分布式架构©NXROBO202321核心概念Nodes(节点)MessagesandTopics(消息与话题)Services(服务)ROSMaster(ROS管理器)Parameters(参数)Stacksandpackages(功能包集与功能包)©NXROBO202322ROSNodes节点是各自独立的可执行文件,能够通过话题、服务或参数服务器与其他进程(节点)通信。ROS通过使用节点将代码和功能解耦,提高了系统容错能力和可维护性,使系统简化。同时,节点允许了ROS系统能够布置在任意多个机器上并同时运行。节点在系统中必须有唯一的名称。节点可以使用不同的库进行编写,如roscpp和rospy。roscpp基于C++rospy基于Python。©NXROBO202323ROSTopics话题是节点间用来传输数据的总线。1-to-NPublish/Subscribe模式:同一个话题也可以有很多个订阅者。使用TCP/IP传输,称为TCPROS,ROS默认。使用UDP传输,称为UDPROS,适合于远程操控任务。(低延迟高效率的传输方式,但可能产生数据丢失)。©NXROBO202324ROSMessages一个节点通过向特定话题发布消息。消息具有一定的类型和数据结构,包括ROS提供的标准类型和用户自定义类型。消息的类型标准命名方式进行约定:功能包名称/.msg文件名。最常用的有geometry_msgs/Twist包括线速度和角速度Vectors三维向量©NXROBO202325ROSServices1-to-1Service/Client模型:当你需要直接与节点通信并获得应答时,将无法通过话题实现,这时需要使用服务。服务需要由使用者开发,节点并不提供标准服务。命令行工具:rossrv查看有关服务数据结构的信息rosservice列出服务清单和查询某个服务©NXROBO202326ROSMaster向ROS系统中其他节点提供命名和注册服务跟踪和记录话题的发布者和订阅者使ROS节点之间能够相互查找。一旦节点找到了彼此,就能建立一种点对点的通信方式。提供参数服务器©NXROBO202327ParameterServer参数服务器是可通过网络访问的共享的多变量字典。节点使用此服务器来存储和检索运行时的参数。©NXROBO202328ROSPackages功能包(Package)ROS中软件组织的基本形式,用于创建ROS程序。它可以包含ROS运行的进程(节点)、配置文件等。功能包清单(Manifest)功能包列表提供关于功能包、许可信息、依赖关系、编译标志等的信息。功能包列表是一个manifests.xml文件,通过这个文件能够实现对功能包的管理。©NXROBO202329ROSPackageSystem©NXROBO202330核心模块©NXROBO202331ROS
Package种类©NXROBO202332核心工具©NXROBO202333ROS常用命令工具rostopic(Topics)rosservice(Services)rosnode(Nodes)rosparam(Parameters)rosmsg(Messages)rossrv(Services)roswtf(Generaldebugging)©NXROBO202334ROS可视化工具便于机器人仿真与观察rqt–集成图像交互接口rviz
–3D可视化工具©NXROBO202335ROS资料存储/回放思想:使用bag存储topic(例如现实中的传感器数据),以后调用bag的topic数据则不必每次都在现实中运行机器人Rosbag:高性能,直接生成topic,避免数据转换©NXROBO202336ROSlog系统记录软件运行相关信息基于log4cxxrosconsole:提供多个层级的log信息©NXROBO202337怎样学习ROS?©NXROBO202338两种教学模式InstructionismVs.Constructionism指导主义(Instructionism):传统教学方式:老师讲,学生听。特点:开环,或是死循环周期过长,等到期末考试或若干年工作后。建造主义(Constructionism):Learningbymaking,closetheloopofunderstandingAstepbystepguide©NXROBO202339学习步骤安装:/ROS/Installation官网教程:/ROS/Tutorials建议初学者认真学完整个“初级”20个教程!©NXROBO202340学习步骤听到最多的问题之一:问:老师,我tutorials做完了,接下来该干什么?答:运行真实的机器人、解决真实的问题!问:没有机器人怎么办?答:仿真环境©NXROBO202341仿真环境:由易至难Turtlesim一个QT开发的2D轨迹显示接口只能显示运动轨迹ArbotiX含有一个差速驱动机器人的rviz仿真器机器人运动及topic数据的3D显示Gazebo功能齐全的3D物理仿真工具非常重,对内存和显卡要求高,慎入!©NXROBO202342进阶部分结合硬件平台和具体应用学习使用各种packageOpenCV、PCL、MoveIt!、Control、Navigation、SLAM在开发过程中学习使用调试仿真工具rqt、rviz、Gazebo开发测试新的机器人算法集成各类package构建机器人原型©NXROBO202343ROS版本那么多,该用哪一个?下载使用统计Hydroandearlier:0.17%Indigo:14.50%(LongTermSupport)Jade:0.50%Kinetic:62.89%(LongTermSupport)Lunar:2.70%Melodic:6.49%(LongTermSupport)©NXROBO202344版本选择建议初学者:KineticLinux程序设计能力比较
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度生态农业劳务用工服务合同模板(含有机肥料施用技术)2篇
- 2025年厂房拆除与设备回收再利用专项合同3篇
- 2025年度医疗机构执业药师聘用合同及药品安全培训协议3篇
- 二零二五年度新材料研发业务员委托合同3篇
- 2025年度养生馆加盟店信息化建设与维护合同3篇
- 二零二五年度生态农业房产转租合同3篇
- 2025年度建筑公司合同工劳动合同(安全培训)2篇
- 二零二五年度净水器租赁服务合作协议合同模板
- 二零二五年度公对公网络安全技术研发与应用合同2篇
- 2025年度消防通风系统节能改造合同3篇
- 数学与语言学、语言艺术的交叉研究
- 2023年云南大学滇池学院教师招聘考试笔试题库及答案
- 医院“无陪护”病房试点工作方案
- 清华大学大学物理-光的偏振
- 心理健康教育-网络与青少年
- 高中英语人教版(2019) 选择性必修一 Unit 3 课文语法填空(含答案)
- 2021-2022学年陕西省宝鸡市陈仓区北师大版六年级上册期末考试数学试卷(含答案解析)
- 应用PDCA提高入院宣教的知晓率
- 线性系统理论郑大钟307张课件
- 2019-2020学年第一学期广东省广州市天河区3年级数学期末考试卷
- 缠论公式(最完美自动画笔公式)主图
评论
0/150
提交评论