一 序言

2006年,一帮人在好奇心的驱使下,走在一起,组建了一个机器人研究实验室-柳树车库机器人实验室。他们利用开源软件这一无比诱惑人的馅饼,骗取这个星球上千万人加入到这个宏伟计划中。在机器人历史上,从来没有这样的经历,组织全球的力量去去实现一个梦想。机器人操作系统(ROS)就是这一宏伟计划的一部分,一旦人们尝到馅饼的美味,就欲罢不能。ROS打开了,潘多拉魔盒,闸门打开了,洪水汹涌冲进来。

这也是为什么ROS这么令人着迷。但是因为闸门打开的太快了,很多人还没有做好准备,有些人完全没有意识到是怎么回事,就不得不与ROS牵连在一起,卷入到洪流中,在其中奋勇游击。

张新宇教授想告诉你这一机器人梦想是什么,人们是如何围绕ROS编织这个梦的。

二 联盟

2010年5月26日,一个人类历史上第一个机器人毕业典礼正在一条蜿蜒的小路旁,临时搭建的一座帐篷中举办。这条路叫柳树路(Willow Road)。5月的加州,凉意浓浓,别墅的主人是一个叫斯科特-哈森(ScottHassan)的中年人,硅谷的亿万富翁。这里也是一家叫柳树车库(Willow Garage)机器人公司的办公地。今晚,注定是值得纪念的夜晚。无论对柳树车库机器人公司,对机器人学术界,还是工业界都是重大的日子。今晚,柳树车库将为自己研发的机器人,PR2(个人机器人2代),举办一场盛大的毕业典礼。邀请的来宾有大学教授,有记者,有机器人爱好者,投资人,亿万富翁,当然还有柳树车库的员工们。在300人的营造的喧嚣中,在昏暗的灯光和拥挤的空间里,空气中混杂着音乐,香槟,香水味,柳树车库的创始人,就是那位亿万富翁兼房东,走上舞台,告诉八方来客,自己过去4年思考的三件事:

1 为什么需要机器人?

答案:机器人可以帮助我们提高效率

2 为什么我们还没有机器人?

答案:造一个机器人很难,这方面的投资很少。投资很少是因为市场很小,市场很小是因为机器人能做的事情很有限。没有市场,就没有投资,没有投资就没有人造机器人,没有人造机器人,就没有机器人。

3 如何实现人人拥有机器人的梦想?

答案:我们正在做这件事,但是我们自己无法实现这个梦想,我们通过构建一个社群,让工程师,研究人员,工业企业参与进来,联合起来,一起来做。希望有生之年能实现这个梦想。

此时,一群被人们称为PR2的机器人们,在闪烁的彩灯下登上舞台,自由扭动身躯,挥舞手中旗帜,炫耀着自己200公斤重的身躯,ROS的标志高高飘扬,观众中爆发出阵阵欢呼。

当PR2项目的负责人埃里克·博格(EricBerger)和基南·威罗拜克(Keenan Wyrobek)宣布柳树车库已近开发出来的20台PR2机器人,他们计划将11台PR2机器人赠送给世界知名的机器人实验室。这场机器人毕业典礼仪式高潮才刚刚开始。这些每一位身价高达40万美元的机器人毕业生将真正进入社会,进入11所大学和研机机构,开始他们的机器人科研之旅。

每听到一个大学的名字,现场的人们就欢呼,尖叫,伴随着上世纪80年代风行一时的摇滚乐曲《机器人先生》(Mr.Roboto)的音乐,霓虹灯闪烁,旗帜飘飘。11加机器人研究机构将把这些宝贝们领回家,与柳树车库的工程师们,共同创造个人机器人时代。

这晚,柳树车库机器人公司举办了人类历史上第一场个人机器人毕业舞会,这一事件将永久地载入人类史册。

那些狂欢的人们可能不会想到,仅仅过了4年,柳树车库的众将们都各领旗帜,开创自己的机器人事业去了。

三 开端

计算机使用的操作系统,英语称为Operating System。它是一种计算机程序,帮助使用计算机的人操控计算机硬件、管理各种应用软件。人们听说过的硬件包括:CPU、主板、内存、硬盘、显示器、打印机、U盘等;人们常用的应用软件有:文字处理软件,比如微软开发的Word,幻灯片制作软件。

一开始,计算机比较简单,并没有操作系统,人们通过各种操作按钮就可以控制计算机,但是这种操作方式效率比较低。后来人们通过有孔的纸带将程序输入计算机进行编译,再通过程序员自己编写的程序运行,这种方式效率还是很低。为了更有效的管理计算机硬件,并提高计算机程序的开发效率,就出现了操作系统。

与计算机操作系统类似,机器人操作系统的出现也遵循这样一个规律:为了提高机器人设计和开发的效率。机器人操作系统英语称为Robot Operating System,缩写为ROS。

ROS最早是在美国斯坦福大学的人工智能实验室STAIR和硅谷的一家机器人公司Willow Garage开展的一个个人机器人项目。ROS的系统架构是由Morgan Quigley设计的,他当时还是美国斯坦福大学博士生,他的博士导师是中国知名度非常高的Andrew Ng(吴恩达)。在与Willow Garage合作之前,Morgan Quigley就已经开始在美国斯坦福大学人工智能实验室内部的STAIR机器人项目中负责软件架构设计和项目开发了。

当时这个STAIR项目希望完成一个服务机器人原型,在视觉的辅助下,可以在复杂环境中运动,还可以通过机械臂操控环境中的物体。STAIR机器人配备了一个运动底盘,一个小型机械臂,立体摄像头、激光雷达。一个STAIR项目由几个小组分别负责不同的模块,分头推进。Morgan Quigley负责导航组,同时负责软硬件模块的系统集成。Morgan Quigley发现将操控、导航、视觉等各种功能集成在一个机器人上非常不容易,因此他考虑采用“分布式计算”的方式。2007年,Morgan Quigley和吴恩达将STAIR的成果发表在IEEE 国际机器人与自动化会议上,文章的题目是《STAIR: Hardware and Software Architecture》,软件系统的名称是Switchyard[5]。这个Switchyard就是ROS前身。

后来 吴恩达与Willow Garage合作共同开发ROS,Morgan Quigley将前期在STAIR项目积累的经验发挥的淋漓尽致,成为ROS开发框架的核心人物。2009年Morgan Quigley、吴恩达和Willow Garage机器人公司的工程师们,在当年的IEEE 国际机器人与自动化会议上发表了《ROS: An Open-Source Robot Operating System》,正式向外界介绍ROS。

正如文章中说强调的:

ROS is not an operating system in the traditional sense of process management and scheduling; rather, it provides a structured communications layer above the host operating systems of a heterogenous compute cluster. (ROS不是传统意义上的操作系统,不是用于进程管理和调度,而是构建在其它操作系统之上的一种结构化的通讯层。)

四 乌龟

Morgen Quigley从小就喜欢编程。小学期间,就开始用Logo语言控制屏幕上的“小乌龟”运动。正是儿时的记忆导致后来ROS的每个版本的吉祥物都是“小乌龟”。当然,那是很多小朋友都在“小乌龟”环境中学习编程的。在大学里,他第一次看到机器人,立马就被这些由机械、电子、计算机软件构成的小家伙们吸引了。他发现,计算机软件不再是“虚”的东西,其实软件可以通过机器人来体验真实的世界。他在机器智能实验室学习,并制作了一些小型无人机,还可以通过计算机程序控制这些无人机。

2005年摩根·奎格利申请到斯坦福大学人工智能实验室读博士,吴恩达是他的导师。他跟着吴恩达做过不少机器人和机器学习的项目。这些项目包括机械臂、制作机械手、无人机、强化学习、视觉辅助物体的抓取等五花八门的项目。在吴恩达(Andrew Ng)的带领下,摩根·奎格利参与到STAIR项目中,希望通过各种现有的硬件和软件,通过集成到一个机器人上的方式,打造一款“个人机器人”助手。原来的机器人大多是执行单一任务的专业机器人,摩根·奎格利希望利用软硬件的经验,负责软硬件的系统集成任务。最终,摩根·奎格利的毕业论文也是与之直接相关的《个人机器人的硬件和软件系统》(Hardware and Software Systems forPersonal Robots)。这样一个机器人助手的助手在当时是非常新的概念,他不但可以帮人端茶倒水、还可以开门、关门、帮人取报纸、实现各种在家庭和办公室的任务。他希望这样的个人机器人系统,可以像个人电脑一样进入千家万户。

