ROS2入门21讲__第01讲__ROS/ROS2是什么

目录


引言

  1. ROS的诞生
  2. ROS的发展
  3. ROS的特点
  4. ROS的社区
  5. 参考资料

引言

机器人的发展横跨七八十年,经历了三个重要时期。

  • 2000年前,机器人主要应用于工业生产,俗称工业机器人,由示教器操控,帮助工厂释放劳动力,此时的机器人并没有太多智能而言,完全按照人类的命令执行动作,更加关注电气层面的驱动器、伺服电机、减速机、控制器等设备,这是机器人的电气时代

  • 2000年后,计算机和视觉技术逐渐应用,机器人的类型不断丰富,出现了AGV、视觉检测等应用,此时的机器人传感器更加丰富,但是依然缺少自主思考的过程,智能化有限,只能感知局部环境,这是机器人的数字时代,不过这也是机器人大时代的前夜。

  • 2015年之后,随着人工智能技术的快速发展,机器人成为了AI技术的最佳载体,家庭服务机器人、送餐机器人、四足仿生机器狗、自动驾驶汽车等应用呈井喷状爆发,智能机器人时代正式拉开序幕。

智能机器人的快速发展,必将对机器人开发提出更高的要求,软件层面最为热点的技术之一就是机器人操作系统,这也是我们课程的主角——Robot Operating System

智能时代,机器人正在向全场景的高度智能化方向进化,这对机器人开发提出了巨大挑战,机器人操作系统ROS应用而生。

那什么是ROS?什么又是ROS2呢?

接下来,我们就一起掀起ROS的神秘面纱,带领大家认识一下机器人开发中这位重量级的嘉宾。

ROS的诞生

对于越来越复杂的智能机器人系统,已经不是一个人或者一个团队可以独立完成的,如何高效开发机器人,是技术层面上非常重要的一个问题,针对这个问题,一群斯坦福大学的有志青年尝试给出一个答案,那就是机器人操作系统

2007年,他们诞生了这样一个想法,我们有没有可能做一款个人服务机器人,帮助我们完成洗衣做饭收拾家等一切你不想做的事情,甚至还可以在你无聊的时候,陪你聊天玩耍,最后他们真的做出来了。

当时,他们深知做出这样一款机器人并不容易,机械、电路、软件等都要涉及,而且横跨很多个专业,光靠自己肯定做不到,此时他们诞生了这样一个想法:既然自己做不到,那为什么不联合所有人一起干呢?如果设计一套标准的机器人平台和其中的软件,大家都可以在这个平台上做应用开发,既然应用软件都基于同一平台,应用的分享也很容易实现,这就类似别人开发的苹果手机应用,只要你有苹果手机,同样也可以用。

说干就干,初期的机器人原型是用实验室可以找到的木头和一些零部件组成的,后期有了充足的资金,才得以实现图中这款外观精致、性能强悍的机器人——PR2,Personal Robot 2代。

在上图中,我们可以看到PR2机器人已经可以完成叠毛巾、熨烫衣服、打台球、剪头发等一系列复杂的应用功能,以叠毛巾为例,这在当时是轰动机器人圈的重要研究,因为第一次有机器人可以完成柔性物体的处理,虽然效率很低,在100分钟之内只完成了5条毛巾的整理,但是在学术层面却推动机器人向前走了一大步。

这款机器人中的软件框架就是ROS的原型,所以ROS因这款个人服务机器人而生,很快也从中独立出来,成为一款用于更多机器人的软件系统。

ROS的发展

ROS诞生于2007年的斯坦福大学,这是早期PR2机器人的原型,这个项目很快被一家商业公司Willow Garage看中,类似现在的风险投资一样,他们投了一大笔钱给这群年轻人,PR2机器人在资本的助推下成功诞生。

2010年,随着PR2机器人的发布,其中的软件正式确定了名称,就叫做机器人操作系统,Robot Operating System,简称为ROS。同年,ROS也肩负着让更多人使用的使命,正式开源。

PR2机器人虽好,但是成本居高不下,几百万的价格让绝大部分开发者望而却步,官方也注意到了这个问题,所以在2011年发布了一款后期成为ROS圈爆款的机器人——Turtlebot,这款机器人采用扫地机器人的底盘,加上xbox游戏机中的体感传感器Kinect,直接使用笔记本电脑就可以控制,支持ROS的所有开源功能,关键是价格便宜,随着这款机器人的普及,大大推动了ROS的应用。

从2012年开始,使用ROS的人越来越多,ROS官方也开始每年举办一届ROS开发者大会——ROS Conference,简称ROSCon,来自全球的开发者会齐聚一堂分享自己使用ROS开发的机器人应用,其中不乏亚马逊、Intel、微软等大公司的身影,近两年因为疫情原因改为线上举办,名称也变为了ROS World。

