【计算机图形学】DualAfford: Learning Collaborative Visual Affordance For Dual-Gripper Manipulation

1. 为什么做件事,做了件什么事?

目前很多系统都在多样化的3D物体上执行多样化的操作任务,最近一些工作致力于学习visual actionable affordance,它能给输入3D几何上的每个点打上“能完成下游任务的概率”标签。然而,这些工作仅聚焦于single-gripper。

真实世界很多任务都需要两只手协作完成,为此,提出了一个新的框架DualAfford来学习用于两只手操作任务的协作affordance。核心的设计就是将两个抓手的二次问题归结为两个互不纠缠但相互关联的子任务,以实现有效的学习。

2. 介绍

人类只需要花费少部分甚至不需要花费精力就能够感知和操纵日常生活中的3D物体来完成日常任务。开发人工智能机器人实现类似能力是富有挑战性的任务,因为世界中有极其丰富的3D对象空间,并且针对不同的校友任务使用不同的3D几何图形进行操作的复杂性非常高。在视觉领域,许多研究者在3D物体识别、姿态估计、语义理解取得了巨大进步;在机器人领域,同样有很多人对抓取和操纵3D物体进行了理解和研究。但在感知-交互之间仍然存在巨大的gap,如果能够close the gap有助于未来家庭机器人在人类环境中做一些非结构化的、复杂的工作。

在gap间搭建桥梁的核心挑战是找到一种好的视觉表达,这种表达能够在多个3D shape间实现泛化,同时能够直接用于下游的规划和操纵任务。最近的工作提出了一种感知-交互友好的表达——Visual Actionable Affordance。这种Affordance能够对3D物体上每一个点是否能完成下游任务给出预测评分。这种Visual Actionable Affordance是在多个3D shape的几何上训练的,对于特定的下游任务,其证明了其能够泛化到未见过的物体,有利于下游机器人任务的执行。

过去的工作主要限制在single-gripper的操纵任务。但未来的家庭辅助性机器人大多应该像人类一样有两只手,并且许多真实世界的任务都需要两只手来协作完成。

在这里插入图片描述

例如,想要稳当地拿起一个沉重的水桶,两个gripper应该在在桶的两条边上协作,并以相同的方向移动;想要将显示器逆时针旋转,一个gripper向下抓住,而另一个gripper要抓住另外一条边。在完成不同的下游任务时,两只手自然会有不同的操作范式。

在文章中,将学习一个双gripper的操纵问题,同时学习协作式的Visual Actionable Affordance。处理双gripper的操纵是非常有挑战性的任务,因为比起单gripper,运动空间翻倍了。且由于多出了一个gripper,需要学习两个affordance的预测。因此,两个gripper需要有一对affordance map,且它们需要协作式地进行学习。正如图1中所示,第二个gripper的affordance是独立于第一个gripper的动作选择的。如何设计这样一个框架解决协作affordance是一个非平凡的问题。

DualAfford的核心是解耦两个grippers的affordance学习问题,将它们分为两个高度耦合的子任务,来减少本质上是个二院问题的复杂性。具体地说,网络的第一个部分需要推断当第二个gripper动作协作的情况下,第一个gripper可以运动的位置;同时第二个部分基于第一个gripper的动作来预测第二个gripper的affordance。在物理模拟器中操纵多样化的3D物体来搜集训练数据,从而完整地训练两个部分。

文章在四个双gripper的操纵任务中进行评估:推、旋转、翻转和拾取。总的来说,文章包括如下内容:

  • 在多样化的3D物体上,提出了新的网络结构DualAfford来学习双gripper操纵任务的协作Visual Actionable Affordance;

  • 对于四个双gripper的操纵任务,基础环境使用SAPIEN物理模拟器,并使用了PartNet-Mobility和ShapeNet中的数据;

  • 定性和定量实验证明文章的方法相较其他三个baseline具有有效性。

3. 相关工作

双gripper操纵

