机器人运动控制原理浅析-UC Berkeley超视觉模态模型

加州伯克利发布的超视觉多感知模态融合(FuSe, Fuse Heterogeneous Sensory Data)模型,基于视觉、触觉、听觉、本体及语言等模态,利用自然语言跨模态对齐(Cross-Modal Grounding)优调视觉语言动作等通用模型,提高模型任务成功率。
在这里插入图片描述

总体框架

基于预训练的Octo模型或PaliGemma视觉语言动作模型,利用机器人第三方视角相机及腕部相机图像,触觉感知图像,麦克风语谱图像(Spectrogram)及自然语言指令等,通过多模态对比损失、语言生成损失及动作损失,进行模型优调,实现自然语言指令或图像目标任务。
[图片来自网络]
在这里插入图片描述

一、硬件环境
[图片来自网络]
机械臂, WidowX 250 6-DoF。
第三方视角相机, RGB相机。
腕部相机, RGB相机。
触觉传感器, DIGIT,2个,分置于终端钳。
麦克风, 标准型。
惯性测量单元, 9-DoF IMU。

二、训练环境及数据
TPU, Google v5e-128 TPU pod。
机器人任务轨迹收集器, Meta Quest 2 VR headset。
任务数据集,基于遥操作收集大概3万条轨迹。
每条轨迹通过模板化的语言指令(Templated Language Instruction)标记。
三类任务,两类抓取任务具备视觉、触觉及动作数据,一类具备声音的按钮任务。触觉观测信息去掉静态背景图。音频包括最近1秒的麦克风采样数据,频率44K。

三、机器学习框架
Google Research 发布的 JAX,基于自动梯度(Autograd)及线代加速器(XLA, Accelerated Linear Algebra)、自动向量实现自动微分(Automatic Differentiation)、实时编译(JIT, Just-In-Time)及并行计算,提高基于TPU等的大规模、高性能计算。不过易用性似不好。

四、触觉传感器(DIGIT)
GelSight DIGIT基于视觉的触觉传感器,利用相机捕获弹性材料的形变图像来测量接触力(Contact Forces).
[图片来自网络]
拆解图,左至右,弹性材料(Elastomer),窗(Acrylic Window),卡座(Snap-Fit Holder),照明电路板(Lighting PCB),外壳(Plastic Housing),相机电路板(Camera PCB),背壳(Back Housing)。

超态模型

一、模型框架
[图片来自网络]
框架图,顶部,自然语言标记化作任务标记(原图似未正确表示);相机图像、触觉图像、语音谱图标记化作观测标记(Observation Tokens);取读标记(Readout Tokens)添加到变换器输入,用于注意此前任务及观测标记;任务标记、观测标记及取读标记基于遮挡码方法实现注意力规则,通过多模态编码变换器生成注意力嵌量;底部,基于动作头(Action Head)生成动作; 基于多模态对比损失对齐视触觉与语言指令,基于语言生成损失对齐多模态与语言语义,基于动作损失对齐多模态与动作; 基于注意力嵌量,利用累加损失训练模型。
取读标记(Readout Tokens)作用类似基于变换器的双向编码器表征模型(BERT, Bidirectional Encoders Representations From Transformers)中的[CLS]标记(Token)。可存在多个取读(Readout),一个取读可对应多个标记(Tokens)。取读标记实例化时等价于位置嵌量。
动作头(Action Head)基于标准去噪扩散概率模型(DDPM, Denoising Diffusion Probabilistic Models),利用变换器生成的动作取读(Action Readout)注意力嵌量等信息学习去噪神经网络,通过对标准高斯噪声多步去噪预测动作。
在这里插入图片描述

二、多模态模型Octo
基于视觉变换器(ViT, Vision Transformer)及开源具身数据集(Open X-Embodiment Dataset)预训练实现的机器人通用控制策略模型。
[图片来自网络]
在这里插入图片描述

模型框架定义。
[图片来自网络]
框架图,左侧,分别基于预训练语言模型与轻型卷积神经网络标记化任务及观测信息;顶部,预训练框架,任务及观测标记序列通过变换器骨干网络生成取读标记(Readout Tokens);取读标记基于动作头(Action Head)生成动作;底部,优调框架,基于变换器的块注意力结构(Block-Wise Attention Structure),优调过程中可添加或移走输入、输出量,比方,新的观测量或动作空间。
在这里插入图片描述

