RT系列机器人详细介绍(BC-Z、RT-1、OMM、RT-Trajectory、Q-Transformer、RT-2、RT-X、RT-H)

news2024/12/17 3:24:28

目录

  • 一、BC-Z
  • 二、RT-1
  • 三、MOO
  • 四、RT-Trajectory
  • 五、Q-Transformer
  • 六、RT-2
  • 七、RT-X
  • 八、RT-H
  • 参考文献

一、BC-Z

   BC-Z通过结合大规模的交互式模仿学习系统、灵活的任务嵌入和多样化的数据,实现了在未见任务上的零样本泛化,为机器人学习领域提供了一种新的解决方案。

在这里插入图片描述

  1. 数据收集与预处理

   大规模多任务数据采集:通过多个机器人在不同环境中执行多样化任务,收集了超过25,877个机器人操作演示和18,726个相同任务的人类视频,覆盖100个不同的操作任务。

   共享自主性与HG-DAgger:结合共享自主性的数据收集方法和HG-DAgger算法,允许操作员在机器人即将出错时进行干预,提供更丰富的数据用于训练和改进策略。

在这里插入图片描述

  1. 系统架构设计

   编码器-控制层分解:系统分为编码器q(z|w)和控制层π(a|s, z)。编码器负责将任务命令(语言或视频)转换为嵌入z,控制层则根据图像s和嵌入z产生动作a。使用预训练的多语言句子编码器处理自然语言命令,使用基于ResNet-18的卷积神经网络处理人类执行任务的视频,以生成任务嵌入。通过FiLM(Feature-wise Linear Modulation)层将任务嵌入z条件化到网络架构中,实现对不同任务的适应。

   辅助语言回归损失:引入辅助语言回归损失,训练视频编码器预测任务的语言命令嵌入,增强视频嵌入的语义对齐。

在这里插入图片描述

  1. 策略训练

   行为克隆:使用行为克隆方法训练控制层π(a|s, z),通过最小化专家动作的负对数似然来优化策略。

   动作定义:定义动作为状态差异,使用自适应算法选择未来状态,以减少噪声并提高策略的泛化能力。

  1. 实验验证

   单任务模仿学习:在清空箱子和开门任务上验证BC-Z模型,展示其在训练和未见场景中的性能。

   零样本和少样本泛化:评估BC-Z在未见任务上的泛化能力,包括新任务、新环境和新物体的泛化。

   性能瓶颈分析:通过比较训练任务上的成功率,分析性能瓶颈是在编码器还是控制层。

在这里插入图片描述

二、RT-1

   RT-1的技术路线展示了一个能够处理大规模数据、具有强大泛化能力、并且能够实时控制机器人的先进学习系统。通过精心设计的数据收集策略、高效的模型架构、以及对异构数据的有效融合,RT-1在多任务和新环境的适应性方面展现出了卓越的性能。

  1. 数据收集与预处理

   大规模数据采集:通过13台机器人在不同环境中执行任务,收集了超过130,000个演示数据,覆盖700多个不同的任务指令,涉及多种物体和场景。

   数据标注:每个演示集都附带了描述性文本指令,包括动作和目标物体,为模型提供自然语言条件。

   数据多样性:数据集包含了多种技能(如抓取、放置、移动等)和物体,以支持模型在多样化任务上的泛化能力。

在这里插入图片描述

  1. 模型架构设计

在这里插入图片描述

   EfficientNet与FiLM层:使用预训练的EfficientNet网络处理输入图像,并通过FiLM层将图像特征与自然语言指令的嵌入相结合,实现早期的语言和视觉融合。

   TokenLearner:通过注意力机制减少Token数量,降低后续Transformer层的计算负担,提高推理速度。

   Transformer架构:采用解码器结构的Transformer模型,处理压缩后的Token序列,输出动作Token。

在这里插入图片描述

  1. 动作Token化

   离散化动作空间:将连续的动作空间(如手臂和基座的运动)离散化为256个bins,简化动作的表示和决策过程。

  1. 模型训练

   行为克隆:利用收集到的演示数据,通过行为克隆方法训练模型,优化策略π以最大化在给定图像和语言指令下动作的似然度。

  1. 实时控制与推理速度

   快速推理:为了满足实时控制的需求,RT-1模型必须在100ms内完成推理。通过减少Token数量和重用Token来优化推理速度。

   固定时间等待机制:为了保证动作输出的一致性频率,引入固定时间等待机制,避免由于系统延迟引起的动作抖动。

  1. 实验与评估

   多环境评估:在两个真实世界的办公厨房和一个模拟训练环境中评估RT-1的性能,测试其在训练任务上的表现、对未见任务的泛化能力、对干扰物和背景的鲁棒性。