2012年,摩根·奎格利终于博士毕业了,他选择作为首席架构师,创建了“开源机器人基金会 (Open Source Robot Foundation,OSRF)”。后来,OSRF接管了ROS的开发和维护工作。鉴于Morgan Quigley在开源软件ROS上的贡献,2013年,他被《麻省理工学院科技评论》(MIT Technology Review) 杂志评选为35岁以下杰出青年创新人物 。

五 预见

说到柳树街那个机器人公司—柳树街车库和ROS,不得不细说柳树街的房东和车库的创始人说起。柳树车库创始人是斯科特·哈森[1]。在“机器人毕业典礼”一文中,提到过斯科特·哈森,讲他如何在硅谷精英和投资人面前,绘声绘色地描绘个人机器人的未来世界。

2000年出售了eGroups,斯科特·哈森年纪轻轻就成了亿万富翁。俗话说,钱是男人胸中胆,这一点不假。换句话讲,说的是,男人就怕有钱,有钱就想干大事。第一件事,他慷慨地投资了谷歌,那时他的好朋友谢尔盖·布林和拉里·佩奇的谷歌刚刚起步。后来随着谷歌上市,斯科特·哈森又获得了第二桶资金。第二件事,买了一套办公空间。其实,那时他也不知道该干啥事。很多事实在看着没意义,没挑战。他干脆就先在硅谷风险投资机构聚集的门洛·帕克(MenloPark)买了一个办公室,希望作为以后的办公空间。这就是后来柳树车库的办公地址:柳树街(Willow Road)68号。这个地址也是柳树车库(WillowGarage)这一名称的来源。

图:2009年,谷歌的创始人拉里·佩奇来柳树街车库串门。

斯科特·哈森就是在这种豪情万丈,并且不差钱的背景下在2006年创立了WillowGarage。在当时,市面上除了一些教育类的机器人外,只有iRobot公司销售的扫地机器人。斯科特·哈森认为扫地机器人实在是太低端了,他的梦想是希望开发一个机器人助手,帮助打理个人生活。那才叫机器人。

斯科特·哈森看好个人机器人助手的原因:

  • 首先,他认为“机器人能够提高人们的生活水平”。在参观了丰田的汽车工厂之后,他对丰田的工业机器人和自动化生产线印象非常深刻。未来在他脑海的轻舞飞扬:如果这些机器人走出工厂,走进家庭,世界会变成什么样?

  • 在Willow Garage成立的时候,人们关注的多是制造业相关的工业机器人,非工业机器人市场非常之小,没人愿意投资这个领域,更不要说个人服务机器人领域了。另外,机器人相关的人才对专业要求比较高,需要懂硬件、软件、电子、管理各路人才。斯科特·哈森发现没有很好的方法把这些人聚集在一起。出于使命感,他感觉“这事他自己应该能做”。

  • 还有一个原因是,斯科特·哈森的母亲是个机器人爱好者,对他产生了潜移默化的影响。(看一个人是否有潜质,查查上三代、下三代看来是有道理的。)

斯科特·哈森希望打造一款家用服务机器人。他预见机器人背后巨大的市场,这就是WillowGarage的诞生理由。

6 结派

柳树街车库董事长和CEO是史蒂夫·库辛斯。斯科特·哈森非常清楚进入一个新领域,机器人领域,仅凭他一人的力量是无法实现个人机器人的目标的,他需要吸引更多人加入。斯科特·哈森有钱,有场地,就是缺人陪他玩。斯科特·哈森首先想到了他的好朋友史蒂夫·库辛斯。

斯科特·哈森和史蒂夫·库辛斯早就认识。史蒂夫·库辛斯当年在圣路易斯华盛顿大学获得硕士学位后,就留在了圣路易斯华盛顿大学医学院工作,做一些医疗信息系统的研究工作。当时招了一位圣路易斯华盛顿大学的学生做实习生,这位实习生就是斯科特·哈森,就是那个柳树街的房东。蒂夫·库辛斯在施乐和IBM积累了丰富的项目和团队领导经验。

图:史蒂夫·库辛斯(左)和斯科特·哈森(右)。

找人是当前首要的任务。史蒂夫·库辛斯在斯坦福认识不少人,有一天史蒂夫·库辛斯告诉斯科特·哈森,带你去看看两个小孩做的东西,这两个小孩就是后来负责PR2项目的基南·威罗拜克(KeenanWyrobek)和埃里克·博格(EricBerger)。基南·威罗拜克和埃里克·博格当时正在斯坦福大学用木头打造PR1机器人原型(PR2机器人的上一代)。有了柳树街车库的支持,基南·威罗拜克不再读博了,埃里克·博格也刚好硕士毕业,两人一起加入柳树街车库共同负责PR2项目开发。

后来,在柳树街散场后,斯科特·哈森和蒂夫·库辛斯分别带领人马,成立了Beam机器人公司和 Savioke机器人公司。Beam主打远程会议机器人,而Savioke主打酒店服务机器人。

7 缔造

这次介绍车库双雄,也是PR2的缔造者。

车库创立的后,斯科特·哈森找到了史蒂夫·库辛斯,可两位都没有机器人背景和开发经验。他们听说了后来PR2的两位缔造者:埃里克·博格和基南·威罗拜克,两位在斯坦福大学同一个机器人实验室(Salisbury教授的机器人实验室)读书做研究。

这两位学生的梦想,是打造一个个人机器人,包括全套硬件和软件。这跟车库房东——斯科特·哈森的设想是一致的。当斯科特·哈森和史蒂夫·库辛斯来到斯坦福大学,看到的一幕是:埃里克·博格和基南·威罗拜克,这两位小伙伴正忙着用木头打造一个个人机器人,名字叫PR1。斯科特·哈森和史蒂夫·库辛斯并没有告诉他们此行的意图,只是说想看看机器人演示。埃里克·博格和基南·威罗拜克做了演示,并告诉两位大佬,他们希望这个机器人以后可以打扫房间,可以切菜,还可以给人喂饭。斯科特·哈森看了两位小伙伴的演示,感觉非常好,这正是斯科特·哈森想要的。

图: 在斯坦福大学机器人实验室,由基南·威罗拜克和埃里克·博格开发的PR1机器人。

一开始,斯科特·哈森想找些硬件工程师和软件工程师,跟这两个小孩比赛,看谁做得快。后来斯科特·哈森改变了策略,采取直接跟这两个斯坦福的学生合作的方式,后来也成功吸引两位学生加入了车库。车库把两个小孩在斯坦福做的机器人称为PR1,后来在车库打造的机器人称为PR2。

有了车库的支持,基南·威罗拜克放弃读博,埃里克·博格也刚好硕士毕业,本来想继续读博士,也放弃了。两人一起加入车库共同负责PR2项目开发。车库内部分成很多小项目,基南·威罗拜克和埃里克·博格则是车库最重要的项目PR2的联合创始人。另外,埃里克·博格以前也参与了斯坦福的STAIR项目,并且负责软硬件系统的体系构架工作。所以埃里克·博格也是ROS早起贡献者之一。

斯科特·哈森和史蒂夫·库辛斯调动公司大部分人力和财力支持PR2项目。ROS是PR2项目其中的软件部分,车库采用同时与斯坦福大学人工智能实验室吴恩达(Andrew Ng)教授合作,将STAIR项目中的Switchyard为基础,构建ROS,并采用开源形式,让世界上(其实主要是美国)感兴趣的人能参与进来。

创业初期,车库主要目标是推动PR2机器人的开发和ROS开源软件的维护。前面说过,ROS的贡献中,吴恩达教授的博士生摩根·奎格利起到了关键作用,被称为ROS之父。

这时PR2的核心团队已经形成。

图从左到右:斯科特·哈森(创始人),史蒂夫·库辛斯(CEO),基南·威罗拜克(PR2项目经理),埃里克·博格(PR2项目经理)

8 开花