三、编码器
1、自然语言编码器
T5-Base变换器模型。

2、图像编码器
卷积栈(Shallow Convolution Stack)。

3、触觉编码器(Tactile Encoder)
基于每对模态之间,比方视觉语言、触觉语言及触觉视觉的对比损失训练模型。
[图片来自网络]

4、音频编码器(Audio Encoder)
基于快速傅立叶变换(FFT, Fast Fourier Transform)得到语谱图,利用ResNet26编码器进行编码。

在这里插入图片描述

模型训练

参数更新基于余弦学习率调度器(Cosine Learning Rate Scheduler)。
一、标记序列
标记序列定义。
[task, observation 0, observation 1, observation 2, …]

标记序列示例。
[ , <t=0 “image_primary” tokens>, <t=0 “image_wrist” tokens>, <t=0 readout_action tokens>, … <t=1 “image_primary” tokens>, <t=1 “image_wrist” tokens>, <t=1 readout_action tokens>, … <t=2 “image_primary” tokens>, <t=2 “image_wrist” tokens>, <t=2 readout_action tokens>, … …]

二、遮挡规则
Octo模型是块因果变换器(Block-Wise Casual Transformer),每个时步只注意当前及此前时步。
观测标记注意任务标记,当前及此前时步的所有观测标记。
取读标记只注意该标记前的标记序列。

三、损失函数
[图片来自网络]
优调过程的损失函数程序实现。
def loss_fn(params, batch, rng, train=True, use_action_loss=True, use_contrastive_loss=True, use_generative_loss=True, **kwargs): info = {} loss = 0.0 bound_module = model.module.bind({“params”: params}, rngs={“dropout”: rng}) if use_action_loss: ac_loss, ac_metrics = loss_fn_action(bound_module, batch, train, **kwargs) info.update(ac_metrics) loss += ac_loss if use_contrastive_loss: lang_loss, lang_metrics = loss_fn_contrastive(bound_module, batch, train, **kwargs) info.update(lang_metrics) loss += lang_loss if use_generative_loss: gen_loss, gen_metrics = loss_fn_generative(model=model, params=params, rng=rng, batch=batch, **kwargs) info.update(gen_metrics) loss += gen_loss info[‘loss_total’] = loss return loss, info

浅析: Nvidia GR00T模型及Physical Intelligence模型,基于动作状态,通过扩散变换器或流匹配生成未来动作;利用视觉语言模态注意力嵌量直接调控动作生成;利用行为克隆进行总对齐。

超视觉模态模型基于多模态图像及语言,通过编码变换器(Transformer Encoder)及标准扩散模型进行嵌量化及生成动作;基于行为克隆对齐的同时,利用对比损失及生成损失进行嵌量对齐,间接调控动作生成。
超视觉模态模型框架似过冗,多模态注意力嵌量直接调控扩散变换器或流匹配模型可能是更适合的方法。
基于触觉、听觉等模态信息及遮挡码注意力规则可提供更全面的语义对齐能力;同时,利于基于多样化的环境反馈实现机器人操作控制约束条件。
新发布的触觉传感器DIGIT360可实现全向感知、近千万级感素(Taxels),空间特征分辨率可到7微米,法向力(Normal Forces)及切向力(Shear Forces)分辨率可到近1毫牛,可感知振动、热,甚至异味。
基于U-Net骨干神经网络的标准去噪扩散概率模型应可替换成扩散变换器(DiT, Diffusion Transformer)或流匹配模型,以提高性能或平滑性。
人形机器人基于惯性测量单元的超视觉模态注意力对齐,似有利于实现多任务操作时的整机平衡。

参考:
Beyond Sight: Finetuning Generalist Robot Policies with Heterogeneous Sensors via Language Grounding.
A Touch, Vision, and Language Dataset for Multimodal Alignment.
Octo: An Open-Source Generalist Robot Policy.
DIGIT: A Novel Design for a Low-Cost Compact High-Resolution Tactile Sensor with Application to In-Hand Manipulation.
Digitizing Touch with an Artificial Multimodal Fingertip.

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

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

相关文章

【Bootstrap V4系列】学习入门教程之 组件-媒体对象(Media object)

