大模型时代的具身智能系列专题(七)

北大王鹤团队

王鹤,北京大学前沿计算研究中心助理教授,本科毕业于清华大学,博士毕业于斯坦福大学,师从美国三院院士Leonidas. J Guibas教授。他创立并领导了具身感知与交互实验室(EPIC Lab),实验室立足三维视觉感知与机器人学,重点关注具身机器人在三维复杂环境中的感知和交互问题,研究目标是以可扩增地方式发展高泛化性的机器人视觉和控制系统。研究成果覆盖物体抓取、功能性操控、灵巧操作及寻物导航。

主题相关作品

  • UniDexGrasp
  • UniDexGrasp++
  • GraspNerf

UniDexGrasp

这项工作学习一个通用的灵巧抓取方法,可以在仿真的场景中很好地泛化到数百种训练时见过或是未见过的物体类别,并且输入仅包含相机拍摄的深度信息和描述机器人自身状态的自我感知参数。使用的数据集包含来自133个物体类别的5519个物体实例的100多万种抓取手势,这是目前最大的机器人灵巧手抓取数据集。
fig2
如图2所示,方法的流程分为左右两个阶段:第一阶段针对物体点云输入生成若干抓取手势,从中挑选一个作为目标手势之后,第二阶段使用基于目标手势的强化学习策略来执行抓取。

在生成抓取手势时,由于我们发现将旋转的SO(3) 空间与平移和关节角的欧式空间解耦,并且在最后附加基于接触图的优化过程,将会获得更稳定有效的生成流程,因此生成抓取手势总共分为三个子模块。

生成总体旋转的模块 GraspIPDF 受到了 ImplicitPDF(缩写为 IPDF)的启发,使用神经网络来隐式表达概率分布 p ( R ∣ X 0 ) p(R|X_0) p(RX0)使得我们可以从中采样。
在确定了一个旋转之后,我们将整个观察到的点云规范化至 X ~ 0 \tilde{X}_0 X~0,作为输入进入第二个模块 GraspGlow。Glow 是一种常用的基于标准化流来建模欧式变量的方法,而 GraspGlow 则利用它来建模
eq
由于我们在前两个阶段致力于生成多样性的抓取,因而基于概率采样出的抓取手势在精确度方面不可避免地有所下降。所以我们需要第三个子模块,即通过接触图来优化概率采样得到的抓取手势。ContactNet 的输入是并不完美的抓取手势与物体点云(训练时我们通过扰动完美的抓取手势来实现这一效果),输出是对物体点云中的每一个点的在 [0,1] 区间内的理想接触热力值,越靠近 1 表示离理想接触时的手越远,越靠近 1表示离理想接触时的手越近。

为了使概率采样得到的手更接近理想接触时的手,一方面我们通过自监督的损失函数来微调 GraspGlow,这个损失函数包含了:

  • 预测的理想接触图与由 GraspGlow 输出的手计算得到的接触图之前的差异;
  • 物体点云穿透进手的网格的距离平方值;
  • 手上预先选定的点位穿透进平面的深度;
  • 自穿透。

另一方面,在测试时,我们也设计了能量函数来直接优化手势,这个能量函数包含的项与自监督的项相同,只是直接优化手势参数,而不是用来微调 GraspGlow。
fig3

在执行目标手势的强化学习时,如果直接基于点云以及描述机器人自身状态的自我感知参数,这两个真实世界能够获取的输入,那么学习的难度极大。所以,我们采用了师生学习框架(Teacher-Student Learning Framework)。即我们首先学习一个可以访问全知状态输入的全知教师模型,然后将其蒸馏为只接受实际输入的学生模型。不过尽管教师策略获得了对全知信息的访问权,但使其成功地抓取与不同抓取手势目标配对的不同物体仍然是艰巨的任务。为了提升模型训练的效率和以及在不同类别物体之间的泛化性能,我们设计了以下3个技巧:

  • 状态标准化;
  • 对于物体的课程学习;
  • 使用分类任务协助训练。

