2019 年 6 月 20 日,Facebook 宣布开源他们用于机器人研究和基准的 PyRobot 机器人框架。机器人框架是什么?简单地来说,就是用来制造机器人并定义其行为。在没有机器人框架的情况下,人们进行开发和定制机器人会感到无所适从。有了机器人框架,它就能对机器人开发工程中的人工内容进行抽象化处理。今天,我们翻译了 Facebook AI 团队的官方博客,以飨对机器人框架感兴趣的读者。
PyTorch 等框架大大加快了人工智能子领域(如计算机视觉和自然语言处理等)的研究进展。这些工具提供了一个抽象级别,使得开发人员构建最先进的系统、使用共享库和工具以及优化性能变得更容易了。为了在人工智能机器人研究中提供类似的实用性,Facebook 与卡内基梅隆大学的研究人员合作创建了 PyRobot。
AI 前线注:PyRobot 官网 https://www.pyrobot.org/
PyRobot 是一个框架,也是一个生态系统。借由 PyRobot,人工智能研究人员和学生才能够在短短几个小时内就能启动和运行机器人,而无需专门了解硬件或设备驱动程序、控制和规划等细节的知识。PyRobot 将帮助 Facebook AI 推荐我们的长期机器人研究,该研究的宗旨是开发出具体化的人工智能系统,能够通过与物理世界的交互,进行有效的学习。为了帮助人工智能和机器人社区的开发者,我们开源了 PyRobot。
相关研究
PyRobot:用于研究和基准测试的开源机器人框架。
PyRobot 是基于机器人操作系统(Robot Operating System,ROS)的轻量级高级接口。它提供了一组统一的硬件无关中间层 API 来控制不同的机器人。PyRobot 将有关低级控制器和进程间通信的细节进行抽象化,因此机器学习专家和其他人可以简单地专注于构建高级人工智能机器人应用程序。
PyRobot 系统架构概述
PyRobot 将使研究界更容易地使用机器人数据集、算法实现和模型,并帮助他们设置基准,比较他们的工作,并建立彼此的结果。当与低成本机器人平台(如 LoCoBot)结合使用时,PyRobot 将降低机器人技术的入门门槛,有助于实现机器人研究的大众化。除了开源 PyRobot 外,我们还宣布了一项关于使用 PyRobot 和 LoCoBot 的征询方案,优胜者将会获得 LoCoBot 用于他们的研究。
用于机器学习和机器人研究的简单、共享接口
只是仅仅设置一个机器人并让它挥动手臂,搁在以前就需要几天甚至一个星期的时间来修改本地的机器人软件。机器人社区中的一个常见笑话是:在你的博士论文中,每接触一个机器人就要增加一年的时间。PyRobot 通过跨多个机器人和模拟器提供一个通用 API 来解决这一挑战。使用一个机器人就像编写如下所示的一条命令一样简单:
此外,PyRobot 框架支持的任何机器人都可以使用相同的高级代码。(首先,这包括 LoCOBot 和 Sawyer,并将增加对其他机器人的支持。)
使用 ROS 直接编程机器人位置通常包括为运动学、控制器和运动规划期设置多个库和数据结构。PyRobot 抽象了这种复杂性,在这个示例中,LoCoBot 被编程为仅用几行 Python 代码来定位它的手臂。
对所有机器人而言,PyRobot 提供了通用的功能,如关键位置控制、关节速度控制、关键扭矩控制、笛卡尔路径规划、正向运动学和反向运动学(基于机器人 URDF 文件)、路径规划和视觉 SLAM 等。虽然它抽象了底层软件栈的复杂性,但是用户仍然可以在层次结构的不同级别上灵活地使用组件,比如,绕过规划器来控制低级速度和力矩。PyRobot 可以用来实现各种高级人工智能应用。例如,我们已经试验了目标点导航、像推动和抓取这样的操作任务,以及使用机器人进行数据采集的远程操作。
在这三个视频中,LoCoBot 会拾取各种物体,导航到某个位置,并堆叠一组方块。它是用 PyRobot 编程的。
为了将人工智能和机器算法与机器人技术结合使用,PyRobot 提供了一种简单的方法。例如,可以使用与物理机器人的接口,为抓取等任务收集数据,使用 PyTorch 训练一个深度学习模型,然后使用 PyRobot 在机器人上执行这个算法。在一些正在进行的项目中,PyRobot 已经简化了用于末端执行器控制和目标点导航策略的 sim2real 转移的测试。
用于研究和教育的可扩展工具
硬件成本和专业软件的复杂性限制了机器人研究的规模。不过,PyRobot 的高级 API 与相对廉价的机器人(如 LoCoBot 等)一起使用时,有助于解决这一问题。例如,随着入门门槛的降低,研究人员可以部署几个机器人来收集数据并进行并行学习。通过在不同的硬件上提供通用框架,PyRobot 将引领机器人技术基准的开发(类似于人工智能的其他领域),并对这一进展进行量化。我们计划与机器人研究界的其他人合作,一起努力建立这些基准。
PyRobot 还能够有助于规模化人工智能教育计划,使得为不同背景的学生提供实用的机器人体验变得更加容易。PyRobot 将为人们带来全新的观点和想法,鼓励合作并使研究人员能够更快地迭代机器人应用。其简单的 API 将加快使用 PyRobot 的研究项目的开源和共享代码的过程,并培育一个生态系统,在这个生态系统中,不同的研究人员可以很容易地建立在彼此工作的基础之上,并比较他们的结果。我们期待在 PyRobot 上托管多个数据集、预训练模型和算法实现。
首先,我们提供了几种现有导航、抓取和推送算法的预训练模型的实现。正如我们创造的其他开源人工智能研究工具一样,包括 PyTorch、AI Habitat、TorchVision 和 ELF。我们相信,开发合作是推进这一领域的发展,并广泛提供人工智能优势的重要组成部分。我们将寻找通过 PyRobot 框架共享机器人研究代码和数据集的机会。
拓展 PyRobot 平台,推进人工智能研究
在不久的将来,我们将继续通过与模拟器(如 AI Habitat、Gibson 和 MuJoCo)接口为 PyRobot 添加功能。我们还将与研究界合作,为更多硬件提供支持,如 Universal Robots。除了开源我们自己的研究外,Facebook AI 还计划分享其他最先进的机器人算法的开源实现,并发布机器人数据集。
机器人技术对于人工智能的全面发展非常重要,因为它使研究人员能够探索诸如教会机器学习预测模型,并在现实世界中开发常识性知识等挑战。解决这些问题将会带来更为强大的人工智能,有朝一日,它可用于像智能助理这样的应用。凭借其灵活、开放的设计,PyRobot 将帮助 Facebook AI 研究人员和该领域的其他人加速实现这些目标。
原文链接:
https://ai.facebook.com/blog/open-sourcing-pyrobot-to-accelerate-ai-robotics-research
评论