[论文阅读]A Survey of Embodied Learning for Object-Centric Robotic Manipulation

Abstract

--以对象为中心的机器人操纵的Embodied learning是体现人工智能中一个快速发展且具有挑战性的领域。它对于推进下一代智能机器人至关重要,最近引起了人们的极大兴趣。与数据驱动的机器学习方法不同,具身学习侧重于通过与环境的物理交互和感知反馈进行机器人学习,使其特别适合机器人操纵。本文对这一领域的最新进展进行了全面的调查,并将现有工作分为三个主要分支:1)Embodied感知学习,旨在通过各种数据表示来预测物体姿态和启示;2) Embodied policy学习,侧重于使用强化学习和模仿学习等方法生成最佳机器人决策;3) Embodied任务导向学习,旨在根据物体抓取和操纵中不同任务的特点优化机器人的性能。此外,我们还对公共数据集、评估指标、代表性应用、当前挑战和潜在的未来研究方向进行了概述和讨论。与本次调查相关的项目已在https://github.com/rayyoh/ocrm调查。

索引术语——Embodied 学习、机器人操作、姿势估计、启示学习、policy学习、强化学习、模仿学习、物体抓取、多模态llm。

I. INTRODUCTION

体现学习作为体现人工智能的基石,与传统的机器学习形成鲜明对比。它强调通过物理互动和实践经验获得知识[5],[6]。数据来源涵盖广泛,包括感官输入、身体动作和即时环境反馈。这种学习机制是高度动态的,通过实时交互和反馈循环不断改进行为和操作策略。体现学习在机器人技术中至关重要,因为它使机器人具有更强的环境适应性,使它们能够应对不断变化的条件,并承担更复杂和复杂的任务。

虽然已经提出了大量的rp3680s方法,但本次调查主要关注以对象为中心的机器人操纵任务。此任务的输入是从传感器收集的数据,输出是机器人执行操纵任务的操作策略和控制信号。目标是使机器人能够高效自主地执行各种以对象为中心的操纵任务,同时增强其在不同环境和任务中的通用性和灵活性。由于对象和操作任务的多样性、环境的复杂性和不确定性,以及现实世界应用中的噪声、遮挡和实时约束等挑战,这项任务极具挑战性。

虽然已经提出了大量的embodied learning方法,但本次调查主要关注以对象为中心的机器人操纵任务。此任务的输入是从传感器收集的数据,输出是机器人执行操纵任务的操作策略和控制信号。目标是使机器人能够高效自主地执行各种以对象为中心的操纵任务,同时增强其在不同环境和任务中的通用性和灵活性。由于对象和操作任务的多样性、环境的复杂性和不确定性,以及现实世界应用中的噪声、遮挡和实时约束等挑战,这项任务极具挑战性。

图1(a)展示了一个典型的机器人操作系统。它配备了一个机器人手臂,配备了摄像头等传感器和夹具等末端执行器,使其能够操纵各种物体。该系统的智能围绕三个关键方面展开,对应于图1(b)中描述的三种embodied learning方法。1) 先进的感知能力,包括利用不同传感器捕获的数据来了解目标物体和外部环境;2) 精确的policy生成,需要分析感知信息以做出最佳决策;3) 任务导向,通过优化执行过程以获得最大效率,确保系统能够适应特定任务

近年来,围绕上述三个关键方面进行了广泛的研究,特别是随着大型语言模型(LLMs)[7]、神经辐射场(NeRFs)[8]、扩散模型[9]和3D高斯散斑[10]的蓬勃发展,产生了许多创新的解决方案。然而,值得注意的是,缺乏一项全面的调查来概括这一快速发展领域的最新研究。这促使我们撰写这项调查,系统地回顾前沿进展,总结遇到的挑战,以及未来的研究方向。

II. EMBODIED PERCEPTUAL LEARNING

为了执行以对象为中心的机器人操作,机器人必须首先学会感知目标对象及其周围环境,这涉及数据表示、对象姿态估计和启示学习。在本节中,我们将对这些作品进行全面概述

A. Data Representation

在以对象为中心的机器人操作中,机器人利用各种传感器来感知周围的环境。这些包括RGB和深度相机等视觉传感器,它们捕获彩色图像和深度图;LiDAR,通过距离测量创建高分辨率3D点云;以及触觉传感器,其检测抓握过程中的力和接触表面上的压力分布。这些传感器收集的数据有不同的形式,导致针对特定解决方案量身定制的各种表示。接下来,我们将介绍三种主要的数据表示方法:基于图像的表示、3D感知表示和基于触觉的表示。

1) Image-Based Representation

这项工作主要侧重于仅从RGB图像构建有效的表示,从而为机器人操作中的后续任务(如物体姿态估计)提供坚实的基础。根据输入图像的数量和网络架构的变化,现有的方法可以大致分为四种类型:单幅图像单分支(SISB)[40]、单幅图像多分支(SIMB)[41]、多幅图像单支(MISB)[42]和多幅图像多支(MIMB)[43],如图2所示。

(a) 如图2(a)所示,SISB方法采用单个RGB图像作为输入,具有一个流线型的网络架构,具有一条主路径。它通常采用CNN等深度学习模型从源图像中提取深度特征,然后将这些特征输入到姿态估计器中,以生成机器人操纵所需的基本对象姿态信息。SISB在端到端网络框架内采用了一种典型的深度特征表示方法。尽管它速度快、简单,但SISB在表达物体3D几何信息方面的局限性可能会导致随后更粗糙的物体姿态估计

(b) 为了克服SISB的局限性,SIMB方法在主路径旁边引入了额外的网络分支,如图2(b)所示。这些附加分支旨在捕获更丰富的辅助信息。例如,MonoGraspNet[41]结合了关键点网络和法线网络,分别生成关键点热图和法线图。它提供了一种更稳健的中间表示,提高了姿态估计的准确性。然而,这种方法在很大程度上依赖于额外分支的预测精度。由于基于单个图像进行预测的固有局限性,在生成的中间表示中不可避免地引入了误差。这些错误会放大对后续处理步骤的不利影响,并增加机器人操作任务的不确定性

(c) 由于单幅图像中缺乏尺度信息,准确估计物体的三维几何信息具有很大的挑战性。因此,许多研究都集中在探索使用多幅图像来解决这一约束的方法上。在这些方法中,MISB框架受到了广泛关注。如图2(c)所示,该框架旨在使用多幅图像进行3D重建,以恢复场景的深度信息[44],[45],这反过来又有助于生成高效的3D表示。具体来说,深度恢复可以通过NeRFs[8]或高斯散斑[10]等先进技术来实现。

