25年1月来自多伦多大学的论文“Organa: A Robotic Assistant for Automated Chemistry Experimentation and Characterization”。

化学实验往往耗费大量资源和人力,例如电化学实验中需要手动抛光电极等操作。传统的实验室自动化基础设施在适应新的实验方面面临诸多挑战。为了解决这一问题, Organa,一款辅助机器人系统,利用决策和感知工具实现各种化学实验的自动化。Organa 与化学家共同决策,从而控制机器人和实验室设备。Organa 使用大语言模型 (LLM) 与化学家交互,以推导出实验目标、消除歧义并提供实验日志。Organa 能够规划和执行复杂的任务,并提供视觉反馈,同时支持任务调度和并行执行。本文展示 Organa 在溶解度、pH 值测量、重结晶和电化学实验中的应用。在电化学实验中,Organa 并行执行一个包含 19 个步骤的实验方案,用于表征液流电池的醌衍生物。用户研究表明,Organa 可以将用户的挫败感和体力消耗降低 50% 以上,用户在使用 Organa 时平均节省 80.3% 的时间。


从筛选候选材料到开展化学实验,材料发现过程耗时耗力。它需要合成和表述不同规模(从毫克级到克级)的样品,以确定符合特定要求的理想材料。尽管化学实验室使用各种专用设备来加速合成、纯化和分析等独立任务,但化学家仍然需要弥补自动化尚未实现的环节,例如在不同工作站之间转移样品。实现完全自动化的自主驱动实验室(SDL),通过数据驱动的实验规划和自动化的实验执行,加速在广阔的化学搜索空间中发现新材料,仍然是一项艰巨的挑战,但研究正在朝着这个方向取得进展[1]–[6]。这涉及将通用机器人与实验室设备集成,以高效执行化学任务、感知环境、规划行动、促进高通量实验、与化学家进行直观交互,并在灵活适应新化学任务的同时确保安全。此外,在自主驱动实验室(SDL)中进行自动实验可以减少手动实验或表征中固有的变异性,从而提高结果的一致性和可重复性,这对于科学发现至关重要。此类系统可以提高化学实验对用户的可及性,尤其是在危险操作场景和残障用户的情况下。

本文介绍一种名为 Organa 的辅助机器人解决方案,旨在实现化学实验室的灵活自动化。它是一套用于机器人交互、感知和决策的算法工具,是之前工作 CLAIRify [7] 的延续。如图所示,Organa 使用LLM与化学家交互、识别实验目标并规划机器人实验。 Organa还能通过分析实验输出结果为化学家提供反馈。它支持以自然语言与化学家进行直观的沟通,支持书面和语音两种方式,从而减少人工干预,并让化学家在整个实验过程中随时了解高层决策。Organa以报告的形式向化学家提供实验总结、结果和分析。这种方法为化学家提供全面的反馈,并在必要时允许用户及时干预[8]。
请添加图片描述

Organa的另一个优势是其3D视觉感知能力,该能力使其能够操控物体并监控化学实验的进展。这使得Organa能够就机器人如何与实验室设备交互以及何时进行长期实验的下一步做出明智的决策。自主决策与必要时的高级人工干预相结合,有助于提高系统的整体稳健性,同时减少实验中的人工干预。此外,Organa 在硬件和功能组件方面都采用了模块化设计,使科学家能够将其应用于各种用途和不同的实验及硬件配置。为了缩短实验总时长并提高效率,Organa 还支持化学实验的并行执行。

如上图所示,Organa 接收化学家以音频或文本格式发出的指令,使用基于 LLM 的推理架构将其转换为实验任务描述,然后将这些指令映射到机器人的目标。此外,它还通过用户交互将感知的目标与场景关联起来。Organa 通过同时解决任务和运动规划 (TAMP) 以及调度问题来提高效率,从而实现任务的并行执行。此外,Organa 还提供反馈,为用户提供全面的报告和分析,并在实验过程中出现意外结果时通知用户。Organa可用于执行四项广泛应用的基础化学实验:溶解度筛选、重结晶、pH 值实验和电化学表征。溶解度筛选就是一个利用感知反馈来判断何时停止实验的例子。Organa 还被用于识别醌(quinone)溶液的电化学特性,醌是一类很有前景的氧化还原(redox)流电池分子。此外,还通过与化学家进行用户研究来评估该系统,验证了其显著的实用性。


近年来,实验室自动化领域涌现出许多不同的研究方向;然而,许多研究侧重于专用硬件,并且需要结构化语言[3][9]。由于电化学在工业上的重要性,其自动化研究正蓬勃发展[10]–[12]。这些自动化系统的瓶颈之一是电极的预处理[13]。由于电极在连续测量过程中会发生降解,因此必须进行适当的预处理才能获得准确且一致的结果。为了解决这个问题,Yoshikawa[14]结合定制的抛光台和机械臂,实现玻碳电极机械抛光的自动化,这种方法更加标准化,也更适用于多种类型的电极。本文采用[14]提出的抛光台。

