原作者:Evan Ackerman

文章来源:IEEE Spectrum

编译:沈永强

                                                                                     
                                                                图源:Open Robotics     
                                                  Noetic Ninjemys是ROS1的最新发行版本
 
上上周六(5月23日)是世界乌龟日。在这样值得庆祝的一天,来到这个世界上的不仅有真正的乌龟,还有以乌龟为主题的最新版机器人操作系统(ROS)也成功问世。因此我们联系到了Open Robotics的CEO Brain Gerkey以及开发指导Katherine Scott,我们想和他们聊一聊关于在世界乌龟日这一天发布的ROS1最新版Noetic Ninjemys。自此,如果你再想要更新的ROS版本,不论你喜欢与否,都只能是ROS2了。
自ROS1第一次提交操作后,已经过去了4581天,这4581天对那些ROS1的用户来说,可能是一个很艰难的过渡期。但是Open Robotics认为这是值得的。

 

下面是我们与Gerkey和Scott之间的简短访问,他们讨论了过渡到ROS2带来的所有麻烦是否真的值得,以及从现在开始的4581天之后ROS用户的生活又会是怎么样的。
 
在4581天前,第一次提交ROS1的那一天,您在哪里,在做什么呢?
 
Brain Gerkey当时我可能正在收拾我在SRI的办公室,准备搬到这家奇怪的新机器人公司Willow Garage,那个时候他们刚开始和斯坦福大学合作开发ROS。我就利用工作之余的时间参与进去,然后在08年2月正式开始在Willow公司工作。
 
那么您现在在哪里,在做什么呢?(2020年5月23日)
 
Gerkey现在我当然是要在加利福尼亚州圣克鲁斯的家里工作,然后庆祝ROS Noetic Ninjemys在世界乌龟日的发布,这是Open Robotics以后将会使用的最新版本的ROS1.当然,其他人也可以继续改进ROS1,甚至可以根据自己的需要去创建新的ROS1版本。因为Noetic是LTS版本(长期支持版),因此一直到2025年5月都将会持续提供错误修复和安全支持。ROS1的这一版本发布十分重要,因为我们在当中加入了对Python3的支持。与我们原来使用的已经停止更新的Python2相比,Python3能够提供更大的支持范围。这也让Noetic成为过渡到ROS2的绝佳跳板。告别了ROS1后,我们可以更专注于我们用于改进ROS2及其支持结构的开发资源。
 
从现在算起,4581天之后您会在哪里呢?(2032年12月7日)
 
Katherine Scott在2028年进行了机器人的大换代之后,西方国家联盟也已经运行了9个月了,所以我很可能要回国休假了。从山景潮汐带(一种新的悬浮城市)到我们在新圣克鲁斯湾度假的高楼,乘坐自动驾驶渡轮大约需要三个小时。乘坐自动公交会更快,但每年的这个时候公交线路可能会很忙。在萨利纳斯半岛生活非常棒,在那里,有农业机器人正在浇灌田地,模拟出季节性的降雨,因为那时候已经很少有降雨了,而且这会让那里的空气里都弥漫一股特别的芳香。我通常会在假期里完成一些工作,因为一些零售和制造机器人部署偶尔会出点问题。有的时候你需要从机器人的存储器里手动删除一些训练内容,然后替换成最新的数据。虽然这已经是一套标准化的流程了,但是相对来说,人类对整个流程还是要更加熟悉。我们在ROS 4中加入了一些补丁程序,能让系统运行更加容易。现在,大多数传统零售业已被取代为集中交付模式,这让假期里的工作压力减轻了很多,所以只需要偶尔地工作,这非常不错。
 
对于ROS1您有什么遗憾吗?
 
Gerkey遗憾?大多数我所认为的遗憾其实更像是我们一步一步迈过的坎。就好比把一个并不是操作系统的系统称作操作系统。或者像没有强调出你实际上并不需要使用我们的系统来运行我们的软件。在每项工作当中,你都需要去做一些假设,并且这当中可能有一些会被证明是错的,需要你更多地思考,会让你工作的其他方面变得更加困难。为了解决这种影响,我们找到的最佳方法就是在对话中引入更多的声音和观点。这就是为什么ROS2设立有技术指导委员会。尽管有很多类似“依据委员会的设计”这样的笑话,但是委员会在技术上的知道能够避免很多错误的假设。
 
“ROS2能让我们去修复那些需要进行结构大调整的东西,同时也能保留住好的地方。人们在ROS1中所追捧的那些,例如Windows支持、RTOS支持、生命周期管理、安全性等等,现在都已经被加入到了ROS2当中。”
                                                                                                                                                                                                                                                                                      ——Brain Gerkey
  
您希望人们了解ROS2的哪些地方呢?
 
Gerkey在过去的十年里,我们听取了很多人的意见,也收集了他们的反馈。作为回应,我们搭建了一套开源工具,能帮他们让机器人按照他们的需要完成任务。ROS2能让我们去修复那些需要进行结构大调整的东西,同时也能保留住好的地方。人们在ROS1中所追捧的那些,例如Windows支持、RTOS支持、生命周期管理、安全性等等,现在都已经被加入到了ROS2当中。

 

Scott关于这个开源工具,它并不是一推出就是完美的,而是不断优化的。随着越来越多的人通过调整代码来使用它,它就会变得更加有用,也会有更强的功能和安全性。
 
