一句指令就能冲咖啡、倒红酒、锤钉子,清华具身智能CoPa「动」手了

2024-03-17 13:36

本文主要是介绍一句指令就能冲咖啡、倒红酒、锤钉子,清华具身智能CoPa「动」手了,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

近期,具身智能方向取得了诸多进展。从谷歌的 RT-H 到 OpenAI、Figure 联合打造的 Figure 01,机器人的交互性、通用性越来越强。

如果未来机器人成为人们日常生活的助手,你期待它们能够完成哪些任务?泡一杯热气腾腾的手冲咖啡,整理桌面,甚至帮你精心安排一场浪漫的约会,这些任务,只需一句指令,清华的具身智能新框架「CoPa」都能完成。

CoPa(Robotic Manipulation through Spatial Constraints of Parts)是清华叉院高阳教授机器人研究团队最新提出的具身智能框架,首次实现了多场景、长程任务、复杂3D行为的泛化能力。

论文地址:https://arxiv.org/abs/2403.08248

项目主页:https://copa-2024.github.io/

得益于对视觉语言大模型(VLMs)的创新使用,在不经过任何训练的前提下,CoPa 可以泛化到开放场景中,处理复杂的指令。CoPa 最令人惊喜的是它展现出对场景中物体的物理属性具备细致的理解,以及其精确的规划与操作能力。

例如,CoPa 能够帮助研究人员制作一杯手冲咖啡:

在该任务中,CoPa 不仅可以理解复杂桌面陈设中每个物体的作用,还可以通过精确的控制,完成对它们的物理操作。比如「把水从水壶倒到漏斗中」这一任务,机器人将水壶移动到漏斗的上方,精确地将其旋转至合适的角度,使得水可以从壶口流到漏斗中。

CoPa 还能精心安排一场浪漫的约会。在了解研究人员的约会需求后,CoPa 帮助其布置了精美的西餐桌。

在深入理解用户需求的同时,CoPa 还展现出了精确的操作物体本领。比如「把花插入花瓶」这一任务,机器人首先抓住了花的茎,将其旋转至正对着花瓶,最后将其插入。

在这里插入图片描述

方法介绍

算法流程

大多数操作任务可以被分解为两个阶段:物体的抓取,以及完成任务所需的后续动作。比如,在开抽屉时,我们需要先抓住抽屉的把手,再沿着直线拉出抽屉。基于此,研究人员设计了两个阶段,即首先通过「任务导向的抓取模块(Task-Oriented Grasping)」生成机器人抓取物体的位姿,再通过「任务相关的运动规划模块(Task-Aware Motion Planning)」生成抓取后完成任务所需的位姿。机器人在相邻位姿之间的转移可以通过传统的路径规划算法实现。

重要部分检测模块

研究人员观察到大多数操作任务都需要对场景中的物体具有细致的「部分级(part-level)理解」。比如在用小刀切东西时,我们会握着刀柄而非刀刃;在戴眼镜时,我们会拿着镜框而非镜片。基于这个观察,研究团队设计了「由粗到细的部分检测(coarse-to-fine part grounding)模块」来定位场景中和任务相关的部分。具体来说,CoPa 先通过粗粒度物体检测来定位场景中和任务相关的物体,随后通过细粒度部分检测来定位这些物体上和任务相关的部分。

在「任务导向的抓取模块」中,CoPa 首先通过该重要部分检测模块定位抓取的位置(比如工具的柄),该位置信息被用来过滤 GraspNet(一个可以生成场景中所有可能的抓取位姿的模型)生成的抓取位姿,进而得到最终的抓取位姿。

任务相关的运动规划模块

为了让视觉语言大模型来帮助机器人进行操作任务,该研究需要设计一个接口,该接口既可以让大模型以语言的方式推理,又有利于机器人操作。研究团队发现,在执行任务的过程中,任务相关的物体通常会受到许多的空间几何限制。比如,在给手机充电时,充电头必须正对着充电口;在盖瓶盖时,盖子必须被正放在瓶口位置。基于此,研究团队提出使用空间限制作为视觉语言大模型和机器人之间的桥梁。具体来说,CoPa 首先通过视觉语言大模型生成任务相关的物体在完成任务时需要满足的空间限制,再通过一个求解模块基于这些限制解出机器人的位姿。

实验结果

CoPa 能力评估

CoPa 在现实世界操作任务中展现了极强的泛化能力。得益于对视觉语言大模型中蕴含的常识知识的利用,CoPa 对场景中物体的物理属性具有深入的理解。

例如,在「锤钉子」任务中,CoPa 首先抓住了锤柄,再将锤子旋转至锤头正对着钉子,最后向下锤。该任务要求精确识别出锤柄、锤面以及钉面,并充分理解它们的空间关系,证明 CoPa 对场景中物体的物理属性具有深入的理解。

在这里插入图片描述