人们已经尝试通过使用机器人系统来克服专用硬件的局限性[15]。例如,[4]利用通用机器人演示如何使用移动机械臂来操作专为化学家设计的仪器,并进行特定的化学实验。 [16] 展示一种增强化学实验可重构性的方案,该方案采用一套直观的状态机和工作流程。虽然这些方案是在结构化的实验室环境中进行的,且物体姿态已知,但最近的研究,例如 [5],引入一种模块化架构,利用二维码进行感知并增强灵活性。其中,对场景中化学反应和物体的感知 [17]–[19] 给实验室自动化带来重大挑战,尤其是在化学实验室工具透明化的情况下 [20]、[21]。为了缓解实验室自动化在鲁棒性和灵活性方面的挑战,人们尝试使用机器人作为辅助系统。例如,[22] 使用机器人系统在较长时间内执行实验,并在必要时进行人工干预。另一个例子是,[12] 使用GUI,允许用户使用填空模板对电化学实验进行编码,以便机器人执行。尽管在加速材料发现的自主驱动实验室(SDL)方面取得了这些令人鼓舞的进展,但在灵活性、模块化、鲁棒性和以人为本的自动化方面,这些示例仍然面临挑战。

文献[23] 提供一个鼓舞人心的例子,它设想一个以虚构角色 Organa 为核心的系统,该系统可以与化学家进行对话,并回答任何化学问题。这项工作将 Organa 带到现实世界。Organa 扩展之前的工作 CLAIRify [7],它通过初始交互会话来推理更高层次的化学任务。它还以报告的形式向用户提供实验结果反馈。CLAIRify 只能推理单个实验,而 Organa 可以推理化学家的指令并规划运行多个实验。例如,它可以规划一系列实验来表征一系列参数下的材料特性。此外,如果在实验执行过程中出现意外行为、异常值或歧义,Organa 会引导用户进行故障排除。与[7]相比,Organa的这些附加功能提高用户参与度,并增强实验执行的鲁棒性。此外,Organa在技能方面超越以往的工作,例如感知透明体,这对于在不使用AprilTags [24]的情况下执行化学任务至关重要。最后,Organa通过支持并行任务执行来提高化学实验的效率,而[7]仅支持顺序执行。这种效率的提升是通过同时解决TAMP和调度问题,并改进PDDLStream算法[25]实现的。

化学实验室的自动化对不熟悉机器人编程的化学家来说是一个挑战。最近的研究表明,这种交互可以通过自然语言界面来简化。化学实验翻译器采用基于规则的方法[3]或微调的序列到序列模型来映射到机器人规划[26]。Mehr [3]引入一种与硬件无关的化学描述语言(XDL),采用 XML 格式,便于集成到各种机器人基础设施中。

大语言模型(LLM)已被证明在化学实验规划中非常有用,因为它们能够展现类似推理的行为 [27],即它们能够根据对世界状态的了解,生成一系列合乎逻辑的实验步骤。例如,CLAIRify 利用 GPT-3.5 将自然语言实验翻译成 XDL。该过程涉及对 LLM 的迭代提示,以确保语法正确性,最终生成的规划可以在化学实验室中的 Franka 机器人上执行 [7]。ChemCrow 是一款基于 LLM 的化学引擎,它集成 18 种用于分子合成规划的外部工具,包括计算器、文献检索工具和 IBM 的 RoboRXN 平台,并成功演示两种文献中真实分子的合成 [28]。Boiko [29]设计一种基于 LLM 的化学智体 Coscientist,它能够自主设计、规划和执行科学实验,例如浏览互联网、使用液体转移机器人以及从硬件文档中选择相关功能。受现有将基于 LLM 的模型集成到实验规划和机器人执行中的方法的启发,本文研究重点是监控反应、检测意外结果并向化学家提供反馈以进行纠正措施。还探索 LLM 在实验后自动生成化学家总结报告的功能,其灵感来源于 Automatic Statistician 项目 [8]。该方法生成的报告总结机器人规划、实验结果、数据分析图、实验误差以及人工提供的信息。

通常,实验室自动化文献中的工作使用手动状态机对机器人和实验室设备的规划进行编码[3][4]。因此,它们经常面临适应环境不确定性的挑战。为了自主解决机器人可执行规划生成和机器人或智体动作并行化的问题,需要同时解决TAMP问题和调度问题。一种解决TAMP问题的方法是使用PDDLStream[25],它将用于解决离散规划问题的规划域定义语言(PDDL)求解器[30]与声明式采样过程流相结合。在另一项针对几何结构丰富的序贯机器人操作问题的工作[31]中,作者将其作为优化问题来解决。在扩展中,[32]使用混合整数规划结合运动学和可微动力学约束来解决工具使用问题。此外,还提出基于学习的方法[33]–[35]来解决先前方法的效率不足问题。

高通量实验需要并行执行化学任务,这一挑战已通过文献[36]、[37]中讨论的调度方法得到解决。调度通常处理固定的动作序列,并通常使用混合整数线性规划等优化技术来解决[38]。本文同时探讨任务和运动规划(TAMP)和调度问题。任务规划与调度(也称为时间规划)处理规划过程中的并行持续动作,通常使用PDDL2.1[38]、[39]。虽然文献中已分别探讨了任务规划与调度问题,但它们的集成尚未得到充分关注。文献[40]和[41]分别给出了两个此类组合的示例:文献[40]中,时间规划和基于采样的运动规划器分两步解决了该问题;文献[41]中,则采用了混合整数线性规划。此外,文献[25]虽然提供了一个简单的示例代码,但缺乏对同时处理调度和任务规划与调度的正式描述。


