接住飞来的纸箱:G1机器人纯视觉接箱成功率65%,达人类76%
有一个场景你肯定经历过。朋友从卡车上往下扔箱子,你站在下面,眼睛盯着飞来的纸箱,身体不自觉地往前迎,手臂张开,膝盖微屈,箱子落到胸前的瞬间顺势往怀里一收,稳稳接住。这个动作看起来毫不费力,但如果你仔细想想,它其实在零点几秒内完成了好几件事:你的眼睛要判断箱子飞行的轨迹,大脑要预判它会落在哪里,身体要...
这个场面你可能碰上过。卡车上朋友往下丢纸箱,你站在底下,两眼盯着飞过来的箱子,身子主动往前凑,双臂张开,膝盖微弯,箱子砸到胸口那一下顺着劲往怀里一收,稳稳就接住了。
看着不费劲,可细琢磨,零点几秒里其实干了好几件事:眼睛得判断箱子往哪儿飞,脑子得预判它落点在哪,身体得提前挪到位,手臂和躯干要搭成一个"兜",接触那一刻还得卸力,否则箱子的冲量会把你顶得后退,甚至摔一跤。
那要是换机器人来干这件事,结果会怎样。
华盛顿大学、南加州大学等机构的研究团队做了一个实验:让一台Unitree G1人形机器人去接人扔过来的真实纸箱,全程只靠机器人自带的摄像头,没有动作捕捉设备,没有反光标记,箱子就是普通纸箱。在2.5米距离下接住率65%,5米距离下40%;作为对比,三个真人在同样距离下的成功率是85%和68.3%。换算下来,机器人达到了人类表现的76%和59%。
乍看这数字谈不上完美。但此前人形机器人要做类似的动态交互,几乎都得靠外部动作捕捉系统,或者给物体贴反光标记来"作弊"。完全凭机器人自己的眼睛去看、去判断、去接住一个没有任何标记的普通物体,此前在真实机器人上几乎没人做成过。
**论文的核心贡献,是提出一套名为Reflex的三阶段训练框架,把"接箱子"这个看似单一的动作拆成三个能分开训练的能力。**
接箱子难在哪儿
你大概会想,接个箱子能有多难,伸手不就完了。可把任务拆开一看,它同时卡在三个完全不同的技术难关上。
头一关是全身协调。接篮球,两只手就够了。接纸箱完全不是一回事:箱子有重量有体积,飞过来的冲量不小,机器人得靠前臂和躯干一起搭出支撑面,把箱子"抱"在胸口,一边吸收冲击一边保持平衡不摔倒。这靠的是全身动作,不是手部动作。
第二关是时间紧,预判压力大。论文里提到一个关键数字:真实机器人实验中,箱子从扔出到抵达机器人身边大约只有1秒,而摄像头采集图像到机器人发出控制指令之间的延迟,中位数就有69毫秒。
延迟*:指信号从产生到被处理完成所经过的时间,这里特指摄像头拍到画面到机器人实际做出动作之间的时间差。
也就是说,机器人根本来不及"看到哪儿打到哪儿",它必须在箱子还没完全飞到眼前时就提前预判轨迹,把身体摆好,等箱子到了已经准备妥当。
第三关是视觉本身复杂。摄像头装在机器人身上,机器人一动,摄像头跟着动,拍到的画面里箱子的移动和机器人自身的移动叠在一起,很难直接分出"箱子到底往哪儿飞"。更麻烦的是,箱子越飞越近,机器人自己的手臂越容易挡住摄像头视线,关键时刻反而看不清目标。
**三个难关凑到一起,此前几乎没有系统能同时解决。**机械臂能接东西,但大多是固定底座或轮式底座,不用操心全身平衡;一些人形机器人能踢球、打乒乓球这类动态动作,却往往依赖动作捕捉设备或者带反光标记的特制球。全身控制、快速反应、纯视觉感知三者合一,这篇论文算是把这块空白填上了一块。
大问题拆成三块来解
任务这么复杂,研究团队没有"一步到位"去训练一个端到端网络,而是把整个流程拆成三个阶段,一层一层往上推。
**为什么不直接端到端训练?答案在计算成本和学习难度这两头。**
若直接用强化学习从像素级图像输入训练控制策略,会碰两个麻烦。其一,机器人每试一次动作都要实时渲染RGB-D图像,渲染本身很慢,整个训练速度被拖垮。论文给出了具体数字:不需要渲染的状态策略训练,每秒能跑28000个环境步,一加上图像渲染,直接掉到每秒1500步,差了将近20倍。
RGB-D*:这类图像数据把颜色信息(RGB)和深度信息(Depth)放在一起,可以理解为在普通照片上再补一个数值——每个像素到摄像头有多远。
其二,"接住箱子"这个最终结果只有动作全部做完才知道成败,这种延迟又稀疏的反馈信号,对于同时学"怎么看懂图像"和"怎么控制29个关节"两件事来说太模糊了,机器人很难从一次失败里分清到底是没看清箱子,还是身体动作没协调好。
好比同时教一个孩子两件事:怎么用望远镜观察远处的鸟,怎么用网子捞鱼。混在一起教,孩子每次失败都不知道问题出在哪儿,是望远镜没对准,还是网子挥错了。拆开教就不一样,先练熟用网子捞鱼这个动作,再单独教他怎么通过望远镜找目标,最后把两样拼起来,他才真学得会。偏要混在一起从头练,大概率两头都学不扎实,训练成本还高得吓人。
于是研究团队把整个流程分成三个阶段,每个阶段只盯一个问题。
第一阶段:先学会用身体接箱子
第一阶段完全不碰视觉,机器人直接拿到的是"上帝视角"的精确信息,包括箱子相对自己的位置、速度等等,这些信息在模拟器里完全准确,没有任何噪声和延迟。
这一阶段的目的很明确,就是先教会机器人用身体去接一个轨迹已知的箱子。训练采用强化学习中的PPO算法。
PPO全称近端策略优化(Proximal Policy Optimization),是强化学习里常用的一种训练方法:让机器人反复试动作,再根据结果好坏调整策略,一步步逼近更优的行为。
团队还加了两项技巧,帮机器人学会“像人一样动”。其一是让机器人模仿真人接东西时的参考动作轨迹;另一个叫AMP,全称对抗运动先验(Adversarial Motion Priors),做法是训练一个“裁判”网络,判断机器人的动作像不像真人,以此逼着它的动作风格更自然、更协调,而不是生硬地把任务完成。
这两项技巧到底有多重要,论文用了一个很直接的消融实验来回答。两个动作先验全部去掉,训练直接崩溃——机器人甚至触发了“脚部过高”的异常终止条件,一次都没能真正走到接箱子那一步。只去掉其中一个,成功率会掉4到5个百分点,算不上致命;可两个都去掉,后果就是灾难性的。
这里头有个挺有意思的道理:让机器人学会“像人一样协调地动”,并不只是为了好看,它其实是整个任务能不能完成的地基。少了这层约束,机器人很容易学出一些怪异姿势——在模拟器的物理规则下“凑巧能完成任务”,却完全不自然、不稳定,放到真实世界里往往站不住。
第二阶段:教机器人理解箱子的运动规律
第一阶段拿到的箱子信息是完全理想化的。真实世界里,传感器看到的信息有延迟、不完整,有时箱子被遮挡了根本看不见。第二阶段要解决的正是这个问题:怎么把这种带噪声、不完整的观测,压缩成机器人真正需要的、紧凑的“箱子动态表示”。
为此引入了一个核心概念——隐变量。它指的是一个8维的数值向量,不是位置、速度这类直接的物理量,而是经神经网络压缩提炼出来、专门方便控制器使用的内部表示。
可以把它想成一位经验丰富的接球手脑子里的“直觉信号”。他不会在脑子里精确计算球的坐标和速度公式,却能形成一种综合判断——“这球往这边飘,大概这个时候到”,这个判断揉合了他看到的东西和凭经验推断出的信息。隐变量就是机器人版本的这种“直觉”。
这一阶段还有个关键技巧,叫动作匹配初始化。做法是:先让第一阶段训练好的“老师”策略给出标准动作,再用这些标准动作去监督新网络的训练,让新网络一开始就模仿老师的行为,而不是从随机状态瞎摸索。
论文的对比实验显示,这种初始化方式比另一种“直接把位置速度权重映射过去”的方法,在最终接箱子的成功率上平均高出5.2个百分点。差距看着不大,可最终的真实机器人测试里成功率本来就在40%到65%之间浮动,5个百分点已经相当可观——相当于每接20个箱子,就能多接住1个。
这一阶段还用到了DAgger,全称数据集聚合(Dataset Aggregation)。它让学生网络不光学老师在原始数据上的行为,还要学老师在学生自己实际走过的轨迹上会怎么做,目的是减少学生真实部署时碰上“没见过的状态”就手足无措的情况。
为什么这一步重要?想象你在学开车,教练只在固定路线上示范,可你真正上路后遇到的情况千变万化,教练没教过的路口你可能就慌了。DAgger相当于让教练根据你自己实际开过的路再给你补课,遇到陌生状况的概率就小多了。省掉这一步,机器人在视觉控制下走到的那些“老师没见过”的状态,很容易变成接箱子失败的高发区。
第三阶段:让机器人真正学会用眼睛看
前两个阶段都没用上真实图像。直到第三阶段,摄像头拍到的RGB-D画面才真正接进来。
这一阶段的任务很明确:训练一个视觉编码器,让它从一段25帧的图像历史加上机器人自身的运动信息中,还原出第二阶段那个8维隐变量。整个过程中,前两个阶段训练好的控制器被冻住不动。
视觉编码器是一个专门处理图像序列、提取关键特征的神经网络模块。这里的结构是先用卷积神经网络(CNN)定位箱子在图像中的位置,再用GRU处理这段位置信息的时间序列,推断箱子的运动状态。GRU全称门控循环单元(Gated Recurrent Unit),是一种专门处理时间序列数据的神经网络结构,能记住过去几帧发生的事,从而推断当前的运动趋势。
为什么非得用一整段历史图像,而不是只看最新一帧?这里有个消融实验结果特别能说明问题。把输入砍成单帧,也就是机器人只能看到眼前这一瞬间的画面、完全看不到之前的运动轨迹,那么在箱子正对着飞来的情况下,成功率从85.2%直接掉到49.6%,少了35.6个百分点;箱子偏一点飞过来时降幅更惨,少了39.8个百分点。
这个落差相当惊人。换成生活里的说法:接球时你只能看一眼“球现在在哪”,完全不知道它刚才是怎么飞过来的,那它是在加速还是减速、往哪个方向偏,你全判断不出来,接球基本就是瞎猜。单帧图像给出的只是一个静态快照,连续的历史帧才能告诉机器人箱子的运动趋势,而这正是预判轨迹的关键信息来源。
摄像头自身的运动状态,论文里叫"camera ego-motion",也是另一个关键输入。它指的是摄像头或承载它的机器人身体在空间中怎么动、往哪个方向动、动得多快。
准备接箱子的过程中,机器人身体在动,画面里箱子的位移和摄像头自身的晃动叠在一起。不告诉机器人"我自己刚才动了多少",它很难从这团混合变化里把箱子真实的运动轨迹剥出来。实验显示,去掉这部分信息后,箱子正对飞来时成功率掉了10.4个百分点,偏移飞来时掉了22.6个百分点,偏移情况损失明显更大。复杂轨迹判断里,摄像头自身晃动的干扰更严重。
视觉训练阶段还有一个关于颜色泛化的细节。模拟训练时若对箱子颜色不做处理,蓝色和黑色箱子的接住成功率只有60.2%和61.2%,比其他颜色低不少。加入颜色随机增强后,这两个数字分别升到88.0%和88.8%,几乎追平其他颜色。
原因在于,深色物体在图像中的边缘和纹理比较模糊,训练数据颜色不够丰富时,网络容易"记住"几种常见颜色的识别套路,遇到没见过的深色就失灵。加入颜色扰动,相当于逼着网络去学"箱子形状轮廓"这类更本质的特征,不再依赖颜色这种浅层线索。
数据说话:仿真和真实世界的表现
仿真环境里,完整Reflex系统靠纯视觉输入,接箱成功率达到85.7%;换成理想化、带特权信息的箱子观测数据,成功率是87.9%。两者只差2.2个百分点,视觉感知这条链路几乎没有拖累整体表现。
真实机器人测试的数据同样值得细看。2.5米、5米、7米三个距离下,机器人成功率分别是65%、40%、15%;三位真人在同样距离下是85%、68.3%、28.3%,机器人大致达到人类水平的76%、59%、53%。有意思的是,人类在7米距离的成功率也掉到28.3%,说明7米已接近人类投掷和接取的实际极限,机器人的落后不全是技术问题,也有物理极限的因素。
论文还测试了箱子大小和重量的影响。0.5公斤到2公斤的载荷,机器人接住成功率在77.7%到91.2%之间,相当稳定。可一旦箱子尺寸超出训练时见过的范围,成功率就大幅下跌,小箱子只有25.5%,大箱子只有39.7%。研究团队发现,这个控制器基本是"尺寸盲"的:第一阶段训练用的是固定尺寸箱子,尺寸信息压根没作为输入变量。箱子尺寸一变,机器人即便能拦截到轨迹(拦截成功率仍有58.1%到86.1%),也常没法稳稳抱住。好比一个人练了很久接固定大小的篮球,突然让他接排球或保龄球,手型和力道没专门练过,拦得住和抱得稳是两回事。
另一个重要对比实验,是看Reflex和传统"检测加卡尔曼滤波"方案谁更强。
卡尔曼滤波是一种经典状态估计算法,把传感器观测值和运动模型预测值结合起来,对物体真实状态(位置、速度等)做出更精确、更平滑的估计,广泛用于目标跟踪。
在同样检测器前提下,排除5米和7米这种超出训练范围的远距离投掷,Reflex的学习型隐变量方案在13种测试条件里全部压过"检测加状态策略"方案,平均高出5到15.6个百分点。这说明Reflex学到的隐变量表示,确实比传统滤波更懂得把带噪声的观测转化成对控制有用的信息。
论文还专门提到反应延迟。实验显示,训练时不对观测延迟做随机化处理,各种延迟条件下的接箱成功率都会低5到11个百分点。训练时加入延迟随机化后,控制器反而在60毫秒延迟下表现最好,这个数字恰好接近真实机器人硬件管线里69毫秒的中位延迟。这揭示了一个实用的训练思路:别只在理想条件下训练模型,要让它在训练阶段就见过真实部署时会碰到的那些"糟糕情况",真碰上时才能像"早有准备"。
论文最终把这套接箱能力接到一个叫SONIC的行走控制器上,实现了接住箱子后搬运7.8米、交给人、再走回7.3米的完整演示。20次完整流程测试里,累计成功率是接箱65%、搬运35%、交接30%、返回25%。逐级下降的数字说明,把多个独立训练的技能模块串成一个完整任务,每个环节都会带来失败率叠加,这是复合型机器人任务普遍要面对的挑战。
写在后面
读完论文,最让我意外的不是接箱成功率的数字,而是那个"尺寸盲"的发现。研究团队没有回避这个局限,反而清楚写出来:机器人能拦住箱子却抱不住,真正原因是训练阶段压根没把尺寸当变量考虑。这种诚实的失败分析,比只报喜不报忧的论文更有价值,它直接指出了下一步该往哪里改。
另一个值得琢磨的是人类对照组的数据。三位真人在7米外接箱成功率只有28.3%,这个数字某种程度上重新定义了"机器人表现差"的参照系。我们总习惯拿100%当满分衡量机器人,可如果人类自己在同样条件下的上限就是不到三成,那机器人15%的成绩其实没想象中那么悬殊。评估机器人能力时,找一个真实的、有血有肉的对照基准,比单看绝对数字更有意义。
论文里有一句短评,说“接箱子只是更广泛的一类视觉反应式全身技能的一个代表”,拦截、避让、交接、物理协助都算在内。这么看,那套三阶段拆解训练的思路,能用的地方恐怕不止接箱子。凡是需要先判断外部动态物体走向、再提前调整身体、最后在接触瞬间稳住的任务,理论上都能往这个框架里放。躲开迎面推来的购物车,或者接住从楼上掉下来的宠物,这些事在人的日常生活里天天发生,放到机器人身上却基本还是空白。
真正让人停下来琢磨的是另一个问题:机器人能算准一个纸箱会往哪儿飞,离它看懂一个人的意图还有多远?
Q&A
Q1:Reflex是什么?
A:这是华盛顿大学等机构提出的一套三阶段训练框架。人形机器人只靠自身摄像头拍到的RGB-D画面,就能实时接住人扔过来的纸箱,动作捕捉和反光标记都用不上。
Q2:Reflex在真实机器人上接箱子,成功率有多高?
A:换到真实的Unitree G1机器人上,2.5米距离的成功率是65%,5米降到40%,7米只有15%。同样距离下,人类接球者的成功率分别是它的对照基准,三个距离上它分别达到后者的76%、59%和53%。
Q3:Reflex为什么把训练拆成三个阶段,而不是一步到位?
A:端到端训练一边要实时渲染图像,一边还得同时学视觉理解和身体控制,算力开销大,反馈信号也不清楚。分成三个阶段之后,每一段只盯一个问题,训练效率和最终效果都更好。