One-Shot Imitation Learning with Invariance Matching for Robotic Manipulation

news2024/11/14 18:07:06

发表时间:5 Jun 2024

论文链接:https://readpaper.com/pdf-annotate/note?pdfId=2408639872513958656&noteId=2408640378699078912

作者单位:Rutgers University

Motivation:学习一个通用的policy,可以执行一组不同的操作任务,是机器人技术中一个有前途的新方向。然而,现有技术仅限于学习策略,该策略只能执行训练期间遇到的任务,并且需要大量演示来学习新任务。另一方面,人类通常可以从单个未注释的演示中学习新任务

如上面的动机图:Kuka 机器人的任务是拿起杯子并将其倒入碗中,使用单个演示来拾取和倾倒不同位置的不同杯子,IMOP的核心是估计和匹配给定任务的不变区域的能力。

解决方法:在这项工作中,我们提出了不变性匹配一次性策略学习 (IMOP) 算法。与直接学习末端执行器姿态的标准实践相比,IMOP首先学习给定任务的状态空间的不变区域,然后通过匹配演示和测试场景之间的不变区域来计算末端执行器的姿态

特点:

  1. 不用微调,直接泛化到新的任务。IMOP can perform one-shot sim-to-real transfer using a single real-robot demonstration.

  2. 在这项工作中,我们提出了不变区域的概念。我们没有相机视点不变性,而是训练神经网络来预测位置对给定任务的机器人末端执行器保持不变的区域。与可供性不同,所提出的不变区域不用于表示动作概率,而是将动作从演示转移到测试场景。

  3. IMOP不是直接学习所需的末端执行器的姿态,而是学习每个任务的关键不变区域,并在one-shot demonstration和给定的测试场景中找到不变区域之间的成对对应关系。这个成对的对应 用于从点集配准问题的最小二乘解分析计算测试场景中所需的末端执行器的姿态。不变区域被定义为一组 3D 点,其坐标在末端执行器的帧中查看时保持不变,跨越共享相同语义动作的状态如何得到不变区域的?我们设计了一个基于图的不变区域匹配网络。不变区域通过从连接演示和测试场景的点云的KNN图中通过neighbor attention定位。

  4. 在基础任务上进行训练后,IMOP 在与基础任务有很大不同的新任务上进行评估。每个学习任务都在多个试验中进行评估,每个试验都有不同的对象布局和方向。对于每个新任务,只有一个记录的轨迹作为演示给出。