在这里插入图片描述
   长时序任务:在SayCan框架下执行长时序任务,测试RT-1在复杂、多步骤自然语言指令下的表现。

在这里插入图片描述

  1. 异构数据融合

   模拟数据融合:将模拟环境中的数据与真实世界数据结合,测试RT-1在新领域(如之前未见过的物体)的泛化能力。

   跨机器人数据融合:将不同机器人平台收集的数据融合,测试RT-1在不同机器人形态间的知识迁移能力。

三、MOO

   Manipulation of Open-World Objects (MOO)旨在使机器人能够理解和执行涉及以前未见过的对象类别的指令,将预训练的视觉-语言模型与机器人策略相结合,以实现对新语义概念的泛化。

在这里插入图片描述

  1. 预训练视觉-语言模型(VLM)对象定位

   MOO利用预训练的视觉-语言模型(如Owl-ViT)来从图像和自然语言指令中提取对象识别信息。这些模型在大规模的静态数据集上训练,能够将自然语言描述与图像中的对象进行关联。预训练模型能够识别和定位图像中的对象,即使这些对象在机器人的实际经验中未曾出现过。

   MOO通过将指令中的对象描述和当前图像输入到VLM中来定位对象。VLM输出对象在图像中的位置,通常是边界框或分割掩码。MOO将VLM提取的对象位置信息(如边界框中心点)作为对象的表示,并将这些信息以通道的形式附加到当前图像上。这种表示方法使得策略网络能够将自然语言指令中的语义信息与图像中的实际对象相对应。

  1. 策略网络架构

   MOO的策略网络基于RT-1架构,该架构包括以下几个关键组件:

  • EfficientNet:用于处理图像并提取特征。

  • FiLM层:用于将文本嵌入与图像特征相结合。

  • TokenLearner:将EfficientNet的输出转换为一组紧凑的Token。

  • Transformer:使用这些Token来预测动作Token。

在这里插入图片描述

  1. 训练和推理

   MOO的训练过程包括以下步骤:

   行为克隆:使用专家演示数据集,通过最小化动作的负对数似然来训练策略网络。

   冻结VLM:在训练过程中,VLM不被更新,以确保策略网络能够学习到对VLM定位错误的鲁棒性。

   端到端训练:整个策略网络(包括VLM)被端到端训练,以实现从图像和语言指令到动作的直接映射。

  1. 实际实施

   为了在真实机器人上实现MOO,研究者使用Owl-ViT检测器来检测图像中的对象,并仅在每个场景的第一帧中提取对象信息。这样做可以减少计算量,使得在整个场景中实现实时控制成为可能。

   MOO在包含106个不同对象类型的数据集上进行训练和评估。数据集通过远程操作收集,涵盖了多种技能和对象。实验结果表明,MOO能够在未见过的物体类别上实现零样本泛化,并在真实世界的移动操作机器人上成功执行任务。

在这里插入图片描述

在这里插入图片描述

四、RT-Trajectory

   RT-Trajectory展示了如何通过使用轨迹草图作为任务规范信号,提高机器人政策在新任务上的泛化能力,这对于开发能够处理未知任务的通用机器人政策具有重要意义。

在这里插入图片描述

  1. 轨迹草图表示(Trajectory Sketches Representation)

   2D轨迹提取:从演示数据集中提取机器人末端执行器中心点的2D轨迹。这涉及到将机器人的3D位置信息投影到相机空间,形成一系列像素位置。

   颜色分级(Color Grading):使用轨迹图像的红色通道来表示时间进度,绿色通道来编码相对于机器人基座的高度信息,以表达速度和方向。

   交互标记(Interaction Markers):在轨迹的关键时刻(如夹持器抓取和释放物体时)添加绿色或蓝色的圆圈,以突出显示这些交互步骤。

