LMM-3DP:集成 LMM 规划器和 3D 技能策略实现可泛化操作
25年1月来自UCSD的论文“Integrating LMM Planners and 3D Skill Policies for Generalizable Manipulation”。
大型多模态模型 (LMM) 的视觉推理能力和 3D 特征场语义丰富性的最新进展,拓展了机器人能力的范围。这些发展对于弥合 LMM 高级推理与利用 3D 特征场低级控制策略之间的差距具有巨大潜力。这项工作引入 LMM-3DP,这是一个可以整合 LMM 规划器和 3D 技能策略的框架。该方法包括三个关键角度:高级规划、低级控制和有效集成。对于高级规划,LMM-3DP 支持对环境干扰的动态场景理解、具有自我反馈的批评智体、历史策略记忆和失败后的重试。对于低级控制,LMM-3DP 利用语义感知的 3D 特征场进行精确操作。在协调机器人动作的高级和低级控制时,代表高级策略的语言嵌入与 3D Transformer 中的 3D 特征场共同参与,以实现无缝集成。在现实厨房环境中对多种技能和长期任务的方法进行广泛评估。与基于 LLM 的基线相比,该结果表明,低级控制的成功率显著提高 1.45 倍,高级规划准确率提高约 1.5 倍。
LLM-3DP 如图所示:
制造能够执行现实世界中各种长期任务的通用机器人,是一个长期存在的问题。大语言模型 (LLM) 推动机器人技术的最新进步,这些模型在理解现实世界和常识推理方面表现出非凡的能力。一些研究利用 LLM 将抽象任务分解为一系列高级语言指令以进行规划 [1]、[2]、[3]、[4]、[5]、[6]、[7]、[8]、[9]、[10]。尽管 LLM 在各种现实世界任务中取得重大进展,但目前将其集成到机器人技术中存在几个主要缺点。首先,LLM 只能处理自然语言,而不能理解视觉,因此很难理解和适应需要丰富视觉信息的动态现实世界场景。此外,基于 LLM 的规划器通常依赖人类语言反馈来持续执行长期规划 [10]、[5]、[6],这严重限制自主性。然而,具有多感官输入的大型多模态模型 (LMM) 已成为一种强大的工具,可为机器人配备强大的视觉理解和跨各种环境的泛化能力。这使机器人能够根据环境变化调整语言规划。
现有的基于 LLM 的规划器,通常依赖一组预定义的原始技能进行低级控制 [1]、[2]、[11]、[12]、[3]、[13],这是大规模应用到开放世界环境的主要瓶颈。因此,对于大多数基于 LLM 的框架来说,如何以数据高效的方式获得能够适应新环境的鲁棒低级技能,是一个巨大的挑战。最近的一些研究使用 LLM 直接输出低级控制 [14],[15]。然而,它们只在相对简单的操作任务中有效,这些任务不涉及快速的高维控制。由于 3D 理解不足,LLM 通常会在需要有效理解场景 3D 结构的复杂环境中失败。此外,最近的研究利用视觉-语言模型 (VLM) 进行视觉基础研究,预测目标物体的边框或关键点 [16],[1]。尽管结果很有希望,但它们依赖于现成的 VLM,而这些 VLM 可能并未针对动态环境中的特定复杂任务进行完全优化。
LLM 作为任务规划器。大语言模型 (LLM) 的最新进展极大地影响机器人在各种应用中的发展。值得注意的方法通常包括使用 LLM 生成高级规划 [1]、[2]、[3]、[4]、[20]。例如,SayCan [1] 通过生成可行的语言规划并采用affordance 函数来衡量技能的执行可能性,强调 LLM 非凡的常识推理能力。一些方法还利用 LLM 生成编程代码或符号 API 作为规划 [12]、[21]、[8]、[22]、[23]、[24]、[25]。然而,这些方法仅将自然语言指令作为输入,缺乏通过多模态感官观察感知世界的能力。因此,它们无法根据环境反馈调整语言规划,这严重限制它们在动态现实环境中的性能。由于 LMM 的出现,一些研究 [26]、[27]、[28] 利用 GPT-4V [17] 进行视觉输入规划。然而,他们只将 GPT-4V 用作一个固定的规划器,没有批评和自我改进。
低级机器人原语。尽管在高级规划方面取得了重大进展,但之前基于 LLM 的语言规划器 [1]、[2]、[11]、[12]、[3] 强烈假设存在可靠的低级技能供高级规划器检索,这些技能通常是手动预定义的技能集。一些研究 [14]、[12]、[29]、[30] 使用 LLM 在文本中输出直接的低级控制,这对于应用高维控制的复杂现实世界任务是不切实际的。一些方法 [16]、[31]、[32]、[33]、[34] 还利用视觉语言模型 (VLM) 来推断基于语言的功能 affordance 并执行运动规划。然而,对于具有多种几何形状和复杂 3D 结构的具有挑战性环境,它们仍然缺乏准确的 3D 理解。然而,LMM-3DP 通过将高级规划器与语言条件 3D 策略相结合来解决这一挑战,该策略可以通过对场景结构的全面 3D 理解有效地学习新技能。
低级技能的 3D 表示。为了学习针对各种技能的视觉模仿学习策略,大多数先前的研究 [35]、[36]、[37]、[38]、[39]、[40] 一直在利用基于 2D 图像的表示进行策略训练,而最近的研究越来越多地认识到 3D 表示相对于 2D 图像的优势 [41]、[42]、[43]、[44]、[45]、[46]。 GNFactor [42] 和 DNAct [43] 通过从视觉基础模型中提取 2D 特征来学习 3D 表示。然而,它们仍然需要费力的多视图图像收集来训练 NeRF [47] 模型,这对大规模部署构成了挑战。
如图所示LLM-3DP流水线:
用于高级规划的 LMM
带视觉反馈的规划。在现实世界中,执行任务的最佳规划可能不是最初设计的规划。例如,你可能规划将蔬菜放在最喜欢的蓝色碗里作为晚餐,但当发现蓝色碗不可用时,你会改用红色碗。同样,在机器人规划中,机器人必须能够根据当前情况更新其规划,这需要在任务执行期间提供视觉反馈。将 GPT-4V 作为规划器集成到机器人的执行循环中,使其能够在每次执行技能后更新规划。这种设计,增强机器人适应动态场景(例如当存在环境干扰时)的能力,并在低级控制无法执行时重新尝试之前的技能。
评论家智体。为了确保规划器生成的规划正确可靠,引入一个额外的评论家智体,以主动识别生成规划中的缺陷并不断自我改进。评论家智体仅将视觉观察和提出的规划作为输入(无需人工指令),它会检查下一步在当前情况下是否可行。如果评论家发现执行下一步将导致不良结果,则其推理将输入回规划器,然后规划器提出新规划。例如,规划器的输出很容易受到人类指令的影响。即使使用流行的提示技术 [49],这个问题仍然存在。如果人类指令是关闭所有抽屉,但场景中有些抽屉已经关闭,规划器仍可能生成一个涉及关闭所有抽屉的规划。但是,评论家可以准确地判断机器人不应该关闭已经关闭的抽屉,从而纠正规划器的错误。
终身学习。目标是让规划器随着时间的推移而改进,并通过从过去的经验中学习来避免重复犯错,就像人类学习一样。然而,对规划器进行微调需要耗费大量的计算资源。相反,利用人类对 GPT-4V 输出规划和推理的批评,然后总结这些批评以进行上下文学习。这些总结被存储为记忆,供规划者将来参考。此外,规划者可以在必要时向技能库提出新技能,然后低级策略将根据这些新技能进行相应更新。例如,在烹饪任务中,如果没有点击技能,机器人就无法打开炉子。规划者会将点击技能确定为未来学习的必需技能。随着技能库的扩展,这种方法使提出的框架能够处理更复杂的任务。
如图所示是规划器如何在机器人执行期间更新规划的示例:
使用 3D 语义表征的技能学习
根据规划器生成的语言指令,训练一个语言条件化的 3D 策略,从人类演示数据中学习所需的低级技能。不是预测每个连续动作,而是提取关键帧动作并将技能学习转换为基于关键帧的动作预测问题。这种方法简化连续控制,并且在学习可处理新目标和环境的泛化策略时样本效率更高。
视觉和语言编码器。为了应对具有各种目标和场景结构的复杂现实环境,采用双分支架构学习统一的 3D 和语义表示:i)使用互联网规模数据进行预训练的视觉基础模型,在理解复杂场景方面取得了巨大成功,具有强大的零样本泛化能力。为了在机器人技术中利用这些强大的视觉基础模型,应用基础模型(例如 DINO [48])来提取具有丰富语义的 2D 图像特征。然后,将 2D 特征图反向投影到 3D 空间来获得 3D 点特征。ii)尽管视觉基础模型具有丰富的语义,但它仍然缺乏准确的几何理解。因此,采用基于点模型的单独分支(例如 PointNext [19])来学习几何点特征,以更好地捕捉局部 3D 结构。随后,语义和几何点特征都由 MLP 层融合。为了将语言理解纳入策略,用来自 CLIP [50] 的预训练语言编码器来获得语言嵌入。
关键帧动作预测。给定融合的 3D 点特征、语言嵌入和机器人本体感受,用 3D Transformer 架构来预测下一个最佳关键帧的 6-DOF 姿势。不再预测连续动作,而是将模型预测简化为平移 a/trans、旋转 a/rot、夹持器张开度 a/open 和防撞概率 a/collision。具体来说,通过在夹持器的工作空间中采样一组固定的查询点来近似连续的 3D 场。
这样做是因为,与基于体素的方法(这些方法会离散化输出空间并且内存效率低下)不同,基于采样的方法提供了连续的输出空间并在训练期间节省内存。还定义一个可学习的 token,以更有效地关注局部结构。查询点和可学习的token都通过具有视觉和语言特征的多个交叉注意层,以获得 token 特征 f/t 和查询点特征 f/q。然后,计算 f/t 和 f/q 的内积,为每个查询点分配一个分数。通过对分数应用 argmax 运算来选择下一个最佳路径点 P/i。受 [51] 的启发,随后在 P/i 周围重新采样一组减少的查询点,并根据之前的预测在这些查询点中优化路径点的选择。
对于平移,计算预测点索引 Q/trans 与真值 Y/trans 之间的交叉熵损失。将标签平滑函数 LS 应用于平移损失,以防止过拟合并减轻现实世界演示中的标签噪声。
实验设置和实施细节如下。
为实验设置一个真实的厨房环境,与简单的桌面设置相比,该环境更复杂,并且具有更多视觉特征。机器人是一个 7-DoF Franka Emika Panda 机器人,带有 1-DoF 可变形夹持器。对于视觉输入,使用两个 Intel RealSense D435 摄像头:一个提供正面视图,另一个安装在夹持器上。为了收集基于模仿学习的低级策略数据,用 HTC VIVE 控制器和基站来跟踪人类手部运动的 6-DOF 姿势。然后用 SteamVR 将控制器运动映射到 Franka 机器人的末端执行器。在低级策略训练中,对一个厨房设置使用 100 个人类演示,对两个厨房设置使用 200 个演示(每个任务 10 个演示)。用 Adam 优化器,学习率为 3 × 10−4。训练在一台 NVIDIA GeForce RTX 3090 上进行,批次大小为 16。用色彩丢失和平移增强的技术来提高模型性能。
相关文章:

