通用机器人的软件和硬件

2020-11-30 04:45:14

免责声明,这些只是我的观点,不一定是我的雇主或机器人同事的观点。

Moravec的悖论描述了一种观察,即我们的AI系统可以相当轻松地解决象棋或通过基于文本的智力测验等“成人级认知”任务,同时完成基本的感觉运动技能,例如爬行或抓紧物体(一岁的孩子)可以做到-很难。

任何试图构建机器人来做任何事情的人都会意识到,莫拉韦克的悖论根本不是悖论,而是对我们物理现实的直接推论,是如此不可思议的复杂和不断要求。现代人类一生要穿越数百万平方公里的迷宫,充满了危险和机遇。如果我们必须象棋牌游戏中那样有意识地处理和考虑所有对生存至关重要的感觉输入和运动决定,我们可能会被达尔文进化论从基因库中选出。进化优化了我们的生物学,可以在一秒钟内执行感觉运动技能,并使感觉变得轻松。

欣赏这种复杂性的另一种方法是将您的日常生活调整为严重的运动障碍,例如失去手指或试图无腿走动旧金山。

感觉运动问题的困难对于从事机器人工作并因“现实世界”的混乱而肮脏的人尤其明显。不可思议的复杂现实对我们如何构建用于控制机器人的软件抽象有什么后果?

我的烦恼之一是,当那些对Moravec悖论没有足够尊重的人提出一种编程模型时,可以将高级机器人任务(“让我吃饭”)划分为具有明确定义的逻辑边界的顺序或并行计算:洗米,解冻肉,拿盘子,摆桌子等。这些子任务又可以进一步细分。当由于常规软件无法处理的极端情况而无法进一步分解任务时(“图像是否包含猫?”),我们可以尝试将机器学习模型称为该功能的“魔术软件”。

这种思维方式-调用ML代码的符号逻辑-是由习惯于坚持使用烹饪类比的Software 1.0抽象和编程教程的工程师带来的。

您是否知道在最低水平的运动技能下,像“给我吃零食”这样的任务需要多少智力?请允许我举例说明。我录制了一段简短的视频,内容是我打开了一个日期包,并用在此过程中执行的所有马达子任务对其进行了注释。

在36秒的时间里,我数了大约14项运动和认知技能。它们发生得如此之快,以至于直到我回去逐帧分析视频时,我才有意识地注意到它们。

利用过去打开此类包装的经验来了解材料特性以及施加的力。

作为一名机器人专家,它非常着急地观看动物决策的视频,然后观看我们自己的机器人努力做最简单的事情。我们甚至必须加快4x-8x机器人视频的速度,以防止观看者感到无聊!

考虑到该视频,让我们考虑一下当前处于机器人操纵状态的位置。在过去十年左右的时间里,多个研究实验室使用深度学习来开发可以从视觉上执行任何对象的机器人抓取的机器人系统。抓取是一个重要的问题,因为要操纵对象,通常必须首先抓住它们。 Google Robotics和X团队花了2-3年的时间来开发我们自己的系统QT-Opt。这是一项巨大的研究成果,因为它是一种适用于几乎所有对象的通用方法,原则上可以用来学习其他任务。

有人认为,这种拾取对象的功能可以包装在简单的编程API中,然后用于引导我们进行人工操作。毕竟,难题只是简单的问题,对吗?

我认为这不是那么简单。高级API调用“ pick_up_object()”表示在机器人抓取开始与结束之间的明确语义边界。如果您重新观看上面的视频,我应该进行几次掌握?我根本不清楚您将这些函数调用放在什么位置。如果您有兴趣参与一项关于“您在此视频中看到了多少掌握情况”的民意测验,这是一项调查。我将在此博客文章中更新其结果。

如果我们只需要打开一组日期就需要解决13种单独的操纵技能,而这些功能中的每一个都需要2-3年的时间才能建成,那么距离制造与人类能力相匹配的机器人还有很长的路要走。没关系,对于将所有这些行为整合到单个算法例程中,没有明确的策略。相信我,我希望现实足够简单,以至于大多数复杂的机器人操作都可以在Software 1.0中完成。但是,随着我们从拾放技术转向灵活而复杂的任务,我认为我们将需要完全重新考虑如何在机器人技术中集成不同的功能。

您可能会从视频中注意到,“抓取”的含义有些模糊。生物智能并不是专门为抓握而进化的-手及其行为是从几个核心驱动因素中产生的:调节内部和外部条件,寻找零食,复制。