Bootstrap V4系列 学习入门教程之 组件-媒体对象&#xff08;Media object&#xff09; 媒体对象&#xff08;Media object&#xff09;一、Example二、Nesting 嵌套三、Alignment 对齐四、Order 顺序五、Media list 媒体列表 媒体对象&#xff08;Media object&#xff09; B…

解决VirtualBox中虚拟机(ubuntu)与主机(windows)之间互相复制粘贴(文本)

一.开始的设置 1.在VirtualBox中打开设置&#xff0c;常规中修改主机与虚拟机交互设置 2.虚拟机关闭状态下&#xff0c;存储中选中控制器SATA&#xff0c;勾选‘使用主机输入输出’ 3.选中操作系统对应的虚拟文件&#xff0c;.vdi文件&#xff0c;勾选右边的固态驱动器。 4.启…

java 多核,多线程,分布式 并发编程的现状 :从本身的jdk ,到 spring ,到其它第三方。

Java 在多核、多线程和高性能编程领域提供了丰富的现成框架和工具&#xff0c;既有标准库中的并发组件&#xff0c;也有第三方框架。以下是一些关键框架及其应用场景的总结&#xff1a;便于后面我们站在巨人的肩膀上&#xff0c;继续前行 一、Java 标准库中的多线程框架 Execut…

Nodejs核心机制

文章目录 前言 前言 结合 Node.js 的核心机制进行说明&#xff1a; 解释事件循环的各个阶段。 答案 Node.js 事件循环分为 6 个阶段&#xff0c;按顺序执行&#xff1a; Timers&#xff1a;执行 setTimeout 和 setInterval 的回调。 Pending I/O Callbacks&#xff1a;处理系…

C++笔记6:数字字面量后缀和前缀总结

在C中&#xff0c;可以在数字字面量后面添加字母后缀&#xff08;或前缀&#xff09;来表示特定的数据类型。这些后缀能够明确指定字面量的类型&#xff0c;避免类型转换带来的潜在问题。以下是常见的几种类型后缀及其含义&#xff1a; 1. 整数后缀 u 或 U&#xff1a;表示 u…

50.辐射抗扰RS和传导抗扰CS测试环境和干扰特征分析

辐射抗扰RS和传到抗扰CS测试环境和干扰特征分析 1. 辐射抗扰RS2. 传导抗扰CS 1. 辐射抗扰RS 辐射抗扰RS考察对外界电磁场干扰得抗扰能力&#xff0c;测试频段为80MHz~2000MHz&#xff0c;用1KHz得正弦波进行调幅&#xff0c;在电波暗室内进行。测试标准&#xff1a;IEC 61000-…

Java多态详解

Java多态详解 什么是多态&#xff1f; 比如我们说&#xff1a;“驾驶一辆车”&#xff0c;有人开的是自行车&#xff0c;有人开的是摩托车&#xff0c;有人开的是汽车。虽然我们都说“开车”&#xff0c;但“怎么开”是由具体的车类型决定的&#xff1a;“开”是统一的动作&a…

问题及解决01-面板无法随着窗口的放大而放大

在MATLAB的App Designer中&#xff0c;默认情况下&#xff0c;组件的位置是固定的&#xff0c;不会随着父容器的大小变化而改变。问题图如下图所示。 解决&#xff1a; 为了让Panel面板能够随着UIFigure父容器一起缩放&#xff0c;需要使用布局管理器&#xff0c;我利用 MATLA…

【GESP真题解析】第 20 集 GESP 二级 2025 年 3 月编程题 2:时间跨越

大家好,我是莫小特。 这篇文章给大家分享 GESP 二级 2025 年 3 月编程题第 2 题:时间跨越。 题目链接 洛谷链接:B4260 时间跨越 一、完成输入 根据题意,输入包含五行,每行一个正整数,分别代表 y,m,d,h,k。 注意到数据范围:对于全部数据,保证有 2000≤y≤3000,1≤m≤…

GTS-400 系列运动控制器板卡介绍(二十一)---电子齿轮跟随

运动控制器函数库的使用 运动控制器驱动程序、dll 文件、例程、Demo 等相关文件请通过固高科技官网下载,网 址为:www.googoltech.com.cn/pro_view-3.html 1 Windows 系统下动态链接库的使用 在 Windows 系统下使用运动控制器,首先要安装驱动程序。在安装前需要提前下载运动…

