实战部署展示:通过遥操作搭建国际象棋棋盘
图中展示了完整的系统运行状态:可以看到不同的摄像头画面、人类操作员以及感知的机器人状态;操作员可以随时在不同摄像头画面间切换。
机器人研究的普及化趋势
机器人学研究的成本已经变得足够低廉和易于获取,使得小型团队,甚至是个人,现在也能在真实硬件上进行有意义的研究。这主要基于两个原因。
首先,高性能的机器人硬件成本大幅下降:下方的物理设置使用了工业级的机械臂、两个摄像头和一个完整的遥操作(teleoperation)系统,同时总成本仍低于 5,000 欧元。11此数字不包括增值税(VAT)和计算资源的成本。
其次,现在有稳定供应的、可公开获取的、适用于机器人学的Foundation Models(基础模型)。例如,Hugging Face 上的 LeRobot 就是围绕着“普及最先进的机器人学研究”这一理念构建的。
我本人与此领域有历史渊源。在 2017 年到 2020 年间,我在 OpenAI 从事机器人操作(robotic manipulation)研究,最初是在 人形手部上进行研究,随后转向了 桌面操作。我大约在 2019/2020 年使用的桌面设置,其成本比本文描述的设置高出一个数量级。虽然两者并非完全可比,但这个版本能在同等使用价值下达到如此低的价格点,是至关重要的变化。那时,这类工作需要一个约 20 人的团队。如果我的假设是正确的,那么如今一个坐在桌子前的人,应该能够取得令人惊讶的进展。
因此,为了验证这个假设,我决定亲自去做:在接下来的几个月里,我将进行独立的机器人操作研究,并且会公开分享。我并不期望主要的产出是学术论文或开源代码库。22目前我计划不开源此处描述的代码。维护一个开源项目是实实在在的工作,我宁愿把时间花在研究上。但这可能会改变。对我来说,最重要的是研究日志本身:哪些方法有效,哪些失败了,以及从运行系统中学到了什么。
本文涵盖了第一步:为进行研究构建完整的基础平台。前半部分介绍物理设置:一个工业级的机器人机械臂、两个摄像头和遥操作,这些都封装在一个足够小巧的单元中,可以放在我的桌子旁边。后半部分则介绍我从零开始编写的、用于操作该系统的软件栈(software stack)。上面的视频展示了其实际运行效果。
这是一个实验,计划可能会有所调整。但我是非常兴奋的。
需求设定
根据过去的经验,我知道机器人研究必须在实际硬件上进行,所以第一步是构建一个可以让我进行实验的设置。在购买任何东西之前,我列出了一些需求。这些需求适用于整个系统——包括物理设置和操作它的软件:
- 成本低于 10,000 欧元
- 足够小,可以放在或紧邻我的桌子上
- 零部件易于获取(无需企业级销售)
- 通过 Python 易于使用
- 对软件栈不作预设(因为我打算自己构建)
10,000 欧元的预算限制并非来自详细的估算。当时,我大部分还不清楚最终系统的成本会是多少。这个数字作为一个上限非常有用:它足够高,让我不必对每个组件都进行价格优化,但又足够低,使得该设置对于我的规模来说仍然是可负担的。
这五个约束解释了本文其余部分中大部分的决策。
物理设置
我决定构建一个用于桌面操作(tabletop manipulation)的单臂设置。桌面操作的优势在于它提供了无限的任务选择,难度各不相同:例如,你可以从一个基本的单物体抓取与放置(pick-and-place)任务开始,然后逐渐过渡到搭建国际象棋棋盘或组装乐高,所有这些都在同一个物理设置中完成。33六年前在 OpenAI 机器人团队时,我们有同样的考量。在解决了魔方(Rubik’s cube)之后,我们转向了 桌面设置,因为它能够支持如此多不同的任务,而且我们对通用型机器人(general-purpose robotics)很感兴趣。
出于简化、空间和成本的考虑,我选择了单机械臂而不是双臂设置(bimanual setup)。然而,这个选择也对我能执行的任务类型施加了一些实际的限制:例如,用单臂折叠衬衫可能是不可能的。但单臂仍然留下了大量有趣的桌面任务,并且它强迫了一种有益的约束:策略(policy)必须通过行为来弥补硬件的缺失。它可以将物体推到另一个物体或桌子边缘来固定它,在抓取前重新定位某物,或者将环境本身作为操作策略的一部分来使用。目前,这正是我想要研究的范畴。
在视觉方面,我使用了一个腕部安装的摄像头(wrist-mounted camera)和一个固定摄像头(stationary camera)。我在这里的一个约束是空间限制:我无法构建一个完全集成的“机器人笼子”(robot cage)实验室设置,这意味着摄像头的位置、光照条件以及视野内的背景会随时间变化。权衡是,数据会比在固定实验室设置中更“杂乱”(messier)。然而,我认为这应该被视为一个特性而非缺陷:为了让机器人真正变得有用,它们必须能够在这些精确的条件下工作。