经历前几年野蛮而快速的增长,ROS逐渐迭代稳定,2014年起,ROS跟随Ubuntu系统,每两年推出一个长期支持版,每个版本支持五年时间,这标志着ROS的成熟,也让ROS加快了普及的步伐。

回到时间轴的起点,ROS的创始团队原本只想做一款个人服务机器人,万万没想到,ROS被越来越多机器人使用,受限于当初设计的局限性,ROS的问题也逐渐暴露。为了能够真正设计一款适用于所有机器人的操作系统,ROS2在2017年底正式发布,历经多年迭代,我们终于在2022年5月底,迎来了ROS2第一个长期支持版——ROS2 Humble,ROS2已经成熟,我们也进入了一个全新的ROS2时代。

从ROS发展的时间轴中,我们不仅可以了解到ROS的发展过程,更重要的是熟悉ROS和ROS2诞生的原因。

这里我们也把ROS2发展的时间轴单独提取出来,介于ROS在各种各样机器人中应用的问题,ROS2在2014年提出,2015年开始迭代,2017年推出第一个正式版,此后快速迭代,直到2022年推出了第一个长期支持版,本教程也会在该版本ROS2之上进行讲解。

ROS的特点

ROS怀揣“提高机器人软件复用率”的目标,促使社区快速发展和繁荣,时至今日,ROS已经广泛用于各种机器人的开发,无论是机械臂、移动机器人、水下机器人,还是人形机器人、复合机器人,统统都可以看到ROS的身影,ROS已经成为机器人领域的普遍标准。

提高机器人软件复用率,这个目标简单来讲就是不要重新造轮子

正如一家做汽车的公司,从零制造汽车并不是一个明智的做法,他们通常会采购A家的轮子、B家的引擎、C家的多媒体系统,最后把这些整合到一起做成汽车。同理,我们也可以将ROS社区中已有的各种软件集合到一起,在此之上去实现自己的创意,同时还可以将自己的成果分享给别人,这样大家都可以站在巨人的肩膀上,向前走的更远,一步一步,智能机器人才会有更多沉淀和更长远的进步。

围绕这个核心目标,ROS在自身的设计上也尽量做到了模块化,由通信机制、开发工具、应用功能、生态系统四大部分组成。同时ROS具备多项特点,这里的ROS是ROS1和ROS2的总称, 比如:

  • 社区是全球化的,那就可以集合全人类的智慧来推进机器人的智能化发展;
  • 这些智慧的结晶都会以各种各样的应用案例在社区中沉淀下来;
  • ROS本身也是完全开源的,商业许可证非常宽松
  • 对商业应用功能友好,这就代表着公司可以直接使用ROS开发商业化的机器人产品,缩短了产品的上市时间
  • ROS也可以跨平台使用,Linux、Windows、嵌入式系统都可以跑;
  • ROS2中也新增了很多支持工业应用的新特性和新技术,促使ROS在越来越多领域中被使用。

ROS的社区

社区是ROS快速发展的核心动力,什么是社区呢?其实就是ROS相关资源的整合方式,比如wiki说明、问答网站、应用源码、论坛讨论等都算是社区中的元素。

ROS全球社区有几个重要网站:

  1. answers.ros.org,这是一个ROS问答网站,大家可以在上边提出任何关于ROS的问题,全球很多开发者都很乐意回答我们的问题;
  2. wiki.ros.org,这是ROS的维基百科,记录了ROS教程和各种功能包的使用;
  3. discourse.ros.org,这是ROS论坛,关于ROS开发的新鲜事都可以在这里发表和查看,比如ROS的活动、新功能包的发布等等。
  4. index.ros.org,是ROS各种资源的一个索引网站;
  5. packages.ros.org,是ROS功能包存储的数据库。

这几个网站的使用情况基本就可以代表ROS社区的活跃度了。

上图是近几年ROS社区页面浏览量的增长曲线,从总体趋势上来看,各项增长速度都非常快,wiki作为日常使用最为频繁的网站,使用度无疑是最高的,现在每个月有150万左右的访问量,answers和packages现在差不多,每个月有80万左右,其他两个不多,四项加起来每个月基本有250万左右的访问量,已经是一个活跃度非常棒的社区了。

从访问人数上来看,上边这张图更为清晰,wiki每个月有20到25万人使用answers每个月有15万人以上使用,四项加起来每个月差不多有40多万的使用人数,这些用户绝大部分都是机器人开发者,可以看到ROS使用人数是越来越多了。

总而言之,通过这些数据,我们可以看到的是ROS发展迅猛,正在助推机器人革命这一波大浪潮,大家每一个人在其中都大有可为。