在这里插入图片描述

  1. 策略训练(Policy Training)

   模仿学习(Imitation Learning):利用成功机器人演示集,通过行为克隆方法训练基于Transformer的政策网络,使其能够模仿专家的行为。

   轨迹草图条件:在输入序列中将轨迹草图与RGB图像沿特征维度拼接,然后通过预训练的EfficientNet-B3网络进行处理。

   Transformer架构:使用Transformer网络学习从输入图像和轨迹草图到动作的映射,以实现对机器人的控制。

  1. 推理时的轨迹条件(Trajectory Conditioning During Inference)

   用户输入:在推理时,用户或高级规划器根据机器人相机的初始图像创建一个粗略的2D轨迹草图,指定期望的运动。

   政策执行:将用户指定的轨迹草图输入到训练好的控制政策中,以执行指定的操纵任务。

  1. 实验验证(Experimental Validation)

   真实世界实验:在真实世界的移动操作机器人上进行实验,评估RT-Trajectory在多种操作技能上的性能。

   已知与未见技能:使用RT-1数据集进行训练,并提出新的评估技能,包括未见物体和操作工作空间,以测试泛化能力。

   评估协议:为每种技能评估收集一组场景,并在评估期间运行政策,以量化比较不同方法的性能。

在这里插入图片描述

  1. 多样化的轨迹生成方法(Diverse Trajectory Generation Methods)

   人类绘制草图:开发图形用户界面(GUI),使用户能够根据机器人的初始相机图像绘制轨迹草图。

   人类演示视频:从第一人称人类演示视频中估计手部姿态,并将人类手部的轨迹转换为机器人末端执行器的轨迹。

   代码作为政策(Code as Policies):使用大型语言模型(LLM)根据任务指令和物体标签生成代码,以生成轨迹。

   图像生成模型:使用文本引导的图像生成模型根据初始图像和语言指令生成轨迹草图。

在这里插入图片描述
在这里插入图片描述

  1. 运动多样性分析(Motion Diversity Analysis)

   轨迹相似性测量:使用Frêchet距离来量化查询轨迹与训练数据集中轨迹之间的相似性。

   最相似轨迹检索:通过计算查询轨迹与训练集中所有轨迹之间的距离,检索政策在训练期间见过的最相似轨迹。

在这里插入图片描述
在这里插入图片描述

  1. 新兴能力与行为(Emergent Capabilities and Behaviors)

   视觉提示工程:类似于LLM对语言提示的响应,RT-Trajectory允许通过改进轨迹提示来改变行为模式。

   重试行为:与非学习方法相比,RT-Trajectory能够在执行失败后进行重试并可能成功完成任务。

   高度感知的歧义消除:对于2.5D轨迹草图,通过颜色分级提供高度信息,有助于减少2D轨迹在深度方向上的歧义。

五、Q-Transformer

   Q-Transformer通过这些技术实现了在离线数据集上的高效学习,并在真实世界的机器人任务中展现出了强大的性能和泛化能力。这项工作为机器人学习领域提供了一种新的解决方案,特别是在处理大规模离线数据集和提高策略泛化能力方面。

在这里插入图片描述

  1. Q-Transformer架构

   Transformer模型:模型角色:Q-Transformer使用Transformer模型作为其核心,处理来自机器人相机的图像和自然语言指令,输出动作的Q值。Transformer模型被训练为一个序列模型,能够处理离散的Token序列,这些Token代表了动作空间的各个维度。模型接收机器人相机的图像和自然语言指令作为输入,通过预训练的视觉模型(如EfficientNet)和语言模型(如Universal Sentence Encoder)进行编码。

   动作空间离散化:Q-Transformer将连续的动作空间离散化为多个维度,每个维度被处理为独立的时间段,从而避免了维度灾难。对于每个动作维度,模型都会输出一个Q值,这些Q值代表了在该维度上执行特定动作的预期回报。每个动作维度被离散化为256个可能的值(bins),这样的离散化策略使得模型能够处理复杂的动作空间,同时保持计算的可行性。

在这里插入图片描述

