基于大语言模型的四足机器人长距离运动和操作
25年3月来自清华、上海姚期智研究院和伯克利分校的论文“Long-horizon Locomotion and Manipulation on a Quadrupedal Robot with Large Language Models”。本文提出一种基于大语言模型(LLM)的系统,旨在赋予四足机器人超越短期运动的长期任务解决能力。四足机器人的长期任务极具挑战性,因为它们既需要对问题语义有深刻的理
25年3月来自清华、上海姚期智研究院和伯克利分校的论文“Long-horizon Locomotion and Manipulation on a Quadrupedal Robot with Large Language Models”。
本文提出一种基于大语言模型(LLM)的系统,旨在赋予四足机器人超越短期运动的长期任务解决能力。四足机器人的长期任务极具挑战性,因为它们既需要对问题语义有深刻的理解以进行任务规划,也需要具备广泛的运动和操作技能以与环境交互。该系统构建一个基于大语言模型的高级推理层,该推理层能够根据任务描述生成混合离散-连续的机器人代码规划。它包含多个LLM智体:语义规划器,用于绘制规划草图;参数计算器,用于预测规划中的参数;代码生成器,用于将规划转换为可执行的机器人代码;以及重规划器,用于处理执行失败或人为干预。在底层,采用强化学习来训练一系列运动规划和控制技能,从而充分发挥四足机器人的灵活性,使其能够与丰富的环境进行交互。其系统已在一些仅凭单一技能无法完成的长期任务上进行测试。模拟和现实世界的实验表明,它能够成功地找出多步策略,并表现出一些非平凡的行为,包括构建工具或通知人类寻求帮助。
这个系统如图所示:在高层层面,其利用预训练的大语言模型(LLM)的规划能力进行长远的抽象推理。凭借丰富的编码常识知识,基于LLM的推理层无需演示或搜索启发式方法即可直接预测高层策略。为了更好地应用于机器人问题,将推理模块设计为多个LLM智体的级联结构。语义规划器绘制离散的规划图,参数计算器预测连续的参数。随后,代码生成器将该规划图封装成机器人技能所需的函数调用。为了实现高层闭环规划,引入重规划器来处理意外事件。在底层,利用无模型强化学习训练一系列运动规划和控制策略,涵盖从四足行走到双足操作的各种运动。

利用 LLM 进行长时任务的高级推理
为了解决推理和基础构建方面的挑战性问题,设计四个侧重点不同的LLM智体作为高级推理模块。如图所示,前三个级联智体——语义规划器、参数计算器和代码生成器——协同工作,生成完整的初始规划。语义规划器侧重于在物理可操作性和机器人能力约束下进行任务分解,并为长时问题绘制基本技能规划图。参数计算器确定规划中基本技能的精确参数。代码生成器将规划和参数转换为一段可执行代码,该代码能够策略性地组合可用的低级技能来处理长时问题。此外,引入重规划器作为第四个智体,以实现闭环控制。重规划器能够应对意外情况,通过调整规划并重新计算必要的参数,在执行过程中动态生成新的代码规划。