(d) 与MISB不同,MIMB旨在直接从机器人在多个位置捕获的图像中生成多视图图像表示,绕过3D重建阶段。如图2(d)所示,MIMB方法结合了额外的预测器来获取额外的信息,弥补了3D信息的不足,增强了机器人的场景感知。例如,RGBManip[43]引入了一种多视图主动学习方法,并利用SAM模型[46]生成的分割图为多视图姿态估计器提供增强的表示。

2) 3D-Aware Representation:

本节探讨了3Daware表示,它通常将RGB-D图像作为输入。现有方法根据其生成的表示分为三类:基于深度的表示(DR)、基于点云的表示(PR)和基于过渡的表示(TR),如图3所示。

图3。三种3D感知表示框架的概念比较。DR:基于深度的表示;PR:基于点云的表示法;TR:基于Transition的表示法。

 (a) DR方法通常采用网络同时从RGB-D图像中提取2D特征,如图3(a)所示。一些人将这些提取的特征直接用于后续任务[47]、[48],这通常需要后验细化。例如,Lenz等人[48]引入了一种两级级联网络架构,其中第一个网络有效地过滤掉了提取特征后生成的许多不太可能的抓取,第二个网络专注于评估第一个网络的检测结果。另一项研究[49]、[50]利用双流网络从RGB和深度图像中独立提取2D特征。随后,这些特征被组合或融合,以生成下游任务的最终特征Fd。

(b) PR方法不是直接在RGB-D图像上提取特征,而是首先通过预处理创建点云,如图3(b)所示。以前处理从RGB-D图像转换的点云的方法[51]通常涉及对点云进行体素化,并利用3D卷积神经网络提取特征。然而,这种方法在内存使用方面效率低下。PointNet的引入[52],一种专为点云设计的网络架构,彻底改变了该领域。许多方法[53]、[54]现在更喜欢利用类似PointNet的框架,这些框架可以从点云中的各个点直接提取特征,然后为不同的目标定制特定任务的模块。

(c) 图3(c)展示了TR工作的框架[55],[56],其重点是通过将输入的RGB-D数据转换为占用场、NeRF或3D高斯等3D表示来提高模型对3D几何的理解。例如,参考文献[57]涉及将RGB-D数据转换为体素表示,使用体素编码器创建3D特征体。然后,该体积被用于构建神经辐射场,以对3D空间进行建模并预测机器人动作。参考文献[58],[59]将RGB-D数据投影到密集点云中或体素化点云中,这是在场景中放置3D高斯分布和增强对机器人操纵任务的支持的基础。

3) 基于触觉的表示

触觉传感获取关键的力和位置信息,使机器人能够敏感地感知与物体的接触和微妙的表面变化。这些信息对于提高机器人执行复杂任务的能力以及提高其操作精度和适应性至关重要。

触觉传感技术的领域是多样化的,例如Gelsight[60]、DIGIT[61]和AllSight[62]。这些传感器可以捕获各种触觉信息,如接触位置、法向力、切向力和扭矩。这些数据的表示方法也各不相同。一种常见的表示是通过在特定时间窗口内对触觉反馈进行多次采样而获得的时间序列[63],[64]。这些序列可以使用LSTM等神经网络转换为特征向量[65],这简化了后续模型中的处理。另一种表示形式是触觉图像[66],[67],它以类似于标准RGB图像的直观格式直观地呈现触觉信息,并且可以使用CNN直接进行特征提取处理。此外,触觉数据可以与视觉和音频等其他模态集成,以创建多模态表示[68],[69],提供对环境和物体的全面理解

此外,创建高质量的触觉表示通常需要大量的训练数据。然而,收集触觉数据比视觉数据更耗时。为了克服这一挑战,研究人员提出利用NeRF或GAN等技术生成触觉数据[70],[71]或构建模拟环境来模仿触觉体验[72],[73]。随着这些技术的不断发展,我们预计基于触觉的表示将在机器人操纵中发挥更重要的作用。

4) Discussion:

基于图像的表示最小化了传感器要求,但仅依赖RGB图像信息而受到限制。3D感知表示利用图像和深度数据为学习任务提供更稳健的表示。基于触觉的表示作为一种补充方法,进一步增强了机器人的感知能力。未来的研究应侧重于将这些方法结合起来,充分发挥各自的优势。

B. Object Pose Estimation

抓取检测是机器人操纵的重要组成部分,它依赖于精确的物体姿态估计作为关键步骤[74]。姿态估计的精度显著影响机器人成功抓取目标物体的能力,强调了开发鲁棒且高效的姿态估计算法的必要性。根据预测输出的类型,主要有两类对象姿态估计方法:2D平面姿态估计[75]和3D空间中的6D姿态估计[76],[77]。前者预测对象在2D平面中的位置和1D旋转角度,主要用于操纵2D平面内的对象。该方法的一个示例应用是工业装配线上的产品分拣,其中机器人手臂夹具通常位于分拣平台上方,并利用垂直向下的角度抓取目标物体。后者预测物体的6DoF(自由度),包括3D旋转和3D平移,可以充分描述物体在3D空间中的位置和方向。与2D平面姿态估计相比,6D姿态估计的应用范围更广,允许机器人手臂从任何角度操纵物体。

现有的研究大多集中在6D物体姿态估计上,可分为三类:实例级、类别级和新颖物体姿态估计。

1) Instance-Level Object Pose Estimation (ILOPE):

它指的是估计物体的特定实例(如特定杯子)的姿态。现有的方法通常需要对物体的形状和外观有详细的先验知识,纹理CAD模型可以提供这些知识。由于这些方法对目标对象的特定样本进行训练,因此训练的模型是特定于对象的。

ILOPE问题可以表示为方程1:给定一组No对象,以及它们相应的3D模型,目标是学习一个模型Φ来估计给定RGB或RGB-D图像i中存在的每个对象实例S的变换矩阵T。该变换T由3D旋转R∈SO(3)和平移分量T∈R3组成,可以将目标S映射到相机坐标系。

已经进行了大量研究,以在实例级别估计对象的姿态。一些方法利用深度神经网络直接回归物体的6D姿态,如PoseCNN[78]和CDPN[79]。然而,这些方法可能仍然需要后处理优化[80],[81]以获得更好的预测结果,因为它们相对简单。另一类方法涉及使用关键点学习2D-3D或3D3D对应关系[82],然后采用基于RANSAC的PnP(Perspective-n-Point)算法[83]、[84]来生成姿态估计结果。此外,模板匹配[85]或特征点投票[86]是6D物体姿态估计的有前景的方法。

上述方法具有产生高度精确的姿态估计结果的优点。然而,它们需要针对每个实例进行培训,这使得它们不适合处理大规模和多样化的对象集。

2) Category-Level Object Pose Estimation (CLOPE):

