发表时间:2 Nov 2023
作者单位:Stanford University
Motivation:大型语言模型 (LLM) 被证明拥有大量可操作的知识,这些知识可以以推理和规划的形式提取用于机器人操作。尽管取得了进展,但大多数仍然依赖于预定义的运动原语来执行与环境的物理交互,这仍然是一个主要的瓶颈。然后出现了这个问题:我们如何在机器人甚至细粒度的动作级别上利用 LLM 的大量内化知识,而无需为每个单个原语进行费力的数据收集或手动设计?
解决方法:在这项工作中,我们的目标是合成机器人轨迹,即一个密集的6自由度末端执行器航路点序列,用于给定开放集指令和开放集对象的各种操作任务。我们通过首先观察到 LLM 擅长在给定自由形式的语言指令的情况下推断可供性和约束来实现这一点。更重要的是,通过利用他们的代码编写能力,它们可以与视觉语言模型 (VLM) 交互,以组成 3D 值图,以ground the knowledge into the observation space of the agent。最后,组合值图可以作为运动规划器的目标函数,直接合成实现给定指令的机器人轨迹,而无需为每个任务或 LLM 进行额外的训练数据(也就是说不需要轨迹数据)。
该方法不依赖于通常数量有限或可变性的机器人数据,而是利用llm进行开放世界推理,利用VLM在基于模型的规划框架中进行可推广的视觉基础,该框架可以直接实现物理机器人动作。很有新意
实现方式:用语言模型和视觉语言模型来提取affordance和constraints(可行性和约束),组成一个3D仿真环境中的value map,利用LLM代码编写能力,和视觉语言模型(VLM)交互,把知识融入agent的observation space中。
下面的图中,首先有一个环境(3D仿真环境,两个视角),有个人为指定的语言目标,LLM和VLM交互生成绘制affordance和constraint value map的代码,然后代码绘制关于affordance和constraint的value map。
-
其中affordance maps中,蓝色区域就是要抓取操控的目标,代表high reward。
-
constraint map中,红色区域就是约束,也就是要避开的障碍,代表high cost。
-
value map中,机器人尽量往蓝色区域走,避开红色区域。
结合这两个value map,motion planner操作机械臂去完成语言指定的目标。随着环境的变化,camera中的图像也会变化,VLM会持续改进代码,让机器人在不同阶段到达不同目标,多阶段地合成轨迹。
-
LLM+VLM具体是如何实现的呢?
这里给出了两个函数的代码,affordance_map()和constraint_map(),分别表示需要操作的目标和需要避开的目标的映射。大语言模型生成与视觉语言模型交互的代码,以此来生成基于机器人观察空间的一系列3D功能图和约束图(统称为value map),然后,合成的value map作为运动规划者合成机器人操作轨迹的目标函数。
从两个函数来看,大同小异,都是先初始化一个三维数组(张量)映射,然后各自检测目标detect('handle')和detect('vase'),不同点就是affordance_map是需要将目标对象的位置(top_handle.pos)都设置为1,在constraint_map里面是将检测到的对象所占用的格子(vase.occupancy_grid)的位置都设置为-1,最后两个分别返回其对应的值图。
经过上述处理之后,就有了Motion Planning运动规划:一种在机器人学和自动控制领域中用于规划物体在空间中的运动路径的方法,以避免碰撞并满足其他约束条件。
-
每个阶段(子任务)是如何控制、得到轨迹的呢?
采用的是零阶地优化下面的方程式,也就是随机采样轨迹然后评分。因为value map有效地给出了dense reward,而且可以在每一步都重新规划,所以他们惊讶地发现这样简单的启发式方法也可以实现各种具体任务:(这里是没有训练的)
实验:
-
真实环境部署:真实世界中,相当于已经有了3D环境,直接放两个相机,后面的步骤是一样的
-
LLM使用的是GPT-4的API,VLM和感知:调用open-vocab detector OWL-ViT得到bounding box,通过SAM得到mask,然后用video tracker XMEM 来track the mask。 tracked mask使用RGB-D来重建3D点云。 (需要综合NLP、CV的很多工作和知识)
-
可以抵抗外部干扰
-
因为语言模型(应该是指VLM)的输出和历史可以存下来,方法会闭环地处理视觉反馈、重新评估生成代码,因此人为给予干扰之后可以让语言模型重新生成代码,然后用MPC进行快速重新的规划。 注释:模型预测控制(MPC)是一种基于模型的优化控制策略,它使用系统模型来预测未来的动态行为,并通过优化一个或多个性能指标来确定最优的控制动作。
-
-
Emergent的行为能力
-
估计物理特性:给定两个质量未知的块,机器人的任务是使用可用的工具进行物理实验,以确定哪个块更重。
-
行为常识推理:在机器人摆桌子的任务中,用户可以指定行为偏好,例如“我是左撇子”,这需要机器人在任务上下文中理解其含义。
-
细粒度语言修正:对于“给茶壶盖上盖子”等精度要求较高的任务,用户可以向机器人发出“你偏离了1厘米”等精确指令。
-
多步视觉程序:给定一个“精确打开抽屉一半”的任务,由于没有对象模型,因此信息不足,但是机器人可以根据视觉反馈提出多步操作策略,首先完全打开抽屉,同时记录手柄位移,然后将其关闭抽屉至中点以满足要求。
-
结论:
潜在应用:
-
利用value map热力图(蓝色区域表示目标位置,红色区域表示constraints)可以很好地表征3D空间中的特征,结合若干个camera视角就可以用上VLM。热力图是连接上层语义和下层操控的桥梁,整体连接方式如下:语言目标、3D环境->VLM,LLM->生成绘制affordance和constraint value map的代码->value map热力图->机器人各阶段操控。
很重要的特点是,value map是一种特别精准的reward/cost。
-
依赖于3D视觉的发展、视觉语言大模型的发展
-
热力图实际上就是表示了一个宏观一点的reward/cost,可以指导底层控制策略的cost(for MPC),或reward(for RL)
-
局限性:
-
下层的motion planner没有突破,可能导致其泛化性不是很好,在底层的操作上难以泛化到各种场景的各种物品(还有各种机械臂),因为万一value map给得不精准、不dense或者有问题,就会导致的底层的MPC难以完成预期的目标。
-
精细的区分视觉中的各个物体?涉及到更加强大的场景理解,VLM可能还是存在障碍。比如说眼前有五个瓶子,要拿起空瓶子扔掉。依赖于外部感知模块。
-
需要繁琐的手工的prompt engineering。
-
现在还是在桌面上的局限操作,没有扩展到更广阔的的空间。
-
虽然适用于高效的动力学学习,但仍然需要通用的动力学模型来实现具有相同泛化水平的接触丰富的任务。
-
运动规划器仅考虑末端执行器轨迹,而全臂规划也是可行的,并且可能是更好的设计选择。
-
太慢了,视频中即使是加速8倍,仍然很慢。可能是因为拆分的subtask较多,或者每个subtask需要根据视觉反馈、LLM输出来调整代码、调用控制模块解算控制轨迹,合起来就比较慢。