【计算机图形学】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.mzph.cn/news/745184.shtml

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

相关文章

Jmeter(七) - 从入门到精通 - 建立数据库测试计划实战<MySQL数据库>(详解教程)

1.简介 在实际工作中&#xff0c;我们经常会听到数据库的性能和稳定性等等&#xff0c;这些有时候也需要测试工程师去评估和测试&#xff0c;上一篇文章主要介绍了jmeter连接和创建数据库测试计划的过程,在文中通过示例和代码非常详细地介绍给大家&#xff0c;希望对各位小伙伴…

在 Java 中,如何使用文件保存包含文字和数字的 Swing 表格?

要在Java中使用文件保存包含文字和数字的Swing表格&#xff0c;您可以按照以下步骤进行&#xff1a; 1. 首先&#xff0c;您需要创建一个Swing表格&#xff0c;并向其中添加包含文字和数字的数据。 2. 接下来&#xff0c;您可以使用Java中的文件操作类&#xff08;如FileWrit…

<Senior High School Math>: inequality question

( 1 ) . o m i t (1). omit (1).omit ( 2 ) . ( a 2 − b 2 ) ( x 2 a 2 − y 2 b 2 ) ( x 2 y 2 ) − ( a 2 y 2 b 2 b 2 x 2 a 2 ) ≤ x 2 y 2 − 2 x y ( x − y ) 2 (2). (a^2-b^2)(\frac{x^2}{a^2} - \frac{y^2}{b^2})(x^2y^2)-(\frac{a^2y^2}{b^2}\frac{b^2x^2}{a^…

设置jmeter默认语言为中文

问题描述 通过面板上面的选项修改语言&#xff08;如下图&#xff09;&#xff0c;每次运行程序都需要重新再设置一遍&#xff0c;我需要每次打开都是中文界面 解决方案 进入jmeter的文件目录 bin——> jmeter.properties 打开这个文件 搜索Preferred GUI language在下方添…

微信小程序 uniapp奶茶点单系统r4112

系统功能有&#xff1a;信点单小程序分为小程序部分和后台管理两部分&#xff0c;小程序部分的主要功能包含&#xff1a;用户注册登录&#xff0c;查看商品信息&#xff0c;加入购物车&#xff0c;结算并生成订单&#xff0c;订单管理&#xff0c;资讯管理&#xff0c;个人中心…

hive-批量导出表结构,导入表结构

1、导出hive表结构 datastudio可以连接hive库&#xff0c;通过show databases 语句可以显示hive下建了多少数据库名。 使用use 数据库名&#xff0c;进入某个数据库下&#xff0c;通过show tables可显示该数据库下建了多少张表。 将所有库的表数据整理成库名.表名的形式放入…

2023版IDEA永久破解教程带patch.exe破解程序

2023版IDEA永久破解教程带patch.exe破解程序 第零步&#xff1a;百度云盘获取程序第一步&#xff1a;关闭电脑的病毒和危险防护&#xff08;目的是避免电脑自动清除破解程序&#xff09;1.找到电脑的 病毒和威胁防护2.蓝色按钮表示防护处于开启状态3.关闭成功会展示“实时保护已…

IIOT|QCA9882 vs MT7915: What‘s the difference?

IIOT|QCA9882 vs MT7915: Whats the difference? How to choose? Choosing QCA9882 or MT7915 depends on your specifc needs. lf you need a stable, widely compatible WiFi wireless cardthe QCA9882 is a good choice. lf you need wifi6 solution with DBDC 2.4Ghz 5G…

AI 大模型赋能手机影像,小米14 Ultra 让真实有层次

2月22日&#xff0c;小米龙年第一场重磅发布会&#xff0c;正式发布专业影像旗舰小米14 Ultra。 此前小米发布的两代 Ultra&#xff0c;在不同维度&#xff0c;引领了移动影像行业的走向。最新的小米14 Ultra 在定义的时候&#xff0c;我们反复在思考&#xff1a;怎么才能把移动…

一站式解决方案:uni-app条件编译及多环境配置,appid动态修改攻略!

前言 这篇文章主要介绍uniapp在Hbuilderx 中&#xff0c;通过工程化&#xff0c;区分不同环境、动态修改小程序appid以及自定义条件编译&#xff0c;解决代码发布和运行时手动切换到问题。 背景 在企业级的应用中&#xff0c;通常会分为&#xff0c;开发、联调、生产等多个环…

基于单片机的电子琴设计

基于单片机的电子琴设计 摘 要 读书、看电影、听音乐&#xff0c;都是最常见的丰富内心世界的良剂。听音乐&#xff0c;作为陶冶情操、提升境界最便捷的方式&#xff0c;正受到越来越多人们的欢迎。音乐可以很轻松的融入各种场合&#xff0c;给人们带来很轻松的氛围&#xff…

ChatGPT-Next-Web SSRF漏洞+XSS漏洞复现(CVE-2023-49785)

0x01 产品简介 ChatGPT-Next-Web 是一种基于 OpenAI 的 GPT-3.5 、GPT-4.0语言模型的产品。它是设计用于 Web 环境中的聊天机器人,旨在为用户提供自然语言交互和智能对话的能力。 0x02 漏洞概述 2024年3月,互联网上披露CVE-2023-49785 ChatGPT-Next-Web SSRF/XSS 漏洞,未经…

开源免费CasaOS:轻松打造高效便捷的家庭云生活新体验

一、引言 随着科技的不断发展&#xff0c;家庭云系统逐渐成为现代家庭生活中的重要组成部分。CasaOS作为一款简单易用的开源家庭云系统&#xff0c;受到了广大用户的青睐。其简洁明了的界面设计&#xff0c;使得即使没有任何技术背景的用户也能轻松上手。本文将详细介绍CasaOS…

若依中配置mybatis展示所有sql

在配置文件中加入下面这句 configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

什么是制作视频内容?如何搞好视频内容制作?

写在前面 视频内容已成为希望吸引数字观众的企业、品牌和创作者的必备资产。事实上&#xff0c;根据NogenTech的一份报告&#xff0c;在2023年&#xff0c;91%的营销部门使用了这种动态内容。 视频内容创作和优化性能的技巧和窍门的增加绝非巧合。TikTok以及Instagram Reels和…

linux安全--Nginx与Tomcat实现负载均衡

目录 1.实验拓扑原理图&#xff0c;前提实现全网互通 2.找到nginx的conf目录中的nginx.conf文件 3.实验效果 1.实验拓扑原理图&#xff0c;前提实现全网互通 搭建全网互通可以看https://blog.csdn.net/m0_74313947/article/details/136008513?spm1001.2014.3001.5501 搭建N…

SQLiteC/C++接口详细介绍之sqlite3类(七)

上一篇&#xff1a;SQLiteC/C接口详细介绍之sqlite3类&#xff08;六&#xff09; 下一篇&#xff1a; SQLiteC/C接口详细介绍之sqlite3类&#xff08;八&#xff09;&#xff08;未发表&#xff09; 22.sqlite3_create_collation、sqlite3_create_collation16和sqlite3_creat…

Unload-labs-pass-03

这里是设置了黑名单不能传.asp.aspx.php.jsp文件 $is_upload false; $msg null; if (isset($_POST[submit])) {if (file_exists(UPLOAD_PATH)) {$deny_ext array(.asp,.aspx,.php,.jsp);$file_name trim($_FILES[upload_file][name]);$file_name deldot($file_name);//删…

Python实现BOA蝴蝶优化算法优化循环神经网络回归模型(LSTM回归算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 蝴蝶优化算法(butterfly optimization algorithm, BOA)是Arora 等人于2019年提出的一种元启发式智能算…

报表生成器FastReport .Net用户指南:关于脚本(上)

FastReport的报表生成器&#xff08;无论VCL平台还是.NET平台&#xff09;&#xff0c;跨平台的多语言脚本引擎FastScript&#xff0c;桌面OLAP FastCube&#xff0c;如今都被世界各地的开发者所认可&#xff0c;这些名字被等价于“速度”、“可靠”和“品质”,在美国&#xff…