所有 LLM 智体采用 GPT-4-turbo-preview [34] 。
- 语义规划器:该智体在抽象层面上进行推理,根据任务设置和可用机器人技能的自然语言描述来预测可行的规划。所需的策略可能因环境配置的变化而有所不同,例如,如果坡度在其能力范围内,机器人可以直接爬楼梯;否则,它需要先找到一个箱子踩上去。与以往针对特定环境配置进行规划的方法不同,要求规划器考虑不同的条件,并使用“if-else”语句将所有策略统一到一个规划中。因此,生成的规划在测试时可以泛化到不同的设置。
首先向规划器提供每项运动技能的描述、需要遵循的物理规则以及一个展示输出格式的示例。接下来,给出环境描述,具体包括环境中的目标信息、待完成的任务以及机器人底层技能的限制。请注意,环境信息不包含目标的数值。我们鼓励规划器在规划中使用“if-else”语句来考虑不同的情况。
规划器将规划构建为一个包含分支和跳转的工作流。每个步骤要么是可行性检查,要么是执行步骤。检查步骤会根据环境配置将控制流重定向到不同的步骤,或者如果考虑到所有约束条件,任务被认为无法解决,则会引发错误。执行步骤会调用一个或多个参数化的技能按顺序执行,但相应的参数可能不正确或未定义,例如,步骤 2 中攀爬技能的预测目标位置没有考虑机器人的尺寸。这些参数由接下来描述的计算器处理。
-
参数计算器:用第二个 LLM 来获取规划中调用的机器人技能的正确参数。先前的研究[32]、[35]、[33]发现,单个LLM 不擅长跨多个抽象层次进行推理。任务分解的规划器在技能的详细参数方面存在错误,因此将计算任务分配给另一个LLM。参数计算器旨在生成可用于根据环境描述中给出的变量计算3D目标的公式。它以预测的规划和原始环境描述作为输入,并根据计算规则和一个示例输出进行提示。对于每个操作步骤,计算器首先解析出需要计算论证的基本技能,然后思考如何用语言进行计算,最后给出论证每个维度的公式。其输出快照如上图所示。
-
代码生成器:给定抽象规划和规划中技能的详细参数,用第三个 LLM 智体将其转换为可执行的 Python 代码,该代码可以直接协调底层运动和操作技能。向代码生成器提供已记录的函数定义和可在代码中使用的全局变量、代码编写规则以及一个用于格式化的示例。可用函数包括机器人的技能集和一个用于查询物体位置的感知函数。全局变量是物体的几何属性,其值将在测试时赋值。然后,将抽象规划、参数和环境描述提供给代码生成器。代码输出如上图所示。代码生成器将规划中的控制流解释为条件块,触发每个分支中的相关技能,并执行相应的算术运算以获得参数。
-
重规划器:实现一个重规划器来处理执行过程中发生的意外事件,例如人为干扰导致任务目标改变或技能执行失败。开环规划缺乏适应执行反馈的能力,因此容易受到系统性错误和意外事件的影响。为了缓解这些问题,当发生意外事件时,机器人首先调用恢复策略并收集相关的错误信息,包括机器人的空间信息以及失败技能的关联对象。如果是人为干扰,机器人会收到新的语言提示指令,以相应地调整其行为。然后,重规划器利用原始环境描述和先前生成的主代码规划,生成一个适应当前情况的新规划。通过从主代码规划中提取必要的信息,它绕过前三个级联结构,从而减少规划调整的开销。通过分析执行误差,重规划器可以确定是需要优化规划还是重新标定参数。这种闭环方法使机器人能够迭代地修正其动作,从而增强适应性并确保任务的稳健执行。
基于强化学习的底层运动规划与控制
利用强化学习的运动规划和控制策略,实现用于高层推理层的机器人技能API。首先,训练短期运动的控制策略,包括四足机器人在地形上的移动(例如爬到指定位置)以及双足机器人的移动和操作技能(例如站立、手部触地、坐下)。基于这些控制策略,开发中期策略的运动规划策略,例如移动物体的推到指定位置以及用于导航并避免碰撞的行走到指定位置。为了更稳健地切换技能,进一步微调策略,按照LLM生成的代码中预测的顺序,从前一个技能的终止状态初始化每个策略。所有这些技能均使用PPO算法[36]在域随机仿真中进行训练。
如下图显示由强化学习(RL)技能库驱动的多样化行为:四足运动、目标推动的运动规划器、双足操作和目标避障运动规划器。