如果你希望学习机器人开发,ROS绝对会成为你开发机器人的神兵利器,本教程也绝对是你的最佳选择。

参考资料

关于本教程的参考资料,主要推荐这几个网站。

首先是最为推荐的搜索之王——Google,几乎所有问题,都可以在这里解决,作为开发工程师的同学,一定要掌握这个重要工具的使用方法。

其次是开源项目的主阵地——Github,ROS和社区中的绝大部分代码,都在这里托管,还有大量可以作为我们学习参考的开源项目都可以在这里找到,也是我们离不开的一个网站。

然后是古月居网站,这里有大量ROS机器人开发的技术内容和视频课程,还可以在泡泡板块中提问,也欢迎大家在这里和120万人分享你所学的知识。

最后是本教程网站,会提供详细的ROS2入门教程,后续也会不断更新和扩展,努力成为大家学习ROS机器人开发的百科全书,配合课程视频学习,效果会更好。

好啦,欢迎大家来到ROS的世界,从这里开始,我们将一起踏上一段美妙的机器人开发之旅。

  • 34
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: "ROS2入门21"是一套图文教程,以简单易懂的方式介绍ROS2的基本概念和操作。通过这套教程,读者可以了解Ros2的工作原理,学习如何使用ROS2搭建机器人系统。教程分为21个部分,每个部分解一个话题,包括ROS2的体系结构,节点,Topic,服务等。对于初学者来说,这套教程是学习ROS2的良好入门材料。在学习过程中,读者可以循序渐进地学习相关知识,通过实际操作,了解ROS2的核心技术。教程还提供了大量的示例代码和操作指南,帮助读者更好地理解ROS2的操作过程。此外,教程也提供了一些高级内容的介绍,如如何自动部署ROS2应用,如何实现ROS2的多机通信等。总体而言,ROS2入门21图文教程是一套非常实用的教程,适合初学ROS2的读者使用。学习这套教程可以让读者了解ROS2在机器人系统中的应用,从而更好地掌握相关技能。 ### 回答2: 如今,ROS成为了机器人领域调试、开发和测试的标准,ROS 2是其最新版本,它主要带来了更快的性能、更好的可靠性和更好的可扩展性等特性。 为了帮助大家更快、更好地学习ROS 2,本着开放、分享、合作的精神,一位名为vxy10的作者为我们制作了《ROS 2入门21图文教程》。 该教程分为多个章节,涵盖了ROS 2的基础知识、常用工具的使用以及一些实例案例的解等内容。 首先,作者详细阐述了ROS 2的基础概念,例如节点、话题、服务、参数、行为等,为读者提供了一个清晰的整体认识。然后,课程解了ROS 2常用的工具和函数,包括Rviz、rostopic、rosnode、rqt等,为新手提供了一个快速入门的方式。接着,课程分别解了一些实例案例,例如如何使用 ROS 2进行控制机器人、如何使用ROS 2进行机器人的对话等,为读者提供了一个更加深入的了解。 本教程不仅提供了详尽的代码示例,还有丰富精美的图例,能够帮助读者更好地理解各种概念和示例。此外,每个章节都配有习题和答案,帮助读者巩固所学知识,提高学习效率。 总之,《ROS 2入门21图文教程》具有系统性、实用性和互动性等特点,对于想要学习ROS 2的读者来说,是一份非常宝贵的资源。 ### 回答3: ROS2入门21图文教程是一篇非常详细的教程,旨在帮助初学者了解ROS2的基本知识和使用方法。这个教程分为21个章节,每个章节都覆盖了ROS2的不同方面和主题。 在第一章中,教程简要介绍了ROS2的概念和优点,让读者了解ROS2的用途和处理能力。第二章解了ROS2的安装和设置,包括环境变量的配置和ROS2节点的启动方式。第三章介绍了ROS2的工具,包括rqt图形界面,rviz可视化环境等,这些工具是ROS2开发的关键组成部分。第四章到第十二章解了ROS2的核心概念,包括消息传递机制、文件结构、包和节点等,这些都是ROS2开发的重要知识点。第十三章到第十五章解了ROS2服务,包括服务器和客户端的创建和使用。第十六章到第十九章解了ROS2参数服务器和节点名称,涉及到ROS2开发中的重要概念和工具。最后两章解了ROS2的调试方式和使用ROS2与OpenCV进行通信的方法。 整个教程详细、生动、易于理解,其中配图和代码示范也让读者更好地理解和操作ROS2。对于初学者来说,这个教程是入门ROS2的一份非常好的材料,不仅涵盖了大部分基础知识和技能,而且通过大量实例的演示,让读者能够更好地掌握ROS2的使用方法。所以,这个教程是初学ROS2的开发者们不可多得的宝贵资源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值