ROS2中哪些地方让您感到兴奋呢?
 
ScottROS2中有很多地方都让人兴奋不已。其中最让我兴奋的,当然这也是我自己个人的看法了,那就是ROS2有更好的RTOS和硬件支持。类似uROS和Realtime工作组之类的东西意味着我们正在弥合硬件与软件之间的鸿沟。我想再有大概一年左右,我们就能真正地看到各种支持ROS2的硬件。这真的令人兴奋,因为这能给你带来一种“乐高玩具”的体验,你可以买一大堆的硬件,然后很轻松地就可以拼装起来。

 

Gerkey我对其中仿真模拟的兴起感到很兴奋。过去在研究机器人的时候,你还需要把机器人摆在你面前。现在,通过软件进行逼真的仿真模拟,你就不需要把机器人放在你旁边,直接在办公桌上就可以对它进行开发。这一转变在各种领域都能得到应用,从启用深度学习研发,到为教育教学开辟新的途径。现在,在我们所生活的世界中,如果一个年轻人拥有一台性能出色的游戏主机,他可以用来免费模拟出自己的无人机、移动机器人甚至是自动驾驶汽车。现在那些在玩Kerbal Space Program或者Minecraft的孩子们在几年后上大学的时候,就可能会在仿真模拟中造出自动驾驶汽车。
 
我的机器人在ROS1上运行良好,并且我也不想更新,因为每次更新的时候都会突然中断,我不得不去进行修复。现在我该怎么选择呢?
 
Gerkey关于软件发行版,尤其是常规的软件发行版,我们需要知道的是,它们是一种来保证您系统健康、安全性以及正常功能的机制,并且最大程度地减少在重大更新时出现的技术问题和技术债务。就好比在我们的实际生活中,你可以进行定期的例行维护,也可以选择置之不理,让问题不断累积到系统出现严重故障为之。你可以每三到四个月更换一次机油,也可以每五到七年买新的发动机。选择权在你手上,但是作为工程师,我们更推荐进行例行的系统维护。
 
从ROS1过渡到ROS2有多麻烦?
 
Scott实际上并没有你想的那么糟糕。如果你一直保持更新并且熟悉整个过程,那么它就不会那么麻烦。我们已经从很多小组那里了解到,他们说过渡起来确实没有那么困难。现在,如果你想要转移一些下游依赖关系,那可能会更麻烦。这就是为什么我们制作了ROS 1 / ROS 2桥接器来简化这个过程。桥接器可以让你逐一进行过渡而不是同时完成整个过渡。

 

Gerkey真正影响整个流程难易程度的是你的整体软件状态。如果你有良好的单元测试以及CI系统,那么过渡过程就会简单直接。如果你欠着很多技术债务,那你得记住它会不断复利,造成更严重的影响。总的来说,我们有常规发行时间表来帮助减少因为时间推移而不断增加的技术债务。否则你拖的时间越久,过渡就会变得更难。
 
“ROS2是世界上用于机器人技术和仿真的最大的开源软件框架。我们允许开发人员使用一组通用的API以及用户提供的软件包来构建出安全的、最先进的机器人应用程序。尽管ROS2移除了很多ROS1中的API,但最终却能得到一组更好且更容易使用的API。” 

                                                                                                                                                                                                                                                                                   ——Brain Gerkey

 
请用不超过三句话来说服我升级到ROS2.
 
ScottROS2是世界上用于机器人技术和仿真的最大的开源软件框架。我们允许开发人员使用一组通用的API以及用户提供的软件包来构建出安全的、最先进的机器人应用程序。尽管ROS2移除了很多ROS1中的API,但最终却能得到一组更好且更容易使用的API。

 

Gerkey(向Michael Pollan道歉)编程机器人几乎都在使用ROS2。
 
已经过去了4581天了,你一直在解释ROS并不是一个操作系统,你有感到心累吗?
 
Gerkey实际上一点也不心累。我认为很多人其实已经抓住了我们工作的重点,尽管并不准确。使用了ROS2后,很多工作其实并不是在和工程师对话,而是直接和终端用户,决策者以及那些缺少技术背景的人们对话。我认为这对我们的交流是一个好的开始,相互之间能够真正传递信息。
 
你会怀念ROS1吗?
 
Scott过渡升级一直是件难事儿。当时社交媒体公司更改他们的软件UI时,往往一半的用户都会感到难以接受。对改变的抵触是人类的天性。我有一个六个月的过渡期让我怀念ROS1,就像我当时怀念Python2.7一样。但是,一旦你揭开“创可贴”,你就会有更清晰的思路,就会看到其中的升级改进、新的功能,就能意识到这一切都是有道理的。你只需要一点时间就可以克服肌肉记忆。我知道我仍然一直在输入“rostopic list”而不是“ros2 topic list”,有时候这会令人沮丧,但是这种情况逐渐越来越少发生了。

 

Gerkey我在我曾经第一次和猫相处的过程中所领会到的就是我和它都喜欢追求新奇的东西。比起怀念ROS1,我对ROS2更加兴奋。而且这也不是我第一次有这样的过渡转变,差不多十年前吧,我告别了Player,这是个ROS之前的项目,在这当中开发出了一些最早的开源机器人软件。现在和当时一样,我们将继续保持队伍和我们的团体之间的连续性,从长远来看这很重要。
 

 

本文系古月居编译作品,如需转载请注明出处。