它涉及估计属于预定义类别的物体(如杯子)的姿态。此任务的现有方法通常不依赖于对特定对象实例的训练。相反,它们使用对象类内或对象类之间的某些特征进行姿态估计。这些方法不需要为每个实例都提供3D模型,这在事先不知道对象的确切形状和外观时特别有益。

从形式上讲,CLOPE问题可以表示为方程2:给定一组Nc对象类别和一组属于不同类别的对象O,目标是学习一个模型Φ来估计出现在观察到的RGB或RGB-D图像i中并且属于类别ck的每个对象实例S的变换矩阵Tf。在这种情况下,每个对象的3D模型不可用。

为了在类别级别估计物体姿态,wang等人[87]引入了nocs(归一化物体坐标空间)NOCS (Normalized Object Coordinate Space),这是一个基于物体类别的坐标系。nocs将物体的姿态和大小编码为归一化坐标向量,然后可以用神经网络直接推断出观测像素和nocs之间的对应关系。chen等人[88]利用物体类别的结构化先验来指导姿态自适应,并采用transformer-based网络来建模物体实例和先验之间的全局结构相似性。这些方法主要适用于刚性物体的姿态估计[89],[90]。然而,由于关节对象姿势的复杂性,它们不能有效地推广到关节对象,关节对象姿势不仅涉及平移和旋转,还涉及各种关节运动。为了解决类别级关节姿态估计(cape)问题,li等人[91]扩展了nocs,并引入了ancsh(关节软件归一化坐标空间层次),这是一种为关节对象量身定制的类别级表示方法。此外,liu等人[92]提出了一种称为caper(cape-real)的现实世界任务设置,可以处理多个实例和不同的运动学结构

上述方法都是在已知对象类别的假设下估计对象的姿态。他们通常使用已知对象类别的数据集训练模型,然后对对象的新实例进行姿态估计。这些方法允许在预定义的对象类别内进行泛化,但它们不能处理新的对象类别。

3) Novel Object Pose Estimation (NOPE):

近年来,在训练过程中从以前看不见的类别中估计新物体的姿态已成为一个非常活跃的研究领域。在这种情况下,实例级3D模型和类别级先验信息不可用,但我们可以将目标对象的参考图像作为辅助。这个问题可以形式化为方程3:给定一个或多个测试图像I以及与目标对象相关的几个参考图像Ir,目标是学习一个模型Φ,通过利用参考图像的视觉信息来估计测试图像内的变换矩阵T。

在这个领域,经典方法通常采用图像匹配[93]、[94]或特征匹配[95]、[96]技术,随后对新的对象实例进行姿态估计。例如,liu等人[93]开发了gen6d,这是一种新型的6d姿态估计方法,集成了对象检测器、视点选择器和姿态细化器,能够在不依赖3d模型的情况下推断出看不见对象的6d姿态。goodwin等人[96]提出了一种基于自监督视觉transformer和语义对应的方法来实现零样本物体姿态估计。

最近,研究界越来越关注利用大型模型来增强深度模型对NOPE任务的泛化能力。Lin等人[97]介绍了SAM-6D方法,该方法利用Segment Anything Model(SAM)[46]的强大语义分割功能来生成潜在的对象建议。同时,Wen等人[98]研究了将LLM与对比学习相结合的方法,通过在大规模合成数据集上进行训练,显著提高了模型泛化能力。这些方法的主要优点是它们可以处理新的对象类别,从而增强它们在更广泛的现实世界场景中的通用性和适用性。然而,应该指出的是,大型模型通常需要更多的训练数据和计算资源,这可能是一个潜在的限制。

4)讨论:

这三种姿态估计方法各有特定的应用场景和优缺点:ILOPE具有高精度,但仅适用于已知物体;CLOPE具有广泛的适用性,但准确性相对较低;NOPE具有高度的灵活性,但在准确性和鲁棒性方面面临着重大挑战。

C. Affordance Learning

一旦获得了估计的物体姿态,下一步包括识别物体的潜在交互区域,如图4所示,这一过程称为affordance学习[99]。作为机器人操作的关键组成部分,启示学习使机器人能够理解对象的功能和潜在动作。根据数据来源,启示学习可分为两类:监督学习启示学习和互动启示学习。

图4。[100]提供的数据集中的四个代表性affordance预测示例的可视化,包括提袋、打开瓶子、抓刀和打开水龙头。绿化地面真相标签以红色突出显示。

III. EMBODIED POLICY LEARNING

EMBODIED policy学习旨在赋予机器人高效执行操纵任务所需的复杂决策能力。本节将把具身policy学习过程分为两个基本阶段:policy表示和policy学习,阐明这些技术如何使机器人实现预定义的目标。我们在表二中总结了体现policy学习的关键工作。

 A. Policy Representation

policy的作用是通过将观察结果作为输入并确定要执行的相应动作来模拟机器人的行为。这个过程在数学上表示为,其中o和a分别表示观测空间和动作空间。policy表示在具身policy学习中至关重要,因为它显著影响机器人的决策能力。根据建模选项,policy表示分为显式、隐式和扩散policies,无论动作空间是离散的还是连续的。

1) Explicit Policy:

显式policies利用参数化函数将机器人的当前观测v∈o直接映射到动作a∈a。通常,显式policies使用神经网络等前馈模型进行参数化,可以是确定性的[118]或随机的[119]。确定性的policy直接预测要执行的动作,而随机的policy从估计的分布中采样动作,其中θ表示policy的参数。与确定性policies相比,随机policies增强了agent的exploration能力,并在复杂、不确定的环境中提供了更大的鲁棒性

在离散动作空间中,policy表示可以从有限的一组动作转换为最佳动作选择过程。分类分布通常用于计算行动概率,根据估计结果对行动进行采样。例如,zhang等人[161]将机器人装配操作policy概念化为平移、旋转和插入原语,rl随后优化了policy。在连续动作空间中,通常选择对角高斯分布来表示动作分布,由回归损失(如均方误差(mse)或基于rl的目标)引导。policy输出平均μθ(v)和标准偏差σθ(v)并且从结果分布中对动作进行采样,如下所示:

这里,表示高斯噪声的向量,⊙表示哈达玛积。应当注意,在实际应用中,标准偏差的对数通常用于防止标准偏差取负值。

2) Implicit Policy:

与显式policy模型不同,隐式policies试图通过利用基于能量的模型(ebm)为每个动作分配值[120],[121],这些模型也被认为是动作值函数[122]。该范式通过优化连续函数来学习policy,以找到能量最小的动作:

其中θ表示能量函数Eθ的参数。因此,动作预测问题被有效地重新表述为优化问题。

通常,给定一系列专家演示或表示为的在线轨迹,隐式policies由infonce式损失训练[162]。一旦训练完成,将应用随机优化来识别隐式推理的最佳动作。ebil[123]将ebm纳入逆向rl架构,利用估计的专家能量作为替代奖励。florence等人[121]进一步提出了一种基于该框架的隐式行为克隆方法,并评估了其在各种机器人任务领域(如模拟推送和双手扫地)的性能。