经过4年的艰苦研究之后,PR2于2010年诞生了。

它在学术界非常受欢迎。但是PR2的价格高达40万美金,除了研究机构,没有人愿意花这么大的价格购买一个叠毛巾的机器人。

图:整理毛巾的PR2

车库另外一个项目TurleBot在国内比较有名,因为价格比较便宜,很多人是通过Turtlebot来接触ROS的,可是毕竟是小项目,无法大规模复制。

图:车库的一个小项目Turtlebot

斯科特·哈森一直在寻找商业化的方法,在车库发展的过程中,先后衍生了8家公司,包括:

(1) hiDOF, Inc.,,机器人自动化软件咨询公司,2013被Google收购.

(2) Industrial Perception Inc. – 利用视觉辅助工业机械臂搬运货物,2013被Google收购.

(3) OpenCV,开源视觉和机器学习算法库,被广泛应用。

(4) Open Perception Foundation – 致力于2D/3D 数据的处理.。比较著名的产品有点云库(PCL)。

(5) Open Source Robotics Foundation – OSRF,一家非盈利机构,致力于机器人开源软件的研究,教育,和产品开发。

(6) Redwood Robotics – 低成本协作机械臂,2013年被Google收购.

Redwood Robotics是由车库,Meka和斯坦福研究所(SRI,Stanford Research Institute)共同成立的一家合资公司。

(7) Suitable Technologies – 远程遥控机器人.

(8) Unbounded Robotics,一个低成本移动机器人平台.

后衍生出Fetch Robotics,仓储物流,地面移动机器人.

前面说过,车库的宗旨是:影响力第一,商业回报第二。现在车库的影响力有了,车库开始逐渐改变了方向,将公司的研究成果用于商业化,其团队也从“机器人研究者”变成了“机器人企业家”。

每一个ROS版本的发布,都伴随着一个新的乌龟吉祥物,赏心悦目。这次讲讲背后的设计师。

图: ROS各版本发布的日期和吉祥物。

9 龟父

乌龟吉祥物设计师

除了第一个乌龟,其他吉祥物是由乔许·埃林森(Josh Ellingson)设计。乔许·埃林森是一位自由艺术家,为不同的商业活动设计宣传材料。除了这几这些乌龟吉祥物,他还帮助车库设计PR2宣传形象,ROSCon(ROS开发者大会)的海报。

设计师:乔许·埃林森

2010年,车库带着PR2第一次参加了RoboGames(俗称机器人奥运会),乔许·埃林森为车库设计了第一张海报。下图这张海报就是乔许·埃林森为车库设计的那张海报“ROBOT POWER”。

图:乔许·埃林森为车库设计的第一张海报。

在此之前,乔许·埃林森为RoboGames设计过海报,小有名气。风格也非常符合车库的口味,后来车库大大小小的海报,宣传美工就由乔许·埃林森负责了。

图:乔许·埃林森为2008年和2015年机器人奥运会设计的海报

我们不妨欣赏一下乔许·埃林森为车库设计的各种图案。如果经常看ROS或车库的博客,对其中的设计应该并不陌生。

下面是乔许·埃林森为ROSCON设计的海报

乌龟图标设计师

每个ROS版本发布,Turtlesim里的乌龟图标也会变化,这些乌龟图标则是由思特菲·派姬(Steffi Paepcke)设计的。每一个小图标都跟乔许·埃林森设计的乌龟吉祥物相关联,颜色,风格,主题保持一致。

思特菲·派姬2009年以实习生的身份进入车库,参与人机交互组(Human-Robot Interaction)的工作,这时的部门经理是蕾拉·高山(Leila Takayama)。简单提一下蕾拉·高山。在车库,除了工程技术人员,还有有一些非工程性的科学家,如心理学家,认知学专业的研究人员,主要研究人与机器人交互问题,如:怎样的机器人外形,才不会让人看着觉得害怕,更容易让人接近。在车库,蕾拉·高山带领的小组就是从事这样的研究。他们通过理论研究和用户体验,观察人们对机器人感觉,例如机器人身高、机器人外观,机器人眼睛应该安装在哪里等,来指导机器人的外观设计。如果有机会,笔者会专门介绍蕾拉·高山,当然蕾拉·高山后来创建了自己的公司,又去了GoogleX部门,最近又返回大学做了教授。蕾拉·高山也是硅谷的风云人物,2012年,31岁的蕾拉·高山评选为35岁以下杰出青年创新人物,扯远了。

图:思特菲·派姬(Steffi Paepcke)

图:思特菲·派姬在车库时期的上司蕾拉·高山(Leila Takayama)评选为35岁以下杰出青年创新人物。

回来讲思特菲·派姬。正是在车库实习期间,思特菲·派姬第一次见到了正真的机器人,PR2,觉得有趣极了。思特菲·派姬在斯坦福大学获得学士学位,专业是心理学。看到机器人,促使她考虑如何将自己的专业心理学和机器人做结合。实习结束,特菲·派姬马上去了卡内基·梅陇大学继续深造,选择了人机交互方向读研究生。毕业后,又回到车库,后来,又作为联合创始人创建了开源机器人基金会(OSRF),在这个机构里领导人机交互组。也就是她以前的上司蕾拉·高山负责的工作。

9 C龟

这是ROS的第二个版本C Turtle,2010年8月发布。

如果延续这种命名方式,我们看到的后续的版本将会是D Turtle, E Turtle,…。

后来很长时间,还有人抱怨这个版本的名字太缺乏想象力了,总想给他换个名字。可是,ROS的发展速度太快了,超乎车库的想象,这件事也自然是不了了之了。

前面提到,从这个版本开始,车库聘请了一位设计师,乔许·埃林森(Josh Ellingson),设计了乌龟吉祥物。这时的乔许·埃林森,跟大多数机器人爱好者一样,颇受好莱坞电影故事的影响,看到机器人后,对人类的未来充满着好莱坞式的悲情。

图:设计师乔许·埃林森(Josh Ellingson)为C Turtle设计的吉祥物

在乔许·埃林森眼里,未来似乎并不美好。大海龟就像一只诺亚方舟,在大灾难来临之际,带领大家逃离灾难重重的大陆,寻找一片新世界。这只诺亚方舟上除了机器人还是机器人,唯独剩一只鹤[1]。这或许预示着人类或已灭绝;或许预示着人类容不下机器人这一新物种,这些机器人不得不被迫逃亡。

一只悲情的大海龟,背上驮着各类机器人,有PR1,PR2,TurtleBot,Care-O-bot机器人,STAIR机器人,有无人驾驶汽车(一款由奥斯汀机器人技术公司与得克萨斯大学奥斯汀分校打造的一款无人车),有替身机器人Beam的原型Taxai,天空中飞翔着一台四旋翼,水中跟着无人驾驶小船。

在当时,这些机器人有一个共同的特点:支持ROS。

从这个大乌龟,大家大致可以看出,车库当时对ROS的定位,海陆空通吃的雄心壮志。所以大家看车库几位创始人,个个温文尔雅。可千万不要小觑他们骨子里一统天下的野心。

这个版本对上一版本做了修补,还增加了针对PR2机器人抓取的软件包:如检测桌面物体、用机械手对物体进行抓取和操控等。我们从下面的例子可以大致了解在很多情形下,对四周环境中的物体控制有多么重要。大家可能看过下面这个TED演讲,演讲人亨利·埃文斯(Henry Evans)通过视频向观众讲述他的故事。他的形象出现在TED现场的舞台中央站立的一个机器人屏幕里,这个机器人就是前面提到的Beam替身机器人(这不是重点)。亨利·埃文斯在40岁的时候,忽然从一名正常人,变成一名四肢瘫痪、口不能言的残疾人。亨利·埃文斯讲述了自己如何在机器人PR2的帮助下,照顾自己的生活:刮胡子、开冰箱、倒饮料…

图:TED演讲人亨利·埃文斯(Henry Evans)在PR2的帮助下刮胡子

对一个拥有双臂的机器人来讲,对环境的感知和对物体操控一定是优先级最高的。在阿C龟版本里,这些功能包含在manipulation软件包里。这个软件包是由车库的两位研究科学家凯仁·萧(Kaijen Hsiao)和马泰·乔卡列(Matei Ciocarlie)开发的。

