AffordSim:兰旭光团队把三维可供性接入机器人操作数据生成
让机器人理解「抓哪里」:把「三维可供性」引入操作数据生成
新智元报道
新智元报道

拿一只马克杯往杯架上挂,能不能成,多半在第一次碰上杯子那会儿就定了。
夹杯柄,杯子是稳了,可挂钩没地方进;夹杯身,还得让杯柄和挂钩对正。倒水、开柜门、把杯子送进咖啡机,各有各的接触讲究。
抓得合适,后面的动作才有地方施展。
这跟物体的可供性有关——眼下的任务里,物体哪块区域能撑起哪种交互。人会照着目标挑接触位置,机器人操作数据在生成时,也少不了这一层判断。
图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为55%,VLA-adapter为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