JOVANA
Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

推动、柔顺与不确定下的抓取

机器人拥抱接触的前沿:不抓取也能推动物体、保持柔顺,并在世界充满不确定时从容应对。

当你无需抓取时

本主线的大部分内容都在讲如何把手合拢、握住物体——也就是一次抓取,把物体牢牢固定,让它逃不出你的手指。但想想你在真实世界里到底是怎么挪动东西的。你把咖啡杯顺着桌面滑向自己。你拨弄一支掉落的笔,直到它探出桌沿、你终于能拿起它。你把一个沉重的箱子顶在一个棱角上,一步步“走”到该放的位置。这些动作里,你都没有先用手把物体包住。这一整类动作——推、滑、顶、翻、滚——就叫做非夹持操作:在从不握住物体的情况下改变它的位置。

既然抓取看起来更直接,何必费这个事?因为有时物体太大、太扁,或太贴墙,任何夹爪都伸不进去把它包住——桌上的一枚硬币、架上卡住的一本书,手指根本无处下手。有时推动单纯就是更快:把一堆杂物推到一边,胜过把每件东西逐个拿起。还有时,先推一下能为之后更轻松的抓取做铺垫——把物体滑到桌沿,手指才终于有空隙伸到下面。非夹持动作把环境——桌面、墙壁、重力——变成了额外的一只帮手。

麻烦在于,推动出奇地难以预测。当你抓住一个物体,它就刚性地连在你手上,手怎么动它就怎么动。但当你推它时,物体可能旋转、打滑或侧滑,而这取决于你看不见的摩擦和只能猜测的质量分布。推一把长尺的一端,它会转起来;从正中间推,它就笔直地滑。机器人必须推理接触动力学——接触点上的力如何转化为物体的运动——这种推理正是这最后一章的核心。

保持柔软:富接触任务与柔顺

再来看另一类挑战:把钥匙插进锁孔、把销子塞进孔里、插上一个 USB 接头,或让海绵沿着曲面擦过。这些都是富接触操作任务——动作的全部要点就是持续接触某个东西,往往是沿着一条边、或在狭小的间隙里进行。这里的危险与推动的不可预测恰恰相反。机器人大致知道东西在哪,但只要它多推进哪怕零点几毫米,就会卡死、刮花,甚至弄断零件。

传统的位置控制机器人在这里很危险,因为它很“固执”。让它去某个点,它就会用极大的力冲过去,无视一切阻挡。如果孔的实际位置比机器人以为的偏了一毫米,机器人不会轻轻去摸索,而是把销子狠狠撞在表面上,然后继续硬推,因为它唯一的目标就是抵达被指令的位置。我们真正想要的,是一个一接触就让步的机器人,就像你自己的手臂在感到阻力时会顺势退让一样。

优雅的答案是阻抗控制。你不再下达一个位置、并要求机器人不惜一切去抵达它,而是去规定力与运动之间的一种关系——让机器人表现得像一根弹簧。去推一只阻抗控制的手臂,它会温和地回推,回推的力与你把它推开的距离成正比,而你一松手它又弹回原位。你可以调节这份刚度:需要精度时硬得像钢条,需要吸收接触时软得像海绵。与之密切相关的导纳控制则从另一个方向达到类似的柔软——它测量接触力,并据此运动。无论哪种方式,机器人都不再与世界对抗,而是开始与它“商量”。

柔软也可以做进硬件里,而不只是软件里。远端柔顺中心是装在夹爪附近的一种巧妙的被动机构,它让被夹的零件在接触力作用下能轻微倾斜与平移,于是稍有错位的销子在滑入孔中时会自动纠偏——无需任何传感器或计算。而串联弹性驱动器则刻意在电机与关节之间放一根弹簧,让肢体在结构上天生就懂得让步。优秀的富接触操作通常把两者结合:柔顺硬件提供快速、本能的让步,阻抗控制提供精确、可编程的手感。

在世界充满不确定时如何应对