在这里插入图片描述

  1. 保守Q学习(Conservative Q-Learning)

   保守正则化:保守Q学习(CQL)旨在减少对未见动作的过度估计,通过正则化未在数据集中出现的动作的Q值。Q-Transformer通过最小化数据集中未出现的每个动作的Q值,来实现保守正则化,减少对未见动作的估计偏差。

   Q值正则化:对于数据集中未覆盖的动作,Q-Transformer将其Q值正则化到最小可能的累积奖励,通常是0,以反映这些动作的不确定性或低效用。

  1. 蒙特卡洛和n步回报的混合更新

   蒙特卡洛回报:Q-Transformer利用蒙特卡洛回报来加速Q学习,通过在更好的轨迹上更快地传播值,从而提高学习效率。

   n步回报:在动作维度上采用n步回报,以提高学习效率,尤其是在长视界任务中,这种方法可以帮助模型更好地估计长期回报。

  1. 实验验证与评估

   真实世界实验:Q-Transformer在真实世界的机器人操作任务上进行了大规模实验,验证了其在多样化任务上的性能。实验涉及的任务包括但不限于抽屉的拿起和放置、物体的移动和定位等,这些任务覆盖了机器人操作的多个方面。

在这里插入图片描述

   模拟实验:在模拟环境中进行实验,与现有的离线RL算法和模仿学习方法进行比较,以评估Q-Transformer的有效性和泛化能力。

在这里插入图片描述

  1. 实际实施细节

   硬件配置:使用具有7自由度手臂和两指夹持器的移动操作机器人,机器人头部装有RGB相机,提供了丰富的视觉输入。

   动作执行:学习到的策略以3Hz的频率异步执行动作,以适应实时控制的需求,确保了策略的实时性和可行性。

六、RT-2

   RT-2通过结合大规模预训练的视觉-语言模型和机器人实际动作数据,实现了一个能够理解和执行复杂指令的机器人控制模型。这种方法不仅提高了机器人对新环境的适应能力,还使得机器人能够执行更复杂的任务,展示了从互联网规模数据中学习到的知识和推理能力。

在这里插入图片描述

  1. 预训练视觉-语言模型(VLMs)

   数据来源:RT-2使用互联网规模的数据进行预训练,这些数据包括图像和文本对。

   模型选择:RT-2基于两个预训练的视觉-语言模型:PaLI-X和PaLM-E,它们分别具有不同的参数规模。

   预训练任务:预训练任务包括图像描述、视觉问题回答(VQA)等,以学习图像和文本之间的关联。

在这里插入图片描述

  1. 动作的文本标记化

   动作表示:将机器人的动作(如位置、旋转和平移)表示为文本标记,以便与语言模型的输出格式一致。

   离散化:连续的动作空间被离散化为固定数量的bin,每个bin对应一个文本标记。

   多模态句子:通过将动作标记与自然语言标记结合,形成可以响应机器人指令的“多模态句子”。

  1. 联合微调(Co-fine-tune)

   微调目标:将预训练的VLMs微调为VLA模型,使其能够直接输出机器人动作。

   数据结合:将机器人轨迹数据与互联网规模的视觉-语言数据结合起来,进行联合微调。

   平衡训练数据:在训练批次中平衡机器人数据和互联网数据的比例,以提高模型的泛化能力。

  1. 实现机器人控制

   指令遵循:训练VLA模型以遵循自然语言指令,并将这些指令转换为机器人动作。

   模型架构:RT-2模型使用大型视觉-语言模型作为骨干网络,通过微调使其适应机器人控制任务。

  1. 实时推理

   模型部署:由于模型规模庞大,RT-2模型部署在多TPU云服务上,通过网络查询实现实时控制。

   频率控制:通过云服务,RT-2能够以适合的频率(如1-3Hz)进行控制,同时服务多个机器人。

  1. 实验验证

   评估指标:通过6000次机器人评估试验来验证RT-2的性能,包括对新对象、新背景和新环境的泛化能力。

   新兴能力:评估RT-2是否展现出从互联网规模预训练中继承的新兴能力,如语义理解和基本推理。

在这里插入图片描述
在这里插入图片描述

  1. 结果分析

   性能对比:RT-2在执行任务和泛化到新场景方面相较于基线模型有显著提升。

   泛化能力:RT-2能够将预训练中学到的语义知识转移到机器人控制任务中,展现出更好的泛化性能。

在这里插入图片描述

七、RT-X

   通过构建一个大规模、多机器人平台的数据集,并在此基础上训练和评估了两种基于Transformer的模型,探索了在机器人学习领域实现跨平台、跨任务的通用化策略的可能性,并展示了初步的成果和未来的研究方向。