如图展示的是Organa机器人进行各种化学实验的实例:(A)溶解度实验,(B)重结晶实验,以及(C)pH值测试。
请添加图片描述

溶解度是一种物理性质,描述在特定温度下溶质在溶剂中能够溶解的最大浓度。实验中机器人会反复地向溶液中倒入少量水,直至所有固体完全溶解。每次倒入水后,都会搅拌溶液,并通过改编自文献[19]的基于视觉算法来估算浊度(溶液中残留物的定量测量值)。

重结晶是一种从不纯固体中提取纯化合物的纯化过程。在此过程中,首先将不纯固体加入溶液中并加热溶解,直至溶液达到饱和状态。随着溶液冷却,由于纯化合物的溶解度降低,它们开始结晶,而杂质则保留在溶液中。实验中,用明矾来测试重结晶过程,因为明矾在不同水温下的溶解度变化很大。本实验通过预热溶剂改进溶解度测试。机器人和硬件执行一个包含8个步骤的程序,耗时44.80分钟。

pH值表征溶液的酸碱性,其计算方法为溶液中氢离子活度的负对数[43]。红甘蓝中的花青素色素可用作pH指示剂,其颜色变化的演示是常用的化学入门实验[44]。将红甘蓝叶在热水中煮沸制备红甘蓝溶液。溶液初始颜色为深紫色/红色。加入酸后,溶液颜色变为亮粉色;加入碱后,溶液颜色变为蓝色。向红甘蓝溶液中加入食用醋(乙酸,一种酸)和小苏打(碳酸氢钠,一种碱)来演示这种颜色变化。运用液体和粉末的倾倒技巧来转移试剂,该实验共执行6个步骤,耗时3.85分钟。

醌化合物是一类重要的分子,可应用于无金属水系液流电池[45],其电化学性质正被积极研究[46]。电化学测量通常繁琐,需要人工进行电极预处理,耗时数分钟。为了验证机器人系统在电化学领域的应用,测量醌溶液在不同pH值下的氧化还原电位,并绘制相应的Pourbaix图。如图展示该实验装置。用便携式低成本恒电位仪[47]和标准的三电极体系进行电化学实验。值得注意的是,用玻碳工作电极,该电极需要机械抛光活化,这在以人为本的实验中是一个劳动密集型过程。玻碳电极是电化学研究中最常用的电极之一[48]。尽管机械抛光是活化玻碳电极最常用的方法[13],但尚未被集成到现有的自动化系统中。用机器人系统引入一个抛光站,该抛光站与承载电极的机械臂配合使用,实现该过程的自动化[14]。
请添加图片描述

该图展示电化学实验的装置和工作流程。实验装置包括抛光站、清洗站、pH 计、注射泵和机械臂。实验环境包含三个不同的烧杯:一个用于清洗的大烧杯、一个用于盛放实验溶液的小烧杯以及另一个用于 pH 值测量的小烧杯。实验流程首先由用户与 Organa 交互,输入实验细节。机器人移动到预设的观察位置,Organa感知会检测并估计场景中物体的姿态(大约需要 20 秒)。系统会提示用户对烧杯和工作站进行接地,并指定每个检测物体的功能。这使得系统能够理解每个物体的用途,这一点在存在多个相同类型物体时尤为重要。完成这些初始步骤后,Organa推理器会生成一个高级规划和目标,并将其输入到 Organa规划器中以找到一个并行可执行的规划。该过程旨在最小化与总时间相关的成本函数,从而最大限度地提高设备利用率。Organa的机器人执行器,使用多线程分发并执行该规划,每个设备都以异步方式调用以执行各自的操作。上图展示了正在进行中的电化学任务的快照。


Organa 的架构、工作流程和主要组件如图所示。
请添加图片描述

推理

基于大语言模型 (LLM) 的交互和推理:为每次实验生成底层机器人规划对化学家来说可能非常繁琐,尤其是在需要进行多个(可能重复的)实验来合成和表征材料时。为了简化这一过程,Organa.Reasoner 通过三个步骤来简化流程:i) 在启动阶段,通过交互式对话,根据化学家对多个实验的高级指令生成自然语言化学实验任务描述;ii) 将实验的自然语言描述翻译成有效的结构化语言;以及 iii) 在实验过程中通过与用户交互来解决歧义,包括验证感知信息和处理意外结果。