- 短期运动的控制策略学习:四足机器人的运动被建模为速度跟踪运动,并通过多阶段训练,逐步增加地形难度,以高效学习鲁棒的策略。在第一阶段,机器人在平坦表面上训练行走策略,奖励机制与文献[37]相同。然后,该策略被转移到第二阶段,学习在静态楼梯上行走,楼梯高度范围为0至0.35米。当机器人能够爬上最高楼梯后,它被转移到最后一个阶段继续训练,在这个阶段,楼梯由多个可移动的箱子组成。机器人需要学习在不移动箱子的情况下爬过这些箱子。最后一个阶段旨在引导机器人学习一种平稳而鲁棒的攀爬策略,避免踩到地形边缘。
双足运动和操作。为了便于与物体交互,开发双足运动和操作策略,控制四足机器人用前腿到达目标位置,同时用后腿站立。首先训练一个双足运动策略,使其能够从四足站立姿态向上倾斜,然后使用文献[38]中的方法跟踪线性双足行走速度。之后,训练一个双足操作策略,使其能够使用一条前腿到达目标位置,该策略包含三类奖励项。第一类是位置跟踪奖励,鼓励机器人将其左前脚趾尽可能移动到期望位置。为了减少机器人在期望位置附近的抖动,我们还给予机器人一个额外奖励,该奖励与机器人与期望位置距离在阈值范围内的连续步数呈线性关系。第二类奖励用于调整机器人底座和其他三条腿的姿态,使其保持直立站立姿态。第三类奖励是正则化项,用于惩罚突发动作、过大的关节速度和危险碰撞。该策略基于双足站立姿态的状态进行训练,其中机器人底座姿态和关节位置取自一个手工设计的参数范围。为了实现从双足站立到四足站立姿态的过渡,还根据文献[38]训练一个坐下策略。
2)基于分层强化学习的运动规划策略:用分层强化学习构建物体推动和避障技能,这两种技能均作为中间层运动规划策略,基于先前获得的四足运动控制器进行训练。物体推动策略旨在将物体移动到期望姿态。它被训练成每0.5秒预测一次运动控制器的线速度和角速度。该策略以低维状态作为输入,包括当前物体姿态和期望物体姿态、机器人本体姿态以及物体尺寸。主要奖励是鼓励机器人缩短当前物体姿态和期望物体姿态之间的距离。此外,还奖励机器人面向物体,以便保持对物体的视野。
至于避障策略,其目标是控制机器人移动到期望的位置和方向,同时避免与场景中的障碍物发生碰撞。该策略与物体推动策略共享相同的动作空间,并每 0.2 秒预测一次动作。观测数据同样包含障碍物的当前姿态、机器人底座的当前姿态和期望姿态以及障碍物的大小。奖励由姿态跟踪项和避障项组成。姿态跟踪项鼓励机器人匹配目标姿态,而避障项则惩罚机器人过于靠近障碍物。
- 强化学习技能的链式学习和恢复:直接按顺序执行不同的技能通常会导致次优行为,因为一个策略的终止状态分布可能与下一个策略的初始状态分布不完全匹配。例如,之前的推箱子策略通常会在箱子偏离理想姿态并停在现有楼梯正下方时终止。从分布外的状态执行攀爬技能会导致失误和跌倒,从而随着技能执行次数的增加,成功率会降低。为了减轻前一个策略的终止状态对后续策略的影响,收集每个策略的前一个策略的终止状态集,然后基于原始初始状态分布和收集到的状态集对策略进行微调。需要注意的是,为了降低计算负担,仅对根据推理层生成的规划将按顺序执行的策略对进行微调。
还训练一个基于强化学习的恢复策略来恢复稳定的四足姿态。通过在执行过程中采样状态,尤其是在攀爬和手部触地等高风险技能中,定义多样化的初始条件。奖励随后引导平滑过渡到目标关节状态,从而实现快速故障恢复并确保为重新规划做好准备。
仿真实验设置
- 基线:首先在仿真环境中验证所提出的由级联 LLM 智体组成的高级推理层设计。提出 LLM (S+P+C+R) 方法,该方法集成语义规划器、参数计算器、代码生成器和重规划器。设定任务完成时间限制,如果技能执行失败,则可以在限制时间内调用重规划器。然后,将该方法与以下变型进行比较:
LLM (S+P+C) 不允许调用重规划器,但保留完整的初始规划生成结构。
LLM (S+C) 移除参数计算器智体,即将规划器的输出和任务描述传递给编码器。编码器需要计算参数以编写功能性程序。
LLM © 仅包含代码生成器,即直接从任务描述生成代码。
RoboTool [33] 是一个基于 LLM 的规划框架,专注于工具使用任务。
分层强化学习 [18]:训练一个高层强化学习策略,该策略每 0.1 秒联合预测离散的底层技能 ID 及其连续参数。
为了确保与 RoboTool 进行公平的高层推理比较,构建遵循 RoboTool 结构和提示的 LLM 智体,并为 RoboTool 提供相同的底层技能,同时用方法中的附加信息和计算规则补充其原始规则。根据其环境描述设置提供特定的数值参数,这些参数并非 LLM 推理层所必需。对于分层强化学习,实现一个双头 MLP,其输出层分别用于离散预测和连续预测。该策略使用 PPO [36] 进行优化,并使用基于上述距离度量的密集奖励进行训练。
- 基准任务:用四个需要策略性高层推理的基准任务进行实验。(a) 开关灯任务要求机器人关闭位于其够不到的高处按钮。机器人需要根据楼梯的高度判断是否需要用箱子搭建台阶,然后爬上楼梯并站起来按下按钮。(b) 包裹递送任务是将包裹送入一个门已关闭的房间。机器人应该按门铃,请房间里的人开门,然后将包裹推入房间。© 桥梁搭建任务要求机器人搭建一座桥梁到达目标平台。(d) 乘坐电梯任务中,机器人需要学习如何按下按钮呼叫电梯,并在电梯内选择正确的楼层按钮到达指定楼层。该任务会提供当前楼层和目标楼层,明确要求机器人决定是按下上行按钮还是下行按钮。为每个任务生成如上图所示的机器人代码,然后在仿真环境或真实机器人上执行该代码。3) 评估指标:性能评估采用以下两种方法:(i) 完成整个任务的总体成功率(下图显示所需策略的示例,生成的主规划代码中不同错误类型的总发生次数,每个变型取十个样本);(ii) 根据每个任务语义定义的归一化距离指标。灯光开关和电梯乘坐的归一化距离计算为机器人脚趾到按钮的最短距离。报告包裹投递时包裹与门后固定位置之间的最短距离,以及机器人搭建桥梁时机器人到目的地的距离。所有距离指标均已根据初始距离进行归一化。