在这里插入图片描述

  1. 数据集构建与分析

   数据集来源:数据集由22种不同机器人平台的数据组成,这些数据来自全球21个机构的合作,涵盖了527种技能,共计160266个任务。

   数据集整合:将60个现有的机器人数据集合并成一个一致的数据格式,使用RLDS(Robot Learning Dataset)格式存储,支持不同机器人设置的各种动作空间和输入模式。

   数据分析:通过使用PaLM语言模型从指令中提取对象和行为,分析了数据集中的技能和对象多样性。发现虽然大多数技能属于“挑选-放置”类别,但也包含了如“擦拭”或“组装”等多样化技能。

在这里插入图片描述

  1. RT-X模型设计

   模型架构:实验基于两种基于Transformer的机器人策略模型:RT-1和RT-2。RT-1是一个为机器人控制设计的高效Transformer架构,而RT-2是基于视觉-语言模型(VLM)的大规模模型,能够将动作表示为自然语言标记。

在这里插入图片描述

   数据格式统一:为了处理不同机器人的观察和动作空间的差异,研究者们采用了粗略对齐的动作和观察空间,使得模型可以在不同的机器人平台上解释和应用。

  1. 训练和推理细节

   训练目标:模型使用标准的分类交叉熵目标函数,对输出空间(RT-1的离散桶和RT-2的所有可能的语言标记)进行优化。

   推理:在推理时,每个模型以机器人所需的频率(3-10 Hz)运行,RT-1在本地运行,而RT-2部署在云服务上,通过网络查询。

  1. 实验结果与分析

   实验设计:通过3600次评估试验,研究者们回答了关于X-embodiment训练对学习策略性能的影响的三个问题:是否能够实现正向迁移、是否能够提高对新任务的泛化能力、不同设计维度(如模型大小、架构或数据集组成)对策略性能和泛化能力的影响。

   性能提升:RT-1-X在小规模数据集上的表现优于原始方法,而RT-2-X在大规模数据集上表现优于RT-1,表明在数据丰富的领域,使用高容量架构可以提高性能。

在这里插入图片描述

八、RT-H

   RT-H模型通过建立一个基于语言的动作层次结构,使得机器人能够更好地理解和执行复杂的自然语言任务,同时具备从用户纠正中学习和适应新场景的能力。不仅提高了机器人策略的性能,还增强了其适应性和灵活性。

在这里插入图片描述

  1. 数据处理和自动化标注

   数据集:使用包含100K演示的大型多任务数据集,结合了厨房任务和更复杂的任务。

   自动化标注:开发自动化方案从机器人自身感知信息中提取语言动作,避免了人工标注的不一致性和成本。

  1. RT-H模型架构

   VLM(Vision Language Model):基于大规模视觉语言模型(如PaLI-X 55B),该模型在互联网规模的视觉和语言数据上进行预训练。

   双阶段预测:

  • 语言动作查询(Language Motion Query):模型首先预测与高级任务描述相对应的语言动作。

  • 动作查询(Action Query):然后,基于预测的语言动作、视觉观察和任务描述,模型预测具体的机器人动作。

在这里插入图片描述

  1. 训练和推理

联合训练:RT-H模型在互联网规模数据和机器人演示数据上进行联合训练,以利用先验知识和任务特定数据。

推理:在测试时,RT-H首先运行语言动作查询来推断技能,然后使用这个推断出的技能在动作查询中计算动作。

  1. 干预和纠正

在线纠正:用户可以直接干预并提供语言动作纠正,RT-H能够根据这些纠正来调整其行为。

从纠正中学习:RT-H可以从用户提供的语言动作纠正中学习,以改进其政策。

  1. 实验和评估

性能评估:在多样化的多任务数据集上评估RT-H的性能,包括在新对象、新背景和新环境中的泛化能力。

在这里插入图片描述

灵活性和语境性:分析RT-H学习的语言动作如何适应不同的场景和任务,以及如何响应用户提供的纠正。

在这里插入图片描述

参考文献

[1] Jang E, IrpanA, Khansari M, et al. Bc-z: Zero-shot task generalization with robotic imitation learning[C]//Conference on Robot Learning. PMLR, 2022: 991-1002.

[2] Brohan A, Brown N, Carbajal J, et al. Rt-1: Robotics transformer for real-world control at scale[J]. arXiv preprint arXiv:2212.06817, 2022.