计算机视觉和机器人领域都致力于双gripper和双机械臂的操纵,同时出现了两个策略用于双机械臂操纵:J+和IK-RRT。14年出现了一个使用操纵晶格图的、基于搜索的启发式方法。20年出现了一个闭环和分散运动规划器,进一步避免了碰撞。多机械臂操作出现了多种应用:抓取、拿取和放下、排列。本工作将更多的经历放在以物体为核心的、双机械臂的Visual Actionable Affordance heatmaps的学习。上述提到的哪些工作更多地将重心放在规划和控制上。21年时有工作学习affordance用于交互式part分割,使用一个gripper来简单地抓住一个铰接部件,并使用其他gripper来移动另一个铰接部件。

Visual Affordance预测

Affordance预测在视觉理解方面起了很重要的作用,并有益于下游机器人操纵任务的学习,在之前的工作中已经被广泛进行研究了。例如,17年时有工作使用CNN来提出一个二进制map来指明任务启动的抓取位置;21年有工作提出利用手部交互点和物体交互区域来探索contact maps;同时21年还有一篇工作Where2Act,本工作follow这篇文章来使用affordance maps,这是一种能够在3D扫描的每个点上给出运动概率的表达。在本篇工作中,拓展成了供两个grippers使用的两个协作式的affordance maps,进而实现深度合作并应用于下游任务。

4. 问题定义

通用设定

将随机类别中随机的3D物体放置在地面上,给定其部分扫描点云 O ∈ R N × 3 O∈\R^{N×3} ORN×3和特定的任务 l l l,网络需要去提出两个gripper的动作 u 1 = ( p 1 , R 1 ) u_1=(p_1,R_1) u1=(p1,R1) u 2 = ( p 2 , R 2 ) u_2=(p_2,R_2) u2=(p2,R2),其中 p p p是接触点, R R R是操纵方向。所有输入输出基于相机所在的坐标系表示,z轴向上,x轴向前,对应于真实机器人相机的系统。

任务定义

考虑4个任务:推、旋转、翻、拾取,这是广泛使用的操纵基准,并常作为抓取和放置的子程序。为不同的任务设置成功的判断,这里以推动作为例。任务 l ∈ R 3 l∈\R^3 lR3是表示物体目标推动方向的单位向量。物体被成功推动有3个衡量标准:

  • 移动距离超过0.05个单位长度

  • 实际运动方向 l ′ l' l和目标方向 l l l的误差在30度以内

  • 物体需要被稳固地推进,即物体不能够grippers被旋转或翻转(推倒)

5. 方法

5.1 DualAfford Overview

在这里插入图片描述

图2展示了DualAfford框架的概览。首先,搜集大量的交互数据用于监督感知网络的训练。在叫做SAPIEN的交互模拟器中进行搜集。该工作采用随机数据采样的离线交互或可选的强化学习数据增强方法(5.5小节)来进行数据采样。

工作中提出了新的感知模块,用于学习协作式的Visual Actionable Affordance和用于多个物体双gripper操纵任务的交互策略,作者将任务分解为两个高度耦合的子任务。这里用 N N N表示点云中点的数量, θ R \theta_R θR表示一个点上gripper的方向。如果网络同时预测两个gripper的动作,则解空间大小为 O ( ( θ R ) ( N × N ) ) O((\theta_R)^{(N×N)}) O((θR)(N×N))。然而,文章中采用的感知模块是用条件的方式来顺序预测两个affordance maps和gripper actions,使得解空间缩小到了 O ( ( θ R ) ( N + N ) ) O((\theta_R)^{(N+N)}) O((θR)(N+N))。因此,在感知模块中设计了两个子模块:Gripper1 Module M 1 M_1 M1和Gripper2 Module M 2 M_2 M2,每个Gripper模块又由3个网络组成,详见5.2节