图:左:凯仁·萧(Kaijen Hsiao);右:马泰·乔卡列(Matei Ciocarlie)

凯仁·萧毕业于麻省理工人工智能实验室,获博士学位,导师是托马斯·洛萨诺-佩雷斯(Tomás Lozano-Pérez)和莱斯利·凯尔博灵(Leslie Kaelbling)。博士期间研究的内容就是“如何稳定地抓取物体”。

离开车库后,凯仁·萧去了博世(Bosch)机器人,后来在博世支持下,创办了MayField机器人公司,担任公司的首席技术官(CTO)。产品为家庭陪伴机器人Kuri。

马泰·乔卡列毕业于哥伦比亚大学,获博士学位,研究方向是机器人对外部物体的抓取与操控。EigenGrasp即为马泰·乔卡列的研究成果。离开车库后,马泰·乔卡列在Google短期工作了一段时间,然后回自己的母校哥伦比亚大学建立一个新实验室,做机器人相关的研究去了。

在这个ROS版本中,还针对不同的平台和多语言支持做了相应的改动:

  • 主要支持Ubuntu的H/I/J/K版本(8.04/8.10/9.04/9.10)。
  • 支持C++03,Boost 1.37,Lisp SBCL 1.0.38,Python 2.5
  • 尝试将catkin编译系统引进ROS,但因为不稳定,还不建议使用。

————————————————————————

[1]鹤通常成双入对,在西方文化里表示“爱情”和“忠诚”。

10 D龟

D版本是ROS的第三个版本,于2011年3月发布

D版本的吉祥物是Diamondback(菱背龟,背部有菱形图案)。在菱形风筝的助力下,无数只菱背龟在空中自由地飞翔。

在这个版本里增加了对Kinect的支持。2011年Kinect已经很流行了,到这年三月份,已经累计销售了1000多万台。因此,车库顺势而为,为这个ROS版本提供了Kinect深度相机的驱动。Kinect是一款面向消费群体的娱乐设备,随微软的游戏机Xbox一起销售。科研人员发现他不仅仅是一款娱乐设备,还是一个性价比极高的科研设备,后来基于Kinect各类算法层出不穷。

图:微软的Kinect

微软自然不会开源它的驱动, ROS于是采用了PrimeSense 的驱动OpenNI Kinect。ROS里的驱动主要由文森特·莱保德(Vincent Rabaud)和图利·弗特(Tully Foote)来维护。

图:文森特·莱保德(Vincent Rabaud)和图利·弗特(Tully Foote)

文森特·莱保德毕业于加州大学圣地亚哥分校(The University ofCalifornia, San Diego),获博士学位。圣地亚哥在加州的最南端,与墨西哥接壤。图利·弗特本科就读于加州理工学院(California Institute of Technology),硕士研究生毕业于宾夕法尼亚大学(Universityof Pennsylvania),一所位于美国宾夕法尼亚州费城的私立研究型大学,八所常春藤盟校之一[1]。后面,我们还会详细讲图利·弗特。

通过Kinect采集获得的是,可视范围内的深度数据,即可视范围内物体到相机的距离。从这些深度数据,可以计算出3D点云(Point Cloud)。这样点云处理算法就要跟进,因此ROS加入了点云库(Point Cloud Library, PCL)的0.1版本,这是一个开源的软件库,包含大量与点云有关的算法,包括显示点云数据、滤波、分割、特征提取、配准、重建等,支持Windows和Linux等平台,也可以在一些嵌入式开发板上使用。PCL在三维点云中的地位相当于OpenCV在图像处理和计算机视觉中的地位。

PCL是由莱度·茹苏(RaduB. Rusu)在车库期间创建的开源点云处理软件。那时,点云数据和点云数据处理在逆向工程已经应用的很广泛了,只是很少有人把自己的算法和代码开源出来。莱度·茹苏毕业于德国慕尼黑工业大学(TechnischeUniversität München),后来负责由车库孵化的 Open Perception公司,致力于2D/3D数据的处理。

图:莱度·茹苏(Radu B. Rusu)

另外,ROS也在努力提高了对视觉处理的支持,尤其是提高OpenCV在ROS中的易用性。

OpenCV 是盖里·布拉德斯基(GaryBradski)在Intel 工作期间开发的一个开源计算机视觉库,由一系列 C 函数和少量 C++ 类构成,实现了图像处理和计算机视觉方面的很多通用算法。现在,很多人都在享受OpenCV带来的便利。

图:盖里·布拉德斯基(Gary Bradski)

盖里·布拉德斯基(Gary Bradski)在车库初期就加入车库的管理团队。后来与前面提到的文森特·莱保德一起将OpenCV公司化,创建了OpenCV基金会。

这时,已经有很多大学和机器人公司加入到ROS开源社区,提供了对各自机器人的驱动,比如Nao人形机器人(法国),Care-O-bot(德国),乐高NXT 教育机器人(美国),Erratic(美国亚利桑那大学), miabotPro(英国)。到D版本的发布,已经有50种机器人支持ROS。

图:从左至右:法国Nao人形机器人,美国亚利桑那大学Erratic机器人,德国Care-O-bot,美国乐高NXT机器人,英国miabotPro机器人

这时的ROS还做了如下变化

模块化的粒度更小,有利于增量化更新。模块小型化也有助于减低内存的使用。

图形用户界面从ROS核心中分离出来,这样对于不需要图形用户界面的用户就不需要编译这一部分的代码。

修改版权和软件归属权的条例,有利于那些在乎所有权的开发者继续对ROS做出贡献。

创建了ROS问答社区,方便用户交流。

------------------------------------------------------------------------------

[1]常春藤盟校(Ivy League)指的是美国东北部的8所高等学府:布朗大学、哥伦比亚大学、康乃尔大学、达特茅斯学院、哈佛大学、宾州大学、普林斯顿大学、耶鲁大学。它们都是美国最顶尖、美国历史最悠久的大学。这八所学府常跟美国两个世界一流的理工大学麻省理工学院与加州理工学院,相提并论,而这八所常春藤跟两所理工大学常常被称为“美国十大名校”。

11 E龟

这是ROS的第四个版本,E版本,2011年8月发布。

E版本的吉祥物是ElectricEmys(鸡血泽龟),一个风风火火、打了鸡血的泽龟。

“小模块,轻量化”是前一个版本的宗旨, E版本依然为此努力。

这个版本的改动有

把ROS底层的库进一步分离成单独的模块,如KDL(运动学-动力学库)、 nodelet、 filters、 xacro、pluginlib。这样就不需要由车库的开发人员进行集中维护,每个ROS贡献者可以自行维护各自写的模块。

比如,KDL分离出来后,就可以由KDL的原开发者维护。KDL是由比利时荷语天主教鲁汶大学(Katholieke Universiteit Leuven)大学的鲁本·斯密斯(Ruben Smits)和艾文·艾尔特比列恩(Erwin Aertbelien)开发的,当然还有orocos开源项目[1]的其他开发人员。鲁本·斯密斯当时在车库做过一段实习生。

在“机器人毕业典礼”中提到,车库将11台PR2,赠送给了11所大学进行合作研究,这所比利时鲁汶大学就是其中获得PR2的幸运者。

图:鲁本·斯密斯(Ruben Smits)在车库实习

图:艾文·艾尔特比列恩(Erwin Aertbelien)

鲁本·斯密斯和艾文·艾尔特比列恩还改进了机械臂的操控模块。有了这个模块,就可以让机械臂自主地规避障碍物,完成运动规划任务。为了便于使用,还增加了可视化界面,用户可以看到机械臂的运动轨迹。鲁本·斯密斯博士毕业后,与彼得·舒滕斯(Peter Soetens)一起创建了Intermodalics机器人软件公司,鲁本·斯密斯是担任首席技术官(CEO),著名的Pick-it 3D就是该公司的杰作。据说,国内有不少跟进的公司,做类似Pick-it 3D的方案。

图:彼得·舒滕斯(Peter Soetens)

图:Pick-it 3D

针对rviz,增加用户交互界面,可以让用户通过鼠标拖动PR2手臂的末端,或拖动机械臂上某一个部位,让机械臂运动到一个指定的位置。