我们使用状态规范化(state canonicalization)来提高具有不同目标输入的强化学习的样本效率。具体而言,我们使用了机器手根部在世界坐标系中绕 z 轴的初始欧拉角 φ 作为规范化处理的参数。同时,我们将状态从世界坐标系转移到这个参考坐标系下。这样做可以使得模型更加高效地学习到不同目标输入下的抓取策略。

同时,我们提出了物体课程学习(object curriculum learning)的方法,用于训练机器人在不同类别的物体上进行灵巧抓取。该技术可以帮助机器人更好地学习到不同类别物体的抓取策略,从而提高其抓取成功率。具体而言,物体课程学习技术分为三个阶段。在第一个阶段中,我们首先让机器人在单个物体上进行训练。在第二个阶段中,我们让机器人在同一类别的不同物体上进行训练。最后,在第三个阶段中,我们让机器人在所有类别的物体上进行训练。通过这种逐步增加难度的方式,我们可以帮助机器人更好地学习到不同类别物体的抓取策略,并且避免了直接在多个类别物体上进行训练时出现的失败情况。实验结果表明,使用物体课程学习技术可以显著提高机器人的抓取成功率。

我们还采用了分类任务协助训练。具体而言,我们使用物体类别分类任务提前训练视觉编码器模块并在策略学习中使用分类任务进行联合训练。

最后,我们使用知识蒸馏的方法,通过将教师策略的知识转移到学生策略中,从而提高学生策略的性能。具体而言,我们将在全知状态输入下训练的教师策略的知识转移到只接受真实世界输入的学生策略中。

实验

我们分别针对抓取生成流程、基于状态输入的模型和基于视觉信息输入的模型进行了三类实验比较。
tab1
对于抓取生成流程的实验,我们采用了如下的衡量标准:

  • Q 1 Q_1 Q1值,表示了能够成功扰动抓取手势中的物体的最小扰动。
  • 物体穿透深度,表示了从物体点云穿透进手网格的深度。
  • σ ∗ 2 σ^2_* σ2 :*表示各个指标的标准差,用来衡量我们生成的抓取的多样性,包括 R / k e y p o i n t / T / θ ∣ R R/keypoint/T/\theta|R R/keypoint/T/θR等(旋转/关键点/平移/固定旋转下的关节角度/)。

我们的比较基准则包含了使用了GraspTTA,DDG,以及 ReLie,ProHMR 分别根据推测任务做出调整后再加上了测试时自适应(Test-Time Adaptation)的版本。可以看到,我们提出的方法兼具抓取的高质量和多样性,是其他方法无法做到的。

tab3

对于抓取执行实验,提供了 UniDexGrasp 在大规模合成数据集上的实验结果。实验结果表明,UniDexGrasp 可以在不同类别的物体上实现高质量、多样化的灵巧抓取。具体而言,我们将 UniDexGrasp 与四种基线方法进行了比较,表格3中列出了这些方法在训练集和测试集上的平均成功率。结果显示,UniDexGrasp 在训练集和测试集上分别达到74%和69%的平均成功率,显著优于其他方法。于此同时,我们还做了一系列消融实验以证明了每个关键技术对最终结果的重要性。
tab4

表格4展示了基于视觉输入的学生策略的成功率。我们对比了使用训练抓取数据和使用我们视觉模块方法预测的抓取位姿进行测试的结果。同时,我们通过扰动我们预测的抓取姿势以导致小穿透 (a)、较大穿透 (b) 和无接触 © 来对我们基于视觉的策略进行稳健性测试,并观察到我们的抓取执行策略对此类错误具有一定的鲁棒性。

fig5
我们方法一个非常自然的应用就是加入一个语言处理模块使得机器手按照特定方式来抓取物体。给定一段文本描述,我们将生成的抓取手势渲染成图片,随后通过 CLIP 模型选择图片文本相似度最高的抓取。在我们的初步尝试中,只用了10分钟的微调,CLIP 就能在手和锤子这一组合上达到90%的准确度,这也证明了进一步应用的可行性。