在「把橡皮放进抽屉」任务中,CoPa 首先定位到了橡皮的位置,然后发现橡皮的一部分被纸包裹着,于是聪明地抓取了该部分,确保橡皮不会被弄脏。

在这里插入图片描述

在「把勺子插入杯子」任务中,CoPa 首先抓住了勺柄,将其平移旋转至竖直朝下,并正对着杯子,最后将其插入杯中,证明 CoPa 可以很好的理解完成任务时物体需要满足的空间几何限制。

在这里插入图片描述

研究团队在 10 个现实世界任务上进行了充分的定量实验。如表一所示,CoPa 在处理这些复杂任务的表现上显著超过了基线方法以及许多消融变种方法。

在这里插入图片描述

消融实验

研究人员通过一系列消融实验证明了 CoPa 框架中如下三个组成部分的重要性:基础模型、由粗到细的部分检测、空间限制生成。实验结果如上方表一中所示。

基础模型

表中 CoPa w/o foundation 消融实验去除了 CoPa 中对基础模型的使用,转而通过检测模型来定位物体,以及基于规则的方法生成空间限制。实验结果表明该消融变种的成功率很低,证明了基础模型中蕴含的丰富常识知识在 CoPa 中的重要作用。比如在「扫螺母」任务中,该消融变种不知道场景中哪个工具适合用来扫。

由粗到细的部分检测

表中 CoPa w/o coarse-to-fine 消融实验去除了 CoPa 由粗到细的部分检测设计,转而直接使用细粒度分割来定位物体。该变种在定位物体重要部分相对困难的任务中表现显著降低。比如在「锤钉子」任务中,缺少「由粗到细」这一设计导致很难识别出锤面。

空间限制生成

表中 CoPa w/o constraint 消融实验去除了 CoPa 的空间限制生成模块,转而让视觉语言大模型直接输出机器人的目标位姿的具体数值。实验表明根据场景图片直接输出机器人目标位姿是十分困难的。比如在「倒水」任务中,水壶需要被倾斜一定的角度,该变种完全无法生成此时机器人的位姿。

这篇关于一句指令就能冲咖啡、倒红酒、锤钉子,清华具身智能CoPa「动」手了的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/819116

相关文章

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time

智能交通(二)——Spinger特刊推荐

特刊征稿 01  期刊名称: Autonomous Intelligent Systems  特刊名称: Understanding the Policy Shift  with the Digital Twins in Smart  Transportation and Mobility 截止时间: 开放提交:2024年1月20日 提交截止日

基于 YOLOv5 的积水检测系统:打造高效智能的智慧城市应用

在城市发展中,积水问题日益严重,特别是在大雨过后,积水往往会影响交通甚至威胁人们的安全。通过现代计算机视觉技术,我们能够智能化地检测和识别积水区域,减少潜在危险。本文将介绍如何使用 YOLOv5 和 PyQt5 搭建一个积水检测系统,结合深度学习和直观的图形界面,为用户提供高效的解决方案。 源码地址: PyQt5+YoloV5 实现积水检测系统 预览: 项目背景

【C++学习笔记 20】C++中的智能指针

智能指针的功能 在上一篇笔记提到了在栈和堆上创建变量的区别,使用new关键字创建变量时,需要搭配delete关键字销毁变量。而智能指针的作用就是调用new分配内存时,不必自己去调用delete,甚至不用调用new。 智能指针实际上就是对原始指针的包装。 unique_ptr 最简单的智能指针,是一种作用域指针,意思是当指针超出该作用域时,会自动调用delete。它名为unique的原因是这个

工作常用指令与快捷键

Git提交代码 git fetch  git add .  git commit -m “desc”  git pull  git push Git查看当前分支 git symbolic-ref --short -q HEAD Git创建新的分支并切换 git checkout -b XXXXXXXXXXXXXX git push origin XXXXXXXXXXXXXX

单片机毕业设计基于单片机的智能门禁系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍程序代码部分参考 设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订

Android中如何实现adb向应用发送特定指令并接收返回

1 ADB发送命令给应用 1.1 发送自定义广播给系统或应用 adb shell am broadcast 是 Android Debug Bridge (ADB) 中用于向 Android 系统发送广播的命令。通过这个命令,开发者可以发送自定义广播给系统或应用,触发应用中的广播接收器(BroadcastReceiver)。广播机制是 Android 的一种组件通信方式,应用可以监听广播来执行

【C++】作用域指针、智能指针、共享指针、弱指针

十、智能指针、共享指针 从上篇文章 【C++】如何用C++创建对象,理解作用域、堆栈、内存分配-CSDN博客 中我们知道,你的对象是创建在栈上还是在堆上,最大的区别就是对象的作用域不一样。所以在C++中,一旦程序进入另外一个作用域,那其他作用域的对象就自动销毁了。这种机制有好有坏。我们可以利用这个机制,比如可以自动化我们的代码,像智能指针、作用域锁(scoped_lock)等都是利用了这种机制。