图:在rviz里,用户通过鼠标拖动PR2手臂的末端,让机械臂运动到一个指定的位置

PCL 1.1版本发布,OpenCV 2.3版本发布。PCL和OpenCV是ROS使用的两个非常重要的独立软件库。

增加了对其他平台的支持:Android(美国谷歌)、Arduino、ARM、Windows(韩国柳真机器人公司开发了一个win_ros)、Python3(德国TUM)。括号中显示的是实现这些平台的公司或大学。

讲讲对windows的支持吧。

win_ros是由韩国柳真机器人公司丹尼尔·斯托尼(Daniel Stonier)领导开发的。在2012年的ROS开发者大会(ROSCon)上,丹尼尔·斯托尼有个简单的报告“ROS onWindows”,讲解如何在Windows下使用ROS。另外我们后来看到的由扫地机器人演变来的Koboki,即TurtleBot2用的地盘,也是丹尼尔·斯托尼领导的团队开发的。

图:后排最右站立者为丹尼尔·斯托尼(Daniel Stonier),这位澳大利亚人在朝鲜半岛,领导一群韩国人做机器人开发,真是不可思议。

E版本主要适用于Ubuntu的L版本-N版本。

12 F龟

这是ROS的第5个版本,F版本,2012年4月发布。

F版本的吉祥物是Fuerte Turtle(大力神龟),因为没有以F开头的乌龟物种,就只能用通用的乌龟(Turtle)这个词了。Fuerte为西班牙语,表示强壮之意。乔许·埃林森设计的是一只能将地球托起的大力士乌龟。

这个版本的改动有

  • 主要适用于Ubuntu的L/O/P版本(10.04/11.10/12.04 LTS)。
  • 支持C++03,Boost 1.40,Lisp SBCL 1.0.x,Python 2.6
  • 尝试将catkin编译系统引进ROS,但因为不稳定,还不建议使用。
  • 用Qt重写了rviz
  • 发布PCL 1.5,性能进一步提高。
  • 发布Gazebo 1.0。

说说Gazebo吧。Gazebo是一个机器人三维仿真环境,这里面增加了称为“基于物理的仿真”这样的元素。学物理的时候,我们学习了,位移,速度,加速度,重力,摩擦力等概念,在这样的仿真环境里,可以模拟这样一些物理概念。在真实世界中遇到的一些物理现象,在这个仿真环境中尽可能把他们表现出来。

它可以与ROS配套,用于完整的机器人仿真,也可以单独使用。

图:Gazebo仿真环境

Gazebo是安德鲁·霍华德(Andrew Howard)和凯特·考尼(NateKoenig)在南加州大学[1],开发的一个开源的机器人仿真环境。Gazebo从2001年开始开发,到2004年,两位在当年的IROS国际机器人会议上发表了一片论文,《一个开源机器人仿真器Gazebo》“Designand Use Paradigms for Gazebo, An Open-Source Multi-Robot Simulator” [2],向学术界介绍了Gazebo的设计结构和使用方法。当时安德鲁·霍华德是南加州大学机器人实验室的教授,凯特·考尼是机器人实验室的一名博士生。

图:左:安德鲁·霍华德(Andrew Howard),右:凯特·考尼(Nate Koenig)

博士毕业后,凯特·考尼,与其他3位联合创始人,一起成立了“开源机器人基金会(OSRF)”。其中,布莱恩·格基(BrianGerkey)为首席执行官(CEO),负责基金会的全面工作,罗伯特·弗里德曼(RobertaFriedman)为首席财务官(CFO),凯特·考尼为首席技术官(CTO),摩根·奎格利(MorgenQuigley)为首席架构师。

大家可能对安德鲁·霍华德不太了解。如果列出安德鲁·霍华德的经历和参与过的项目,大家一定会大吃一惊了。安德鲁·霍华德出生于澳大利亚,博士毕业于澳大利亚墨尔本大学。后到美国南加州大学机器人实验室工作,后加入美国航空航天局喷气推进实验室(NASA Jet Propulsion Laboratory),然后被伊隆·马斯克招入Xspace旗下。安德鲁·霍华德在美国航空航天局负责“龙眼”系统的开发,“龙眼”利用视觉(激光雷达)技术,引导飞船与国际空间站的对接。后来在SpaceX也采用龙眼系统进行空间站对接。

图:龙眼系统帮助空间站对接

安德鲁·霍华德还在加州理工大学参加无人车挑战赛,参加大狗机器人(Big-Dog)的研发,为大狗机器人提供视觉系统。Big-Dog就是那只大家在视频里看到的,在冰面上踉踉跄跄,但还保持稳定机器狗。

图:波士顿动力公司的大狗机器人

这是ROS的第6个版本,G版本, 2012年12月发布。

G版本的吉祥物是Groovy Galapagos,一只非常拉风的加拉帕戈斯象龟。长发、墨镜、拖拉板、花裤衩、背着汽车流浪天涯的时尚加拉帕戈斯象龟,我们不妨称其为“拉风象龟”。

13 G龟

拉风龟

这是ROS的第6个版本,G版本, 2012年12月发布。

G版本的吉祥物是Groovy Galapagos,一只非常拉风的加拉帕戈斯象龟。长发、墨镜、拖拉板、花裤衩、背着汽车流浪天涯的时尚加拉帕戈斯象龟,我们不妨称其为“拉风象龟”。

这个版本,正式将catkin编译系统引进ROS,希望能替代原有的编译系统rosbuild。

编译系统

编译系统将各种软件包组织在一起,生产一个可执行程序或被其他可执行程序调用的库文件。如果我们记得ROS的设计原则之一是:跨平台和多语言支持,做到这一点非常不易,编译系统起到关键作用。

大家试想一下,你下载了他人的代码,这个代码是C/C++写的,你希望让代码能在Windows下跑起来,这时候,你又发现了一个算法,这个算法是Python写的,你怎么把他们集成在一起。一般情况下,你可能还要下载一些第三方的软件包,放在合适的目录表,还要要考虑是各个软件包是32位的,还是64位的。任何一步,遇到问题,都要费不少功夫,也有可能最终不成功,不得不放弃。

ROS将世界各地,不同人写的代码组织起来,还要支持不同的操作系统,有些代码是C/C++写的,有的是Python写的,有些事Java写的。每个人写的代码又可能用到五花八门的软件包,想想把这些源代码,软件包,各类库文件,生产一个可执行的程序,可真不易啊。

这样的跨平台编译工具不是没有,大家常用的CMake就是常用的一种跨平台的编译工具。

rosbuild的核心也还是CMake。 rosbuild的是由布莱恩·格基(Brian Gerkey)、特洛伊·斯特拉斯海姆(Troy Straszheim)、摩根·奎格利(Morgen Quigley)负责开发的。

图:从左到右,布莱恩·格基(Brian Gerkey)、特洛伊·斯特拉斯海姆(Troy Straszheim)、摩根·奎格利(Morgen Quigley)

布莱恩·格基毕业于南加州大学(Universityof Southen California )。前面说过,Gazebo的两位开发者安德鲁·霍华德(AndrewHoward)和凯特·考尼(NateKoenig)在也在南加州大学工作或学习过。布莱恩·格基,大学期间就热衷于机器人开源软件,他负责开发Player机器人开发环境,在机器人学界的影响力非常大。后来加入车库,并领导ROS的开发,关于布莱恩·格基、Player和ROS团队我们以后再说。

图:特洛伊·斯特拉斯海姆

后来,特洛伊·斯特拉斯海姆与车库的两位资深科学家科特·康诺利格(Kurt Konolige,CTO)和盖里·布拉德斯基(Gary Bradski),还有伊森·鲁布利(Ethan Rublee),史蒂芬·英特托瑟(StefanHinterstoisser)一起创建了Industrial Perception,Inc.(IPI)。后IPI被Google收购,随公司一起加入Google。