[3] Stone A, Xiao T, Lu Y, et al. Open-world object manipulation using pre-trained vision-language models[J]. arXiv preprint arXiv:2303.00905, 2023.

[4] Gu J, Kirmani S, Wohlhart P, et al. Rt-trajectory: Robotic task generalization via hindsight trajectory sketches[J]. arXiv preprint arXiv:2311.01977, 2023.

[5] Chebotar Y, Vuong Q, Hausman K, et al. Q-transformer: Scalable offline reinforcement learning via autoregressive q-functions[C]//Conference on Robot Learning. PMLR, 2023: 3909-3928.

[6] Brohan A, Brown N, Carbajal J, et al. Rt-2: Vision-language-action models transfer web knowledge to robotic control[J]. arXiv preprint arXiv:2307.15818, 2023.

[7] O’Neill A, Rehman A, Gupta A, et al. Open x-embodiment: Robotic learning datasets and rt-x models[J]. arXiv preprint arXiv:2310.08864, 2023.

[8] Belkhale S, Ding T, Xiao T, et al. Rt-h: Action hierarchies using language[J]. arXiv preprint arXiv:2403.01823, 2024.

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

鸿蒙系统-前端0帧起手

鸿蒙系统-前端0帧起手 先search 一番 找到对应的入门文档1. 运行项目遇到问题 如下 (手动设计npm 的 registry 运行 npm config set registry https://registry.npmjs.org/)2.运行后不支持一些模拟器 配置一下(如下图,运行成功&am…

Redis是什么?Redis和MongoDB的区别在那里?

Redis介绍 Redis(Remote Dictionary Server)是一个开源的、基于内存的数据结构存储系统,它可以用作数据库、缓存和消息中间件。以下是关于Redis的详细介绍: 一、数据结构支持 字符串(String) 这是Redis最…

【问题记录】07 MAC电脑,使用FileZilla(SFTP)连接堡垒机不成功

项目场景: 使用MAC电脑,以子账号(非root)的形式登录,连接堡垒机CLB(传统型负载均衡),使用FileZilla(SFTP)进行FTP文件传输。 问题描述: MAC电脑…

从0到1实现vue3+vite++elementuiPlus+ts的后台管理系统(一)

前言:从这篇文章开始实现vue3vite的后台管理系统,记录下自己搭建后台系统图的过程。 这篇文章完成项目的初始化和基本配置,这一步可以直接跟着vue3官网进行。整个系列只有前端部分,不涉及后端。 vue3官网:https://cn.…

计算机网络错题

文章目录 码分复用透明传输差错检测停止-等待协议回退N帧协议CSMA/CD协议以太网交换机Vlanip地址的无分类编制方法ip地址的应用规划ip数据包的发送和转发过程路由信息协议IPI2016201720202022 2.5信道 码分复用 透明传输 差错检测 停止-等待协议 回退N帧协议 CSMA/CD协议 以太网…

报错:Method Not Allowed

当报错这个的时候就要注意了,自己的方法是否写对了!!! 就像我的这个因为我的后端是put,所以这也是put,我报错就是因为这写了get,虽然页面是改变了,但是一刷新,就会原形毕…

IDEA 2024 版本配置热部署

在实际开发过程中,每次修改代码就得将项目重启,重新部署,对于一些大型应用来说,重启时间需要花费大量的时间成本。对于一个后端开发者来说,重启过程确实很难受啊 采用下面三步骤可以完成 1.在IDEA中settings中搜索Debb…

客户端(浏览器)vue3本地预览txt,doc,docx,pptx,pdf,xlsx,csv,

预览文件 1、入口文件preview/index.vue2、预览txt3、预览doc4、预览pdf5、预览pptx6、预览xlsx7、预览csv 1、入口文件preview/index.vue 预览样式&#xff0c;如pdf 文件目录如图所示&#xff1a; 代码如下 <template><div class"preview-wrap" ref&…

安卓低功耗蓝牙BLE官方开发例程(JAVA)翻译注释版

官方原文链接 https://developer.android.com/develop/connectivity/bluetooth/ble/ble-overview?hlzh-cn 目录 低功耗蓝牙 基础知识 关键术语和概念 角色和职责 查找 BLE 设备 连接到 GATT 服务器 设置绑定服务 设置 BluetoothAdapter 连接到设备 声明 GATT 回…

uniapp打包apk允许横屏竖屏内容翻转

文章目录 一、教程总结 一、教程 1.添加配置 "orientation": [//竖屏正方向"portrait-primary",//竖屏反方向"portrait-secondary",//横屏正方向"landscape-primary",//横屏反方向"landscape-secondary",//自然方向"…

ElasticSearch 常见故障解析与修复秘籍

文章目录 一、ElasticSearch启动服务提示无法使用root用户二、ElasticSearch启动提示进程可拥有的虚拟内存少三、ElasticSearch提示用户拥有的可创建文件描述符太少四、ElasticSearch集群yellow状态分析五、ElasticSearch节点磁盘使用率过高&#xff0c;read_only状态问题解决六…

Java——网络编程(上)

1 计算机网络 (作用资源共享和信息传递) (计算机网络组成——> 硬件——>计算机设备&#xff0c;外部设备&#xff0c;通信线路 软件——>网络操作系统&#xff0c;网络管理软件&#xff0c;网络通信协议) 计算机网络是指将地理位置不同的具有独立功能的多台计算机…

游戏引擎学习第50天

仓库: https://gitee.com/mrxiao_com/2d_game Minkowski 这个算法有点懵逼 回顾 基本上&#xff0c;现在我们所处的阶段是&#xff0c;回顾最初的代码&#xff0c;我们正在讨论我们希望在引擎中实现的所有功能。我们正在做的版本是初步的、粗略的版本&#xff0c;涵盖我们认…

Unix 和 Windows 的有趣比较

Unix 和 Windows NT 比较 来源于这两本书&#xff0c;把两本书对照来读&#xff0c;发现很多有意思的地方&#xff1a; 《Unix 传奇》 https://book.douban.com/subject/35292726/ 《观止 微软创建NT和未来的夺命狂奔 》 Showstopper!: The Breakneck Race to Create Windows…

攻防世界逆向刷题笔记(新手模式6-?)

6.1000clicks 看题目名字似乎是让咱们点击1000次之后才会出flag。本来打算用CE看能不能搜索出来数值&#xff0c;技术不到家&#xff0c;最后没有搜索到&#xff0c;还导致永劫无间打不了了。所以还是拿出IDA老实分析。 直接搜索flag字符&#xff0c;出来一大堆。张紫涵大佬说…

ANOMALY BERT 解读

出处&#xff1a; ICLR workshop 2023 代码&#xff1a;Jhryu30/AnomalyBERT 可视化效果&#xff1a; 一 提出动机 动机&#xff1a;无监督 TSAD 领域内&#xff0c;“训练集” 也缺失&#xff1a;真值标签&#xff08;GT&#xff09;&#xff1b;换句话说&#xff0c;一个…

Java——网络编程(中)—TCP通讯(下)

1 双向通讯—创建服务端 (双向通信是指通信双方中&#xff0c;任何一方都可为发送端&#xff0c;任何一方都可为接收端) (1 创建ServerSocket对象&#xff0c;accept()返回socket) (2 双向通讯——>也要创建键盘输入对象) (3 通过与客户端对应的Socket对象获取输入流对象…

JavaFX使用jfoenix的UI控件

jfoenix还是一个不错的样式&#xff0c;推荐使用&#xff0c;而且也可以支持scene builder中的拖拖拽拽 需要注意的是过高的javafx版本可能会使得某些样式或控件无法使用 比如alert控件&#xff0c;亲测javaFX 19版本可以正常使用 1.在pom.xml中引入依赖 GitHub地址https://gi…

利用cnocr库完成中文扫描pdf文件的文字识别

很多pdf文件文字识别软件都会收费&#xff0c;免费的网页版可能会带来信息泄露&#xff0c;还有一些类似于腾讯AI和百度AI的接口都有调用次数限制&#xff0c;因此&#xff0c;利用识别正确率极高且免费的cnocr库来自己动手做个pdf文件文字识别程序就是一个很不错的选择。以下程…

大数据笔记之flink-cdc实时同步数据

大数据笔记之flink-cdc实时同步数据(mysql -->doris) 一、基本概念 Flink CDC 是一个基于流的数据集成工具&#xff0c;旨在为用户提供一套功能更加全面的编程接口&#xff08;API&#xff09;。 该工具使得用户能够以 YAML配置文件的形式&#xff0c;优雅地定义其 ETL&…