3) Diffusion Policy:

从去噪扩散概率模型(ddpm)[9]中获得灵感,该模型逐渐对随机输入进行去噪以生成数据样本,扩散policies将policy建模为条件生成模型[126]。该方法近似于动作分布,将观测值v视为产生相应动作a的条件:

其中k=1,2,K、 表示去噪迭代,α、β、σ是依赖于噪声调度的函数,εθ表示具有参数θ的去噪网络,N(0,I)表示标准高斯噪声。

作为并行工作,decision diffuser[125]和diffusionql[126]率先将扩散policies集成到离线rl中。这些研究表明,这种方法产生了比传统policy格式更具表现力的policy表示。虽然decision diffuser[125]建议扩展扩散policies以处理高维视觉观察,但其目前的重点仍然是基于状态的基准。相比之下,chi等人[124]提出了一种针对基于视觉的机器人操纵任务量身定制的新型diffusion policy。他们的实验结果强调了扩散policies在视觉运动器policies中的功效,以及它们在管理模仿学习中的行为多模态方面的优越性。他们还结合了后退视界控制和时间序列扩散transformers等技术,使policy适应高维动作空间,从而实现了更稳定的训练。hdp[127]将扩散policies集成到用于多任务机器人操纵的高级规划agent中,而unidexfpm[128]将扩散policies应用于预抓取操纵。通过利用条件生成范式,扩散policies非常适合多模态policy学习。例如,mdt[130]和lan-o3dp[131]通过结合语言指令来推进多模态policy学习。不同的是,beso[129]通过将分数模型学习与采样过程解耦,促进了扩散policies的快速推理。

4) Discussion:

显式policies易于实现,但难以处理复杂的任务,而隐式policies在训练稳定性和计算成本方面面临挑战。扩散policies提供了一种有前景的替代方案,可以提供更具表现力和鲁棒性的policy表示,但如何加速采样过程仍有待探索。

B. Policy Learning

在建立合适的policy表示后,下一个关键任务是训练policyπ有效地执行特定的操作任务。policy学习方法可以大致分为几种方法,包括强化学习(rl)[163],[164],模仿学习(il)[165],[166],以及结合两者元素或引入完全不同学习范式的其他方法[156],[157]。policy学习方法的选择取决于演示数据的可用性、任务复杂性和计算资源等因素。每种方法都有其优点和挑战,具身policy学习领域随着新技术和新见解的不断发展而不断发展。

1) Reinforcement Learning:

通过将policy学习过程建模为马尔可夫决策过程(mdp),rl旨在发现能够最大化预期累积折扣奖励的最优policy π∗,公式如下:

其中表示轨迹,vt和at分别表示时间步长T处的观测和动作。函数rt对应于在采取每个动作后作为环境反馈提供的奖励。这里,γ∈[0,1]是一个贴现因子,用于平衡当前和未来奖励的重要性。因此,RL的目标可以表示为:

作为决策的关键要素,rl在机器人操纵中得到了广泛的研究。openai的研究人员[167]开发了一种模拟到真实训练的pipeline,使物理五指机器人手能够执行基于视觉的对象重新定位。该pipeline最初使用Proximal Policy Optimization (PPO)在模拟中训练policy[168],然后通过域随机化将其适应物理硬件。应该强调的是,ppo是机器人操纵中广泛使用的策略rl算法,因其简单性和有效性而受到重视。对于长视野手术机器人任务,viskill[132]引入了一种名为值通知技能链value-informed skill chaining的新机制来学习平滑的子任务policies。为了创建可适应各种对象形状的通用操作policies,rma[119]提出了一个两阶段训练框架,在ppo中增加了一个额外的适配器训练阶段,增强了policy在不同对象中的鲁棒性。受基于模型的rl[169]的启发,sam-rl[133]提出了一种感知架构,该架构渲染来自不同视点的图像,并通过将这些生成的图像与实际的原始观测值对齐来优化学习世界模型,从而展示了显著的现实世界性能。mandelekar等人[134]探索了离线rl中各种设计选择的影响[135],并公开了他们的数据集以供进一步研究。为了克服rl中的探索挑战,huang等人[136]提出了演示引导的rl,该rl使用非参数回归为专家偏好的行为赋予了高值。

除了算法增强之外,由于需要特定领域的知识来准确捕捉任务目标,因此制作奖励函数仍然是强化学习中的一个重大挑战。最近,研究越来越多地探索了LLM的奖励学习能力。例如,Text2reward[137]和EUREKA[138]利用LLM的理解和生成能力,将目标的自然语言描述转换为密集且可解释的奖励代码,这些代码可以通过人类反馈进行迭代改进。这个迭代过程至关重要,因为它允许奖励函数随着新的见解或任务要求的变化而发展。因此,这种方法简化了复杂操作任务的解决方案,减少了对手动构建的奖励函数的依赖,并可能提高学习过程的有效性。

2) Imitation Learning:

il的目标不是像rl那样以试错的方式学习,而是模仿专家的行为。通常,il包括三种主要方法:行为克隆(bc)[165]、反向强化学习(irl)[170]和生成对抗模仿学习(gail)[166]。bc是一种简单而有效的方法,通过监督学习最小化专家行为和policy预测之间的均方误差来学习policy。irl在两阶段循环中运行,首先从演示中推断出奖励函数,然后使用rl技术进行policy优化。gail是一种基于生成模型的方法,它依赖于对抗学习来同时开发鉴别器和动作生成器,区分专家的动作和policy产生的动作。

早期,可微非线性动态系统,如动态运动原语(dmp)[139],被用于从轨迹级别的演示中获得技能。dmp的本质在于将一组加权基函数组成的强迫项纳入系统动力学。这些权重是通过对所需轨迹的回归分析来确定的。尽管使用的参数数量有限,但dmp的有效性受到基函数选择的限制。相反,dagger[140]将当前的policy交互数据与专家的policy演示逐步聚合,以增强训练数据。spawnnet[141]结合了一个预训练的视觉模型,为各种操作任务开发了一个通用的policy。kim等人[171]引入了一种自我注意机制来过滤掉不相关的信息,而act[142]直接在动作序列上训练了一个生成性transformer模型,专门用于在真实世界收集的数据上进行双臂操作。