rosbuild的初衷还是为车库自己的机器人开发而设计的。对硬件的兼容性,对各种操作系统的兼容性,都考虑的不周全。当时几乎没有特别考虑对MS Windows的兼容性。虽然,丹尼尔·斯托尼(Daniel Stonier),这位澳大利亚人领导一个韩国团队开发了win_ros,随着ros版本的演进,并没有人进一步的维护。rosbuild用了很多Linux特有的脚本命令,Windows下没有相应的命令。随着ROS社群的扩大,各种硬件都希望利用ROS,各种软件包越来越多,编译效率(速度)变得越来越低。在这样一个大背景下,大家期待一个新的编译系统,这样catkin应运而生。

catkin的是由特洛伊·斯特拉斯海姆(Troy Straszheim)、莫腾·谢尔高(Morten Kjaergaard)、布莱恩·格基(Brian Gerkey)、德克·托马斯(Dirk Thomas)负责开发的。特洛伊·斯特拉斯海姆和布莱恩·格基,这两位前面说过,他们参与过rosbuild的开发。

另外两位是莫腾·谢尔高和德克·托马斯。莫腾·谢尔高毕业于丹麦技术大学(TechnicalUniversity of Denmark),获机器人方向博士学位,后加入一家人工智能+医疗的创业公司,任CTO。德克·托马斯毕业于德国达姆施塔特工业大学(Technische UniversitätDarmstadt),加入车库后不久,就随ROS团队,一起加入布莱恩·格基领导的机器人开源基金会(OSRF)。

图:左:莫腾·谢尔高(Morten Kjaergaard),右:德克·托马斯(Dirk Thomas)

除了catkin,G版本的其他改动还有

  • 主要适用于Ubuntu的O/P/Q版本(11.10/12.04 LTS/12.10)。
  • 支持C++03,Boost 1.46,Lisp SBCL 1.0.x,Python 2.7,CMake 2.8.3
  • Stack的概念被废弃。Stack包含多个软件包,一个Stack要用到另一个Stack的软件包,必须将那一个Stack都包含进来。通过废弃Stack的概念,指保留软件包的概念,可以让模块的粒度更小。
  • 将代码转移到Github。
  • 引入图形用户界面工具rqt。
  • 开发环境从Wx变为Qt

14 H龟

南美蛇颈龟

这是ROS的第7个版本,H版本, 2013年9月发布。

H版本的吉祥物是长脖子的Hydromedusa(南美蛇颈龟)。Hydromedusa这个单词写起来有点长,在ROS中被分成两个词 Hydro Medusa。

H版本的主要工作是进一步让ROS支持catkin编译系统。这样就需要改进ROS的一些核心模块,升级不少ROS程序包。

以前有专门为ROS定制的软件库如PCL、Stage、Gazebo。H版本里这一部分做了较大的变动,将依赖于这些专用的软件库,修改成了依赖于其相应标准软件库。比如,一个软件包需要依赖ROS版的PCL,现在则改为依赖标准的PCL即可。这样就不需要单独更新ROS版本的PCL。Stage和Gazebo情形也类似。

Player项目由布莱恩·格基、理查德·沃恩(RichardVaughan)和安德鲁·霍华德一起发起的。布莱恩·格基和安德鲁·霍华德都有提及。关于理查德·沃恩,如果大家关注今年在加拿大温哥华举办的IROS机器人大会,2017年程序委员会主席就是这位英国大人理查德·沃恩。理查德·沃恩毕业于英国剑桥大学,获博士学位,后来到美国宜人的洛杉矶,南加州大学做博士后研究。理查德·沃恩后来一直在加拿大西门菲莎大学(SimonFraser University, SFU)做研究。

图:布莱恩·格基、理查德·沃恩和安德鲁·霍华德,Player项目的发起人。

该项目最早可以追溯到1999年南加州大学机器人实验室。在南加州大学,这几位一起开发了Player项目[1],其中包括2个子项目:一个是Player,一个是Stage。

图:Stage仿真环境

Player是一个各种机器人设备的服务器,客户端可以利用计算机网络,通过Player控制机器人设备和传感器。

Stage是一个二维的机器人仿真环境。2004年左右,Gazebo,这样一个三维的基于物理的机器人仿真环境,加入到了Player项目中。后来车库资助Gazebo的开发,Gazebo独立成一个单独的项目。

Player和Stage的名称来源于莎士比亚戏剧“皆大欢喜”舞台剧中的独白。Gazebo意思为舞台中带圆顶的露台。

“All the world's a stage, and allthe men and women merely players. They have their exits and their entrances;and one man in his time plays many parts...” ——William Shakespeare, "AsYou Like It"

“世界是一个舞台,所有的男男女女不过是演员,他们都有下场的时候,也都有上场的时候。一个人的一生中扮演着好几个角色。”——莎士比亚《皆大欢喜》

15 I龟

青色冰屋

这是ROS的第8个版本,I版本, 2014年7月发布。

I版本的吉祥物是Indigo Igloo(意为,青色冰屋)。一开始,ROS命名委员会很多人建议用I, Turtle。主要源于大家都知道一本书叫《I,Robot》。还有人提议iTurtle,遭到很多人反对,多半源于对苹果公司全封闭系统的不满。

凯特·考尼(Nate Koenig)负责最后的审核,他也认为以I打头的东西太多了。最后大家选了一个不是乌龟的名词Igloo(冰屋),虽然不是乌龟,但外形像极似乌龟,大家都很喜欢。我们看到是一个背着冰屋,正在滑雪的“青色冰屋龟”

2013年到2014年初,是车库机器人研发的最后一个阶段。外界传闻很多,车库内部很多人心绪不定,对于PR2的未来背地里也是议论纷纷。车库的房东斯科特·哈森,决定停止继续投入资金, PR2的研究也停下来。车库的各路人马,正式从“机器人研究的阵地”退下来,吹响“机器人商业化”的号角。经过8年努力,“柳树车库系”终于全力冲进了机器人市场。

正是这个时候,张教授回国创建“机器人运动与视觉实验室”。

也正是这个时候,由“柳树车库系”推动的全球机器人创业风吹到了国内,在各类资本的助力下,大江南北瞬间涌现了大大小小不同类型的机器人公司。尤其是在“双创”(大众创业、万众创新)的大背景下,这股风吹得相当猛烈。

这时的ROS的开发已经转交给一个独立的非盈利组织:“开源机器人基金会”(Open Source Robotics Foundation, OSRF)。布莱恩·格基,罗伯特·弗里德曼,凯特·考尼和摩根·奎格利作为4位共同创始人,一起创建了这个“开源机器人基金会”。其中布莱恩·格基为首席执行官(CEO),负责该基金会的全面工作,罗伯特·弗里德曼为首席财务官(CFO),凯特·考尼为首席技术官(CTO),摩根·奎格利为首席架构师。

图:“开源机器人基金会”接手ROS的开发,这是基金会的标识。

车库继续负责全球的PR2机器人的售后维护,技术支持。后来,车库持续把非商业化的业务剥离出去,把PR2的维护工作交给ClearPath机器人公司。

图:PR2的维护工作交给ClearPath机器人公司

I版本的其他改动还有

  • 主要适用于Ubuntu的S/T版本(13.10/14.04 LTS)。
  • 支持C++03,Boost 1.53,Lisp SBCL 1.0.x,Python 2.7,CMake 2.8.11

15 J龟

翡翠龟& DRC

这是ROS的第9个版本,J版本, 2015年5月发布。

J版本的吉祥物是Jade Turtle(翡翠龟)。上个版本取了个非乌龟的名字,这次又取了个“翡翠”,这个与东方文化联系紧密的一种石材。

当然在东方文化里,经常把翡翠雕刻成乌龟的样子,寓意坚毅、持久。

也是在2015年,DARPA举办了一届机器人挑战赛(DARPA Robotics Challenge)。

23只进入决赛的队伍中,有18支队伍使用ROS,有14支队伍利用Gazebo进行仿真,ROS过去8年取得非凡的成绩,基本实现垄断。

图:开源机器人基金会ROS开发团队在DARPA机器人挑战赛

里面的人物,我介绍了很多了,看看大家还记得几位?

DARPA万万没想到机器人挑战赛是:一股来自东方的力量,压倒西方强队,以媒体的说法是“横空出世的一匹黑马”。来自韩国高等科学技术学院KAIST[1]团队,夺得了这项堪称有史以来最引人注目的机器人大赛的冠军,夺走高达两百万美金的大奖。

