论文全称:AdaAfford: Learning to Adapt Manipulation Affordance for 3D Articulated Objects via Few-shot Interactions
文章目录
1. 为什么做这件事 & 做了件什么事
与如橱柜、门、水龙头等三维铰接物体进行感知和交互,对于在人类生存环境工作的家庭助手型机器人执行日常工作是十分重要的,同时也是十分具有挑战性的。目前大部分的工作都是解析铰接部件和关节参数,最近,研究者更多地致力于学习操纵affordance,而不是对输入的几何进行学习,因为affordance更具备任务感知的属性,在几何上更加细粒度。但仅使用被动观察作为输入,会忽视一些关键的运动学限制(如关节位置和限制)和动态因素(关节的摩擦和恢复),因此导致在一些测试案例中失去了精准性。
在本篇论文中,提出了一种叫做AdaAfford的框架,只需在测试时候进行少量的交互,就能够根据affordance先验实现快速适应,从而获得更加准确的、实例级别的后验。
2. 介绍
铰接物体如橱柜、门、水龙头是我们日常生活中智能体能够交互的一类非常有趣的3D shapes,因为与这一类物体的交互会触发目标物体的重要状态改变(如,关闭橱柜的抽屉,旋转把手并拉开门,通过旋转开关来打开/关闭水龙头)。机器人需要理解这种复杂的语义并操纵自由度比刚醒物体更高的铰接部件,就会带来一个非常重要且具有挑战性的任务——感知3D铰接物体并与其交互。
研究者们对感知与交互3D铰接物体方面有一部分的研究工作。主要包括铰接部件的分割、铰接物体的追踪、铰接参数的估计、让机器人系统执行复杂的规划并操控3D铰接物体。
最近,研究者们提出学习更加task-aware和几何细粒度的操纵affordance。Where2Act是最贴合的一篇工作,如上图(b)中所示,Where2Act学习了如何标记输入的铰接物体部件点云中的操纵信息以获得affordance热力图,其采用的方法是在物理模拟环境中进行试错交互。同时也有其他工作将这种密集affordance应用于3D场景和刚性部件上。这种在3D信息上dense affordance label的预测提供了更加细粒度的可操纵性信息,并且可以在不同给定的运动下进行一些任务,进一步搭建了机器人操纵不同任务中大规模3D数据任务中感知和交互的桥梁。
仅考虑单帧的3D shape观察容易导致漏掉了对一些隐藏但关键的运动学货动态因素的捕捉,从而导致affordance热力图的不准确性,如上图b所示。在图1的第一行,当橱柜门完全关闭的时候,橱柜门的轴究竟是在左边还是在右边大大影响着affordance的预测。其他的不确定性还包括运动学不确定性如关节限制(一扇门究竟是推还是拉才能打开?)和类型(究竟是通过滑动还是旋转来打开一扇门?)。同时,许多动态和物理参数(如部件质量,关节摩擦)都是无法从单帧输入中观察到、却又极大程度上影响affordance的因素。在图1的第二行,随着橱柜抽屉摩擦系数的增长,机器人是能够推动内板的。
在这篇论文中,提出了AdaAfford,在测试时使用较少的交互来减少运动学或动态属性的不确定性,同时根据affordance先验来进行预测,并快速适应以产生给定测试形状的后验。AdaAfford只对较少的不确定或感兴趣的位置进行交互,如图1(b)的gripper所示,根据当前affordance的预测和过去交互的尝试(以Where2Act的affordance先验和0次交互历史作为开始)来得到最终的affordance。交互的输出包括交互位置、方向、部件运动结果,都被通过fast-adaptation mechanism观察和组合到后验的affordance预测中,如图1©所示。
本文的贡献为:
-
找到了当前dense affordance heatmap的缺陷:对隐藏的运动结构和动态因素不确定性未给予考虑;
-
提出了AdaAfford,通过少量的测试交互来减少这些不确定性,并将交互经验快速集成以产生affordance后验结果;
-
在PartNet-Mobility数据集和SAPIEN环境中进行实验,结果证明了所提出方法的有效性和高效性
3. 相关工作
3D shapes中的视觉affordance
Affordance给出了交互对象的建议交互方式。过去的许多工作都致力于机器人交互中抓取和操纵的学习。在这些工作中,研究者们提出不同的视觉affordance表达,包括探测位置、部件、特征点、热力图等。在本篇论文中,主要是学习操纵3D胶结物体的affordance热力图。与之前被动地从静态视觉观察中获取智能体-对象的视觉affordance方法不同,文章的框架利用动态交互来高效确定在静态观察中不确定的运动学结构和动态因素,进而学习精确的实例级的视觉affordance。
通过少量交互的快速适应
有很多研究探索了通过少量交互进行快速适应的研究方法。过去的工作还设计了交互感知方法来算出物体的质量、动态参数。与这些使用通用算法进行策略适应和计算刚醒物体显式参数的方法不同,该篇文章将注意力聚焦于学习视觉affordance热力图,用于进一步操作提出的交互建议,并进行交互适应性affordance的预测。
4. 问题定义
给定一个铰接物体单帧3D部分点云 O ∈ R N × 3 O∈\mathbb{R}^{N×3} O∈RN×3观察,Where2Act直接输出逐点可操纵性的affordance热力图 A ∈ [ 0 , 1 ] N A∈[0,1]^N A∈[0,1]N,越高的分数表示其越能够完成给定短期交互。另外,还给出了在每个点 p ∈ O p∈O p∈O的一组gripper建议交互方向 { R 1 p , R 2 p , . . . ∣ R i p ∈ S O ( 3 ) } \{R^p_1,R^p_2,...|R^p_i∈SO(3)\} {R1p,R2p,...∣Rip∈SO(3)},同时每个交互都有一个成功性分数 s i p ∈ [ 0 , 1 ] s^p_i∈[0,1] sip∈[0,1]。在Where2Act这篇文章中,测试的时候没有任何的交互行为,所有shape共享一组系统动态参数。
文章follow Where2Act的设定,同时随机变换系统动态参数,并允许在测试时候对3D shape进行一定的交互来减少运动学结构和动态参数的不确定性。AdaAfford系统提出了一组交互序列 I = { I 1 , I 2 , . . . } I=\{I_1,I_2,...\} I={I1,I2,...},每个交互 I i = ( O i , p i , R i , m i ) I_i=(O_i,p_i,R_i,m_i) Ii=(Oi,pi,Ri,mi),其中交互点 p i ∈ O i p_i∈O_i pi∈Oi,gripper方向 R i ∈ S O ( 3 ) R_i∈SO(3) Ri∈SO(3),观察到的部件运动为 m i m_i mi。从输入的shape观察 O 1 ← O O_1←O O1←O,每一个 m i ≠ 0 m_i≠0 mi=0的交互 I i I_i Ii改变部件状态并为下一次交互产生新的shape点云 O i + 1 ≠ O i O_{i+1}≠O_i Oi+1=Oi。利用交互观察 I I I,我们的系统适应性地将Where2Act产生的操纵affordance A A A调整为后验 A I ∈ [ 0 , 1 ] N A_I∈[0,1]^N AI∈[0,1]N,这个后验进一步减少了不确定性并提供了更精确的实例级的预测。对于每一个gripper方向 R i R_i Ri,进一步根据测试时的交互更新成功概率分数 s i , I p ∈ [ 0 , 1 ] s^p_{i,I}∈[0,1] si,Ip∈[0,1]。
5. 方法
我们提出的AdaAfford框架由Adaptive Interaction Proposal(AIP)和Adaptive Affordance Prediction(AAP)两个模块组成。AIP模块学习贪婪切有效的序列策略,提出用于测试的交互 I = { I 1 , I 2 , . . . } I=\{I_1,I_2,...\} I={I1,I2,...};AAP模块被训练来将Where2Act的先验 A A A调整为观察了采样交互 I I I后的后验 A I A_I AI。两个模块在测试时候循环执行,以产生一系列的交互 I I I,得到最后的affordance后验预测 A I A_I AI。在训练的时候,我们迭代轮换地训练两个模块直到收敛。
接下来将依次介绍:测试推理过程的简述,输入编码器的backbone,两个模块的细节架构和系统设计,训练损失和策略。
5.1 测试推理过程的简述
在测试时应用递归结构。从没进行过任何交互的affordance预测 A A A开始,AIP模块提出第一个动作以产生交互数据 I 1 I_1 I1。
接着,在每一个时间步 t = 1 , 2 , . . . t=1,2,... t=1,2,...,当前状态集合 I t = { I 1 , . . . , I t } I_t=\{I_1,...,I_t\} It={I1,...,It}作为AAP模块的输入并提取隐藏的信息 z I t ∈ R 128 z_{I_t}∈\mathbb{R}^{128} zIt∈R128用于调整affordance map预测以得到 A I t A_{I_t} AIt。
AIP模块接着以 z I t z_{I_t} zIt作为输入并提出新一步的动作 u t + 1 = ( p t + 1 , R t + 1 ) u_{t+1}=(p_{t+1},R_{t+1}) ut+1=(pt+1,Rt+1),由下一次交互的交互点 p t + 1 p_{t+1} pt+1和gripper方向 R t + 1 R_{t+1} Rt+1组成。再次在环境中执行这个动作,获得下一步的交互数据 I t + 1 = ( O t + 1 , p t + 1 , R t + 1 , m t + 1 ) I_{t+1}=(O_{t+1},p_{t+1},R_{t+1},m_{t+1}) It+1=(Ot+1,pt+1,Rt+1,mt+1),并将这个交互数据加入到交互集合中: I t + 1 ← I t ∪ { I t + 1 } I_{t+1}←I_t∪\{I_{t+1}\} It+1←It∪{It+1}。
上述过程不断迭代,直到达到交互预期或AIP模块决定停止。最终停止在时间步 T T T,输出最后的affordance后验 A I = A I T A_I=A_{I_T} AI=AIT。
5.2 输入编码器
输入编码器用于将输入编码成具体地特征,以下介绍的两个模块中的编码器都使用相同的输入实体,因此共享相同的网络结构。使用PointNet++将输入点云 O ∈ R N × 3 O∈\mathbb{R}^{N×3} O∈RN×3编码成逐点特征图 f O ∈ R N × 128 f_O∈\mathbb{R}^{N×128} fO∈RN×128。使用MLP来将其他的向量输入(如交互动作 u u u和部件运动 m m m)编码为 f a ∈ R 128 f_a∈R^{128} fa∈R128。下面章节中网络受限会将输入编码为 f O f_O fO和 f a f_a fa,接着将它们连接成 f I ∈ R 256 f_I∈R^{256} fI∈R256。不同模块之间编码器权重不共享。(这一段主要是在介绍文章中的编码器结构,以及对于输入的一些预处理)
5.3 AAP
AAP模块的输入是few-shot的交互 I I I,预测affordance后验 A I A_I AI。该模块又由三个子网络组成:
-
一个适应性信息编码器 ϵ A A P \epsilon_{AAP} ϵAAP,用于提取一组交互 I I I中的隐藏信息 z ∈ R 128 z∈\mathbb{R}^{128} z∈R128;
-
一个适应性affordance网络 D A A P D_{AAP} DAAP,以隐藏信息 z z z为条件预测后验affordance热力图 A I A_I AI;
-
一个适应性批判网络 C A A P C_{AAP} CAAP,基于隐藏信息 z z z预测动作 u u u的AAP动作分数 s u ∣ z A A P ∈ [ 0 , 1 ] s^{AAP}_{u|z}∈[0,1] su∣zAAP∈[0,1],这里动作被表示为 u = ( p , R ) u=(p,R) u=(p,R),其中包括交互点 p ∈ O p∈O p∈O,以及gripper方向 R ∈ S O ( 3 ) R∈SO(3) R∈SO(3)
适应性信息编码器 ϵ A A P \epsilon_{AAP} ϵAAP。给定一组交互 I = { I 1 , I 2 , . . . } I=\{I_1,I_2,...\} I={I1,I2,...}作为输入, ϵ A A P \epsilon_{AAP} ϵAAP输出一个128维的隐藏信息表示 z I z_I zI。它首先将每一个交互 I i I_i Ii使用上面提到的输入编码器进行编码,接着使用MLP网络来编码成 z I i z_{I_i} zIi。由于不同的交互有不同数量的隐藏信息,这里使用另一个MLP网络来预测每一个交互的一个注意力分数 w I i ∈ R w_{I_i}∈R wIi∈R。为了获得一组交互的所有隐藏信息,这里根据注意力分数简单地加权平均了所有 z I i z_{I_i} zIi,并使用这个加权平均的结果作为 z I z_I zI。公式上,有: z I ← ( ∑ i z I i × w I i ) / ( ∑ i w I i ) z_I←(\sum_iz_{I_i}×w_{I_i})/(\sum_iw_{I_i}) zI←(∑izIi×wIi)/(∑iwIi)。这里实际上就是使这个适应性编码器对每一个交互做信息提取,然后再用一个网络预测一下每个交互的注意力分数,使用这个预测分数将交互信息做一个加权求和。
适应性批判网络 C A A P C_{AAP} CAAP。给定部分点云 O O O,任意交互点 p ∈ O p∈O p∈O,任意的gripper方向 R ∈ S O ( 3 ) R∈SO(3) R∈SO(3)和latent code z z z,网络预测AAP动作分数 s u ∣ z A A P ∈ [ 0 , 1 ] s^{AAP}_{u|z}∈[0,1] su∣zAAP∈[0,1]表示在给定交互信息 z z z的情况下,交互动作 u u u成功的概率分数。这里首先使用输入编码器编码输入 { O , P , R } \{O,P,R\} {O,P,R},将编码后的特征和 z z z连接作为输入,用MLP网络预测AAP动作分数 s u ∣ z A A P s^{AAP}_{u|z} su∣zAAP。对于动作 u u u,高的AAP动作分数指示动作 u u u具有更高的几率能够完成给定的操纵任务。
适应性affordance网络 D A A P D_{AAP} DAAP。给定部分点云 O O O,任意交互点 p ∈ O p∈O p∈O,以及交互信息 z z z,适应性affordance网络预测在点 p p p上的运动能力分数 a p ∣ z A A P ∈ [ 0 , 1 ] a^{AAP}_{p|z}∈[0,1] ap∣zAAP∈[0,1]。首先使用之前提到的输入编码器编码输入 { O , p } \{O,p\} {O,p},接着使用一个MLP网络,将编码好的信息和 z z z共同作为输入,进一步产生运动能力分数 a p ∣ z A A P a^{AAP}_{p|z} ap∣zAAP。高的运动能力分数表示在点 p p p处进行交互有更高的成功概率。
5.4 AIP
AIP模块根据从当前时间步中交互观察 I I I中提取出的特征 z z z,预测用于下一步交互的action u t + 1 = ( p t + 1 , R t + 1 ) u_{t+1}=(p_{t+1},R_{t+1}) ut+1=(pt+1,Rt+1)。这个模块由两个部分组成:
-
适应性交互策略Affordance网络 D A I P D_{AIP} DAIP,用于预测AIP运动能力分数 a p ∣ z A I P ∈ R a^{AIP}_{p|z}∈\R ap∣zAIP∈R,这个运动能力分数指示下一步与点 p p p交互的价值。
-
适应性交互Proposal批判网络 C A I P C_{AIP} CAIP,预测一个AIP动作分数 s u ∣ z A I P s^{AIP}_{u|z} su∣zAIP,为下一步交互的gripper选择一个方向。利用两个网络预测的结果提出下一步交互动作 u t + 1 = ( p t + 1 , R t + 1 ) u_{t+1}=(p_{t+1},R_{t+1}) ut+1=(pt+1,Rt+1)。
适应性交互Proposal批判网络 C A I P C_{AIP} CAIP。输入包括部分点云 O O O,任意交互点 p ∈ O p∈O p∈O,任意的gripper方向 R ∈ S O ( 3 ) R∈SO(3) R∈SO(3),latent code z z z,由 C A A P C_{AAP} CAAP产生的AAP动作分数 s u ∣ z A A P s^{AAP}_{u|z} su∣zAAP;输出是对于动作 u u u的动作分数 s u ∣ z A I P ∈ R s^{AIP}_{u|z}∈\R su∣zAIP∈R。首先使用输入编码器编码输入 { O , p , R , s u ∣ z A A P } \{O,p,R,s^{AAP}_{u|z}\} {O,p,R,su∣zAAP},接着将这些特征和 z z z连接,形成完整的输入,然后产生输出。高的AIP动作分数表明动作 u u u可能能够查询更多未知的感兴趣的隐藏信息,在下一步值得使用这个动作来探索。
适应性交互策略Affordance网络 D A I P D_{AIP} DAIP。输入包括部分点云 O O O,任意交互点 p ∈ O p∈O p∈O,latent code z z z,由 D A A P D_{AAP} DAAP在点 p p p处的AAP运动能力分数 a p ∣ z A A P a^{AAP}_{p|z} ap∣zAAP;网络预测在点 p p p的运动能力分数 a p ∣ z A I P a^{AIP}_{p|z} ap∣zAIP。首先使用输入编码器编码输入 { O , p , a p ∣ z A A P } \{O,p,a^{AAP}_{p|z}\} {O,p,ap∣zAAP},接着将这些特征和z连接,形成完整的输入,然后产生输出。高的AIP运动能力分数表明在 p p p点处有更多未知但有帮助的信息(帮助我们知道这个点是否能够进行交互)
下一步交互动作的Proposal。为了提出下一步交互的动作 u t + 1 u_{t+1} ut+1,给定部分点云 O O O和隐藏信息 z z z,通过适应性交互策略Affordance网络来选择具有最高AIP运动能力分数的点 p t + 1 ← p ∗ p_{t+1}←p* pt+1←p∗。接着,用Where2Act中预训练好的动作Proposal网络来生成在点 p p p上的100个随机的动作 { u 1 , u 2 , . . . , u 100 } \{u_1,u_2,...,u_{100}\} {u1,u2,...,u100},使用AIP批判网络来生成每个动作的评分 s u ∣ z A I P s^{AIP}_{u|z} su∣zAIP,然后选择具有最高AIP动作分数的动作 u t + 1 ← u ∗ u_{t+1}←u* ut+1←u∗。
Few-shot交互的停止准则。达到预设条件停止,或者AIP运动能力分数(对于每个点值得探索的打分)低于设定的阈值(如0.05)停止。
5.5 训练与损失
简洁地说,对于AAP模块,使用真实的运动 m m m来监督 ϵ A A P \epsilon_{AAP} ϵAAP(这个模块用于集成每一步操作的隐含信息)和 C A A P C_{AAP} CAAP(用于评判动作 u u u能否很好地完成给定的任务->或许是挖掘给定信息的任务?),利用 C A A P C_{AAP} CAAP来监督 D A A P D_{AAP} DAAP(生成运动能力分数,也就是affordance)的训练。对于AIP模块,使用AAP模块来监督 C A I P C_{AIP} CAIP(评判动作u是否能够很好地查询感兴趣的信息)和 D A I P D_{AIP} DAIP(计算每一个点蕴含的信息量)的训练。
AAP运动评分损失。对于 C A A P C_{AAP} CAAP,使用标准的二分类交叉熵损失进行监督,这个损失测量 C A A P C_{AAP} CAAP的预测结果和交互 I I I引起的目标部件的 G T GT GT运动。对于给定的隐藏信息 z z z,一组交互观察 I = { I 1 , I 2 , . . . , I B } I=\{I_1,I_2,...,I_B\} I={I1,I2,...,IB}中 I i = { O i , u i , m i } I_i=\{O_i,u_i,m_i\} Ii={Oi,ui,mi},对于每一个交互 I i I_i Ii, C A A P C_{AAP} CAAP预测每一个交互 I i I_i Ii的分数,损失定义为:
L C A A P = − 1 B ∑ i r i l o g ( s u i ∣ z A A P ) + ( 1 − r i ) l o g ( 1 − s u i ∣ z A A P ) L_C^{AAP}=-\frac1B\sum_ir_ilog(s^{AAP}_{u_i|z})+(1-r_i)log(1-s^{AAP}_{u_i|z}) LCAAP=−B1∑irilog(sui∣zAAP)+(1−ri)log(1−sui∣zAAP),如果 m i > τ m_i>\tau mi>τ(例, τ = 0.01 \tau=0.01 τ=0.01)则 r i = 1 r_i=1 ri=1,否则 r i = 0 r_i=0 ri=0。对于每一个交互的输出实现了二进制离散。
AAP运动能力分数损失。为了训练 D A A P D_{AAP} DAAP,使用L1 loss来衡量预测分数 a p ∣ z A A P a^{AAP}_{p|z} ap∣zAAP和GT之间的差异。为了估计点 p p p的GT运动能力分数,这里首先使用预训练的Where2Act中的Action Proposal模块采样在点 p p p上的100个动作,并使用 C A A P C_{AAP} CAAP来对这些动作进行打分,取top-5分数的均值作为GT运动能力分数。
AIP运动评分Loss。
AIP运动能力评分Loss。
训练策略。迭代训练AAP模块和AIP模块,直到共同收敛。具体地说,AAP模块中 C A A P C_{AAP} CAAP和 D A A P D_{AAP} DAAP子网络的更新可能会影响到AIP的GT动作分数,同时AIP模块中的 C A I P C_{AIP} CAIP和 D A I P D_{AIP} DAIP的改变可能会改变用于生成AAP模块中 z z z的交互。首先使用随机采样的交互来训练AAP模块,接着训练AIP模块去学习更高效的proposals。有了AIP模块训练的子网络,使用提出的few-shot交互来微调AAP模块,迭代训练直到模块收敛。
5.6 对第5章内容的个人小结
感觉读下来第五章的内容我很混乱,所以对每个模块的释义、输出表示,loss重新进行了思考,并简单做了一些图进行总结。首先先看画有虚线框的部分,再去从右侧读loss,最后读左下角的loss。感觉完成了这张图理解这篇文章差不多八九不离十了。实际上AIP模块就是衡量交互价值的,从而生成一些更有意义的交互;而AAP就是为了在Where2Act的基础上进一步补足Affordance map而进一步设计的网络。
6. 实验
6.1 Baseline和评估指标
Baseline:
-
Where2Act:单纯使用视觉信息预测actionable information
-
Where2Act-interaction:使用四个额外的交互观察进行增强,对于交互的位置使用FPS最远点采样进行取样,额外训练一个类似于Adaptive Information Encoder(在文中用于提取Interaction特征)来提取额外的输入特征
-
Where2Act-adaptation:使用启发式的方法进行增强,以替代AAP模块,局部地调整相似点的预测
-
Ours-random:使用随机采样的交互策略来替代AIP proposals
-
Ours-fps:使用FPS最远点采样来预测交互的affordance以替代AIP模块
与Where2Act比较来展示少量交互能够移除一些歧义,改进affordance的质量;与Where2Act-interation比较可以证明文章的网络学习了更具智慧、选择了更高效的交互方法,由于FPS本身会采样那些不确定性稀疏的位置,作为一个基线解;Where2Act-adaptation帮助证明AAP模块的高效性;Ours-random和Ours-fps证明AIP模块的有效性;
同时还有一个方法的消融版本验证iterative training的重要性:
- Ours w/o iter:消融版本,使用非迭代训练过程来训练整个框架
评估指标:
-
F-score for Adaptive Critic Network C A A P C_{AAP} CAAP
-
Sample-Successful Rate to evaluate C A A P C_{AAP} CAAP和 D A A P D_{AAP} DAAP
后面这个成功率的计算如下:
测试阶段提取 I I I的隐藏信息 z z z作为 C A A P C_{AAP} CAAP和 D A A P D_{AAP} DAAP的条件。在这一步从top-100 运动能力分数 a p ∣ z A A P a_{p|z}^{AAP} ap∣zAAP中随机选择一个点,接着采样在点 p p p上的100个动作 u i u_i ui,通过 C A A P C_{AAP} CAAP获得这些动作的评分 s u i ∣ z A A P s^{AAP}_{u_i|z} sui∣zAAP从而选择最高分的动作执行。对每一个测试shape执行10次交互尝试,得到最后的Sample-Succ结果。
6.2 结果与分析
图4可以看出hidden embedding z z z包括有确定的信息。
图5:
在第一行,AIP affordance提出与水龙头的两侧交互,因为对于这两侧所知道的信息较少,在第二步AIP提出与右侧的交互,因为已经知道左边是可以运动的了。
在第三行,第一次交互失败后,AIP理解到远离axis的交互点菜更有可能成功,因为它知道比第一次交互点距离axis更短的距离是不可能成功的。
ablation study证明训练框架的有效性。
可以泛化到真实世界
7. 总结和限制
该工作解决了之前工作使用视觉信息预测affordance时忽略了隐藏的运动结构和运动不确定性的问题。论文额提出的AdaAfford只需要少量的交互进行二义性移除后就可以得到更加精确的affordance热力图。
本工作同样只考虑了两种动作类型,只在铰接物体上做了这些工作,未来的工作可以学习更多的交互和数据类型。同时,在这篇工作中只进行了短期的交互,未来的工作可以致力于将框架拓展到长期的策略中。最后,忽略了机械臂的复杂性,指示简单的flying grippers,未来的工作可以考虑到机械臂的限制。