鉴于收集人类演示的成本很高,重点是扩大演示数据。mimicgen[143]设计了一个系统,该系统输入了一些专家演示,并通过整合各种场景和分割对象创建了一个增强数据集。相反,bridge data[144]和open x-implementation[145]等倡议致力于在不同领域编译广泛的人类演示数据集。此外,一些研究人员利用大量以自我为中心的人类活动视频,探索了il的野外数据 in-the-wild data 的潜力。vid2robot[146]提出了一种端到端的policy学习框架,通过在人类视频数据上训练一个统一的模型。最近的研究,如ag2manip[147]和mpi[148],也采用了这种方法从人类视频中提取技能,在多任务机器人操作中表现出了出色的性能。

等变模型因其在IL中提高样本效率和泛化能力的优点而受到关注。一个值得注意的例子是Simeonov等人[172]的工作,该工作引入了神经描述符场(NDF)。这些字段利用SE(3)等价性来表示操纵对象,并通过在演示数据中搜索匹配的姿势来促进IL。在此基础上,局部神经描述符场(L-NDF)[150]通过在对象之间引入共享的局部几何特征扩展了这一概念。然而,NDF面临固有的局限性,限制了其对非固定目标的推广。为了解决这个问题,等价描述符字段(EDF)[151]在概率学习框架内重新制定了NDF,增强了其灵活性。进一步的进展包括将扩散模型集成到EDF中,如Diffusion-EDFs [153], EDGI [152], and SE(3)-DiffusionFields[154]所示。这些方法旨在提高模型在更广泛的场景中进行泛化的能力

3) Other Methods:

在具身policy学习领域,出现了几种结合了强化学习和信息学习优势的创新方法。作为一系列工作,unidexgrasp[155]和unidexgrusp++[156]延续了师生学习的范式,旨在开发一种通用的grasp policy,可以有效地在不同的对象和场景中进行概括。最初,这些方法采用无模型的rl算法来培养一个以oracle状态为输入的教师模型。随后,通过il将教师模型获得的技能提取给学生policy,其中学生policy只能获得现实的观察结果,例如通过视觉获得的观察结果。

llm和视觉语言模型(vlm)的最新突破激发了人们对它们在机器人policy学习中的应用的兴趣,利用了它们在感知、推理和决策方面的能力。这些模型将当前的视觉观察和语言指令作为输入,通过可训练的适配器生成相应的动作序列,使机器人能够执行复杂的任务并适应新的情况[157],[158]。值得注意的例子包括vila[157]和Grounding-RL[158],它们在policy学习方法中使用了预先训练的llm。相比之下,openvla[159]采用预训练的视觉编码器来提取视觉特征,随后将它们映射到语言嵌入空间。该方法利用低阶自适应微调策略为机器人操纵任务定制llm。3d-vla[160]通过整合3d空间观测和用于目标感知状态生成的扩散模型,进一步扩展了这一概念,从而形成了3d生成世界模型。

IV. EMBODIED TASK-ORIENTED LEARNING

有体现的任务导向学习不仅涉及通过强大的感知进行战略规划,还需要机器人了解其物理属性如何影响决策和任务执行。它帮助机器人发展在复杂和动态场景中做出决策的能力。具体而言,现有的具身任务导向学习工作主要集中在两个领域:对象抓取和对象操纵 object grasping and object manipulation.。如表三所示,本节将介绍为这两项任务量身定制的方法,揭示embodied learning如何提高机器人的效率和精度。

A. Object Grasping

物体抓取是物体操纵的基本基石。它封装了机器人使用夹具或吸盘等末端执行器可靠捕获目标的能力。这个过程需要分析对象的属性,如位置、形状、大小和材料,以制定抓取策略,确保稳定的控制,同时保持对象的完整性。抓取方法进一步分为单对象抓取[231]和多对象抓取[174],每种抓取方法都有自己的复杂性。图5展示了这两种方法的示例。

图5。单物体抓取(上排)和多物体抓取(下排)的图示。这些示例分别来自阿诺基准测试[173]和Grasp'Em数据集[174]。

 1) Single-Object Grasping (SOG):

先前的研究将SOG定义为端部执行器的配置,旨在实现目标物体的部分或完全形状闭合或力闭合[48]。实现单物体抓取的稳定性和鲁棒性涉及准确确定物体位置和识别适当的抓取姿势,这在工业制造[232]和医疗助理[233]等领域有广泛的应用。

典型的直接sog包括三个步骤:抓取检测、轨迹规划和执行。在这个pipeline中,机器人首先使用外部摄像头捕捉局部场景,并为目标对象规划一组候选配置。一些方法以开环方式执行最佳抓取,其中在选择最佳抓取后直接执行抓取,而无需进一步的传感器反馈。在开环抓取中,抓取检测至关重要,因为后续步骤依赖于此阶段生成的坐标。因此,各种研究都致力于提高抓取检测的精度,以促进有效的抓取程序。例如,asif等人[175]提出了分层级联森林,以推断对象类并掌握补丁和对象级别的姿态概率。最近,zhai等人[176]设计了fanet,它利用抓握关键点来提高抓握检测精度,同时保持实时效率。在anygrasp[177]中,物体的质心被纳入目标检测,并在整个抓取过程中采用开环策略。

尽管开环抓取已经得到了广泛的研究,但由于姿态估计不足和其他感知伪影,它可能会失败。为了解决这些问题,已经提出了闭环抓取,利用实时反馈来纠正感知错误和处理物体干扰。具体来说,目标跟踪和视觉伺服是实现闭环抓取的两种主要方法。例如,Marturi等人[178]明确地跟踪了6DoF物体姿态,并将其与预先计算的抓取姿态相结合,以实现自适应抓取规划和执行。此外,Morrison等人[179]提出了GG-CNN来执行闭环对象无关抓取,使用轻量级CNN来预测像素级抓取质量。之后,Piacenza等人[180]提出了VFASGrasp,它使用来自点云的视觉反馈和不确定性感知自适应采样策略来维持闭环系统。

除了上述通用的SOG方法外,如图6所示,三项具体任务因其高挑战性而受到广泛关注:透明物体抓取、杂波抓取和动态物体抓取。

图6。透明对象(第一行)、杂乱环境(第二行)和动态对象抓取(最后一行)的图示。这些示例分别来自TRansPose数据集[185]、CEPB基准测试[234]和Moving GraspNet[204]。

 Transparent Object Grasping.

透明物体是指光线可以穿过而不会发生明显散射或反射的物品,如日常生活中常见的玻璃容器和塑料瓶。对用于抓取透明物体的embodied learning技术的研究对机器人应用产生了深远的影响[235]。然而,抓取透明物体带来了重大挑战。首先,缺乏独特的纹理和外观特征,再加上光反射和折射,使大多数传感器无法准确捕捉表面信息,使传统视觉系统难以识别和定位这些物体。其次,透明物体的低摩擦力使抓握过程中的稳定操作变得复杂。

B. Object Manipulation

