AffordSim:兰旭光团队让机器人先想“抓哪里”再动手
新智元报道 把一只马克杯挂上杯架,动作的成败往往在第一次接触时就已埋下伏笔。夹住杯柄,杯子可能很稳,但挂钩就失去了进入的位置;夹住杯身之后,还需要让杯柄与挂钩正确对齐。倒水、开柜门、把杯子放进咖啡机,也都有各自的接触要求。一次合适的抓取,需要为后续动作留下完成任务的空间。这类要求与物体的可供性(affo...
新智元报道
新智元报道
拿一只马克杯往杯架上挂,第一次碰到杯子的位置,往往就决定了这活能不能干成。
要是夹住杯柄,杯子是稳了,可挂钩没地方进;要是夹住杯身,还得让杯柄正好对准挂钩。倒水、开柜门、把杯子塞进咖啡机,每种动作对接触点的要求都不一样。
抓得对不对,得看它给后面的动作留没留出空间。
这跟物体的可供性(affordance)有关,说的是对眼下这个任务,物体哪块区域能支撑哪种交互。人挑接触位置是看目标来的,机器人操作数据的生成同样得做这个判断。
图1 展示的是放置与悬挂任务在动态过程中的对照。四个结果窗口各自演示通用抓取和 AffordSim 的执行情况,而与任务相关的功能区域既限定了抓取怎么选,也约束后续操作如何对齐。
西安交通大学人工智能与机器人研究所、人机混合增强智能全国重点实验室兰旭光教授团队给出了一个办法:AffordSim,把开放词汇三维可供性预测接到仿真轨迹生成里。系统从自然语言描述起步,把场景和任务组织起来,在物体表面找到功能区域,再配合运动规划,生成能跑的机器人操作示范。
论文链接: https://arxiv.org/abs/2604.11674
项目主页: https://affordsim-platform.github.io/AffordSim.io/
代码仓库: https://github.com/AffordSim-Platform/AffordSim
团队还搭了一个评测基准,覆盖50项任务、7类操作技能、5种机械臂,背后是一个含500余个刚体与关节物体的资产库。碰到必须精确挑功能区域的任务,AffordSim省掉了逐物体手工指定接触位置这道工序,同时也给评估策略怎么用这批数据提供了实验平台。
要给机器人准备操作示范,第一步是定下它怎么碰物体。现在的仿真数据生成流程一般走两条路:要么人工给不同物体、不同任务调抓取位置,要么调通用抓取估计器,按抓取稳不稳来挑候选姿态。
人工调参能把细的任务经验写进去,可每多一种物体、多一种交互,可能就得重调一遍。通用抓取估计器省了这部分力气,却不一定会想抓住之后还要干什么。比如搬杯子合适的接触位置,挂杯架时可能就成了碍事的地方。
在通用抓取结果上再叠一层语义区域过滤,能筛掉一些不合适的候选。问题是估计器一开始就没在目标区域生成候选的话,过滤再严也补不出来。AffordSim的做法是把功能区域预测挪到候选生成前头,让任务要求直接决定机器人从哪儿下手。
贡献一 从任务描述到三维功能区域,再到可执行轨迹
AffordSim把场景组织、可供性预测和运动规划串在了一起。
第一步,视觉语言模型分开解析场景和任务描述。场景这边提取物体、属性和空间关系,从USD资产库里挑对象、把场景拼起来;任务那边把目标拆成操作步骤,生成对应的功能区域查询。倒水任务就是个例子:系统会分清哪个容器是被握着的,哪个是接水的,按不同交互角色分别出查询。
接着,开放词汇三维可供性模型拿到物体点云和查询,预测哪些表面点和当前交互有关。用的点云跟仿真资产是配套的,所以系统能在三维几何上把接触位置卡住。
图2 是 AffordSim 的数据生成流程:语言描述先经过场景和任务解析,再转为功能区域查询;三维预测结果对抓取候选形成约束,随后由运动规划检查这些候选能否到达、会不会碰撞。
抓取选择分两步走。第一步定在哪个区域试抓:系统在预测区域里取代表性接触点,结合局部表面法向,生成不同接近方向的候选姿态。第二步定机械臂能执行哪个:调cuRobo给候选规划无碰撞的接近轨迹,再按关节空间路径长度打分。
打分规则很直白:规划成功且无碰撞,得分就是路径长度的倒数;找不到可行路径,得零分。系统挑分最高的候选,沿用对应的接近轨迹,再接上夹爪闭合、抬升和后续任务动作,凑成一套完整示范。
这么设计,功能上合不合适、机械臂能不能执行,两样一起查了,预测出来的功能区域也就真能参与到轨迹生成里去。
贡献二 用50项任务评估可供性感知操作
AffordSim的基准涵盖七类技能:抓取放置、开关、推拉、悬挂、倾倒、堆叠和长时序组合。任务能在Franka、Kinova、Sawyer、UR5e和xArm7五种机械臂上跑。
图3 50项任务的动态展示,覆盖多种物体交互、操作序列与机械臂,用于评估轨迹采集和策略执行。
基准又按功能区域约束和操作序列要求分成三个难度层级。Easy有10项任务,对接触区域限制不多;Medium有30项任务,得按物体功能挑接触区域;Hard有10项任务,再加长时序依赖,或者更严的对齐与稳定性要求。
这么分,实验就能看出:任务越来越吃正确的接触位置时,通用抓取、人工经验和可供性预测之间的差距怎么变。多阶段任务还会统计各阶段成功率,看失败是出在抓取、对齐还是后面的动作上。
贡献三 替换真实场景背景,并支持切换相机视角
AffordSim在域随机化上重点做了两件事:替换真实场景背景,以及跨相机视角渲染。轨迹能在仿真里跑通之后,训练图像和真实环境之间的差异还得处理。系统保留机器人和操作对象不动,把仿真背景换成咖啡角、图书馆、工厂工作台等真实场景的重建结果,让操作示范拿到不同的环境外观。
每个场景先取10—20张照片,用Depth Anything 3恢复深度和相机位姿,再据此搭建3D Gaussian Splatting表示。
背景还能跟着相机视角一起变。只要落在重建覆盖的范围内,改变虚拟相机的观察位置和方向,就按相应相机参数重新渲染背景,再和同一视角下的仿真机器人、操作对象合成。同一个操作过程因此能在多个相机视角下观察,背景的透视关系也跟着变。
图 4 展示了相机视角与真实背景一起变化的情况。咖啡角、图书馆、工厂工作台分列三行,−90°、−60°、−30°的相机视角分列三列;同一条操作轨迹的同步相机画面构成每一行的图像,再与相应视角的重建背景做合成。
除了换背景,系统还支持物体位姿、表面纹理、光照和图像噪声的随机化,训练数据因而同时覆盖环境、视角与物体外观的变化。研究进一步把这些仿真示范拿去真实机器人上做零样本部署,检验生成数据能不能迁移过去。
功能区域约束越强,可供性引导带来的收益就越明显。轨迹采集实验覆盖50项任务,各方法使用相同的场景和运动规划设置,每项任务跑100次,物体初始位姿在30cm水平位置窗口与60°偏航角范围内随机化。论文报告的各难度层级平均轨迹采集成功率见下表。
表1 给出的是轨迹采集成功率。所谓人工调节,是人为给物体设定接触位置和姿态规则;AnyGrasp+Filter则是在通用抓取候选之上加了任务相关区域过滤。这张表统计的是示范轨迹能不能采到,跟学出来的策略执行时成不成功是两回事。
在Medium和Hard上,AffordSim比AnyGrasp+Filter分别高出34和48个百分点。对照人工调节基线,它分别达到约93%和89%的采集成功率水平:对应79%/85%和64%/72%。这两项相对比例,反映的是自动预测功能区域与逐物体人工调节之间的差距。
五种机械臂上都能看到收益。跨具身实验中,AffordSim在50项任务上的平均采集成功率为76%—83%,每种机械臂上都比AnyGrasp+Filter高出32—33个百分点。
采集到的数据能用于策略训练,复杂操作仍有提升空间。研究在20项代表性任务上比较BC、Diffusion Policy、ACT、VLA-adapter和π0.5,每项任务使用300条示范。π0.5与VLA-adapter的总体仿真执行成功率分别为55%和54%;Hard任务上分别为24%和23%。阶段分析显示,后续精确对齐与长动作序列仍是重要难点。
真实机械臂验证了零样本迁移的可行性。研究把仅用AffordSim操作示范训练的策略部署到真实Franka FR3,覆盖两项放置、一项倾倒与一项悬挂任务,每项测试10次,不做真实机器人数据微调。
图5 是论文里的四项真实Franka FR3任务,排成2×2:左上角把香蕉放进盘子,右上角把杯子放上架子,左下角把勺里的物料倒进碗,右下角悬挂马克杯。策略先在仿真示范上训练,随后直接部署。
表2 零样本仿真到真实迁移成功率。每项任务测试10次;VLA-adapter的精确平均值为22.5%,论文表格按整数报告为23%。
真机结果说明,仿真数据足以支撑这些任务直接迁移,不过难度差别也摆在那里:带精确挂接的任务还是更棘手。再结合仿真实验,功能区域预测、抓取后对齐、长时序执行这三处各自的误差还能接着往下追。
AffordSim把任务相关的接触区域当作数据生成中的显式条件,将自然语言目标、三维几何和运动可行性连接起来。它提供了一条减少逐物体接触规则手工调节的路径,也通过统一基准评估可供性理解对机器人操作的实际影响。
当前结果还受可供性模型覆盖范围的限制。
举个例子,悬挂类任务里有些接触配置在训练数据中出现得不多,采集效果因此仍不如人工调节;透明物体、没见过的几何形状、模糊的功能区域同样会造成麻烦。柔性物体、双臂操作和手内操作目前还没有进到这个框架里。等这些能力补上,可供性感知的数据生成应该能覆盖更多日常操作场景。
参考资料:
https://arxiv.org/abs/2604.11674