训练和推理过程在图2中使用红色和蓝色箭头分别表示。二者共享相同的结构但完全相反的数据流。对于推理,数据流方向是非常直观的: M 1 M_1 M1提出 u 1 u_1 u1 M 2 M_2 M2基于 u 1 u_1 u1提出 u 2 u_2 u2。尽管这样的数据流保证第二个gripper在推理期间是协同与第一个gripper的,但并不能保证第一个gripper的动作是适合于让第二个gripper进行协作的。为了解决这个问题,在训练时使用相反的数据流: M 2 M_2 M2先进行训练,接着 M 1 M_1 M1以一种 M 2 M_2 M2-aware的方式进行训练。特别的,在训练集中反向给定 u 1 u_1 u1 M 2 M_2 M2首先被训练为提出合适的、能够和他们协作的 u 2 u_2 u2。接着,训练 M 2 M_2 M2能够去提出与不同的 u 1 u_1 u1合作的 u 2 u_2 u2,从而 M 2 M_2 M2能够很容易地提出能够与 M 1 M_1 M1提出的 u 1 u_1 u1合作的 u 2 u_2 u2。通过这样的方式, M 1 M_1 M1 M 2 M_2 M2都能够非常容易地提出能够与对方合作的actions。详见5.3

这样的设计虽然可以鼓励两个gripper进行合作,但两个gripper模块是仅使用离线收集的数据分开训练的,并且他们提出的动作从未作为一个整体完整执行过,所以如果他们的合作成功,他们也不会得到明确的指导。为了进一步提高两个gripper间的合作,引入了Collaborative Adaptation procedure,这其中能够在模拟器中同时执行两个gripper的动作,使用输出来为训练提供监督。

5.2 感知模块与推理

在这里插入图片描述

为了降低二次问题的复杂性,减轻网络的计算负担,文章将双gripper问题解耦成两个分离但耦合的子任务。如图3所示,设计了一个包含两个子模块的条件感知模块。在推理的时候 u 2 u_2 u2是基于 u 1 u_1 u1推理的,在训练的时候 M 1 M_1 M1是基于训练好的 M 2 M_2 M2进行训练的。在gripper模块中有三个网络:Affordance网络 A A A,Proposal网络 P P P和Critic网络 C C C。首先,gripper动作被分解为contact point和gripper方向,应用Affordance和Proposal网络分别对二者做预测。为了评估gripper的动作是否适合协作,使用Critic网络来完成这部分内容。以下介绍每个模块的设计。

特征提取器的backbone。感知模块中的网络的输入可能包含四种信息:点云 O O O,任务 l l l,contact point p p p,gripper方向 R R R。在不同的子模块中,特征提取器的backbone共享相同的结构,使用分割版本的PointNet++提取点云 O O O的逐点特征 f s ∈ R 128 f_s∈\R^{128} fsR128,并应用三个MLP网络分别编码 l l l p p p R R R成为32、32、32维向量。

5.2.1 第一个Gripper模块

第一个Gripper模块包括3个序列网络。给定一个物体和任务配置,Affordance Network A 1 A_1 A1通过预测Affordance map来预测哪个位置可以进行交互,Proposal Network P 1 P_1 P1给出预测的交互方向,Critic Network C 1 C_1 C1评估每个动作的成功概率。

Affordance网络。输入是特征的连接 f s , f l 和 f p 1 f_s,f_l和f_{p1} fs,flfp1。输出在每个点 p p p上的affordance分数 a 1 ∈ [ 0 , 1 ] a_1∈[0,1] a1[0,1]假设存在第二个协作gripper的情况下(如何假设?),用于指示与该点交互的时候,第一个gripper成功的概率。聚集所有affordance分数形成affordance map a 1 a_1 a1,从中可以过滤掉那些低分数的proposal,并给第一个gripper选择一个接触点 p 1 p_1 p1

Proposal网络。输入是特征的连接 f s , f l 和 f p 1 f_s,f_l和f_{p1} fs,flfp1。网络 P 1 P_1 P1模块在给定的点 p 1 p_1 p1上建模gripper方向 R 1 R_1 R1的分布。通过一个c-VAE实现,编码器将gripper方向编码成高斯噪声 z ∈ R 32 z∈\R^{32} zR32,解码器从 z z z中重建gripper方向。

Critic网络。输入是特征的连接 f s , f l , f p 1 和 f R 1 f_s,f_l,f_{p1}和f_{R_1} fs,fl,fp1fR1,用于表示在每个点上执行操纵方向 R 1 R_1 R1成功的概率 c 1 ∈ [ 0 , 1 ] c_1∈[0,1] c1[0,1]。值越高表示第一个gripper与第二个gripper合作完成指定任务有越高的、完成任务的潜力。

