对RLAfford:End-to-End Affordance Learning for Robotic Manipulation的简单理解
1. 为什么要做这件事
在交互环境中学习如何操纵3D物体是RL中的挑战性问题。很难去训练出一个能够泛化到具有不同语义类别、不同几何形状和不同功能物体上的策略。
Visual Affordance提供了以物体为中心的信息先验,包含有高效的运动语义信息(指示了交互位置和交互策略)。可以训练知道通过如何对把手施加力量来打开一扇门。
但Affordance通常需要人类定义的动作愿意,限制了其应用范围。
2. 做了一件什么事
通过在强化学习过程中产生的contact信息来预测一张contact map(接触图),从而利用这种Visual Affordance
这种contact信息的预测使得端到端的Affordance学习框架可以泛化到不同的操纵任务上。令人惊讶的是,框架的高效性甚至可以处理多阶段和多智能体场景下的任务。
3. 介绍
从一篇开始不打算把介绍写的太详细了,浪费时间,影响阅读速度,但是会概括一些个人觉得有用的信息。
端到端的学习方法可以探索未来智能机器人的边界。(没想明白这句话的原因,因为不是很了解强化学习)
现有的用于操纵的affordance方法都由两个阶段组成,首先是训练affordance map,并基于学到的affordance来提出动作序列,交互成功率与学习到的affordance的精准度高度相关。Affordance预测的偏差将会严重影响任务表现。
在这篇文章中,利用contact频率来表示affordance,开发了一种端到端的学习affordance的方式。affordance不再和特定的原子动作(如推、拉等)联结,而是将强化学习过往的操作接触信息作为经验。同时利用Visual Affordance,鼓励强化学习智能体专注于那些具有较高接触分数的点,帮助Affordance和操纵策略彼此adapt,从而产生更鲁棒的Affordance表达。
使用contact信息作为Affordance显著支持了多阶段任务,如拿起物体,并将其放置到合适的位置;以及多智能体任务,如使用两个机械臂来推动椅子。通过将所有的交互统一成"contact",文章的方法可以高效表示A2O(agent-to-object)和O2O(object-to-object)交互,但对于其他任务来说是很难的。(没读懂,不清楚A2O交互和O2O交互是一些什么任务,但是总的来说,应该是将所有的交互都统一理解为concat信息,不再按照操作原语进行区分)。
4. 相关工作
4.1 机器人操纵策略学习
对于铰接物体的操纵,有很多方法从不同的角度使用不同的方法来尝试解决这个问题。例如,UMPNet和VAT-Mart利用视觉信息来直接提出动作序列,其他还有一些方法通过模型预测实现鲁棒和可适应的控制。多阶段和多智能体的操纵设定对于现在的方法来说仍然是十分具有挑战性的。
4.2 Visual Affordance学习
Affordance中的语义信息对于操纵来说具有很重要的意义。
如Where2Act、VAT-Mart、AdaAfford、VAPO,都分成两个训练阶段。第一个阶段用于搜集交互数据来预训练Affordance,接着基于Affordance训练策略。还有一些其他的方法同时训练Affordance和policy,然而,他们的学习依赖于人类的演示。
该文工作不同于以上方法,不需要为不同原子动作/任务搜集数据,也不需要任何的人类注释。
4.3 Related Work的比较
在开门任务中,Maniskill(Maniskill: Generalizable manipulation skill benchmark with
large-scale demonstrations)利用人类动作进行模仿学习,然而人类动作需要从人类中搜集,因此是比较困难的。
在Where2Act、VAT-Mart、VAPO不是以端到端的方式学习的。它们将输出的gripper pose作为动作,但是在现实中并不能够保证gripper能够接触到这个位置。大部分的这些工作都是为单阶段、单智能体任务进行设计的,比如打开门、抓起物体,但是并不能适用于多阶段或多智能体任务。文章中使用contact信息作为affordance使得强化学习策略可以handle多阶段的任务和多智能体的任务。
一个简单的对比表如下,其中:
-
No Demo指的是不需要人类示范
-
No Full Obs指的是不需要观察物体的状态,比如门把手的位置等,因为现实世界中很难获得这种准确的状态
-
End-to-End指的是同时训练,不需要分阶段训练,W2A和VAT那种先搜集数据,后训练,再联合训练就属于分阶段
-
Multi-Stage:支持那种分阶段的任务,比如拿起物体,放到指定位置,这个多阶段指的不是生成的策略是一个轨迹,指的是可以handle那种不同类型的两个任务(拿东西,放下)
-
Multi-Agent:是否支持多智能体
5. 方法
5.1 方法概览
基于视觉的强化学习方法在机器人操纵任务中逐渐表现出其价值,尤其是对那些需要智能体使用一种策略来操纵不同物体的任务。同时很多工作都意识到从点云或图像等高维输入中学习视觉编码的困难性。在该工作的框架中,通过"接触预测"来探索隐藏的信息。
在操纵任务下,contact是人类与物体交互的基础方式。交互中的物理接触点反映了对于物体关键语义信息的理解。
如下图所示,提出了一种端到端的强化学习框架用于3D铰接物体操纵。
整个网络由两个部分组成:1) Manipulation Module是一个强化学习模块,使用Contact Predictor预测的Affordance map作为额外的视觉观察,并根据Contact Predictor的输出设定奖励信号;2) Visual Affordance Module是一个预测逐点评分的网络,使用MA中搜集的contact位置作为Synamic Ground Truth来指示交互的位置,并让Contact Predictor去拟合。
每t个时间步中,MA将会输出基于机械臂状态 s t s_t st(关节角度和角速度)的动作 a t a_t at,以及VA模块预测的affordance map M t M_t Mt。在每个时间步 t t t,强化学习中的接触点位置将会被插入到Contact Buffer中。在每k个时间步后,聚集CB中的数据以生成逐点分数来作为DGT以更新VA模块。
5.2 Visual Affordance模块:以Contact作为先验
在机器人操纵过程中,物理contact很自然的在智能体和物体之间发生。这种"contact"不依赖于任何人类预定义的原子动作,如推或拉,contact位置是一个通用的表达,用于提供操纵的视觉先验。
MA的RL训练管线持续与环境交互,并搜集:1) 部分观察的点云 P P P,2) 物体坐标系下的接触点位置。基于这些信息,可以衡量A2O和O2O之间是如何接触的,并通过这些信息衡量每个点的contact frequency作为Affordance。VA模块尝试去学习这些预测的per-point frequency。VA训练细节如下:
Input :部分观察的点云 P P P。
Output :Affordance map M M M,预测了逐点的接触概率,这张图包括了A2O Affordance和O2O Affordance。
网络结构 :使用PointNet++从点云观察 P P P中提取逐点特征 f ∈ R 128 f∈\R^{128} f∈R128,特征送入到Contact Predictor中预测逐点actionable affordance。
Dynamic Ground Truth :使用Contact Buffer CB作为MA模块和VA模块连接的点,CB中始终保持有 l l l哥历史contact points,用于计算DGT。训练集中的每一个物体都持有一个CB,它记录了物体的交互位置。为了保持buffer size,记录满时插入新记录,就随机踢掉一个历史交互记录。为了给CP提供训练GT,通过计算物体点云上每个点接触位置半径 r r r内的接触数作为DGT,并应用归一化获得Dynamic Ground Truth DGT。归一化过程如下:
D G T t i ( p ) = ∑ q ∈ C B t i I ( ∣ p − q ∣ 2 < r ) max p ′ ∑ q ∈ C B t i I ( ∣ p − q ∣ 2 < r ) + ϵ DGT^i_t(p)=\frac{\sum_{q∈CB^i_t}I(|p-q|2<r)}{\max{p'}\sum_{q∈CB^i_t}I(|p-q|_2<r)+\epsilon} DGTti(p)=maxp′∑q∈CBtiI(∣p−q∣2<r)+ϵ∑q∈CBtiI(∣p−q∣2<r)
其中 D G T t i DGT^i_t DGTti表示物体 i i i在时间步 t t t的Dynamic Ground Truth, C B t i CB^i_t CBti是对应的Contact Buffer。
训练 :使用 D G T t i DGT^i_t DGTti更新 C P CP CP:
C P t ∗ = arg min C P ∑ i s r t i ∣ ∣ ∑ p ∈ P i C P ( p ∣ P i ) − D G T t i ( p ) ∣ ∣ 2 CP^*t=\argmin{CP}\sum_i{sr^i_t}||\sum_{p∈P^i}CP(p|P^i)-DGT^i_t(p)||_2 CPt∗=argminCP∑isrti∣∣∑p∈PiCP(p∣Pi)−DGTti(p)∣∣2
s r t i sr^i_t srti是在物体 i i i上的当前操纵成功率。 P i P^i Pi是第 i i i个物体, C P t ∗ CP^*_t CPt∗是优化后的 C P CP CP。
5.3 Manipulation Module:以Affordance为引导
MA模块是一个强化学习框架,能够从头开始学习如何去操纵物体。该MA模块不同于以往的方法,充分利用了VA模块生成的观察和奖励。
Input :1) 实时点云 P P P;2) VA模块生成的Affordance map;3) 机械臂的状态 s s s, 状态 s s s由位置,机械臂每个关节的位置、速率、角度组成;4) 基于状态的Max-affordance Point Observation (MPO),指示点云 P P P上具有最大affordance分数的点。
Output :动作 a a a,接着机械臂将执行这个动作。在该工作的设定下,RL策略直接控制者机械臂的每个关节。
来自Affordance的奖励:将Max-Affordance Point Reward引入pipeline中,VA模块预测出来的点云上具有最大affordance score的点被选择作为MA模块的引导。根据机器人末端夹持器和这个选定点之间的距离作为强化学习过程中的额外奖励。这有助于强化学习改进整体的表现。
网络结构 :MA模块网络 π θ \pi_\theta πθ具有可学习参数 θ \theta θ。网络由PointNet和MLP组成。前者用于提取点云 P P P、Affordance map M M M和额外的mask m m m,得到特征 f ∈ R 128 f∈\R^{128} f∈R128。提取出的特征连接机械臂状态 s s s一起送入到MLP中获得动作。
训练 :使用PPO算法训练MA模块,在模拟器中部署 k k k个物体,每个物体重复 n n n次,并给定1个机械臂。因此总共有 k × n k×n k×n个环境,每一个环境下有1个机械臂(多智能体任务下是2个机械臂),如下图。
6. 实验
第一行:Affordance maps在端到端训练过程中的改变,以及最后的affordance map例子
第二行:真实世界实验
7. 总结
这是第一篇提出用于机器人操纵任务的端到端Affordance强化学习框架。Affordance可以通过提供额外的观察和奖励信号来改进强化训练的策略学习。
目前理解的缺点:一个模型只能handle一个任务,如开/关门、打开/关闭抽屉,但是这是可以处理多阶段任务的,比如Pick and Place任务,但是暂时没注意它训练的方法啥的。