【计算机图形学】End-to-End Affordance Learning for Robotic Manipulation

对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} fR128,特征送入到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)=maxpqCBtiI(pq2<r)+ϵqCBtiI(pq2<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=argminCPisrti∣∣pPiCP(pPi)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} fR128。提取出的特征连接机械臂状态 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任务,但是暂时没注意它训练的方法啥的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/275976.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

粒子群算法对pi控制器进行参数优化,随时优化pi参数以控制直流无刷电机转速。

粒子群算法对pi控制器进行参数优化&#xff0c;随时优化pi参数以取得设定直流无刷电机转速。 PSO优化PID&#xff0c;用于BLDC速度控制 仿真平台为&#xff1a;MATLAB 采用的是Simulinkm程序相配合 仿真结果以及程序示例&#xff1a;

Armv8状态寄存器

Processor state AArch64没有与ARMv7当前程序状态寄存器直接对应的寄存器(CPSR)。在AArch64中&#xff0c;传统CPSR的组件以字段的形式提供可独立访问。这些统称为处理器状态(PSTATE)。 在AArch64中&#xff0c;通过执行ERET指令从异常中返回&#xff0c;这会导致要拷贝到PSTAT…

IEEE802.11v协议介绍

IEEE802.11v协议简介 协议全称:无线网络管理(Wireless Network Management) 批准日期:2011年2月 协议状态:并入802.11-2012 协议别名:BSS过渡管理 主要功能 支持AP和STA间交换:关于RF环境和拓扑状态的信息,以协助STA进行漫游决策支持STA之间交换:关于RF环境状态的信…

嵌入式单片机学习思路感想分享

今天看到了一个提问,原话如下: 曾经干了8年单片机工程师,对工程师从入门,到入行,再到普通,再到高级,整个路径还算清晰,比如什么阶段,会碰到什么瓶颈,怎么突破,我都经历过。 这个同学,有个典型的问题,就是学得太多且杂了,估计稍微复杂点的项目,做不出来。 现在…

superset连接Apache Spark SQL(hive)过程中的各种报错解决

superset连接数据库官方文档&#xff1a;Installing Database Drivers | Superset 我们用的是Apache Spark SQL&#xff0c;所以首先需要安装下pyhive #命令既下载了pyhive也下载了它所依赖的其他安装包 pip install pyhive#多个命令也可下载 pip install sasl pip install th…

npm yarn 一起使用报错

项目记录&#xff0c;具有独特性&#xff0c;仅供参考 项目好好的运行&#xff0c;前一天装个测试工具包&#xff0c; 突然就不行了&#xff0c;卸载重装也不行&#xff0c;所有的项目都安装失败&#xff0c;新起一个项目也不行&#xff0c;有时候某个单独安装一个包可以&…

回归预测 | Matlab实现GSWOA-KELM混合策略改进的鲸鱼优化算法优化核极限学习机的数据回归预测

回归预测 | Matlab实现GSWOA-KELM混合策略改进的鲸鱼优化算法优化核极限学习机的数据回归预测 目录 回归预测 | Matlab实现GSWOA-KELM混合策略改进的鲸鱼优化算法优化核极限学习机的数据回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 GSWOA-KELM多变量回归预测…

信号处理--卷积残差网络实现单通道脑电的睡眠分期监测

目录 背景 亮点 环境配置 数据 方法 结果 代码获取 参考文献 背景 人类大约花三分之一的时间睡觉&#xff0c;这使得监视睡眠成为幸福感的组成部分。 在本文中&#xff0c;提出了用于端到端睡眠阶段的34层深残留的Convnet架构 亮点 使用深度1D CNN残差架构&#xff0…

微信小程序云开发教程——墨刀原型工具入门(素材面板)

引言 作为一个小白&#xff0c;小北要怎么在短时间内快速学会微信小程序原型设计&#xff1f; “时间紧&#xff0c;任务重”&#xff0c;这意味着学习时必须把握微信小程序原型设计中的重点、难点&#xff0c;而非面面俱到。 要在短时间内理解、掌握一个工具的使用&#xf…

微信小程序购物/超市/餐饮/酒店商城开发搭建过程和需求

1. 商城开发的基本框架 a. 用户界面&#xff08;Frontend&#xff09; 页面设计&#xff1a;包括首页、商品列表、商品详情、购物车、下单界面、用户中心等。交云设计&#xff1a;如何让用户操作更加流畅&#xff0c;包括搜索、筛选、排序等功能的实现。响应式设计&#xff1…

