ROS史话36篇 | 5. ROS的起源

643
0
2020年2月1日 11时57分

在机器人毕业典礼上,PR2的两位项目经理,博格和威罗拜克不但给来宾们介绍了PR2机器人,还隆重介绍了PR2机器人采用的软件系统:ROS

 

PR2机器人机器人挥舞的大旗上正是印着“ROS”的标志。ROS也正是本书的主题。

 

 

ROS史话36篇 | 5. ROS的起源插图 ROS史话36篇 | 5. ROS的起源插图(1)

左:机器人毕业典礼上PR2机器人们挥动着ROS大旗;右:ROS标志

 

计算机使用的操作系统,英语称为Operating System,缩写为OS。它是一种计算机程序,帮助使用计算机的人操控计算机硬件、管理各种应用软件

 

人们听说过的硬件包括:CPU、主板、内存、硬盘、显示器、打印机、U盘等;人们常用的应用软件有:文字处理软件,比如微软开发的Word,幻灯片制作软件,比如微软开发的PowerPoint,看电影的软件,比如微软的视频播放器,浏览网页的软件,比如谷歌的Chrome、聊天软件,比如腾讯的QQ和微信等等。

 

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

 

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

 

ROS最早的原型是在美国斯坦福大学人工智能实验室开发的,后来硅谷这家叫“柳树车库”的机器人公司与斯坦福大学合作,将ROS应用到公司开展的一个个人机器人PR2项目中。

 

ROS的系统架构是由摩根·奎格利(Morgan Quigley)设计的,他当时还是美国斯坦福大学博士生,他的博士导师是中国知名度非常高的吴恩达(Andrew Ng)。人们一般很难想象,老气横秋的大胡子Morgan Quigley是看着青春无限Andrew Ng的学生。

 

吴恩达因为是华人,所以特别受中国人的追捧,中国的互联网公司“百度”还聘请他做了首席科学家。吴恩达的经历非常丰富,最早成名于斯坦福大学AI实验室,在斯坦福大学开设了一门慕课(MOOC,网上开放课程)“机器学习”,听课的学生有十万多人,后来他跟他的好朋友创办了在线教育平台Coursera。现在Coursera已经发展成世界最大的慕课平台。

 

吴恩达还在谷歌领导过“谷歌大脑”项目,后担任百度公司首席科学家,领导百度的“人工智能研究院”。吴恩达已于2017年3月从百度离职。

 

ROS史话36篇 | 5. ROS的起源插图(2) ROS史话36篇 | 5. ROS的起源插图(3)

从左到右:摩根·奎格利和吴恩达

 

在与Willow Garage合作之前,奎格利就已经开始在美国斯坦福大学人工智能实验室内部的STAIR机器人项目中负责软件架构设计和项目开发了。

 

当时这个STAIR项目希望完成一个服务机器人原型,在视觉的辅助下,可以在复杂环境中运动,还可以通过机械臂操控环境中的物体。STAIR机器人配备了一个运动底盘,一个小型机械臂,立体摄像头、激光雷达

 

STAIR项目由几个小组分别负责不同的模块,分头推进。奎格利负责导航组,同时负责软硬件模块的系统集成。奎格发现将机械臂操控、导航、视觉等各种功能集成在一个机器人上非常不容易,因此那时他就考虑并采用了“分布式”的方式,来连接不同的模块。这一概念被成功应用到后来的ROS中。

ROS史话36篇 | 5. ROS的起源插图(4) ROS史话36篇 | 5. ROS的起源插图(5) ROS史话36篇 | 5. ROS的起源插图(6)

从左到右:美国斯坦福大学的人工智能实验室的STAIR机器人不同版本

 

2007年,摩根·奎格利和吴恩达将STAIR的成果发表在IEEE 国际机器人与自动化会议上,文章的题目是《STAIR:Hardware and Software Architecture》,软件系统的名称是Switchyard。这个Switchyard就是ROS前身

 

后来,吴恩达与柳树车库机器人公司合作共同开发ROS,摩根·奎格利将前期在STAIR项目积累的经验发挥的淋漓尽致,成为ROS开发框架的核心人物。

 

2009年摩根·奎格利、吴恩达和柳树车库机器人公司的工程师们,在当年的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不是传统意义上的操作系统,不是用于进程管理和调度,而是构建在其它操作系统之上的一种结构化的通讯层。)

 

从2008年开始,柳树车库机器人开始主导ROS的开发,奎格利因为还没有毕业,但以学生兼职的形式指导着ROS的进展。

 

2010年,随着PR2正式对外发布,柳树车库机器人也正式推出ROS正式开发版,这就是ROS 1.0。

 

ROS秉承“开源”的原则,与全球开发者一起推动机器人事业。

发表评论

后才能评论