软件工程之需求分析涉及的图与工具

需求分析与规格说明书是一项十分艰巨复杂的工作。用户与分析员之间需要沟通的内容非常的多&#xff0c;在双方交流信息的过程中很容易出现误解或遗漏&#xff0c;也可能存在二义性。如何才能更加准确的表达双方的意思&#xff0c;且清楚明了&#xff0c;绘制各类图形就显得非常…

蓝桥杯14届 数三角

问题描述 小明在二维坐标系中放置了 n 个点&#xff0c;他想在其中选出一个包含三个点的子集&#xff0c;这三个点能组成三角形。然而这样的方案太多了&#xff0c;他决定只选择那些可以组成等腰三角形的方案。请帮他计算出一共有多少种选法可以组成等腰三角形&#xff1f; 输…

在Fiddler中添加自定义HTTP方法列并高亮显示

在Fiddler中添加自定义HTTP方法列并高亮显示 Fiddler 是一款强大的 Web 调试代理工具&#xff0c;允许开发者检查和操作 HTTP 流量。一个常见需求是自定义 Web Sessions 列表&#xff0c;添加显示 HTTP 方法&#xff08;GET、POST 等&#xff09;的列&#xff0c;并通过颜色区…

数据库分库分表实战指南:从原理到落地

1. 为什么要分库分表&#xff1f; 1.1 单库瓶颈表现 存储瓶颈&#xff1a;单表数据超过5000万行&#xff0c;查询性能急剧下降性能瓶颈&#xff1a;单库QPS超过5000后响应延迟显著增加可用性风险&#xff1a;单点故障导致全系统不可用 1.2 突破性优势 --------------------…

Selenium的driver.get_url 和 手动输入网址, 并点击的操作,有什么不同?

我在搞爬取的时候&#xff0c;发现有些网站直接用driver.get(url) 跳转到目标特定的网址的时候&#xff0c;会被强制跳转到其他的网址上&#xff0c;但是如果是自己手动&#xff0c;在网址栏那里输入网址&#xff0c;并点回车&#xff0c;却能完成跳转。 这是在使用 Selenium …

Java【06】数组查找(二分查找)、排序(冒泡排序、简单选择排序)

1. 数组的操作 1.1 数组的反转 int[] arrs{3,5,7,8,9}; 编写程序&#xff0c;让arrs中的数据进行反转{9,8,7,5,3} 1.2数组的查找 ① 顺序查找 从头到尾一个一个的找&#xff01; ② 二分查找 对数组有一个要求&#xff1a;数组必须是有序(大小)的&#xff01; int num3; int[]…

Redis 基础详解:从入门到精通

在当今互联网应用开发领域&#xff0c;数据存储与处理的性能和效率至关重要。Redis&#xff08;Remote Dictionary Server&#xff09;作为一款开源的、基于内存的键值存储系统&#xff0c;凭借其出色的性能和丰富的功能&#xff0c;被广泛应用于数据库、缓存、消息中间件等场景…

图片转ICO图标工具

图片转ICO图标 可批量操作 下载地址&#xff1a; 链接&#xff1a;https://pan.quark.cn/s/6312c565ec98 这个工具是一个批量图片转ICO图标的神器&#xff0c;有了它&#xff0c;以后再也不用为ICO格式的转换烦恼&#xff01;而且这个软件特别小巧&#xff0c;完全不用安装。…

0基础 | L298N电机驱动模块 | 使用指南

引言 在嵌入式系统开发中&#xff0c;电机驱动是一个常见且重要的功能。L298N是一款高电压、大电流电机驱动芯片&#xff0c;广泛应用于各种电机控制场景&#xff0c;如直流电机的正反转、调速&#xff0c;以及步进电机的驱动等。本文将详细介绍如何使用51单片机来控制L298N电…

Flink 系列之十五 - 高级概念 - 窗口

之前做过数据平台&#xff0c;对于实时数据采集&#xff0c;使用了Flink。现在想想&#xff0c;在数据开发平台中&#xff0c;Flink的身影几乎无处不在&#xff0c;由于之前是边用边学&#xff0c;总体有点混乱&#xff0c;借此空隙&#xff0c;整理一下Flink的内容&#xff0c…