退一步,注意到这条共同的线索。推动之所以难,是因为摩擦藏在暗处;接触任务之所以难,是因为一毫米的误差就可能酿成大祸。两者其实是同一个更深问题的不同面孔——不确定下的操作。机器人从不精确地知道世界。它的相机报告物体“在这里”,但它的深度估计偏差了好几厘米。它的模型说表面是干的,但表面其实微微有油,物体滑得比预期更远。它的手指合拢握住杯子,但杯子一侧更重,在抬起时旋转了起来。

第一道防线是反馈——而且不只靠眼睛。手腕处的力/力矩传感器或指尖上的触觉传感器让机器人在接触发生的当下就能感知它,远比视觉更快、更可靠。当你在黑暗中插钥匙时,你并不会盯着锁看;你会感觉钥匙碰到槽口的边缘,然后左右摆动它,直到它滑进去。机器人也一样:它轻轻按压,感知到那股提示销子偏离中心的侧向力,然后朝阻力更小的方向滑去,直到零件就位。这种感知把闭环收得足够紧,让机器人能从它从未明确“看见”的误差中恢复过来。

第二道防线是去推理不确定性,而不是无视它。机器人可以不把全部赌注押在“物体在哪”的单一最佳猜测上,而是携带一整团可能性——一个概率分布——并采取一种对其中大多数都有效的行动。这正是为定位中的粒子滤波器提供动力的那种概率思维,如今被转用到抓取上。一个著名的技巧是“漏斗”:把动作设计成让一大片不同的初始误差,全都被挤压进同一个正确的最终状态。带倒角的孔会把错位的销子“漏”到中心;把零件倾斜着轻敲某个墙角,会把它“漏”进一个已知的朝向。你不需要精确知道物体一开始在哪——你只需要一个会收敛的方案。

loop until seated:
    move down a little under impedance control   # stay soft
    read wrist force F                            # feel the contact
    if F sideways is large:                       # peg is off-center
        slide toward the direction of least resistance
    if F downward drops suddenly:                 # peg fell into the hole
        done
一个“感知并漏斗”的插入循环:保持柔顺、感知接触力,让阻力把零件引导到位——无需精确知道孔的位置。

学习前沿与操作的未来走向

迄今为止的一切都假设我们能把物理写下来——摩擦、几何、接触模型。但接触是出了名的混乱:成千上万次微小的碰撞与打滑,没有哪个方程能干净利落地刻画。这正是为什么现代前沿很大程度上转向了学习。机器人不再手工编写一次推动会如何展开,而是观看大量示例,学出一个控制策略——一个从“它感知到什么”到“它下一步该做什么”的映射。

这些示例从哪来?常常来自人。在模仿学习中,人类遥操作机器人,把一次棘手的插入或一次精细的折叠演示几十遍,机器人就学着复制这个行为。或者机器人在快速的物理仿真里练习,尝试几百万次它在真机上根本负担不起的推动,再把学到的东西迁移到物理世界——这一跃叫做仿真到现实迁移。顽固的障碍在于,仿真里的摩擦与接触从来无法与现实完美吻合,这就是著名的现实鸿沟,于是在仿真里行得通的,到了一张真实、略微打滑的桌子上就可能栽跟头。

最新、也最具雄心的方向,试图赋予机器人通用的能力,而不是一次只学一招。视觉-语言-动作模型在海量的机器人经验上训练,于是它能接收一张相机图像和一句大白话指令——“把红色方块放进碗里”——并直接输出动作,哪怕面对训练中从未见过的物体和说法。这些模型预示着一个未来:你用言语描述一个操作任务,机器人就照做,就像一个能干的人那样。

然而最古老的那条教训依然成立。握起一只杯子、推动一个箱子、插上一根线缆——这些幼儿不假思索就能做到的事——仍是机器人学中最难的问题之一,这份顽固如此出名,以至于有了自己的名字:莫拉维克悖论——对人类毫不费力的,对机器却难如登天;而对我们很难的(算术、下棋),机器却轻而易举。操作的前沿不是某一次单点突破,而是本主线中所有思想的稳步联姻——审慎的抓取规划、柔顺的接触、对不确定性的诚实推理,以及从经验中学习——一点一点地缩小着机器人之手与人类之手之间的距离。