自主实验推理:虽然以往的研究表明,LLM 能够为单个化学实验步骤生成规划,但自主生成一系列实验的规划更具挑战性,因为实验之间的连续性和相互依赖性需要理解复杂的操作序列及其后果。这不仅涉及回忆已完成的实验,还涉及预测结果并根据先前步骤的结果调整策略。启动阶段的目标是为 Organa 提供足够的实验目标和实验室状态信息,使其能够自主执行一系列实验,而无需用户提供逐步指令。在实验启动阶段,用户通过文本或语音与系统交互。为了提出一系列多步骤实验,Organa.Reasoner 会从用户处获取以下信息:实验描述、实验室设置(可用硬件、试剂)、如何执行一个实验的示例(步骤、原理、预期输出)以及终止标准。上图(a)展示该流程的概览。用户提供的示例实验是 Organa.Reasoner 使用 CLAIRify 构建后续实验流程的基础。Organa.Reasoner 根据用户提供的实验目标和已完成的实验提出后续实验方案。这是通过 ReAct 提示方案 [66] 实现的,该方案在执行实验后生成 (想法、动作、观察) 元组(第一个元组从用户输入中解析而来)。

在本例中,动作被视为实验方案,观察是方案执行后测量的实验值,而想法则代表给定实验背后的原理。当 LLM 被提示生成新实验时,它可以访问过去的 (想法-行动-观察) 元组。这使得 LLM 能够进行链式推理,从而了解已完成的操作及其原因。在规划多步骤实验时,这一点至关重要,因为在提出新实验方案时需要考虑过去的实验,以避免不必要的重复或考虑到任何限制条件。

实验完成后,系统会对结果进行分析。如果结果与预期结果(由用户在实验目标定义中指定)不符,系统会通知用户进行确认。

Organa.Reasoner 会整合此反馈以及所有过去实验的结果,以规划后续实验。

在启动阶段,Organa 还会要求用户通过识别每个容器的用途,对场景中感知的硬件进行语义定义。然后,Organa 会为每个容器添加名称标签,以便生成使用正确容器的实验方案。如果实验中存在多个相同类型的容器,这一点尤为重要。例如,在电化学实验中,一个烧杯用于反应,另一个用于收集废液。因此,Organa 必须确保它们不会互换使用。然而,如果烧杯可以互换,Organa 可以在规划阶段利用这一信息实现并行化。

Organa.Reasoner 与用户的交互如上图 (b) 所示。

规划

将实验描述转换为有效的结构化任务:用 CLAIRify [67] 将化学实验的自然语言描述转换为 XDL 语言的结构化语言代码,这些代码作为 Organa.Planner 的规划目标。CLAIRify 采用迭代提示方案来保证输出语言域的句法有效性。尽管在实验的每次迭代中生成的 XDL 脚本可能存在细微差异(例如不同的空格字符),但解决 PDDL 问题的最终方案保持不变。

人-机交互消除歧义和故障排除:除了规划之外,Organa 还会与用户互动,以澄清场景并解决预期观察结果与当前观察结果之间的不一致之处。根据 [68],Organa 在启动期间通过绑定对象功能来解决场景歧义。为了应对意外的实验结果,采用人-机协同的方法,其中 Organa.Reasoner 会对观测结果和预期结果进行推理,提示用户进行调查并决定后续行动。

任务和运动规划(TAMP)与调度:为了加快实验速度,TAMP 规划器应支持机器人和其他资源或设备并行执行任务。结合 PDDL2.1 [39] 对 PDDLStream [25] 进行改进,以支持持续性动作,并引入时变成本函数来提高任务执行效率。PDDLStream 由元组 <P, A, I, G, S> 表示,分别定义谓词、动作、初始状态、目标状态和流。文字元组 x 上的流 S(x) 充当条件采样器,声明其输入元组和输出元组之间关系的满足情况。为了实现持续性动作,a ∈ A 被替换为起始动作和结束动作,分别记为 a:start 和 a:end [39]。此外,计划 π 中第 i 个动作(a_i ∈ π)的起始时间与 t_a:start,i 相关联,其持续时间由 D_a,i 表示。

下图详细展示动作 a 到 a:start 和 a:end 的转换,以及它们成本函数的更新。
请添加图片描述

在 [25] 中,讨论解决 PDDLStream 问题的各种方法,包括一种增量方法,该方法在搜索之前对流进行盲目且急切的认证,导致效率低下,因为在流评估过程中会生成无关事实。另一种方法涉及对流进行乐观认证,从而可以对候选规划进行惰性探索。虽然这种方法效率更高,但它不支持流的时变函数。在时间 TAMP 问题中,时变成本通过数据流进行更新。为了克服现有两种方法在解决时间 TAMP 问题上的局限性,将两种方法相结合。具体而言,与成本函数和时间相关的时变数据流采用积极评估的方式进行评估,而其余数据流则采用乐观评估的方式进行评估。此外,通过对积极评估的数据流施加合理的约束,缩小搜索空间,从而提高搜索效率。

算法 1 概述解决时间 PDDLStream 问题的方法,其输入包括持续动作 A、乐观数据流 So、与成本相关的积极数据流 Sc 以及初始状态 I,目标为 G。
请添加图片描述