物体操纵涉及机器人执行的一系列控制活动,从物体抓取和利用到环境交互。这些功能在各种应用中至关重要,包括产品组装、家庭服务和精密医疗手术。目前,该领域的方法在概念上分为两大类:非灵巧操作和灵巧操作,如图7所示。接下来,我们将介绍这两种操作类型的一些代表性方法。

1) Non-Dexterous Manipulation (NDM):

它指的是在任务执行过程中,机器人使用简单的末端执行器,如夹具、吸盘或推杆,而不是依赖于精细的手指操作或复杂的手部协调。这种操纵通常具有较少的自由度。它非常适合不需要高精度或复杂性的任务,如基本的抓握、推拉。虽然它可能不如灵巧的操作灵活或适应性强,但它的简单性和效率使其在重复性任务的领域非常有前景,包括工业装配、物流分拣和农业采摘。

拾取和放置是ndm的一项基本任务,近年来得到了广泛的研究。它涉及机器人从一个位置拾取物体并将其放置在另一个指定位置。早期的研究主要集中在估计结构化环境中已知物体的姿态[238],或依赖于脚本规划和运动控制[239]。然而,最近出现了一种趋势,即为新对象创建通用的拾取和放置policies[210],以增强对更广泛场景的适应性。此外,一些研究扩展了基本的拾取和放置功能,以执行更高级别的任务,如对象重新排列[211]和套件组装[212]。这些进步代表了向更先进的操纵技能的进步,并标志着复杂机器人操作的下一步。

另一项研究侧重于提高机器人的智能,以处理更复杂的任务,例如操纵可变形和铰接的物体。对于可变形对象操纵,不同材料的物理特性的可变性以及外力下的复杂变形行为在操纵过程中引入了不可预测性,并提高了控制复杂性。该领域的研究人员正在从日常生活中的人机交互中汲取见解,为服装[213]、绳索[214]和流体[215]等材料开发特定的操作策略。对于关节对象操纵,核心挑战在于精确感知和控制每个关节部分的角度和位置,同时还需要深入了解它们的运动学特性和动态相互作用。典型的铰接物体,如门、抽屉和桶,构成了研究兴趣的核心。目前的研究前沿集中在建立零件级铰接对象操纵的基准[216]、[217],以及开发能够有效处理以前看不见的形状和类别的通用操纵policies[218]

尽管现有的方法已经证明了在各种NDM任务中的熟练程度,但它们仍然面临着几个挑战。例如,在长期作战中,确保高稳定性和无缝的作战连续性至关重要,这需要系统具有强大的耐力来执行长期任务[240];在动态环境中,机器人需要根据环境变化或物体的瞬时状态调整其位置和方向,这需要集成主动视觉适应和学习机制[241];当机器人操作过程中出现偏差或错误时,立即准确地识别错误并采取自主纠正措施对于确保不间断地完成任务至关重要[242]。未来的研究工作必须应对这些挑战,以推进NDM技术的发展。

2) Dexterous Manipulation (DM):

它旨在复制微妙的人类行为,如拧开瓶盖或搬运工具。它依赖于复杂的机器人手[243],与NDM中常用的平行夹具不同。通常,这些机器人手模仿人手的结构,具有多个手指,表现出非凡的灵活性[244],专门从事精确的抓握和操纵任务。

早期的dm方法依赖于分析运动学和动力学模型,使用轨迹优化[219]和运动学规划[220]来建立机器人控制policies和运动轨迹。然而,这些方法有一个很大的局限性,因为它们严重依赖于对动态特性的精确了解和对物体几何形状的简化假设,这在复杂的现实世界应用中往往很难获得。近年来,基于模型[221]和无模型[222]的强化学习方法在dm中越来越普遍。前者旨在从收集的数据中训练一个模型,该模型可以预测状态转换和奖励以指导policy优化。相比之下,后者不涉及环境的明确模型构建;相反,它直接从与环境互动中获得的经验中学习。另一项工作是模仿学习,从演示中学习最优控制策略[223],有时与强化学习相结合,以提高dm的有效性[224]。这些方法在执行dm任务方面显示出了有效性;尽管如此,它们主要是为特定类别的任务而设计和优化的。因此,开发通用且适应性强的dm框架仍然是一个需要进一步探索的领域

Tool Manipulation

作为一项普遍而基本的人类技能,工具操作已成为DM领域的一个关键焦点,DM致力于使机器人能够使用复杂的灵巧手或专门的末端执行器熟练地操作各种工具[245]。它的适用范围从工业自动化到手术干预,甚至太空探索,使机器人能够承担极其复杂和特殊的任务。与传统的物体操纵相比,工具操纵对机器人提出了更严格的挑战。它不仅需要精确抓取工具,还需要复杂地使用触觉反馈来准确辨别工具-工件交互的接触状态和效果[246]。考虑到现实世界中各种各样的工具,其形状、材料和用途各不相同,机器人需要表现出强大的感知和决策能力,以灵活适应并处理每种工具的特定物理特性和操作要求[247],[248]。

3) Discussion:

NDM和DM都涉及各种复杂的任务。现有的方法通常是为几个特定的任务而设计的,仍然远远不能实现真正通用的对象操作。

V. DATASETS AND EVALUATION METRICS

根据具体操作任务的不同,现有的数据集可以分为两类:对象抓取和对象操作。表四概述了广泛使用的数据集。其中大多数来自模拟环境,在类别、对象、数据域、大小和模式方面表现出相当大的差异。关于每个数据集的详细描述,请参见附录a和附录B

A. Datasets

根据具体操作任务的不同,现有的数据集可以分为两类:对象抓取和对象操作。表四概述了广泛使用的数据集。其中大多数来自模拟环境,在类别、对象、数据域、大小和模式方面表现出相当大的差异。关于每个数据集的详细描述,请参见附录a和B。

B. Evaluation Metrics

在这里,我们将介绍一些用于对象抓取和操纵的典型评估指标。

1) Object Grasping:

准确性是评估物体抓取的经典指标,它衡量的是所有预测输出中正确预测的百分比。有两个关键指标用于确定预测的正确性:“点”指标[263]和“矩形”指标[249]。在“点”度量中,如果预测矩形的中心点落在距离地面真实把握点一定阈值距离内,则认为预测是正确的。然而,该指标没有考虑抓握方向,这可能会导致高估实际表现。另一方面,“矩形”度量是专门为矩形设计的,并将方向误差纳入评估标准。它首先过滤出与地面真值G的角度偏差超过30度的预测矩形。然后,在剩余的集合中,它计算预测矩形ˆG和G之间的交点(IoU)

最后,如果J(ˆG,G)大于某个阈值τ,则预测G被认为是正确的。

此外,在现实世界的机器人实验中,抓取成功率(GSR)通常被用作评估指标。假设机器人在m次抓取尝试中成功抓取n次,GSR将为n/m。此外,还提出了几个专门定制的评估指标,如完成率[41]和AP[255]。