LMM-3DP:集成 LMM 规划器和 3D 技能策略实现可泛化操作
25年1月来自UCSD的论文“Integrating LMM Planners and 3D Skill Policies for Generalizable Manipulation”。 大型多模态模型 (LMM) 的视觉推理能力和 3D 特征场语义丰富性的最新进展,拓展了机器人能力的范围。这些发展对于弥合 LMM 高级推理与利用 3D 特征场低…...

Linux——基础命令3
1、关机重启命令 reboot指令 作用:重启计算机 语法:reboot shutdown指令 作用:关机 语法:shutdown -h 时间 时间常见的值: now (立即关机) m(m表示minutes数字)eg&…...

ChatGPT提问技巧:行业热门应用提示词案例-文案写作
ChatGPT 作为强大的 AI 语言模型,已经成为文案写作的得力助手。但要让它写出真正符合你需求的文案,关键在于如何与它“沟通”,也就是如何设计提示词(Prompt)。以下是一些实用的提示词案例,帮助你解锁 ChatG…...

python - 封装moondream(备份)
目录 一、 moondream封装成类 二、moondream封装成http api 一、 moondream封装成类 # moondream_model.py #https://github.com/vikhyat/moondream?tab=readme-ov-fileimport moondream as md from PIL import Imageclass MoondreamModel:def __init__(self, model_path):…...