DARPA受到刺激,“我们投的钱去哪了”?

DARPA机器人挑战赛,至今没有再举办的计划。

这次比赛集结了全球最顶尖的机器人,Atlas、HRP。可是大多数机器人会出现摔倒现象,而且无法爬起。这是组委会没有充分预料到的。

如果从官方的资料看,有资格参加DARPA机器人挑战赛的总共25支队伍,12支美国团队,其他参赛队伍包括2支德国队、1支意大利队、3支韩国队、5支日本队和2支中国队。2支中国队中有一个是来自香港大学的队伍,另外就是“中国科学院合肥物质科学研究院先进制造技术研究所”一支队伍。

图:“中国科学院合肥物质科学研究院先进制造技术研究所”双足机器人

在决赛现场,并没有看到这支队伍的身影,也就是说,他们并没有真正参加这次比赛。

中国另外一支队伍来自香港大学,香港大学耗资1500万元港币购买的Atlas机器人,获得“DARPA机器人挑战赛”的资格。结果没有完成比赛的任何一项,在比赛中垫底。

关于香港团队的新闻,读者可以自行查找。应该说“遭受了无法承受的非议”。

一只日本队伍NEDO-Hydra,因技术原因退出决赛。

所以大家看到有25只队伍进入决赛,到达现场参加比赛的是23只队伍。

图:25支比赛队伍

图:比赛成绩

16 普及

TurtleBot是一款移动机器人,特点是便宜。TurtleBot带有摄像头和移动底盘,可以用于研究机器人的导航问题:即机器人决定往哪个方向走,怎么走,怎么绕过障碍物,最终到达目的地。不少ROS的初学者是在TurtleBot的陪伴下学习的机器人编程的。以至于一些人想方设法能获得一台TurtleBot,好像没有TurtleBot,就没法学习ROS,没法学机器人编程了。

随着ROS的普及,也让一些人看到商机,一些代理就通过销售TurtleBot发了点小财。也有一些机器人爱好者,通过打造与TurtleBot功能类似的机器人,在经济上小有收货。ROS的官方说法,TurtleBot总共卖出了上千台。

第一台TurtleBot诞生

一开始,人们一直有种错觉:为了能使用ROS,就必须有一台PR2机器人。因为PR2非常昂贵,人们自然也会推理,认为ROS是一个很难用的系统。

当时ROS刚刚推出,车库的两位工程师,图利·弗特(Tully Foote)[1]和麦罗尼·威瑟(Melonee Wise)[2]认为,这也太不现实了。怎么能期待一般的开发者拥有这么昂贵的机器人才能用ROS进行机器人开发呢?

开发者的这种错觉非常不利于ROS的普及。

“如何让大学的老师、学生、机器人爱好者拥有一个价格上能够接受的硬件平台,方便学习ROS”,这样的问题开始在图利·弗特和麦罗尼·威瑟脑海中不停盘旋。

车库做了非常多的尝试,希望ROS能在其他一些机器人上跑起来。图利·弗特办公室有一台乐高玩具机器人,他们曾经尝试在这样的玩具上跑ROS,但是不是非常成功。能做的似乎只能让电机转动,无法实现机器人常见的导航,毕竟这样的玩具机器人运算能力不足。

图: 图利·弗特 (左) ,TurtleBot(中),麦罗尼·威瑟 (右)

2010年年底,墙角的一台扫地机器人引起麦罗尼·威瑟的注意。这是一款iRobot机器人[3],他们马上了解到,当时iRobot机器人公司还有一款专门为开发者设计的机器人,iRobot Create。利用机器人本身提供的API,可以对iRobot Create进行编程。

当时微软的Kinect相机刚推出,很火。Kinect可以获得场景的深度信息,这与我们常见的获取颜色信息的相机不同,这款相机的图像是深度,也就是拍摄到信息是物体到相机的距离。这款设备本来是为家庭游戏打造的体感设备,可以一经推出,马上就吸引了机器人和计算机视觉研究者的注意,把它作为一个经济实惠的图像获取设备来利用。

图利·弗特和麦罗尼·威瑟把Kinect固定在iRobot Create上,这样就有了深度相机Kinect,有了移动平台iRobot Create,一款可移动、可用视觉进行导航的机器人就有了,而且还非常便宜。“便宜”正式图利·弗特和麦罗尼·威瑟是想要的,只有便宜才能让更多的人用得起。世界上第一台TutleBot见图3.1。

图:世界上第一台TurtleBot

可这仅仅是硬件,用市场上可以买到的设备,拼装在一起。最让图利·弗特和麦罗尼·威瑟头痛的是设备驱动部分。如何打开硬件提供的端口,建立连接;如何将相机获取的数据,并进行特定的数据格式进行解析;如何把这些封装在一起,给最终提供给ROS的开发者的是一个简单的接口。

有了移动平台,有了摄像头,还需要一个计算机来运行ROS的相关算法。自助导航是ROS的精髓,为了把这个精髓表现的淋漓精致,这个平台必须能实现自主导航。要便宜,还要功能强大。图利·弗特和麦罗尼·威瑟测试了不同的电脑,希望找到一款性价比最高的计算平台。当然,后面的故事大家都知道了,他们选择了华硕的一款上网本,性价比极高。

虽然他们又解决了iRobot Create的内置里程计准确度不高的问题,解决了Kinect的供电问题。

Google一次购买了8台这样的原型机,用于内部研究项目。

两人又花了点时间,做产品的设计。TurtleBot的图标就是一个海龟背上有ROS图标中的9个圆点。很快对外发布了。

就这样,Turtlebot火了。

17 女蜗

前文说过,TurtleBot是图利·弗特(Tully Foote)和麦罗尼·威瑟(Melonee Wise)发明的,而且软硬件开源,最早的使用者是Google。

说说麦罗尼·威瑟。

麦罗尼·威瑟加入车库非常早。麦罗尼·威瑟毕业于伊利诺斯大学香槟分校,本科学的是物理工程,硕士研究生学的是机械工程。博士读了1年,就辍学了,开着车,拉着全部家当,直奔硅谷,先在一家无人驾驶汽车公司干了2个星期。马上被斯科特·哈森创立的“柳树车库”机器人公司吸引,成为车库的第2号员工。

图:学生时代的麦罗尼·威瑟

麦罗尼·威瑟几乎参与了车库所有机器人项目,从PR2机器人开发,到ROS各种驱动,甚至ROS百科的维护,再到如何将ROS移植到乐高教育机器人上,开发玩具机器人Sphero等等。

麦罗尼·威瑟在车库可谓是功勋卓越,战功显赫。在车库逐渐从资深软件工程师成长为能领导整个团队的机器人开发部门的经理。

图:麦罗尼·威瑟负责的车库实习生计划

尤其是与图利·弗特还在闲暇时间发明了TurtleBot,对ROS的普及功不可没。

最让人汗颜的是:麦罗尼·威瑟还是为女生,是女生,是女生。

这在跟机械,软件打交道的机器人行业是非常罕见的。

2013年,当车库解散的时候, 麦罗尼·威瑟离开了车库,并与其他三个车库的前同事创立了机器人公司Unbounded Robotics,主打开源个人机器人平台。

该公司的第一款产品UBR-1出世时备受好评,被业界称作是PR2的简约版,颠覆者,而PR2则是车库从2006年开始研发的一款开源个人机器人,比UBR-1贵了近20倍。

图:前排从左往右:CEO麦罗尼·威瑟(MeloneeWise),UBR-1机器人,机械工程师,艾瑞克·迪尔(Eric Diehr)。后排从左往右:CTO迈克尔·弗格森(Michael Ferguson),系统工程师,德里克·金(DerekKing)。

可是结局并不如人意,这款产品没有对外销售,他们的新公司面临版权和融资问题。麦罗尼·威瑟在给员工的邮件中写道:

“与车库的分拆协议阻止了我们募集A轮的融资。Unbounded机器人公司,将不再出售UBR-1。”

Unbounded的倒闭是因受到了车库版权方面的影响。这源于在车库期间,麦罗尼·威瑟领导开发过一款PlatformBot的机器人平台,这是一个保密项目,车库从未对外发布。这个PlatformBot与UBR-1确实很像。