首先,其评估与时间和成本相关的数据流,并将它们纳入当前已验证事实集 Uc。然后,使用 OptOutput 过程对剩余的数据流 So 进行乐观评估,以创建一个乐观对象元组 u ∈ U。在第 4 行,采用快速向下规划系统,利用加权 A* 启发式搜索 [69] 来寻找最优方案 π*,重点在于最小化方案成本。最后,对最优方案及其相关流进行评估和验证,并在找到方案后返回。Organa 依赖于此处描述的 TAMP 规划器来管理所有智体方案。实验中每个步骤的前提条件都经过定义,以确保只有在满足前提条件后才会执行任何操作。调度器返回一个可行解,该解考虑了所有条件并防止出现竞争条件。

感知

感知:为了实现自主化学实验,提出一种双层感知框架。第一层通过表征材料来监测化学任务的进展,而第二层则专注于感知工作空间中的物体,以便机器人进行操作。其方法集成多种传感器,并利用感知算法来监测反应和估计工作空间状态。感知算法的详细信息如下。

浊度视觉反馈:浊度指示溶液的不透明度,用于衡量溶解度实验中未溶解溶剂的含量。参考 HeinSight [19],采用机器人手持摄像头观测的溶液平均亮度作为浊度的指标。利用霍夫圆形变换[70],机器人从俯视图中识别出碟子,提取其在色调、饱和度和明度(HSV)颜色空间中的最小正方形区域,并将平均亮度计算为浊度值。

透明和不透明物体的检测与姿态估计:由于违反朗伯假设以及透明表面无纹理的特性[60],感知透明物体面临着挑战。为了解决这个问题,在Organa.Perception中集成先进的感知算法,以实现场景中有效的透明物体检测和姿态估计。首先,采用Grounding DINO[71],这是一种基于Transformer的零样本物体检测模型[72],并进行接地预训练。该模型能够灵活地进行目标检测,它接受人体类别名称和图像作为输入,并为每次检测提供边框信息、标签和置信度。接下来,应用非极大值抑制(NMS)[73],这是一种目标检测中的标准后处理方法,用于去除重复检测结果并保留最相关的边界框。然后,将得到的边框输入到 Segment Anything (SAM)模型 [74] 中,该模型利用基于 Transformer 的图像编码器和掩码解码器进行分割。SAM 通过基于 CLIP 的提示编码器 [75] 提供点、框和分割提示选项。

从 2D 分割估计 3D 物体姿态需要深度信息进行重投影。用 ZED 相机深度图 [76] 获取必要的深度数据。不透明物体点云可以保持较高的精度,但透明度会引入失真,并捕捉到背景表面。为了缓解这个问题,一个实用的解决方案是通过过滤掉畸变最小的最近 10% 的点来估计相机到透明物体前表面的距离。使用 Open3D 函数 [77] 从每个物体的点云凸包导出最小 3D 边框。主成分分析 (PCA) [78] 识别物体的主轴,从而形成物体参考系的旋转矩阵。最后,通过外参相机标定确定物体在机器人世界坐标系中的位姿。

化学实验技能

化学实验技能:为了实现自主化学实验,整合各种机器人技能和实验室工具至关重要。这些技能可以通过专用硬件或各种算法来实现。

抓取、放置和插入技能:Organa 利用来自感知的物体位姿信息来确定机器人末端执行器的目标坐标系。这些坐标系用于抓取、放置和插入。为了增强鲁棒性并避免碰撞,采用一种预/后姿态策略,例如在物体操作过程中设置插入前、插入后和插入后的姿态。机器人关节轨迹的计算采用逆运动学[79]和概率路线图(PRM*)路径规划[80]。

约束运动规划技能:在化学实验室中,一项常见的任务是搬运装有液体和粉末的容器。在实验中,尤其是在与溶解度和重结晶相关的实验中,引入方向约束,以防止机器人在搬运烧杯时发生溢出。采用基于PRM采样的机器人运动规划方法[81]。为了将k维路径约束F(q)∶Q→Rk纳入构型空间Q中,在PRM采样过程中应用一种基于投影的方法来识别满足约束的构型[80]。在 PRM* 中对自由构型进行采样时,其在约束构型空间中的投影值是通过使用其雅可比矩阵迭代最小化 F(q) 来确定的。

液体和颗粒状物料倾倒技能:在化学实验室中,液体和颗粒状固体倾倒是常规操作,液体输送由泵完成。现有硬件解决方案难以实现精确的粉末倾倒,且成本高昂。受手工倾倒技巧的启发,Organa 在溶解度和重结晶实验中采用了一种机器人倾倒技术。该技术利用比例微分 (PD) 控制器和整形函数进行重量反馈,以目标物质浓度为输入,并提供机器人末端执行器的所需旋转速度。更多细节请参见文献 [7]。

电极抛光技术:在电化学实验中,Organa 使用抛光站来精制玻碳电极。该抛光站包含一个抛光垫,连接到两个执行平面运动的线性致动器。通过连接到电极夹具的弹簧产生的机械阻抗,控制着抛光站和机器人末端执行器之间的法向相互作用力。通过向线性致动器发送信号,实现电极的圆周运动抛光。抛光工艺的更多细节可参见文献[14]。该设计成本低廉,未来可使用更简单的机器人平台完成抛光任务,从而使更灵巧的机器人能够执行其他任务。

自动化数据分析和报告生成