响应式编程库(三) -r2dbc
r2dbc整合 什么是r2dbc版本选择简单试用整合springbootDatabaseClient 进行查询使用Repository接口(对应mapper)实体类复杂查询(一对一)实体类转换器测试代码一对多关系 什么是r2dbc 反应式关系数据库连接(R2DBC)项目为关系数据库…...

嵌入式AI革命:DeepSeek开源如何终结GPU霸权,开启单片机智能新时代?
2025年,全球AI领域最震撼的突破并非来自算力堆叠的超级模型,而是中国团队DeepSeek通过开源策略,推动大模型向微型化、低功耗场景的跨越。相对于当人们还在讨论千亿参数模型的训练成本被压缩到600万美金而言,被称作“核弹级别”的操…...

基于遗传算法的64QAM星座图的最优概率整形matlab仿真,对比优化前后整形星座图和误码率
目录 1.算法仿真效果 2.算法涉及理论知识概要 3.MATLAB核心程序 4.完整算法代码文件获得 1.算法仿真效果 matlab2022a仿真结果如下(完整代码运行后无水印): GA优化过程: 优化前后星座图对比: (优化后…...

从零开始玩转Docker:轻松开启容器化之旅
一、什么是 Docker Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。简单来说,Docker 就像是一个超级 “快递箱”,…...

kafka生产端之架构及工作原理
文章目录 整体架构元数据更新 整体架构 消息在真正发往Kafka之前,有可能需要经历拦截器(Interceptor)、序列化器(Serializer)和分区器(Partitioner)等一系列的作用,那么在此之后又会…...

38、【OS】【Nuttx】OSTest分析(3):参数传递
背景 接之前 blog 36、【OS】【Nuttx】OSTest分析(2):环境变量测试 37、【OS】【Nuttx】OSTest分析(2):任务创建 分析完环境变量测试,和任务创建的一些关键要素,OSTest 进入下一阶段…...

存储异常导致的Oracle重大生产故障
📢📢📢📣📣📣 作者:IT邦德 中国DBA联盟(ACDU)成员,10余年DBA工作经验 Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主,全网粉丝10万 擅长主流Oracle、MySQL、PG、高斯…...

C语言时间相关宏定义
在C语言中,预处理器提供了一些与时间相关的宏定义,用于在编译时获取日期、时间等信息。除了 __TIMESTAMP__ 和 __DATE__,还有以下相关的宏定义: __DATE__ 当前编译日期的字符串,格式为 "Mmm dd yyyy"&#x…...

Android Studio:Application 和 Activity的区别
Application 和 Activity 是 Android 中非常重要的两个组件,它们分别负责不同的生命周期管理和应用的不同层次的操作。 Application 是应用级别的生命周期管理,它在整个应用运行时只有一个实例,负责应用的全局初始化和资源管理。Activity 是…...

如何优化爬虫以提高搜索效率
在数据采集和网络爬虫领域,优化爬虫性能是提升数据采集效率的关键。随着网页结构的日益复杂和数据量的不断增长,高效的爬虫能够显著降低运行时间和资源成本。本文将详细介绍如何优化爬虫以提高搜索效率,包括选择合适的工具、优化代码逻辑、使…...

git撤销上一次的提交
1、撤销提交 如果需要撤销上一次的提交,只是提交到了本地,可以通过命令: // 撤销最近的提交(保留修改) git reset --soft HEAD~1 这个操作可以保留之前的提交和当前的修改。最近一次的提交到本地的修改的提交会回到…...

LLM学习笔记1——本地部署Meta-Llama-3.2-1B大模型
系列文章目录 参考博客 参考博客 文章目录 系列文章目录前言与调用一、部署要求二、实现步骤0.深度学习环境错误1,验证pytorch版本时提示以下问题:错误2,验证pytorch版本时提示以下问题:错误3,有时候还会提示你有一些…...

Nginx反代Ollama接口跨域、无法逐字输出问题
场景 本地部署deepseek模型,用的Ollama管理,内网穿透到公网,在通过nginx反代ollama接口。 问题描述 跨域问题 nginx转发时请求头中需要加入origin,并且origin还要和ollama接口同源(协议、ip、端口一致)。…...

大学资产管理系统中的下载功能设计与实现
大学资产管理系统是高校信息化建设的重要组成部分,它负责记录和管理学校内所有固定资产的信息。随着信息技术的发展,下载功能成为提高资产管理效率的关键环节之一。 系统架构的设计是实现下载功能的基础。一个良好的系统架构能够确保数据的高效传输和存储…...

股指入门:股指期货是什么意思?在哪里可以做股指期货交易?
股指期货是一种以股票指数为标的物的期货合约,也可以称为股票指数期货或期指。 股指期货是什么意思? 股指期货是一种金融衍生品,其标的资产是股票市场上的股指,例如标普500指数、道琼斯工业平均指数、上证50指数等。 股指期货允…...

< OS 有关 > 利用 google-drive-ocamlfuse 工具,在 Ubuntu 24 系统上 加载 Google DRIVE 网盘
Created by Dave On 8Feb.2025 起因: 想下载 StableDiffusion,清理系统文件时把 i/o 搞到 100%,已经删除到 apt 缓存,还差 89MB,只能另想办法。 在网上找能不能挂在 Google 网盘,百度网盘,或 …...

Golang的引用类型和指针
在Golang中,引用类型和指针是两个容易混淆的概念,但它们有本质的区别。理解它们的区别对于编写高效、正确的Go代码至关重要。 1. 引用类型 引用类型是Go语言中某些内置类型的统称,它们的值在传递时共享底层数据,而不是复制数据。…...

51单片机之冯·诺依曼结构
一、概述 8051系列单片机将作为控制应用最基本的内容集成在一个硅片上,其内部结构如图4-1所示。作为单一芯片的计算机,它的内部结构与一台计算机的主机非常相似。其中微处理器相当于计算机中的CPU,由运算器和控制器两个部分构成;…...

32. C 语言 安全函数( _s 尾缀)
本章目录 前言什么是安全函数?安全函数的特点主要的安全函数1. 字符串操作安全函数2. 格式化输出安全函数3. 内存操作安全函数4. 其他常用安全函数 安全函数实例示例 1:strcpy_s 和 strcat_s示例 2:memcpy_s示例 3:strtok_s 总结 …...

Android T(13) 源码分析 — BufferQueue 的分析
Android T(13) 源码分析 — BufferQueue 的分析 文章目录 Android T(13) 源码分析 — BufferQueue 的分析前言摘要一、Java 层的 BufferQueue 分析二、原生层的 BufferQueue 分析1、BLASTBufferQueue 的创建2、BLASTBufferQueue 的更新3、Surface 的创建 总结 前言 该系列文章…...

Vite+TS项目中配置路径别名
在使用 Vite 和 TypeScript 的项目中配置路径别名,可以简化模块导入路径,提高代码的可读性和维护性。以下是详细的步骤和示例代码: 1. 配置 Vite 别名 前置条件 下载types/node 下面引入的path会用到 npm install types/node --save-dev原…...

看盘细节系列 篇二:集合竞价的9点18分大单打到3%以下或以上,9点19分撤单
文章目录 系列文章现象原因分析时间点含义正常情况测试市场反应诱导跟风操纵股价意图系列文章 看盘细节系列 篇一:集合竞价尾盘突变 现象 集合竞价中 9 点 18 分通过一笔大单或连续几笔大单将股价打到 3% 以下或以上,9 点 19 分又迅速撤单。从而在分时图上留下一根长长的上…...

Java继承简介
继承的本质:是代码的复用,重复使用已经定义好的方法和域(即全局变量) 要掌握继承首先要了解Java方法的重载和重写 方法的重载和重写 方法的重载 当前方法名相同,但是参数类型不同,发生重载 类比数学函…...

redis之哨兵集群搭建
一:哨兵集群工作概览图 1.监控:sentinel通过心跳监控redis的master和slave实例是否正常工作 2.故障转移:假如master出现故障,sentinel会选举一个slave作为新的master,当故障实例恢复后身份会变成slave,会以…...

保姆级AI开发环境搭建
目录 windows下环境搭建1. Python环境搭建2. 下载vLLM2.1 安装CUDA2.2 安装Pytorch2.3 安装vllm 3. 部署Deepseek(huggingface)3.1 DeepSeek的优化建议 4. ollama快速部署Deepseek4.1 下载Ollama4.2 配置Ollma4.2 运行模型4.3 其他Ollama命令 linux下环境…...

Arduino 型号的对比
常见 Arduino 型号的对比表格 涵盖了不同型号的关键参数和特点,方便你根据项目需求进行选择: 型号Arduino UnoArduino Mega 2560Arduino LeonardoArduino NanoArduino Due微控制器ATmega328PATmega2560ATmega32U4ATmega328P 或 ATmega168SAM3X8E&#…...