5.2.2 第二个Gripper模块

基于由 M 1 M_1 M1提出的第一个gripper的动作 u 1 = ( p 1 , R 1 ) u_1=(p_1,R_1) u1=(p1,R1) M 2 M_2 M2首先生成逐点的合作affordance A 2 A_2 A2,并采样点 p 2 p_2 p2。接着, M 2 M_2 M2提出多个候选方向,在这之中我们选择最合适的一个作为 R 2 R_2 R2 M 2 M_2 M2的设计哲学和 M 1 M_1 M1相同,所有的三个网络都将第一个gripper的动作 u 1 = ( p 1 , R 1 ) u_1=(p_1,R_1) u1=(p1,R1)作为额外的输入。

5.3 训练和损失

如5.1小节所述,在推理的时候,第一个gripper在看不到第二个gripper如何协作的情况下进行预测。为了使得第一个gripper能够提出让第二个gripper易于写作的动作,训练时通过反向数据流的方式进行训练。同时采用第一个gripper的Critic网络 C 1 C_1 C1来作为两个gripper之间连接的桥梁。第一个gripper的动作分数 C 1 C_1 C1是易于 M 2 M_2 M2去提出协作动作的(?)。通过训练 C 1 C_1 C1 M 1 M_1 M1将在存在另一个写作gripper的情况下提出动作假设。因此 M 1 M_1 M1 M 2 M_2 M2是和对方共同训练的。在这里插入图片描述

Critic Loss。训练第二个Critic网络 C 2 C_2 C2相对容易,给定交互数据和对应的GT交互结果 r r r r = 1 r=1 r=1表示正例, r = 0 r=0 r=0表示负例,使用二分类交叉熵损失来训练 C 2 C_2 C2,这里将 f i n f^{in} fin表示为网络的输入特征连接:

L C 2 = r j l o g ( C 2 ( f p 2 i n ) ) + ( 1 − r j ) l o g ( 1 − C 2 ( f p 2 i n ) ) L_{C_2}=r_jlog(C_2(f_{p2}^{in}))+(1-r_j)log(1-C_2(f_{p2}^{in})) LC2=rjlog(C2(fp2in))+(1rj)log(1C2(fp2in))

对于 C 1 C_1 C1,因为只知道第一个gripper的动作 u 1 = ( p 1 , R 1 ) u_1=(p_1,R_1) u1=(p1,R1),所以不能够直接获得单个动作 u 1 u_1 u1的GT交互输出。为了解决这个问题,给定第一个gripper的动作,文章通过估计第二个gripper协作完成给定任务的潜力,来对该动作进行评估。如图4所示,使用全面训练的第二个模块中的 A 2 , P 2 和 C 2 A_2,P_2和C_2 A2,P2C2。特别的,为了获得第一个gripper的GT动作分数 c ^ \hat{c} c^,首先使用 A 2 A_2 A2预测合作Affordance Map a 2 a_2 a2,并在上面并采样点 p 2 , 1 , . . . , p 2 , n p_{2,1},...,p_{2,n} p2,1,...,p2,n;接着使用 P 2 P_2 P2来采样每个接触点 i i i上的 m m m个交互方向: R 2 , i 1 , . . . , R 2 , i m R_{2,i1},...,R_{2,im} R2,i1,...,R2,im。最后 C 2 C_2 C2使用这些动作的分数 c 2 , 11 , . . . , c 2 , n m c_{2,11},...,c_{2,nm} c2,11,...,c2,nm来计算它们的平均值。因此获得了 C 1 C_1 C1的GT值,并应用L1 loss来衡量预测和真实值之间的差异:

c ^ p 1 = 1 n m ∑ j = 1 n ∑ k = 1 m C 2 ( f p 2 j i n , P 2 ( f p 2 j i n , z j k ) ) \hat{c}_{p1}=\frac{1}{nm}\sum^n_{j=1}\sum^m_{k=1}C_2(f^{in}_{p_{2j}},P_2(f^{in}_{p_{2j}},z_{jk})) c^p1=nm1j=1nk=1mC2(fp2jin,P2(fp2jin,zjk))

