24年5月来自莫斯科斯科尔科沃科学技术学院的论文“Bi-VLA: Vision-Language-Action Model-Based System for Bimanual Robotic Dexterous Manipulations”。
Bi-VLA(视觉-语言-动作)模型,是一种专为双手机器人灵巧操作而设计的系统,它无缝集成视觉以进行场景理解、语言理解以将人类指令翻译成可执行代码以及物理动作生成。通过一系列家务任务评估系统的功能,包括根据人类要求准备一份所需的沙拉。Bi-VLA 展示解释复杂人类指令、感知和理解食材的视觉背景以及执行精确的双手动作以准备所需沙拉的能力。通过一系列实验评估系统在准确性、效率和对不同沙拉食谱和人类偏好的适应性方面的性能。结果显示,语言模块生成正确可执行代码的成功率为 100%,视觉模块检测特定食材的成功率为 96.06%,正确执行用户请求的任务的总体成功率为 83.4%。
语言模型的最新进展显著影响了人机交互 (HRI),使机器人能够更自然、更有效地与人类互动 [1]。特别地,为了提高性能效率和处理复杂任务,协调双臂机器人系统的应用越来越多。这些系统提供了更高的可靠性,并有助于执行单个机械手难以完成的任务 [2]。此外,文献中对两个机械手系统的协调进行了广泛研究,并获得了令人满意的性能结果 [3],[4]。然而,传统的基于规划的方法侧重于通过预定义轨迹进行运动规划以协调两个机械臂 [5],[6],这通常对于动态和复杂的任务而言不是最优的。为了实现人类水平的双手操作,已经提出了强化学习 (RL) [7] 和从演示中学习 (LfD) [8] 等替代策略。然而,必须认识到这些方法所固有的挑战,特别是学习和数据收集所需的时间。
此外,将语言模型集成到 HRI 中不仅促进了自然交流,而且还将其效用扩展到基本交互之外。这包括任务规划和生成中间推理步骤(通常称为思维链 CoT)等任务。然而,尽管语言模型具有巨大潜力,但将其应用于合成机器人的双手技能尚未受到广泛关注。这一点尤其值得注意,因为人类执行的许多任务通常都需要双手协调使用,这凸显了双手能力在执行单臂机械手无法完成的复杂操作中重要作用。在此前提下,将视觉、语言和动作集成到一个统一模型中,为增强机器人的双手操作提供了一种新方法。
Bi-VLA架构如图所示:系统将用户的任务请求作为输入,该请求被转录为文本消息,同时还有来自摄像头的图像(见图左)。任务请求用作检索增强生成 (RAG) 系统的查询,其输出启动语言模块和视觉语言模块之间的视觉问答 (VQA) 对话。另一方面,输入图像被分割成块、token化并与 VQA 问题token组合,然后发送到视觉语言模块。主要输出包括带有字幕的图像和 JSON 文件,其中包含成分的 2D 位置、所有成分的列表和缺失成分等。随后,语言模块生成一组由机器人执行的操作(见图右)。
这项工作中,利用加州大学伯克利分校 NEST 实验室使用AI反馈强化学习 (RLAIF) 开发的开源 LLM Starling-LM-7B-alpha [23] 作为语言模块的主干,其在多个基准测试中的表现均优于 GPT-3.5 [24],其中 MT Bench 获得了 8.09 分(满分 10 分)。
语义规划涉及使用自然语言理解和生成技术来解释人类指令并生成可执行规划。在工作中,语义规划器旨在生成一个规划,协调配备不同且适当工具的两个机械臂操纵器的运动,以执行给定的操作。规划器将动作描述作为输入,并生成一个规划,指定机械臂需要执行的动作序列。规划器使用一个模板来为规划提供通用结构。它以“[规划开始]”标签开头,以“[规划结束]”标签结尾,确保规划清晰划分。模板还包括需要根据视觉-语言模型 (VLM) 的任务要求填写的特定指令和占位符,以及一组要遵循的规则。
如图所示,在视觉语言模块的输出中,当所有必需成分都可用时,可以观察到一组操作的示例。
如图显示在规划器的输出中单个操作的详细信息。
为了方便生成动作,实现一套全面的 API 函数来控制机器人的动作。
视觉-语言模型使用函数 get_list_of_objects() 检索摄像头框架内桌子上可见的所有目标名称,并使用 get_bounding_boxes() 生成所需目标列表的边框。
确保 API 函数的明确命名对于防止与语言模型混淆至关重要。
这套全面的 API 函数为机器人操作提供了必要的控制和多功能性,使各种复杂任务能够精确高效地执行。
QWEN-VL 系列是能够理解文本和图像的大规模视觉-语言模型 (VLM) [25]。它们以 QWEN-LM 为基础,通过专门的架构和训练管道提供视觉功能,在各种基准测试中均实现了最先进的性能,包括图像字幕、视觉问答和视觉落地。在这项工作中,用该模型来验证所需项目的可用性并提供这些项目的 2D 像素坐标。
将图像像素映射到 3D 坐标,假设物体的位置等于其中心的位置。收到位置信息后,机器人将其工具中心点 (TCP) 移动到物体上方,然后将其放下以抓住物体。