图:车库的PlatformBot机器人和PlatformBot团队

与车库谈不拢,Unbounded很快倒闭。

有了此前多年机器人相关的研究经验,2014年,麦罗尼·威瑟东山再起,成立了一家新公司,Fetch Robotics。

图:麦罗尼·威瑟(Melonee Wise)与她的Fetch

图:Fetch核心团队。从左往右:机械工程师,艾瑞克·迪尔(Eric Diehr),CEO麦罗尼·威瑟(Melonee Wise),CTO迈克尔·弗格森(Michael Ferguson),系统工程师,德里克·金(Derek King)。前排是Fetch机器人。

关于Fetch机器人的故事,我们可以专门讲解。

2015年,由于麦罗尼·威瑟在机器人创业上的贡献,被《麻省理工学院科技评论》杂志评选为35岁以下杰出青年创新人物。

18 升级

TurtleBot非常受欢迎,全球卖出了上千台TurtleBot。这是两位创始人始料未及的。

究其原因是,所有好一点的机器人都太贵了,自己设计开发一款机器人也太贵了,太费时了。

TurtleBot的目的是给机器人开发者提供一个价格适中的开发平台,让他们直接使用TurtleBot自带的软硬件,专注于ROS和基于ROS的机器人应用开 发。TurtleBot采用了市面上能买到的最便宜的设备,加以拼装。性能也能满足大多数人的要求。驱动、软件完整,说明文档简单明了。软硬件开源。

TurtleBot的硬件包括扫地机扩展的运动底盘iRobot Create、RGB-D相机Kinect、一个笔记本、电池和支撑架。在笔记本上安装ROS后,就可以实现3D导航、跟随等功能。

一切都符合市场需求,极客们的口味。

这是Turtlebo-1的故事。

Turtlebot-2的出现由完全不同。韩国有家公司叫柳真机器人(Yujin Robotics)希望与车库合作,打造一款与Turtlebot-1功能类似的机器人研究平台。车库当然乐见其成。车库这是把希望实现的功能发给了柳真机器人公司,很快一个全新的Turtlebot就制造出来了。这就是Turtlebot-2。

Turtlebot-2比Turtlebo-1易用性更好,更安静,还能自己充电。别忘了,iRobot Create就是基于iRobot Roomba的扫地机器人。柳真机器人公司也生产扫地机器人,打造一款类似的机器人平台并不算难事。

比较遗憾的是,有一个对机器人至关重要的传感器,“激光雷达”,在 Turtlebot-2没有配备。

还有一个美中不足的地方,Kinect是固定的,安装在支架上,只能朝向一个方向,视野有限。所以你们会看到有的机器人安装了好几个Kinect,面向不同的方向。也有把Kinect安装在一个舵机上,从而可以改变Kinect的朝向。

Turtlebot-2变种还有 Turtlebot-2e(单片机替换了笔记本电脑)、Turtlebot-2i(配备了一个3自由度的机械臂)、Turtlebot- Euclid(用了英特尔的相机、预装了英特尔的Euclid开发套件)。

图: Turtlebot-2e、Turtlebot-2i、Turtlebot- Euclid

韩国Robotis公司在多年后,开发了拼装版的TurtleBot-3,还增加激光雷达,这是Turtlebot-3最重要的改进。

当然,Turtlebot-3的价格也非常便宜

便宜才符合TurtleBot的初衷——让更多的人能利用TurtleBot学习ROS。

本文转自张新宇教授: https://www.zhihu.com/people/tophill-robotics/activities

ROS的故事(张新宇版,有适当删减)相关推荐

  1. 机器人程序设计入门(C++/Arduino/ROS)(转载2020版)

    本文主要介绍机器人程序设计入门的安装和配置,并通过简洁的示例演示基于Arduino和ROS构建的机器人物联网系统雏形.Arduino和ROS都支持使用C++进行程序设计. ROS+Arduino 安装 ...

  2. Mastering ROS for Robotics Programming第二版阅读笔记

    Mastering ROS for Robotics Programming一书由Lentin Joseph和Jonathan Cacace编写,目录如下: 书中所用代码可以在github上找到,例如 ...

  3. 遨博机器人ROS包aubo_robot 在kinetic版ROS下的编译

    在github上发现遨博机器人支持ROS1,但是对应的版本是indigo的,我已经安了kinetic了,总不能为了体验一下,安装个旧的版本,于是我就硬编,出现了一大堆error,改着改着竟然改通了(当 ...

  4. 遨博机器人ROS包aubo_robot 在kinetic版ROS下的编译(转载)

    在github上发现遨博机器人支持ROS1,但是对应的版本是indigo的,我已经安了kinetic了,总不能为了体验一下,安装个旧的版本,于是我就硬编,出现了一大堆error,改着改着竟然改通了(当 ...

  5. 佐罗的故事---陕西方言版

    话说当年,佐罗爱上了索非亚公主,但是公主的父亲不同意他们的爱情,可是佐罗和索 非亚不顾封建礼教的阻止,每天晚上都在阳台上约会. 这一天,佐罗又来到了索非亚的 窗下,他对着自己那匹一吹口哨就会来的马说: ...

  6. 崛起背后的隐秘故事-“机器人版 Linux”ROS

    雷锋网按:本文作者Keenan Wyrobek 目前为物流无人机企业Zipline 联合创始人,同时也是第一个个人机器人操作系统ROS 的创造者之一.今年是ROS 的第十个年头,Wyrobek 在Sp ...

  7. 干了这碗鸡汤!“机器人版 Linux”ROS崛起背后的隐秘故事大揭秘

    十年前,当笔者还在努力实现"机器人版 Linux"的愿景时也曾因为困难灰心过,不过其他勇敢者的故事激励着我继续前行.下面,我将向大家分享一些机器人操作系统(ROS)的隐秘往事,希望 ...

  8. ros标准版Action通讯

    ros标准版Action通讯 Action通讯模型 Action通讯模型组成¶ ROS中,节点与节点间通讯,提供了新的方式,就是Action通讯. Action通讯分为Client端和Server端, ...

  9. ROS机器人程序设计(原书第2版).

    机器人设计与制作系列 ROS机器人程序设计 (原书第2版) Learning ROS for Robotics Programming,Second Edition 恩里克·费尔南德斯(Enrique ...

最新文章

  1. SAP PM (工厂维护)模块介绍 - SAP入门必看
  2. intelliJ idea 下载安装
  3. rsync常用的三种用法
  4. Boost.PropertyTree 属性树的简介
  5. java多线程中的异常处理
  6. 使用U盘安装win7系统,遇到“无法定位现有系统分区”问题
  7. LAMP攻略: LAMP环境搭建,Linux下Apache,MySQL,PHP安装与配置
  8. oracle 数据抽取 java_oracle数据抽取步骤
  9. 关于feign开启hystrix导致用户鉴权失败
  10. 详述怎么使用Linux救援模式
  11. Oracle数据库索引使用及索引失效总结
  12. SpringBoot Security 整合 thymeleaf 模板自定义登录页面,按需提示错误信息
  13. 生成工资条 恢复工资表 宏 巨集 vba
  14. 持续降库纯碱增仓大涨,沪铝认购小涨,螺纹10-01季节性正套2022.5.19
  15. js中什么是事件气泡,如何阻止事件气泡
  16. 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶(n为正整数)总共有多少种跳法。
  17. 使用第三方sdk时问题
  18. 好的网站标志设计之意象运用手法
  19. 《竞品调研:抄也是一门学问》学习总结
  20. 编程语言编年史:作为程序员的你怎能不知?

热门文章

  1. 常见的主流浏览器内核
  2. 在Arcgis中如何使用河网提取对应流域边界数据
  3. 论文学习——南四湖流域降水与天然径流量变化特征分析
  4. UDS学习笔记(三)——协议的理解
  5. 他:男人最渴望拥有的十类妻子(zt)
  6. bem什么意思_管壳式换热器BEM什么意思
  7. Springboot - 用SpringBoot 2.3.0.M1创建Docker映像
  8. 物联网 (IoT) 为何如此重要?哪些技术让物联网成为了可能?
  9. 强大的CSS:3种姿势实现26个英文字母的案例
  10. 对于echarts的刻度表的调整