L C 1 = ∣ L 1 ( f p 1 i n ) − c ^ p 1 ∣ L_{C_1}=|L_1(f^{in}_{p_1})-\hat{c}_{p1}| LC1=L1(fp1in)c^p1

Proposal loss。对于通过cVAE实现的 P 1 P_1 P1 P 2 P_2 P2。对于第i个gripper,文章应用极地距离来衡量重建出来的gripper方向 R i R_i Ri和GT gripper方向 R ^ i \hat{R}_i R^i,运用KL散度来衡量两个分布之间的差异性:

L P i = L g e o ( R i , R ^ i ) + D K L ( q ( z ∣ R i ^ , f i n ) ∣ ∣ N ( 0 , 1 ) ) L_{P_i}=L_{geo}(R_i,\hat{R}_i)+D_{KL}(q(z|\hat{R_i},f^{in})||N(0,1)) LPi=Lgeo(Ri,R^i)+DKL(q(zRi^,fin)∣∣N(0,1))

Affordance Loss。类似于Where2Act对每个点采用’affordance’分数来评估在该点上执行由Proposal网络生成的指定动作成功的概率,这个分数是可以通过Critic网络来评估的。对于第 i i i个gripper的GT affordance分数,使用点 P i P_i Pi采样采样在点 p p p上的 n n n个gripper方向,并使用 C i C_i Ci对这些动作成功的概率求平均,应用L1 loss来衡量特定点上预测和真实的affordance score分数。

a ^ p i = 1 n ∑ j = 1 n C i ( f p i i n , P i ( f p i i n , z j ) ) \hat{a}_{p_i}=\frac1n\sum^n_{j=1}C_i(f^{in}_{p_i},P_i(f^{in}_{p_i},z_j)) a^pi=n1j=1nCi(fpiin,Pi(fpiin,zj))

L A i = ∣ A i ( f p i i n ) − a ^ p i ∣ L_{A_i}=|A_i(f^{in}_{p_i})-\hat{a}_{p_i}| LAi=Ai(fpiin)a^pi

5.4 协作适应过程

上述训练过程可以让两个gripper模块协作式地产生affordance和动作,但他们之间的合作还是受到限制,因为它们仅在离线数据上进行了分离训练,而没有真正执行提出的动作。

为了进一步提高两个gripper模块的协作能力,引入了Collaborative Adaptation模块,这其中两个模块以同时的方式使用在线执行和搜集的数据训练,使用和5.2.3中相同的损失。

通过这个过程,两个gripper的动作在模拟环境中同时执行,并使用产生的输出更新两个gripper模块。通过这种方式,两个gripper模块能够更好地理解它们所提出的动作能否成功地达到预期的效果,因为它们能够感知到交互的结果,使得两个分离的训练模块聚集成了一个协作式的系统。

5.5 离线数据搜集

使用SAPIEN来采样大规模的离线交互数据。对于每个物体的交互尝试,采样两个gripper动作 u 1 , u 2 u_1,u_2 u1,u2,并测试交互得到结果 r r r。一种尝试是成功的,当它满足以下两个条件:

  1. 两个gripper成功完成任务。如:推动一个显示屏超出了规定的长度而没有旋转它;

  2. 该任务仅能够通过两个gripper的协作实现,即当将其中一个gripper有动作而另外一个gripper不执行动作时,任务无法完成。

交互任务被表示为 ( O , l , p 1 , p 2 , R 1 , R 2 ) → r (O,l,p_1,p_2,R_1,R_2)→r (O,l,p1,p2,R1,R2)r,并平衡正例和负例的交互数量。这里引入了两种数据搜集方法:随机采样和强化学习采样。

随机采样。我们可以高效地通过在多CPU环境上同时模拟环境来高效实现交互采样。对于每个数据点,首先在点云上随机采样两个contact points,接着从点的上半球的切平面上随机采样两个交互方向,最终测试得到结果。