用 0.2 的温度生成 3 组基于 LLM 方法的代码,并在仿真中对每组代码进行 100 条轨迹的评估。在每条轨迹中,随机化物体的大小、初始姿态和物理属性,以及机器人关节的动力学。由于 RoboTool 旨在为特定的参数化场景生成代码,因此为每条轨迹重新生成代码。
真实世界实验
为了便于将强化学习策略成功部署到真实的 Xiaomi Cyberdog2 [39] 机器人上,在仿真训练过程中,在运动控制中加入域随机化,并在训练过程中加入观测噪声。在目标物体上贴上多个 AprilTag [40] 标签,并使用机器人上的前视 RealSense D430 摄像头进行姿态估计。还随机冻结观测数据,以模拟由于图像运动模糊和目标可见性丧失导致的检测失败情况。
重规划器部署:为了支持在真实世界中部署基于失败的重规划策略,并获取必要的失败相关数据,开发一个使用现成模型的流程,如图所示。一个第三人称视角摄像头记录机器人的策略执行过程。当策略执行失败时,机器人会根据失败的技能识别关键目标进行查询。目标检测器 [41] 在相应提示的引导下预测目标边框,然后将这些边框输入到 SAM2 跟踪器 [42] 中,以捕获目标在执行过程中的空间轨迹。最后,通过比较深度图导出几何轨迹。对于手部触摸策略,该轨迹能够确定机器人脚趾与按钮之间的最小距离,从而使重规划器能够利用此偏移量来优化代码规划。

长时域任务:在现实世界中对上述两个基准任务进行系统测试。如下图上半部分所示,结合强化学习 (RL) 运动技能执行生成的代码来关闭灯(下半部分是另一个基准任务)。在初始设置中,任何单一技能都无法触及灯按钮的高度,并且第一级楼梯对于机器人来说也太高,无法直接攀爬。考虑到场景配置,LLM 规划器决定在现有楼梯前放置一个较低的箱子,以便机器人可以将其用作中间平台攀爬上去并触摸按钮。最后,它执行坐下策略以过渡到四足姿态。

还展示四足机器人如何将包裹送入初始门关闭的房间。为了进入房间,推理层会制定一个策略,通过按门铃来通知房间内的人开门。为了避免包裹受到不必要的碰撞,机器人在移动到门铃处并推包裹之前,会利用其避障运动技能。测试中断重规划功能。在配送任务执行过程中,如果成功按门铃但无人应答,会手动中断机器人的策略执行,并允许它按下按钮开门。机器人能够根据新的情况重规划,整合之前的规划并生成新的代码来完成任务。
局限性:目前,推理层基于专家设计的一组固定的底层机器人技能运行。尽管系统采用闭环结构和重规划器来处理意外事件,但它仍然局限于相对简单的场景,尚未在高度复杂或非结构化的故障情况下进行全面评估。
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)