自动化数据分析和报告生成:为了使 Organa 能够生成全面的用户报告,将以下工具集成到 Organa.Analyzer 中。

电化学参数估计:在电化学实验中,目标是表征 pH 值与氧化还原电位之间的关系。氧化还原电位是指驱动化合物还原或氧化半反应的电位,该电位是相对于标准参考半电池测量的[82]。这种关系具有三个不同的线性依赖区域,分别由 pH 值 pKa1 和 pKa2 划分。第二个区域(从 pKa1 到 pKa2)的斜率是第一个区域(pKa1 之前)斜率的一半,而在最后一个区域(pKa2 之后),氧化还原电位保持不变(斜率为零)。因此,该模型由 4 个参数完全定义:两个拐点(pKa1 和 pKa2)、一个斜率变量(在本例中为 k,即区域 [pKa1, pKa2] 内的斜率)以及一个用于定义氧化还原电位偏移的变量(取 Einf,即第三个静态区域的值)。

为了基于收集的数据生成参数值,采用最大似然估计 (MLE)。此外,目标是在每次采集到新数据点后,更新关于参数值和模型线的置信度。利用该参数后验分布绘制每个参数的边缘分布。对于自动化系统而言,这是让化学家了解实验当前进展的重要环节,以便及时发现系统可能无法自动检测到的问题,并进行必要的修正。此外,虽然在本次电化学实验设置中无需使用优化算法来选择采样点,但该输出结果便于未来轻松应用现成的优化算法。

电化学报告生成:Organa 会在实验结束后自动生成 PDF 格式的总结报告,为用户提供化学实验的全面概述,包括自动生成的测量统计分析。报告包含实验详情、故障日志及相应的解决方案,以及分析结果的汇总图。


感知分析

实验室自动化感知背景:在实验室自动化环境中,有效的场景感知至关重要,尤其需要关注感知技能的两个方面:用于合成监控和分析的化学层面感知,以及用于操作实验室设备的物体层面感知。针对化学层面感知,早期的研究,例如 LabPics [17],引入一个创新的图像数据集,并采用卷积神经网络 (CNN) 来识别物质相并划分相界。HeinSight 系统 [18]、[19] 的最新进展进一步推动这一领域的发展,提出一种更通用的视觉系统,该系统不仅可以对物质相进行分类,还可以量化体积、颜色和浊度等物理性质,从而有助于对实验过程进行全面监控。此外,在 [83] 的研究中,利用机器人机械臂采集流运动视频,然后进行 3D CNN 分析,实现液体粘度的估计。

转向物体级感知,许多化学实验室工具的透明性带来独特的挑战。值得注意的是,已有研究利用三维重建和多视角感知技术,致力于检测遮挡场景中的透明容器[20][21]。这种方法能够估计深度、分割点和物体姿态,从而提高下游操作任务的效率。这些模型侧重于检测常见的透明和不透明体;然而,它们对不熟悉和新物体泛化能力较差。采用Grounding DINO[71]结合SAM[74]的方法,这是一种更通用的方法,并且能够接受无约束的文本提示。

Organa中物体检测和姿态估计的评估:感知流程从两个方面进行评估:物体检测和物体位置估计。平均精度(AP)用于衡量每个物体类别的检测性能。平均绝对误差(MAE)用于评估物体位置估计的准确性。由于假设物体保持直立姿态,且在化学实验中未使用物体姿态信息,因此未对姿态预测的质量进行评估。构建一个与电化学实验装置相关的真实数据集来进行这些评估。

数据采集:用 ZED Mini 相机 [84] 采集不同场景设置的图像。具体来说,将烧杯、烧瓶和抛光垫等化学仪器放置在实验台上;随机化光照条件、桌面背景、透明容器中的彩色液体以及物体位置。通过让配备手持式相机的机器人从不同角度拍摄 RGBD 图像来实现数据采集的自动化,如图所示。该数据集总共包含 135 张 RGBD 图像,这些图像拍摄于 17 个不同的场景。每个场景包含 4 个透明体和 1 个抛光板。

为了获得物体在世界坐标系中的真实姿态,在桌面上随机放置 AprilTags [24] 标签。随后,机器人摄像头拍摄图像,并使用 OpenCV 函数 [85] 估计标签的 6D 位姿。基于已知的摄像头位姿将这些位姿转换为世界坐标,并将标签替换为桌面上的对应物体。为了获得每个物体的真实 2D 边框,基于测量尺寸创建 3D 网格模型。利用相应的标签位姿、摄像头内参和外参,将这些网格模型的点云投影到 2D 图像空间。生成每组投影点的 2D 边框,并将其作为真实值。
请添加图片描述

实现:感知流水线基于 Grounding DINO [71] 和 SAM 模型 [74] 构建,并采用如图所示的自定义物体位姿估计机制。为了进行评估,直接使用 Grounding DINO 模型(采用 Swin-T 骨干网 [86])和 SAM 模型(采用 ViT-B 骨干网 [87])的检查点。为了检测场景中的烧杯和抛光台,向Grounding DINO提示“玻璃物体”和“盘子”。
请添加图片描述