UniDexGrasp++

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

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

相关文章

矩阵连乘问题

#include<iostream> using namespace std; #define N 7 void MatrixChain(int p[N],int n,int m[N][N],int s[N][N]) {for(int i1;i<n;i)m[i][i]0;for(int r2;r<n;r)//有多少个相乘(规模){for(int i1;i<n-r1;i){int jir-1;m[i][j]m[i][i]m[i1][j]p[i]*p[i1]*p[j…

【AREngine BUG 解决方法】无法获取有效的相机图像尺寸

近期拿了一台 华为mate20 Pro的手机&#xff0c;在运行AR示例的过程中出现了黑屏。 问题排查 SDK版本&#xff1a;com.huawei.hms:arenginesdk:3.7.0.3 定位 经排查&#xff0c;发现(ARCamera对象的相机内参) getImageDimensions()返回的图像尺寸的width和height都为0。 这…

Vue——初识组件

文章目录 前言页面的构成何为组件编写组件组件嵌套注册 效果展示 前言 在官方文档中&#xff0c;对组件的知识点做了一个很全面的说明。本篇博客主要写一个自己的案例讲解。 vue 官方文档 组件基础 页面的构成 说到组件之前&#xff0c;先大致说明下vue中页面的构成要素。 在…

太速科技-基于XC7V690T的12路光纤PCIe接口卡

基于XC7V690T的12路光纤PCIe接口卡 一、板卡概述 基于XC7V690T的12路光纤PCI-E接口卡&#xff0c;用于实现多通道高速光纤数据接收和发送&#xff0c;板卡兼容PCIe 2.0和PCIe 3.0规范&#xff0c;利用PCI-E Switch PEX 8748实现FPGA芯片与计算机的通信&#xff0c;计算机与板…

小程序内的分包与数据共享

一:数据共享 小程序内的数据共享和vue当中不一样,vue当中的vue实例可以使得所有的组件都能this.store 但是小程序它只有page对象,和组件实例对象.对于vue而言,vue实例可以使得添加的组件都有. 但是page对象页面对象,不能使得页面内部有.只能使得这个页面内能访问.vue实例,会…

数据库 mysql 的彻底卸载

MySQL卸载步骤如下&#xff1a; &#xff08;1&#xff09;按 winr 快捷键&#xff0c;在弹出的窗口输入 services.msc&#xff0c;打开服务列表。 &#xff08;2&#xff09;在服务列表中&#xff0c; 找到 mysql 开头的所有服务&#xff0c; 右键停止&#xff0c;终止对应的…

LLM主流开源代表模型

LLM主流开源大模型介绍 1 LLM主流大模型类别 随着ChatGPT迅速火爆&#xff0c;引发了大模型的时代变革&#xff0c;国内外各大公司也快速跟进生成式AI市场&#xff0c;近百款大模型发布及应用。 目前&#xff0c;市面上已经开源了各种类型的大语言模型&#xff0c;本章节我们…

特征工程技巧—Bert

前段时间在参加比赛&#xff0c;发现有一些比赛上公开的代码&#xff0c;其中的数据预处理步骤值得我们参考。 平常我们见到的都是数据预处理&#xff0c;现在我们来讲一下特征工程跟数据预处理的区别。 数据预处理是指对原始数据进行清洗、转换、缩放等操作&#xff0c;以便为…

vue3状态管理,pinia的使用

​​​​​​​状态管理 我们知道组件与组件之间可以传递信息&#xff0c;那么我们就可以将一个信息作为组件的独立状态&#xff08;例如&#xff0c;单个组件的颜色&#xff09;或者共有状态&#xff08;例如&#xff0c;多个组件是否显示&#xff09;在组件之传递&#xff0c…

大容量异步电机直接转矩(DTC)控制matlab仿真

微❤关注“电气仔推送”获得资料&#xff08;专享优惠&#xff09; DTC简介 直接转矩控制的基本思想就是利用逆变器所产生的空间电压矢量来控制定子磁链的旋转速度&#xff0c;通过控制定子磁链的走停来改变定子磁链的平均旋转速度的大小&#xff0c;从而改变磁通角的大小进而…