2) Object Manipulation:

对象操作最常用的评估指标是任务成功率(TSR)。当任务满足特定条件时,它被认为是成功的。通常,使用不同的随机种子多次执行每个任务,以减少随机变化对评估结果的影响,然后报告平均值和方差。以下公式正式定义了TSR:

其中Ns和N分别是成功执行的次数和总执行次数。值得注意的是,不同类型的操作任务的成功条件不同。以打开橱柜抽屉的任务为例,成功的条件是目标抽屉已经打开到其最大打开范围的至少90%,并且必须保持静止状态[259]。还有一些额外的指标可以从不同的角度评估模型,例如模拟的时间和运动学对象的混乱 kinematic object disarrangement[262]。

VI. APPLICATIONS

随着人工智能、机器学习和机器人技术的不断进步,智能机器人将在各个领域得到更广泛、更深入的应用。表五显示了embodied learning在以对象为中心的操作中的应用,即工业机器人、农业机器人、家用机器人、手术机器人和其他有前景的应用。有关这些应用程序的详细说明,请参阅附录C。

VII. CHALLENGES AND FUTURE DIRECTIONS

在过去的几年里,针对以对象为中心的机器人操纵任务的embodied learning方法的研究显著增加,导致该领域的快速发展。然而,目前的技术仍然面临着一些极具挑战性的问题。进一步探讨这些问题对于促进智能机器人在各个领域的广泛应用至关重要。本节将讨论几个挑战和未来潜在的研究方向。

A. Sim-to-Real Generalization

为机器人操作收集真实世界的数据是困难的,这使得创建大规模数据集具有挑战性。为了解决这个问题,目前的研究主要集中在模拟环境中的训练模型[276],这些模型提供了安全、可控和经济高效的学习场景,并能够生成几乎无限的模拟训练数据[277]。然而,现实世界的环境往往会带来意想不到的挑战和变化,而模拟环境无法准确复制这些挑战和变化。当应用于现实世界时,这种差异可能会显著降低在模拟环境中训练的模型的性能。具体来说,虚拟世界和现实世界之间的差距源于各种因素,如感知差距、控制器不准确和模拟偏差[278]。最近的研究侧重于通过使用域随机化[279]、物理约束正则化[280]和迭代自训练[281]等方法来缩小这一差距。对这个问题的进一步研究可以帮助提高机器人操纵方法对现实世界环境的适应性,并提高其在实际情况下的性能。

B. Multimodal Embodied LLMs

人类拥有丰富的感知能力,如视觉、听觉和触觉,这有助于他们收集有关周围环境的详细信息。此外,人类可以利用学习到的经验来执行各种任务。这种多功能性也是通用智能机器人的最终目标。为了实现这一目标,机器人必须配备多个传感器来感知环境并收集多模式数据。此外,机器人必须快速学习和适应新的环境和任务,以执行高效的动作。然而,这对智能机器人来说是一个重大挑战。

最近的研究集中在使用多模态LLMs增强机器人的感知、推理和动作生成能力[282]-[285]。例如,Xu等人[284]介绍了一种调整推理的方法,该方法利用LLM的广泛先验知识,为机器人抓取生成精确的数值输出。Huang等人[285]将affordance和物理概念整合到LLM中,超越了常规的图像和文本模式,从而在机器人操作中取得了更好的性能。这些工作促进了多模态体现LLM的发展,但总体而言,该领域仍处于早期阶段,需要进一步广泛深入的研究。

C. Human-Robot Collaboration

智能机器人有可能彻底改变制造业、医疗保健和服务业等行业。为了充分实现这一潜力,人机协作至关重要[286]。通过协同工作,机器人可以帮助人类,提高效率,减少人类工作量和安全风险。同时,人类可以指导和监控机器人的操作,以提高准确性。然而,由于沟通和协调障碍、过度依赖和安全问题,实现完美的人机协作具有挑战性。研究界在应对人机协作的挑战方面已经取得了一些进展。例如,jin等人[287]提出了一种基于深度rl的两级分层控制框架,以建立最优的人机协作policy。wang等人[288]介绍了一种名为co-gail的policy训练方法,该方法基于人机协作演示和交互式学习过程中的协同优化。然而,这些方法是在仿真环境中实现的,或者只能执行有限数量的任务,使其不适合实际应用。未来,人机协作仍将是一个关键的研究领域,需要不断探索以提高效率和安全性。

D. Model Compression and Robot Acceleration

在嵌入式系统、移动设备和边缘计算等应用中,具有嵌入式智能系统的机器人通常具有最少的计算资源[289]。这使得优化和压缩深度模型以满足存储空间、实时性和准确性的要求变得至关重要。虽然基于LLM的方法在嵌入式AI方面取得了重大进展,但它们也导致了计算资源需求的增加,给在计算能力有限的设备上实现带来了挑战。因此,未来对模型压缩的研究有望促进智能机器人的实际应用。

在实际应用中,长时间的等待往往会导致糟糕的用户体验。因此,预计机器人应该能够快速完成任务。然而,目前许多主流型号的工作频率较低。例如,谷歌的RT-2模型[290]的决策频率范围为1-5Hz,具体取决于所使用的VLM的参数规模,这表明在实际应用之前仍有很大差距。最近,人形机器人Figure 01可以以200 Hz的频率生成动作指令,这得益于OpenAI的LLM和高效的端到端网络架构。这一成果为未来机器人加速研究带来了更大的乐观。

E. Model Interpretability and Application Safety

基于深度学习的方法通常被称为“黑匣子”[291],因为很难直观地理解它们的决策过程。对于基于深度学习的智能机器人来说,这种黑匣子特性可能会导致用户的怀疑和不信任。特别是在机器人与人类密切互动的环境中,缺乏透明度也会引发对人身安全的担忧[292]。因此,研究embodied learning方法的可解释性至关重要,这可以帮助人们理解模型的决策过程,提高用户对机器人的信任度。

除了模型的可解释性,智能机器人的安全性还需要从其他角度得到保证,包括实施更可靠的在线学习和控制技术,以防止机器人运动造成的潜在危害[293]。同样重要的是,采用对抗性训练来保护机器人免受攻击[294],并设计强大的安全监控方法来检测可能的安全风险[295]。这些领域的进一步研究有望提高机器人在实际应用中的安全性和可靠性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/463522.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

NFTScan Site:以蓝标认证与高级项目管理功能赋能 NFT 项目

自 NFTScan Site 上线以来,它迅速成为 NFT 市场中的一支重要力量,凭借对各类 NFT 集合、市场以及 NFTfi 项目的认证获得了广泛认可。这个平台帮助许多项目提升了曝光度和可见性,为它们在竞争激烈的 NFT 市场中创造了更大的成功机会。 在最新更…