web项目的搭建

使用Webstorm并创建Next.js文件 1、配置nodejs环境、安装webstorm【配置node.js可以使用nvm去管理nodejs的版本】 2、需要破解webstorm&#xff0c;可能会导致原本的idea失效&#xff0c;注册码过期 3、taobao的npm过期&#xff0c;导致npm is sass执行不成功&#xff0c;需…

C++面试题和笔试题(四)

一、intx[6][4],(*p)[4];px;则*(p2)指向哪里&#xff1f; A X[0][1]B X[0][2]C X[1][0]D X[2][0] 官方解释&#xff1a; D int x[6][4], (*p)[4]; p x; 在这里&#xff0c;x 是一个二维数组&#xff0c;它有6行和4列。p 是一个指向具有4个整数的数组的指针。 当你执行…

Let’s Move Sui , 一起来学习吧

Let’s Move Sui是一个全新的交互式学习平台&#xff0c;通过SuiFrens的帮助教您如何在Sui上构建。设计供新手和经验丰富的开发者使用&#xff0c;Let’s Move Sui提供了一次非凡的Sui开发之旅&#xff0c;利用了Move在Sui上的独特之处&#xff0c;从基于对象的数据模型的基础知…

Acer宏碁非凡Swift SFG16-71工厂模式原厂Win11系统,预装OEM系统恢复开箱状态

宏基笔记本电脑SFG16-71原装出厂Windows11系统安装工厂包下载&#xff0c;带恢复重置功能 链接&#xff1a;https://pan.baidu.com/s/1JK02kBbwKG_cIBNlEOzrOw?pwdzdfm 提取码&#xff1a;zdfm 原装工厂包系统自带所有驱动、Office办公软件、出厂时自带主题壁纸图片、系统…

在【IntelliJ IDEA】中配置【Tomcat】【2023版】【中文】【图文详解】

作为一款功能强大的集成开发环境&#xff08;IDE&#xff09;&#xff0c;IntelliJ IDEA为Web服务器提供了卓越的支持&#xff0c;从而极大地简化了程序员在Web开发过程中的工作流程。学习Java Web开发实质上就是掌握如何创造动态Web资源&#xff0c;这些资源在完成开发后&…

Linux - 安装 nacos(详细教程)

目录 一、简介二、安装前准备三、下载与安装四、基本配置五、单机模式 一、简介 官网&#xff1a;https://nacos.io/ GitHub&#xff1a;https://github.com/alibaba/nacos Nacos 是阿里巴巴推出的一个新开源项目&#xff0c;它主要是一个更易于构建云原生应用的动态服务发现…

离线数仓(六)【ODS 层开发】

前言 今天开始正式的数仓搭建&#xff0c;所谓 ODS 层的工作就是把我们各种数据源采集发送来的各种类型的数据&#xff08;Json、tsv类型&#xff09;映射到 Hive 表中&#xff0c;映射时可以进行一些简单的处理&#xff0c;比如简单的数据清洗&#xff0c;舍弃一些没有必要的字…

金三银四!一个年薪160W+的就业方向!

前言 随着越来越多的科技大厂加入鸿蒙生态建设&#xff0c;鸿蒙开发人才正在市场上被争抢。资深工程师开出的年薪高达近百万&#xff0c;架构师更是高至160万&#xff0c;真可谓“鸿蒙猿年薪超百万”。如何抓住新技术红利&#xff0c;尽早上车&#xff1f;你会成为下一个鸿蒙开…

C语言——详解字符函数和字符串函数(一)

Hi,铁子们好呀&#xff01;今天博主来给大家更一篇C语言的字符函数和字符串函数~ 具体讲的内容如下&#xff1a; 文章目录 &#x1f386;1.字符分类函数&#x1f4af;&#x1f4af;⏩1.1 什么是字符分类函数的&#xff1f;&#x1f4af;&#x1f4af;⏩1.2 字符函数的类型有哪…

一文讲懂 C++ 类和对象(1)

0. 面向过程程序设计和面向对象程序设计的区别 面向对象程序设计往往关注的是怎么去做&#xff0c;是将解决问题的步骤分析出来&#xff0c;然后用函数把步骤一步一步实现&#xff0c;然后再依次调用就可以了。而面向对象是将构成问题的事物&#xff0c;分解成若干个对象&…