强化学习增强的数据采样。对于一些复杂的任务,比如拾取,几乎不可能通过随机采样得到正例数据,这时候为了解决这个问题就需要使用到强化学习。首先利用Where2Act来得到先验affordance map,这上面标记了哪些地方可以被抓取。接着采样两个交互点,使用SAC和手工设计的密集奖励函数来高效预测交互方向。

6. 实验

6.1 实验设定

Follow Where2Act的实验设定,使用两个Gripper,在SAPIE模拟器上使用PartNet-Mobility和ShapeNet进行实验。为了分析是否能够泛化到新的未见过类别上,还保留了一些类别用于测试。

6.2 评估指标、Baseline和消融。

评估指标:sample-success-rate,评估采样的Proposal成功的概率。

Baseline:与三个Baseline和一个消融版本比较:

  • 随机选择交互点和gripper方向

  • 启发式的方法,获得不同任务下的gt物体姿态并设计一组规则。例如拾取任务,设定两个contact point在物体的左侧和右侧的顶部边,并给定拾取方向及与拾取方向相同的两个gripper方向。

  • M-Where2Act:双gripper的Where2Act方法。Where2Act仅考虑了单gripper,通过修改Where2Act中的模块来将双grippers考虑为结合的整体,并给其分配任务 l l l

  • Ours w/o CA:消融版本,移除了Collaborative Adaptation Procedure。

在这里插入图片描述

图5展示了由 A 1 A_1 A1 A 2 A_2 A2预测的两个Affordance网络,以及和高概率点交互的grippers。可以看出:① Affordance maps合理突出了哪些地方可以交互(如拾取,grippers刻印仅抓取顶部的边缘);② affordance map体现两个grippers之间的合作(如,协作式推动显示屏,两个affordance maps顺序的highlight了左边和右边一般的位置,所以可以稳固的推动显示屏)。除此以外,可以观察到对未见过类别的泛化性。

在这里插入图片描述

图6中,可视化了Critic网络 C 1 C_1 C1 C 2 C_2 C2的结果。给定不同的gripper方向,Critic网络在整个点云上提出逐点的动作分数。可以观察到网络是几何、gripper方向和任务感知的。如,对于旋转训练模块,第一个map高亮了椅子表面的一部分因为第一个gripper是向下的,第二个map根据第二个gripper的方向,高亮了另外一边后面的椅背部分,协作式地确保了椅子能顺时针旋转。值得注意的事第一个map中椅子表面相比扶手有更高的分数,因为选择手臂作为旋转支点时椅子往往会打滑。

在这里插入图片描述

图7(a)展示了Proposal网络 P 1 P_1 P1 P 2 P_2 P2提出的多个协作活动。网络可以在同一个点提出不同的交互建议。

对于启发式的baseline,它获得了较高的数值因为它基于GT的物体姿态和方向来提出动作。然而,类别内核类别外的物体几何是不一样的,没办法为所有的shape手动设计规则。真实世界中,这种需要GT信息的方法需要耗费大量的精力。

对于M-Where2Act,其联合学习了两个contact points和两个方向,有较差的表现。相比之下,文章的方法解耦了这种联合的学习问题,减少了复杂性。此外,M-Where2Act花费了几乎双倍的时间来提出proposals,因为需它需要再 n n n个点中查询 n ∗ n n*n nn中结合。

对于Ours w/o CA,展示了Collaborative Adaptation procedure能够帮助提升表现。图7(c)展示了用和不用Collaborative Adaptation过程的结果。用了之后affordance map被精细化了。例如,对于推动显示屏,affordance score在底部的affordance score更低了,因为它很难进行交互;对于协作拾取水桶的问题,在第二张affordance map中,左前方的表面分数更低,右侧仍保持相对较高。

在这里插入图片描述

表2展示了两种采样方法的成功率,RL方法显著改善了数据搜集的效率。

在这里插入图片描述

图1和图7(b)展示了将文章方法迁移到真实世界数据上的定量结果。

7. 结论

文章学习了一个合作操作的affordance用于多样化3D物体的双gripper操作。

8. slide参考

在这里插入图片描述

  • 26
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值