这并不是说我们当前的机器人平台和Software 1.0编程模型对机器人研究或应用没有用。通用函数pick_up_object()仍可以与“ Software 1.0代码”组合成一个可靠的系统,对亚马逊仓库和其他物流履行中心价值数十亿美元。在任何非结构化环境中,任何对象的通用取放仍然是一个尚未解决,有价值且艰巨的研究问题。

Willow Garage是家用机器人的先驱者之一,表明可以使用遥控PR2机器人整理房间(请注意,这里需要两个手臂才能更精确地放置枕头)。这些由许多拾取和放置操作组成。

该视频制作于2008年。那是11年前!想到已经过去了多少时间,针头似乎没动多少,真是令人发狂。现实很难。

Stretch是连接到垂直机架的简单伸缩臂。它可以做诸如捡起物体,擦拭平面表面和打开抽屉等操作。

但是,未来主义者要当心!对于那些对物理现实没有足够了解的人的普遍炒作来源是观看机器人在一个家庭中做有用的事情的演示,然后得出结论,同样的机器人已经准备好在任何一个家庭中完成这些任务。

Stretch视频显示了机器人拉开烘干机门(向左旋转)并从中取出衣服。该视频有点欺骗性-我认为相机实际上看不到烘干机的内部,因此即使人类可以遥控机器人执行任务,在确保完全清空烘干机时也会遇到严重的困难。

这是我自己的干衣机的照片,该干衣机的干衣机带有靠近墙壁的右旋门。我不确定Stretch是否真的可以适合这个狭小的空间,但是PR2肯定会在没有底座的情况下无法打开这扇门。

制作机器人演示视频时,现实的边缘案例经常被人扫到地毯下,这通常显示出机器人在机器人非常适合的最佳环境中运行。但是,人类在家中要完成的所有任务都很广泛。 PR2和Stretch都不能蹲在桌子底下捡起地板上的绒毛,站在椅子上时要更换灯泡,在浴室里固定缝隙,用开信刀打开邮件,将餐具从洗碗机移到高柜子,分解回收箱的纸板箱,到外面去取回邮件。

当然,他们甚至不能打开Ziploc日期包。如果您认为那很复杂,请看以下第一人称视频:我切碎草莓,洗碗器和装饰起司蛋糕。这是用绑在我头上的GoPro录制的。每次手指抽动时都要注意-每个操作都是单独的操作任务!

我们经常谈论机器人为我们做饭的未来,但我认为当今市场上的任何硬件都不可能实现。打算在人类空间中执行任何任务的机器人唯一可行的硬件是成年大小的类人动物,每只手有两只胳膊,两条腿和五个手指。

就像我讨论过机器人技术中的Software 1.0一样,仍然存在巨大的机器人形态空间,仍然可以为研究和商业应用提供价值。但这并没有改变任何替代硬件都无法在以人为中心的空间中完成类人动物可以做的所有事情的事实。 Agility Robotics是在硬件设计方面获得它的公司之一。建造物理机器人的人经常动用双手-您能想象正在建造的机器人会组装自己的副本吗?

一种折衷方案是与机器人共同设计环境,以避免上述不可行的任务。这样可以简化硬件和软件问题。我经常听到的常见示例如下:

洗衣机比双手机器人在水槽中洗碗要好,而且干衣机比人类晾衣服晾干的效率更高。

在家用机器人的环境中,我们可以设计特殊的烘干机门,使机器人可以轻松打开,或者为每项任务配备定制的末端执行器(工具),而不是五只手指。我们甚至可以通过遥控API调用使门自动开门,从而使机器人甚至不需要自己打开烘干机。

在这个轴的尽头,为什么还要费心去建造机器人呢?我们可以将房屋设计重新想象成一个单一的ASRS系统,该系统可以从房屋的任何位置(如Dumbwaiter)为您带来所需的一切(除了可以水平和垂直地工作)。这样就无需在家里四处走动的机器人了。

这种务实的思维方式适合商业应用,但是作为人类和科学家,感觉有点像失败的让步,即我们无法让机器人像人类一样完成任务。让我们不要忘记科幻小说的梦想,这激发了我们许多人在这一职业道路上的梦想–它不是在更好地完成任务,而是在人类能做的一切。人可以用手洗碗和洗衣服,因此真正的通用机器人也应该可以。对于许多人来说,这一努力与我们接近《圣经创造法》的努力一样。在《圣经创世法》中,上帝以他自己的形象创造了人,身体和心灵。

是的,我们已经建造了可以使人飞来飞去的飞机。飞机是很棒的飞行器。但是要造一只能做一百万个东西并能飞的鸟呢?在我看来,这就是通用机器人技术的真正精神。