总而言之,我们的贡献有三个方面:

  • 我们提出了 IMOP,这是一种用于机器人操作的one-shot imitation learning algorithm ,它学习通用策略,不仅在基础任务上成功,而且还使用单个未注释演示推广到新任务。

  • 提出了一种基于对应的操作任务姿态回归方法,该方法通过匹配关键视觉元素来预测机器人的动作,在KNN图上连接演示和测试场景的基于图的不变区域匹配网络。(本质上只有2这一点创新

  • 我们对IMOP在不同任务集上的性能和泛化能力进行了彻底的实证研究。(有sim有real)

实现方式

Invariant Region Matching Network:我们首先通过将每个点连接到同一场景中最近的k个点,为每个场景点云构建一个KNN图。接下来,我们在每个支持场景 si 内应用图自注意力,并在相同的支持演示中对连续帧 si 和 s′i 的 KNN 图之间进行交叉注意。We use the point transformer layer as the graph attention operator。

Correspondence-based Pose Regression: 6自由度位姿回归的标准做法是从神经网络中获取动作位姿 T。然而,这种方法不能很好地推广到新任务,如第 IV-B 节所述。相反,我们建议通过使用标准最小二乘算法求解公式 1 中的优化问题来分析计算查询状态 sj 的动作姿势 Tj

State Routing Network:我们设计了一个状态路由网络(如图4所示),在给定查询场景sj的情况下,在one-shot演示τ中选择支持帧si。我们首先使用PTv2主干提取查询状态sj和τ中的每个状态的场景级特征。接下来,我们遵循现有工作的惯例,将场景级特征与低维内部机器人状态连接起来,包括关节位置和时间步长。然后,我们对多个状态的特征应用交叉注意。

The three techniques presented above form together theInvariance Matching One-shot Policy Learning (IMOP) algorithm.

实验:We first train and evaluate our algorithm on the standard 18 RLBench tasks, and then measure its one-shot generalization ability on 22 novel tasks from 9 categories。

输入:record128 × 128 RGB-D images from the front, left/right-shoulders, and wrist cameras.

one-shot设定:We choose 22 novel tasks that have different object setups and task goals from the base ones, according to the task categorization of Hiveformer。For each novel task, only a single successful trajectory is provided, as a one-shot demonstration. Each task is evaluated on 25 independent trials, and we report the average success rate.(也是类似元学习的设定)

real: a Kuka LBR iwa robot. We adopt five novel tasks: put toys in bowls, stack blocks, put items in shelves, open bottles, and pour cups.

结论:我们已经证明,可以通过学习估计和匹配演示和测试场景中的关键不变区域来实现one-shot novel task generalization。目标末端执行器的姿态可以通过找到不变区域之间的对应关系来转移。

未来:

  • 所提出的通过匹配关键视觉元素转移动作的想法是通用的,但不变区域的当前定义仍然与刚体变换密切相关。这表明基于更一般的运动描述符(如扭曲或流)扩展不变区域的这一形式的潜力。

  • 除了仅利用单个演示之外,还可以维护来自最相关状态的演示池和转移动作,以提高操作性能并减少具有大变化或需要故障恢复的场景下的错误累积。

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

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

相关文章

Linux学习笔记6 值得一读,Linux(ubuntu)软件管理,搜索下载安装卸载全部搞定!(中)

Linux学习笔记5 值得一读,Linux(ubuntu)软件管理,搜索下载安装卸载全部搞定!(上)-CSDN博客 一、前文回顾 上一篇文章我们了解了软件管理的基本概念和软件管理的几种常用工具。我们了解了软件包是由什么形式存在&#…

srt字幕文件怎么制作?分享几个简单步骤,新手必学

srt字幕文件怎么制作?随着短视频平台的发展,现在很多小伙伴喜欢用视频记录生活,分享美好瞬间。在将视频上传到视频平台的时候,我们需要对视频进行剪辑处理。而字幕的使用对提高视频内容的可理解性与传播性变得愈发重要。srt字幕文…

OpenCV 旋转矩形边界

边界矩形是用最小面积绘制的,所以它也考虑了旋转。使用的函数是**cv.minAreaRect**()。 import cv2 import numpy as npimgcv2.imread(rD:\PythonProject\thunder.jpg) img1cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) print(img.dtype) ret,threshcv2.threshold(img1,1…

基于SpringBoot+Vue的美术馆管理系统(带1w+文档)

基于SpringBootVue的美术馆管理系统(带1w文档) 基于SpringBootVue的美术馆管理系统(带1w文档) 本课题研究和开发美术馆管理系统管理系统,让安装在计算机上的该系统变成管理人员的小帮手,提高美术馆管理系统信息处理速度,规范美术馆管理系统信…

【高等数学学习记录】集合

1 知识点 1.1 集合的概念 集合 指具有某种特定性质的事物的总称。集合的元素 组成集合的事物称为集合的元素(简称元)。有限集、无限集 含有限个元素的集合,则称为有限集;反之,称为无限集。子集 设 A A A、 B B B是两…

HTTP Cookie 和 session

HTTP Cookie HTTP协议本身是无状态,无连接的。 无状态是指,客户每次发起请求,服务器都不认识客户是谁,它只会根据请求返回对应的资源响应。 无连接不是指TCP的无连接,通常指的是HTTP协议本身不在请求和响应之间维护…

哪款宠物空气净化器能更好的清理浮毛?希喂、352、IAM测评分享

家里这三只可爱的小猫咪,已然成为了我们生活中不可或缺的家庭成员,陪伴我们度过了说长不长说短不短的五年时光。时常庆幸自己当年选择养它们,在我失落的时候总能给我安慰,治愈我多时。 但这个温馨的背后也有一点小烦恼&#xff0…

使用Redis实现记录访问次数(三种方案)

目录 0. 前言1. 使用Filter实现2. 使用AOP实现 1. 导入依赖 2. 写一个切面类,实现统计访问次数。 3. 开启AOP 4. 测试 5. plus版本 (1) 新建一个bean类 (2) 新增一个controller方法 (3) 新增一个循环增强方法 (4) 测试…

龙芯+FreeRTOS+LVGL实战笔记(新)——04开启主任务

本专栏是笔者另一个专栏《龙芯RT-ThreadLVGL实战笔记》的姊妹篇,主要的区别在于实时操作系统的不同,章节的安排和任务的推进保持一致,并对源码做了改进和优化,各位可以先到本人主页下去浏览另一专栏的博客列表(目前已撰…

基于OGC300工业级LORA网关与OM201L数传终端的化工厂人员定位系统解决方案

化工行业作为高风险的行业之一,其安全管理一直备受关注。化工生产过程中涉及到各种危险品和复杂的工艺,一旦发生事故,往往会造成严重的人员伤亡和财产损失。因此,化工企业急需一套可靠的安全管理系统来监测安全隐患、预防事故发生…

【2024数模国赛赛题思路公开】国赛A题思路丨附可运行代码丨无偿自提

2024年国赛A题解题思路 【题目分析】 问题1:舞龙队沿螺距为55 cm的等距螺线顺时针盘入,给出300秒内舞龙队每秒的位置和速度 分析思路: 螺线方程: 需要建立螺线方程,以便描述龙头及每节板凳的位置。螺线是基于极坐标系…

图形几何算法 -- 凸包算法

前言 常用凸包算法包括Graham Scan 算法和Jarvis March (Gift Wrapping) 算法,在这里要简单介绍的是Graham Scan 算法。 1、概念 凸包是一个点集所包围的最小的凸多边形。可以想象用一根绳子围绕着一群钉子,绳子所形成的轮廓便是这些钉子的凸包。在计算…

谈谈AI领域的认知误区、机会点与面临的挑战

谈谈AI领域的认知误区、机会点与面临的挑战 最近2年,AI 技术的火爆,到处都能看到大家在讨论AI 的发展与机会。这里我们讨论一下AI 认知的误区,机会点和面临的挑战。 by kimmking AI 认知的误区 这年头掀起了所有人讨论AI热潮的同时&#xf…

使用C语言实现字符推箱子游戏

使用C语言实现字符推箱子游戏 推箱子(Sokoban)是一款经典的益智游戏,玩家通过移动角色将箱子推到目标位置。本文将带你一步步用C语言实现一个简单的字符版本的推箱子游戏。 游戏规则 玩家只能推箱子,不能拉箱子。只能将箱子推到…

【内容审核】对审核结果进行封装

目录 1、分析返回结果示例 2、自定义封装类 在【内容审核】Java实现七牛云内容审核功能七牛 java 审核-CSDN博客 中实现了文本、图片和视频的审核功能,但是这些功能灵活性不够,既不能自己设置审核的强度,也不能内容违规的详细信息&#xff…

【教学类-52-08】20240905动物数独(6宫格)一页2张任务卡,一页一个动物贴图卡,有答案

背景需求: 前文提到6宫格数独的图片6*636图,如果将6张任务卡放在一个A4上,看上去6种动物很小,所以我换了一个word模板,变成了2张任务卡放在一个A4上。 【教学类-52-07】20240903动物数独(6宫格&#xff0…

dp练习【4】

最长数对链 646. 最长数对链 给你一个由 n 个数对组成的数对数组 pairs &#xff0c;其中 pairs[i] [lefti, righti] 且 lefti < righti 。 现在&#xff0c;我们定义一种 跟随 关系&#xff0c;当且仅当 b < c 时&#xff0c;数对 p2 [c, d] 才可以跟在 p1 [a, b…

003: Visual Studio 配置 VTK 开发环境的方法与比较

目录 简介&#xff1a; 1 配置属性方法&#xff1a; 2 创建配置文件 3 在新项目中导入props文件 总结&#xff1a; 简介&#xff1a; 编译好VTK后&#xff0c;在安装目录里面有通常有包含bin,lib和include等文件夹&#xff0c;要在自己的项目里面使用VTK&#xff0c;主要…

如何用c++判断一个类型是vector

如何用c判断一个类型是vector 我们使用模板元编程来搞定 这里我们可以定义一个模板结构体 is_std_vector&#xff0c;并对其进行特化&#xff0c;以便专门处理 std::vector 类型。 . 下面是详细的实现和使用示例。 实现 is_std_vector 类型, 继承自false_type 首先&#xff…

Unexpected token d in JSON at position 5, check bodyParser config错误解决

错误原因&#xff1a;json格式不对 { desc"设备1", iotProjectId11 } 解决&#xff1a;通过json在线校验格式校验json格式&#xff0c;找出错误原因&#xff0c;修改 在线JSON校验格式化工具&#xff08;Be JSON&#xff09; 修改&#xff1a; {"desc": &…