Organa.Reasoner 的实现和提示

文本和语音界面:用户可以通过文本界面或语音与 Organa.Reasoner 进行交互。语音界面使用 Python 中的 SpeechRecognition 库来检测用户说话。语音通过 OpenAI 的 Whisper 模型处理成文本。OpenAI 的 GPT-4 模型用于推理用户输入并生成后续问题,这些问题通过 ElevenLabs 的语音生成器处理成语音。

Organa.Reasoner 提示:化学家与 Organa 的交互分为三个关键阶段:[1] 实验启动,[2] 物理基础,[3] 实验。

阶段 1:实验启动:Organa.Reasoner 在实验启动阶段的目标是收集足够的信息以执行实验。Organa.Reasoner 会提出一系列问题,需要回答这些问题才能执行实验。 Organa.Reasoner 会向用户提出这些问题,并根据用户的回答,按照以下模板推断答案:

start_up_prompt = “”" You are a robot chemist. A chemist will ask you to perform an experiment. Your goal is to find out all the information you need about the experiment. You fill out the following items :::
[Item 1] What the experiment is:::
[Item 2] The setup of the lab environment (what hardware and reagents are present):::
[3] An example of how to run the experiment [Item 3a] The rationale behind the example experiment:::
[Item 3b] How you would do the example experiment::: [Item 3c] What the expected outcome of the example experiment is:::
[Item 4] Number of experiments to be run in total:::

You will receive input from the user. You NEED to return two things:
[Item X] where X is the number of the item satisfied or [Item None] if no items were satisfied
[Question] The question you want to ask next. You must only ask one question at a time. If all the items have information , write .“”"

Organa.Reasoner 会提示化学家,直到所有问题都得到解答。以下是一个完整的提示示例,该提示由用户语音输入生成:

start_up_prompt = “”" You are a robot chemist. A chemist will ask you to perform an experiment. Your goal is to find out all the information you need about the experiment. You fill out the following items :::

[Item 1] What the experiment is:::I would like to run a chemistry experiment. I would like to generate a Pourbaix plot for an unknown
quinone
[Item 2] The setup of the lab environment (what hardware and reagents are present):::I have a solution containing 10mM of the quinone, water, 1M sodium chloride solution, and a series of 0.5 M pH X buffer solution (X is an integer between 4 to 9)two beakers (experiment beaker, waste beaker), a pH probe and potentiostat
[3] An example of how to run the experiment [Item 3a] The rationale behind the example experiment:::I want to measure the potential of the quinone solution at various pHs. I will start at pH 4 and take a measurement there. The experiments should measure the potential at all pHs from 4 to 9.
[Item 3b] How you would do the example experiment:::Add 2 mL of pH 4 buffer solution. Add 1 ml NaCl solution. add 5 mL of water followed by 2 mL of quinone solution. Then measure the pH and run a CV scan. transfer r contents of beaker to waste beaker
[Item 3c] What the expected outcome of the example experiment is:::The measured should be since it’s the first experiment, but the trend is that potential should become more negative as pH goes up.
[Item 4] Number of experiments to be run in total:::6 You will receive input from the user. You NEED to return two things:
[Item X] where X is the number of the item satisfied or [Item None] if no items were satisfied
[Question] The question you want to ask next. You must only ask one question at a time. If all the items have information , write . “”"

然后,答案会被处理成一个初始条件字典:

init_conditions_dict = {“goal”: … #[Item 1] from start_up_prompt,
“setup”: … #[Item 2] from start_up_prompt,
“thought”: … #[Item 3a] from start_up_prompt ,
“action”: … #[Item 3b] from start_up_prompt ,
“expected_obs”: …#[Item 3c] from start_up_prompt ,
“num_repeats”: … #[Item 4] from start_up_prompt }

如果实验类型未知,Organa 将退出。

第二阶段:物理接地:如果实验类别有效,Organa.Reasoner 将进入接地阶段。

在此阶段,Organa.Reasoner 会向用户展示它通过感知流程检测的容器,并要求用户为这些容器赋予语义含义,以便 Organa 能够为每个容器在实验中分配角色。此操作通过图形用户界面完成。

grounding_question = “”" What will this be used for? “”"

用户以自然文本形式为每艘容器输入答案,该答案分配给该容器。Organa.Reasoner 被调用,将用户输入的容器名称与其知识库中的名称列表进行匹配:

grounding_perception_prompt=“”" These are the official names of
hardware in a chemistry lab: {0} These are user descriptions of those
hardware, not necessarily that order: {1} Match the official names to
the user descriptions using the following format: [start matching]
|<official_name > [end matching] “”"

在上述提示中,{0} 指的是知识库中的容器列表,{1} 指的是人工输入的名称。一个样例落地提示如下:

grounding_perception_prompt=“”" These are the official names of
hardware in a chemistry lab: [“washing_beaker”, “experiment_beaker”,
“pH_beaker”] These are user descriptions of those hardware, not
necessarily that order: [“main exp beaker”, “this beaker is used for
washing”, "beaker for measuring pH “] Match the official names to
the user descriptions using the following format: [start matching]
<“this beaker is used for washing”>|<“washing_beaker”> <“main exp
beaker”>|<“experiment_beaker”> <“beaker for measuring
pH”>|<“pH_beaker”> [end matching] “””

第三阶段:实验:为了生成实验方案,Organa.Reasoner 会收到以下提示:

experiment_prompt=“”" Experiment goal: {0} Lab equipment and
reagents: {1} I will tell you how to run a single experiment: <
Thought >{2} </ Thought > {3} <Expected Observation

{4}</Expected Observation> These are past experiments that you did: {5} Can you propose the next experiment to try, as well as the
output you expect to see? This was feedback receieved during the last
experiment, incorporate it when planning your next experiment: <
Human Feedback >{6} </ Human Feedback > Rules:

  1. Format the plan using , , tags.
  2. If you see feedback in < System Feedback > tags , consider them when planning the next experiment. “”"

{0} 是取自初始化条件字典 dict [‘goal’] 的实验目标。{1} 是取自初始化条件字典 dict[‘setup’] 的实验室设备列表。{2-4} 取自用户在初始化条件字典 dict [‘thought’]、初始化条件字典 dict[‘action’] 和初始化条件字典 dict [‘observation’] 中提供的示例。在第一个实验之后,{5} 是过去实验的记忆提示。这一点很重要,可以避免 Organa.Reasoner 多次提出相同的实验,具体内容将在“过去实验的记忆”部分进行更详细的解释。{6} 是用户对实验的任何反馈。如果实验结果与预期不符,系统会询问用户的反馈。这将在下文“歧义和不确定性缓解示例”部分进行更详细的描述。

过去实验的记忆:为了减少用于记忆的tokens数量,系统会对每 k 个实验的过去观察结果进行汇总。用 k = 3。记忆提示结构如下:

memory_prompt=“”" These are past experiments that you did: This is a
summary of what happened during the first three experiments: {0} This
is a summary of what happened during the next three experiments: {1}
… This is what happened during the most recent experiments:
prev_exp[‘thought’] prev_exp[‘action
’] prev_exp[‘observation ’]
“”"

每进行三次实验,就会使用以下提示总结实验记忆:

memory_summary=“”" These are experiments that a robot did: {0} Can
you provide a summary of these experiments? “”"

Organa.Reasoner 生成新的实验规划后,会使用 CLAIRify 将其转换为 XDL 格式。与之前的 CLAIRify 工作类似,用 OpenAI 的 GPT-3.5 Turbo (gpt-3.5-turbo) 从自然语言指令生成 XDL 代码 [7]。机器人执行实验,并将结果发送回 Organa.Reasoner,以便其与预期结果进行比较并规划后续实验。所有实验完成后,Organa.Reasoner 会被要求生成一份最终报告摘要:

final_summary=“”" Below are summaries from a series of experiments the
robot did: {0} Provide a single summary for all these experiments.
“”"

感知硬件

集成多种硬件组件,用于进行一系列化学测量。具体而言,IKA RET 控制粘度计用作称重秤,并通过与 pH 探头(适用于 Orion 系列仪表的 Orion ROSS Ultra 可填充 pH/ATC 三极管组合电极,Thermo Fisher Scientific)连接,用于 pH 值测量。此外,Sartorius BCA2202-1S Entris 用作高精度电子秤。我用便携式恒电位仪 [47] 对溶液进行循环伏安扫描,以测量其电化学性质。实验装置中使用两台相机。安装在机器人末端执行器上的 Intel RealSense D435i 立体相机通过 AprilTag 库 [24] 检测基准标记来估计场景中的物体姿态,并用于测量溶液浊度。鉴于实验室中透明物体的普遍存在(如文献[60]所述),采用ZED Mini相机进行透明物体检测和深度估计[84]。用ZED相机的深度图,并采用神经深度模式。两台相机的手眼标定均使用基础设施机器人库完成。这些设备通过USB协议连接到机器人控制器。

氧化还原电位反馈:进行循环伏安法(CV)测量[88],以测量给定pH值下醌溶液的氧化还原电位。便携式恒电位仪[47]连接到机器人控制器,CV测量采用标准三电极体系,其中工作电极为玻碳电极,对电极和参比电极为银丝电极。通过选取测量电压范围内的最小值和最大值,自动检测CV曲线中的还原峰和氧化峰。两个峰值电压的平均值作为样品的氧化还原电位。

动作硬件

溶液加热和搅拌方面,采用 IKA RET 控制粘度控制器,该控制器通过 PyVISA [89] 与机器人工作站进行接口连接。为了在电化学实验的不同工作站之间精确转移液体,用一台配备 12 通陶瓷阀(Tecan Systems)的 Cavro XCalibur 泵,该泵可根据要求将试剂输送到指定的容器中。所有实验均使用配备 Robotiq 2F-85 夹爪的 Franka Emika Panda 机械臂机器人。为了便于在桌面场景中从侧面抓取物体,将末端执行器放置在机器人最后一个连杆上,使其与地面平行。这种配置可以通过固定连杆或集成 Dynamixel XM540-W150 伺服电机作为额外的自由度来实现。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