指数分布的原理和应用

本文介绍指数分布,及其推导原理。 Ref: 指数分布 开始之前,先看个概率密度函数的小问题: 问题描述:你于上午10点到达车站,车在10点到10:30 之间到达的时刻 X 的概率密度函数如图: 则使用分段积分&#xff0…

Javase——正则表达式

正则表达式的相关使用 public static void main(String[] args) {//校验QQ号 System.out.println("3602222222".matches("[1-9][0-9]{4,}"));// 校验18位身份证号 System.out.println("11050220240830901X".matches("^([0-9]){7,18}…

安装中文版 Matlab R2022a

下载安装包 压缩包有点大,大概20G 百度网盘:下载链接 提取码:rmja 安装 解压后打开目录,右键以管理员身份运行 setup.exe 选择输入安装秘钥 输入秘钥: 50874-33247-14209-37962-45495-25133-28159-33348-18070-6088…

SICTF Round #4|MISC

1.派森 腐乳昂木 奥普瑞特儿 阴坡尔特 艾克斯奥尔 腐乳昂木 提克有第爱慕 阴坡尔特 ⭐ 弗拉格 等于 布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉布拉 印刻 等于 左中括号右中括号 佛儿 唉 因 梯软者左括号 零,楞左括号弗拉格右…

保研考研机试攻略:python笔记(2)

🐨🐨🐨宝子们好呀,今天我们继续来学习N诺提供的python笔记,fighting!( •̀ ω •́ )✧ 对这个系列感兴趣的宝子欢迎关注保研考研机试攻略专栏哦 ~ 目录 🐨🐨🐨4进制转…

Hyper-V 安装 KylinOS V10【图文教程】

文章目录 下载 KylinOSHyper-V 安装 KylinOS新建虚拟机配置虚拟机启动虚拟机并配置下载 KylinOS KylinOS 没有直接提供下载地址,需要在页面上点试用,填写个人信息后,才能看到下载地址。 https://www.kylinos.cn/support/trial.html?trial=425887 试用地址:产品试用申请国…

LeetCode 0685.冗余连接 II:并查集(和I有何不同分析)——详细题解(附图)

【LetMeFly】685.冗余连接 II:并查集(和I有何不同分析)——详细题解(附图) 力扣题目链接:https://leetcode.cn/problems/redundant-connection-ii/ 在本问题中,有根树指满足以下条件的 有向 图。该树只有一个根节点&…

mysql查表相关练习

作业要求: 单表练习: 1 . 查询出部门编号为 D2019060011 的所有员工 2 . 所有财务总监的姓名、编号和部门编号。 3 . 找出奖金高于工资的员工。 4 . 找出奖金高于工资 40% 的员工。 5 找出部门编号为 D2019090011 中所有财务总监,和…

GHuNeRF: Generalizable Human NeRF from a Monocular Video

研究背景 研究问题:这篇文章要解决的问题是学习一个从单目视频中泛化的人类NeRF模型。尽管现有的泛化人类NeRF已经取得了令人印象深刻的成果,但它们需要多视图图像或视频,这在某些情况下可能不可用。此外,一些基于单目视频的人类…

Linux - grep的正则用法

新建u.txt,文本内容如图: 搜寻特定字符串 利用中括号[]搜寻集合字符 行首与行位字符^$ 任意一个字符.与重复字符*限定连续RE字符范围{} 总结:

项目模块十五:HttpResponse模块

一、模块设计思路 存储HTTP应答要素&#xff0c;提供简单接口 二、成员变量 int _status; // 应答状态码 unordered_map<string, string> _headers; // 报头字段 string _body; // 应答正文 bool _redirect_flag; // 是否重定向信息 stri…

从零开始的c++之旅——继承

1. 继承 1.继承概念及定义 继承是面向对象编程的三大特点之一&#xff0c;它使得我们可以在原有类特性的基础之上&#xff0c;增加方法 和属性&#xff0c;这样产生的新的类&#xff0c;称为派生类。 继承 呈现了⾯向对象程序设计的层次结构&#xff0c;以前我们接触的…

6.1、实验一:静态路由

源文件获取&#xff1a;6.1_实验一&#xff1a;静态路由.pkt: https://url02.ctfile.com/f/61945102-1420248902-c5a99e?p2707 (访问密码: 2707) 一、目的 理解路由表的概念 会使用基础命令 根据需求正确配置静态路由 二、准备实验 1.实验要求 让PC0、PC1、PC2三台电脑…

logback日志级别动态切换四种方案

生产环境中经常有需要动态修改日志级别。 现在就介绍几种方案 方案一&#xff1a;开启logback的自动扫描更新 配置如下 <?xml version"1.0" encoding"UTF-8"?> <configuration scan"true" scanPeriod"60 seconds" debug…

Qt字符编码

目前字符编码有以下几种&#xff1a; 1、UTF-8 UTF-8编码是Unicode字符集的一种编码方式(CEF)&#xff0c;其特点是使用变长字节数(即变长码元序列、变宽码元序列)来编码。一般是1到4个字节&#xff0c;当然&#xff0c;也可以更长。 2、UTF-16 UTF-16是Unicode字符编码五层次…

postman 获取登录接口中的返回token并设置为环境变量的方法 postman script

postman是一个比较方便的API开发调试工具&#xff0c; 我们在访问API时一般都需要设置一个token来对服务进行认证&#xff0c; 这个token一般都是通过登录接口来获取。 这个postman脚本放到登录接口的sctipt--> post-response里面即可将登陆接口中返回的token值设置到postma…

使用Django REST framework构建RESTful API

使用Django REST framework构建RESTful API Django REST framework简介 安装Django REST framework 创建Django项目 创建Django应用 配置Django项目 创建模型 迁移数据库 创建序列化器 创建视图 配置URL 配置全局URL 配置认证和权限 测试API 使用Postman测试API 分页 过滤和排序…

消息队列面试——打破沙锅问到底

消息队列的面试连环炮 前言 你用过消息队列么&#xff1f;说说你们项目里是怎么用消息队列的&#xff1f; 我们有一个订单系统&#xff0c;订单系统会每次下一个新订单的时候&#xff0c;就会发送一条消息到ActiveMQ里面去&#xff0c;后台有一个库存系统&#xff0c;负责获取…

Rust 力扣 - 1493. 删掉一个元素以后全为 1 的最长子数组

文章目录 题目描述题解思路题解代码题目链接 题目描述 题解思路 本题我们能转换成求只包含一个0的子数组的最长长度 如果数组中不存在0&#xff0c;则结果为数组长度减一 我们使用一个left指针指向子数组的左边界&#xff0c;然后我们遍历子数组的右边界&#xff0c;我们记录…