【应用层】域名系统DNS

目录 1、互联网的域名结构 2、域名服务器 域名系统 DNS (Domain Name System) 是互联网使用的命名系统&#xff0c;用来把便于人们使用的机器名字转换为 IP 地址&#xff0c;域名系统其实就是名字系统。 互联网的域名系统 DNS 被设计成为一个联机分布式数据库系统&#xff0c…

使用 zxing 生成二维码以及条形码

需求背景 前期在做项目的时候&#xff0c;有一个需求是说要生成一张条形码&#xff0c;并且呢将条形码插入到 excel 中去&#xff0c;但是之前一直没有搞过找个条形码或者是二维码&#xff0c;最后是做出来了&#xff0c;这里呢就先看看怎么生成&#xff0c;后面再抽时间来写写…

模拟算法专题

特点: 思路比较简单, 主要考察代码能力 模拟算法流程(一定要在演草纸上过一遍流程)把流程转化为代码 优化: 一般是通过找规律 一. 替换所有问号 答案 二. 提莫攻击 答案 三. Z字形变换 答案 四. 外观数列 答案 五. 数青蛙 答案

Accelerate 笔记:保存与加载文件

保存和加载模型、优化器、随机数生成器和 GradScaler 使用 save_state() 将上述所有内容保存到一个文件夹位置使用 load_state() 加载之前通过 save_state() 保存的状态通过使用 register_for_checkpointing()&#xff0c;可以注册自定义对象以便自动从前两个函数中存储或加载 …

css-Ant-Menu 导航菜单更改为左侧列表行选中

1.Ant-Menu导航菜单 导航菜单是一个网站的灵魂&#xff0c;用户依赖导航在各个页面中进行跳转。一般分为顶部导航和侧边导航&#xff0c;顶部导航提供全局性的类目和功能&#xff0c;侧边导航提供多级结构来收纳和排列网站架构。 2.具体代码 html <!-- 左侧切换 --><…

每日一练——分糖果2

1103. 分糖果 II - 力扣&#xff08;LeetCode&#xff09; /*** Note: The returned array must be malloced, assume caller calls free().*/ int* distributeCandies(int candies, int num_people, int* returnSize) {int num 0;int* arr (int*)malloc(sizeof(int)*num_peo…

第100+9步 ChatGPT文献复现:ARIMA预测百日咳

基于WIN10的64位系统演示 一、写在前面 我们来继续换一篇文章来学习学习&#xff1a; 《BMC Public Health》杂志的2022年一篇题目为《ARIMA and ARIMA-ERNN models for prediction of pertussis incidence in mainland China from 2004 to 2021》文章的模拟数据做案例。 这…

Golang TCP网络编程

文章目录 网络编程介绍TCP网络编程服务器监听客户端连接服务器服务端获取连接向连接中写入数据从连接中读取数据关闭连接/监听器 简易的TCP回声服务器效果展示服务端处理逻辑客户端处理逻辑 网络编程介绍 网络编程介绍 网络编程是指通过计算机网络实现程序间通信的一种编程技术…

最小二乘法算法(个人总结版)

最小二乘法&#xff08;Least Squares Method&#xff09;是一种通过最小化误差平方和来拟合数据的回归分析方法。它被广泛应用于线性回归、多元回归以及其他数据拟合问题中。以下是详细的教程&#xff0c;涵盖基本概念、数学推导、具体步骤和实现代码。 1. 最小二乘法基本概念…

网络网络层之(6)ICMPv4协议

网络网络层之(6)ICMPv4协议 Author: Once Day Date: 2024年6月2日 一位热衷于Linux学习和开发的菜鸟&#xff0c;试图谱写一场冒险之旅&#xff0c;也许终点只是一场白日梦… 漫漫长路&#xff0c;有人对你微笑过嘛… 全系列文章可参考专栏: 通信网络技术_Once-Day的博客-CS…