当前位置: 首页 > news >正文

Google视觉机器人超级汇总:从RT、RT-2到AutoRT、SARA-RT、RT-Trajectory

前言

随着对视觉语言机器人研究的深入,发现Google的工作很值得深挖,比如RT-2

​想到很多工作都是站在Google的肩上做产品和应用,​Google真是科技进步的核心推动力,做了大量大模型的基础设施,服

故有了本文,单独汇总Google在机器人领域的重大结果、进展

第一部分 从RT-1到RT-2

1.1 RT-1:首个Transformer机器人

RT-1(项目地址:https://robotics-transformer1.github.io/,paper地址:RT-1: Robotics Transformer for Real-World Control at Scale)

// 待更

1.2 RT-2:给VLM加上动作模态RT1,从而变成VLA

尽管之前的研究在包括机器人学在内的各种问题和设置上研究了VLMs,但Google

  • 一方面,为了赋予VLMs预测机器人动作的能力,以来扩展其在机器人闭环控制中的能力,从而利用VLMs中已有的知
  • 识实现新的泛化水平(While prior works study VLMs for a wide range of problems and settings including in robotics, our focus is on how the capabilities of VLMs can be extended to robotics closed-loop control by endowing them with the ability to predict robot actions, thus leveraging the knowledge already present in VLMs to enable new levels of generalizatio)
  • 二方面,更为了使得模型权重可以完全共享在语言和动作任务之间,而不需要引入仅针对动作的模型层组件(we leverage VLMs that generate language, and the unified output space of our formulation enables model weights to be entirely shared across language and action tasks, without introducing action-only model layer components)

故于23年7 月,Google DeepMind宣布推出RT-1的进化版(使用上一代机器人模型RT-1的数据进行训练,数据上虽然没变,但训练方法大大增强了):RT-2,其将视觉文本多模态大模型VLM具备的数学、推理、识别等能力和机器人比如RT-1的操作能力结合到一块了

为了实现对「VLM之看听想」与「RT-1之操控」两者能力上的结合

  1. Google给视觉-文本大模型(VLM,比如5B和55B的PaLI-X、3B的PaLI以及12B的PaLM-E)增加了一个模态,叫做“机器人动作模态”,从而把它变成了视觉-文本-动作大模型(VLA),比如RT-2-PaLM-E和RT-2-PaLI-X
  2. 随后,将原本非常具体的机器人动作数据,转变成文本token,例如将转动度数、放到哪个坐标点等数据,转变成文本“放到某个位置”
    这样一来,机器人数据也能被用到视觉-语言数据集中进行训练,同时在进行推理的过程中,原本的文本指令也会被重新转化为机器人数据,实现控制机器人等一系列操作

1.2.1 RT-2的三大能力:符号理解、推理、人类识别

其具备三大能力

  1. 符号理解(Symbol understanding),或者叫物体理解
    能将大模型预训练的知识,直接延展到机器人此前没见过的数据上
    例如机器人数据库中虽然没有“红牛”,但它能根据大模型预训练识所具备的知识中理解并掌握“红牛”的外貌,从而最终拿捏到所需物品
  2. 推理(Reasoning),这也是RT-2的核心优势,要求机器人掌握数学、视觉推理和多语言理解三大技能,比如
    \rightarrow  技能一,包含数学逻辑推理的命令,“将香蕉放到2+1的总和的位置”:

    图片

    \rightarrow  技能二,视觉推理,像是“将草莓放进正确的碗中”:

    图片

    \rightarrow  技能三,多语言理解,即使不用英语也能完成指令,例如用西班牙语命令它“从一堆物品中挑出最与众不同的那个”:

    图片

    甚至能主动思考,比如给定指令「选择灭绝的动物」之后,它可以完成多个阶段的推理,从而最终抓取桌子上的塑料恐龙

    图片

  3. 人物识别(Human recognition)
    比如只需要向对话一样下达命令:“将水递给泰勒·斯威夫特”,它就能在一堆图片中辨认出霉霉(Taylor Swift,美国当代歌手),送给她一罐可乐

    图片

1.2.2 机器人动作微调(Robot-Action Fine-tunin)

为了使视觉-语言模型能够控制机器人,将行动表示为模型输出中的token,这些token与语言token的处理方式相同

  1. 行动编码基于RT-1模型提出的离散化方法
    行动空间包括机器人末端执行器的6自由度位置和旋转位移,以及机器人夹持器的伸展程度和用于终止情节的特殊离散命令,该命令应由策略触发以表示成功完成
  2. 连续维度(除了离散终止命令之外的所有维度)均均匀地离散为256个箱子,因此,机器人行动可以使用离散箱子的序数表示为8个整数
    The continuous dimensions (all dimensions except for the discrete termination command) are discretized into 256 bins uniformly. Thus, the robot action can be represented using ordinals of the discrete bins as 8 integer numb
  3. 为了将这些离散化的行动用于将视觉-语言模型微调为视觉-语言-行动模型,我们需要将模型的现有token化与离散行动箱子相关联(we need to associate tokens from the model’s existing tokenization with the discrete action bins)。这需要保留256个token作为动作token,而选择哪些token取决于每个VLM使用的特定分词方式
  4. 为了定义VLM微调的目标,我们通过简单地将每个维度的动作token用空格字符连接起来,将动作向量转换为单个字符串
    \text { "terminate } \Delta \operatorname{pos}_{x} \Delta \operatorname{pos}_{y} \Delta \operatorname{pos}_{z} \Delta \operatorname{rot}_{x} \quad \Delta \operatorname{rot}_{y} \Delta \operatorname{rot}_{z} \text { gripper_extension" }
    这样一个目标的可能实例是:“1 128 91 241 5 101 127”

    再比如“指令:我饿了” 、计划:挑选rxbar巧克力、行动:1 128 124 136 121 158 111255

我们在实验中微调的两个VLMs,PaLI-X和PaLM-E,使用不同的分词方式。 对于PaLI-X模型,每个整数最多可以有一个唯一的token,因此我们只需将动作区间与表示相应整数的token相关联

对于PaLM-E模型,它没有提供这种方便的数字表示,因此我们只需覆盖最不常用的256个token来表示动作词汇。 值得注意的是,训练VLMs以覆盖现有token与动作token是symbol tuning的一种形式,在先前的工作中已经证明对VLMs非常有效

最终,通过采取上述行动表示,我们将机器人数据转换为适合于VLM模型微调的形式,其中我们的输入包括机器人摄像头图像和文本任务描述(使用标准的VQA格式“Q:机器人应该采取什么行动来完成[任务指令]?A:”),我们的输出格式为表示机器人行动的数字/最不常用的标记的字符串(and our output is formatted as a string of numbers/least frequently used tokens representing a robot action)

值得注意的是,同时使用原始的VLM训练数据和机器人数据对VLM微调,得到的效果相对最好(we use both the original VLM training data as well as robotic data for VLM fine-tuning)

此外,推理的时候用的最大模型是55B参数的RT-2-PaLI-X-55B模型,可以以1-3 Hz的频率运行,而该模型的较小版本由5B参数组成,可以以约5 Hz的频率运行

1.2.3 训练数据:PaLI-X/PaLM-E和RT-1的机器人演示数据

对于训练数据,我们利用了

  • Pali-x: On scaling up a multilingual vision and language modelPalm-e: An embodied multimodal language model(一作为Driess)的原始网络规模数据,其中包括视觉问答、字幕和非结构化交织的图像和文本示例
  • 然后将其与RT-1的机器人演示数据相结合(该数据在办公室厨房环境中使用13台机器人在17个月内收集而来)
    每个机器人演示轨迹都用自然语言指令进行了注释,描述了执行的任务,包括描述技能的动词(例如,“拾取”,“打开”,“放入”)和描述操作对象的一个或多个名词(例如,“7up罐”,“抽屉”,“餐巾纸”)

对于RT-2训练过程中的参数设置,采用了原始PaLI-X和PaLM-E论文中的超参数,包括学习率调度和正则化

1.2.4 Q-Transformer与Open X-Embodiment 数据集

在 RT-2 之后,谷歌 DeepMind 又提出了 Q-Transformer,机器人界也有了自己的 Transformer 。Q-Transformer 使得机器人突破了对高质量的演示数据的依赖,更擅长依靠自主「思考」来积累经验

RT-2 发布仅两个月,又迎来了机器人的 ImageNet 时刻。谷歌 DeepMind 联合其他机构推出了 Open X-Embodiment 数据集,改变了以往需要针对每个任务、机器人具体定制模型的方法,将各种机器人学的知识结合起来,创造出了一种训练通用机器人的新思路。

想象一下,只需向你的机器人小助理发出「为我打扫房子」或「为我们做一顿美味健康的饭菜」等简单的要求,它们就可以完成这些工作。打扫房间或做饭这种任务,对于人类来说很简单,但对于机器人来说,可真不容易,需要它们对世界有深度理解。

第二部分 AutoRT、SARA-RT 和 RT-Trajectory

基于在机器人 Transformer 领域深耕多年的研究基础, 近期,谷歌宣布了一系列机器人研究进展:AutoRT、SARA-RT 和 RT-Trajectory,它们能够帮助机器人更快地做出决策,更好地理解它们身处于怎样的环境,更好地指导自己完成任务。

谷歌相信随着 AutoRT、SARA-RT 和 RT-Trajectory 等研究成果的推出,能为现实的世界机器人的数据收集、速度和泛化能力带来增益。

接下来,让我们回顾一下这几项重要研究。

2.1 AutoRT:极大利好机器人数据的收集

在高层次上,AutoRT(对应论文为:AutoRT: Embodied Foundation Models for Large Scale Orchestration of Robotic Agents,Submitted on 23 Jan 2024)通过开放词汇表对象检测器收集数据

  1. 首先对场景进行理解和描述
  2. 然后LLM解析该描述,在给定高层目标的情况下生成明智且安全的语言目标
  3. 最后使用LLM确定如何执行这些目标

AutoRT采用了一个带有摄像头、机械臂和移动基座的移动机械手作为机器人平台。在此处,我们仅考虑操作数据的收集,因此导航只用于获取不同操作设置——然而值得注意的是该系统对其他机器人实现和收集模式也具有通用性

 AutoRT 结合了大型基础模型(如LLM或VLM,和机器人控制模型RT-1/RT-2,创建了一个可以在新环境中部署机器人用以收集训练数据的系统。AutoRT 可以同时指导多个配备了视频摄像机和末端执行器的机器人,在各种各样环境中执行多样化的任务

2.1.1 探索阶段:导航到目标

  1. 第一步是对空间进行探索,并找到有趣的场景进行操作(The first stage of AutoRT is to explore the space and find interesting scenes for manipulation)
    为了绘制环境,我们采用了 Chen 等人提出的自然语言地图方法,该方法利用 VLM 构建,将物体检测编码为视觉语言嵌入\phi_{i} ,相应位置(x_i, y_i, z_i)由机器人的深度传感器和 SLAM 确定
    Tomap the environment, we use the natural language map approach proposed by Chen et al. (Open-vocabulary queryable scene representations for real world planning),which is built using a VLM to encode object detections into visual-language embeddings φi, with corresponding position (xi,yi,zi) determined by the robot’s depth sensor and SLAM.

    因此,给定一个类似于“海绵”的文本目标 q ,我们可以通过查询接近 q 文本嵌入的 \phi_{i} 来引导机器人走向海绵
    Thus, givena textual target q like “sponge”, we can direct the robot towards a sponge by querying for a φithat is close to the text embedding for q.
  2. 为了确定导航目标,在感兴趣区域中采样状态时,我们根据之前看到对象的平均嵌入与潜在距离成比例进行采样
    To determine navigation goals we sample this map forregions of interest via sampling states proportional to their latent distance to an average embeddingof previously seen objects (see Appendix B for more details)

    每个环境只生成一次该地图,并复制到所有收集机器人所在空间中,并从缓存中加载以节省未来情节时间
    For each environment, this map isgenerated once, then copied to all robots collecting in the space and loaded from cache to save timein future episodes.

总之,机器人先在环境中进行探索(场景和物体由VLM描述),然后随机选择导航目标并靠近物体(并提供LLM文本作为机器人生成操纵任务的依据),最终机器人能有效执行任务,且对结果进行评分,并重复该过程,这种方法不需要事先了解环境布局或其中包含的物体

具体来说

  1. 每个机器人将根据 AutoRT,使用视觉语言模型VLM来「看看四周」,了解其环境和视线内的物体
  2. 接下来,大型语言模型会为其提出一系列创造性任务,例如「将零食放在桌子上」,并扮演决策者的角色,为机器人选择需要执行的任务

下图图呈现了 AutoRT 系统的运作过程(绿色部分是本工作的贡献):

  1. 自主轮式机器人找到了一个有多个物体的位置
  2. VLM 向 LLM 描述场景和物体
  3. LLM 为机器人提出各种操作任务,并决定哪些任务机器人可以独立完成,哪些任务需要人类远程控制,哪些任务不可能完成,然后做出选择
  4. 机器人尝试选择要做的任务,收集实验数据,并对数据的多样性和新鲜度进行评分
    机器人将不断重复这个过程

2.1.2 任务列表的生成

在机器人操作场景之前,需要生成一个操纵任务列表。这个过程包括两个步骤:

  1. 场景描述:根据机器人摄像头拍摄的图像,VLM会输出文本来描述机器人观察到的场景以及其中存在的五个物体。例如,在给定场景中,VLM列出了肥皂、餐巾、零食、布和海绵

    Given an image from the robot camera, a VLM outputs text describing thescene the robot observes, and 5 objects that exist in that scene. For example, as shown in Fig. 5,the VLM lists soap, napkin, snack, cloth, sponge in the given scene.

  2. 任务建议:在这一步中,AutoRT会提示生成任务列表。提示首先提供系统角色说明,比如“我是在办公环境中操作的机器人”,以指导LLM扮演相应角色。然后通过由机器人constitution编写的任务生成规则列表结束
    Task proposal: In this step, AutoRT is prompted to generate a list of tasks. This prompt beginswith a system prompt, such as: “I am a robot operating in an office environment”, which describesthe role the LLM should play. It continues with a list of rules that should be followed for taskgeneration, codified by the robot constitution.

    提示部分还可以注入之前VLM调用中得到的场景和对象描述信息。基于这些提示,LLM会生成一个潜在的操纵任务列表。值得注意的是,为了保持底层模型通用性,并没有针对我们特定用例进行LLM微调
    The prompt ends with a section, where we can inject the scene and object description from the prior VLM call. Given this prompt, an LLMgenerates a list of potential manipulation tasks (see Fig. 5). We note, the LLM is not fine-tuned toour specific use case to maintain the generality the underlying model.

研究人员在现实世界中对 AutoRT 进行了长达七个月的广泛评估。实验证明,AutoRT 系统能够同时安全地协调多达 20 个机器人,最多时共能协调 52 个机器人。通过指导机器人在各种办公楼内执行各种任务,研究人员收集了涵盖 77,000 个机器人试验,6,650 个独特任务的多样化数据集 

2.2 SARA-RT:让机器人 Transformer(RT)变得更快、更精简

另一项成果 SARA-RT,可将机器人 Transformer(RT)模型转换为更高效的版本。

谷歌团队开发的 RT 神经网络架构已被用于最新的机器人控制系统,包括 RT-2 模型。最好的 SARA-RT-2 模型在获得简短的图像历史记录后,比 RT-2 模型的精确度高 10.6%,速度快 14%。谷歌表示,这是首个在不降低质量的情况下提高计算能力的可扩展注意力机制。

虽然 Transformer 功能强大,但它们可能会受到计算需求的限制,从而减慢决策速度。Transformer 主要依赖于二次复杂度的注意力模块。这意味着,如果 RT 模型的输入增加一倍(例如,为机器人提供更多或更高分辨率的传感器),处理该输入所需的计算资源就会增加四倍,从而导致决策速度减慢。

SARA-RT 采用了一种新颖的模型微调方法(称为「向上训练」)来提高模型的效率。向上训练将二次复杂性转换为单纯的线性复杂性,从而大幅降低了计算要求。这种转换不仅能提高原始模型的速度,还能保持其质量。

谷歌希望许多研究人员和从业人员能将这一实用系统应用于机器人技术及其他领域。由于 SARA 提供了加快 Transformer 速度的通用方法,无需进行计算成本高昂的预训练,因此这种方法具有大规模推广 Transformer 技术的潜力。SARA-RT 不需要任何额外的代码,因为可以使用各种开源的线性变体。

当 SARA-RT 应用于拥有数十亿个参数的 SOTA RT-2 模型,它能在各种机器人任务中实现更快的决策和更好的性能:

图片

用于操纵任务的 SARA-RT-2 模型。机器人的动作以图像和文本指令为条件。

凭借其坚实的理论基础,SARA-RT 可应用于各种 Transformer 模型。例如,将 SARA-RT 应用于点云 Transformer(用于处理来自机器人深度摄像头的空间数据),其速度能够提高一倍以上。

2.3 RT-Trajectory:帮助机器人泛化

人类可以直观地理解、学会如何擦桌子,但机器人需要许多可能的方式将指令转化为实际的物理动作。

传统上,对机械臂的训练依赖于将抽象的自然语言(擦桌子)映射到具体的动作(关闭抓手、向左移动、向右移动),这使得模型很难推广到新任务中。与此相反,RT - 轨迹模型通过解释具体的机器人动作(如视频或草图中的动作),使 RT 模型能够理解 「如何完成」任务。

RT-Trajectory 模型能自动添加视觉轮廓,描述训练视频中的机器人动作。RT-Trajectory 将训练数据集中的每段视频与机器人手臂执行任务时抓手的 2D 轨迹草图叠加在一起。这些轨迹以 RGB 图像的形式,为模型学习机器人控制策略提供了低层次、实用的视觉提示。

在对训练数据中未见的 41 项任务进行测试时,由 RT-Trajectory 控制的机械臂的性能比现有的 SOTA RT 模型高出一倍多:任务成功率达到 63%,而 RT-2 的成功率仅为 29%。

该系统的用途十分广泛,RT-Trajectory 还可以通过观看人类对所需任务的演示来创建轨迹,甚至可以接受手绘草图。而且,它还能随时适应不同的机器人平台。

图片

左图:只使用自然语言数据集训练的 RT 模型控制的机器人,在执行擦桌子这一新任务时受挫,而由 RT 轨迹模型控制的机器人,在经过 2D 轨迹增强的相同数据集训练后,成功规划并执行了擦拭轨迹。右图:训练有素的 RT 轨迹模型在接到新任务(擦桌子)后,可以在人类的协助下或利用视觉语言模型自行以多种方式创建 2D 轨迹。

RT 轨迹利用了丰富的机器人运动信息,这些信息存在于所有机器人数据集中,但目前尚未得到充分利用。RT-Trajectory 不仅代表着在制造面向新任务高效准确移动的机器人的道路上又迈进了一步,而且还能从现有数据集中发掘知识

参考文献与推荐阅读

  1. 关于RT-2的报道
    机器人ChatGPT来了:大模型进现实世界,DeepMind重量级突破
    谷歌AGI机器人大招!54人天团憋7个月,强泛化强推理,DeepMind和谷歌大脑合并后新成果
  2. 关于Google家务机器人的报道
    谷歌DeepMind机器人成果三连发!两大能力全提升,数据收集系统可同时管理20个机器人,量子位
    谷歌家务机器人单挑斯坦福炒虾机器人!端茶倒水逗猫,连甩三连弹开打,新智元
    大模型正在重构机器人,谷歌Deepmind这样定义具身智能的未来,机器之心

相关文章:

Google视觉机器人超级汇总:从RT、RT-2到AutoRT、SARA-RT、RT-Trajectory

前言 随着对视觉语言机器人研究的深入,发现Google的工作很值得深挖,比如RT-2 ​想到很多工作都是站在Google的肩上做产品和应用,​Google真是科技进步的核心推动力,做了大量大模型的基础设施,服 故有了本文&#xf…...

python笔记(9)Dictionary(字典)

目录 创建字典 取值 修改字典 删除 内置函数和方法 创建字典 字典键值和value用:隔开,键值是不可变的,而且必须是唯一的,值可以变,可以是任意类型 dict {key1 : value1, key2 : value2 } 1)不允许同…...

蓝桥杯嵌入式总结

用到外部时钟:UART,ADC,RTC 用到中断:UART,TIM LED_KEY: 将高低电平写入对应引脚 HAL_GPIO_WritePin(GPIOD, GPIO_PIN_2, GPIO_PIN_SET); 读取对应引脚的电平状态 HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_0) UART: 发送: int fputc(int …...

渗透测试:数据库UDF提权(linux)

目录 开头: 1.UDF提权简介: 1.1共享库文件(UDF文件)指定目录: 版本特征: 操作系统版本: 2.靶场UDF提权复现 提权前提 1.要有一个高权限的MySQL的账号 ​编辑 2.MySQL的权限配置secure_file_priv为空 3.必须有存放UDF文件的…...

java算法day45 | 动态规划part07 ● 70. 爬楼梯 (进阶) ● 322. 零钱兑换 ● 279.完全平方数

70. 爬楼梯 &#xff08;进阶&#xff09; 题目描述&#xff1a; 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬至多m (1 < m < n)个台阶。你有多少种不同的方法可以爬到楼顶呢&#xff1f; 注意&#xff1a;给定 n 是一个正整数。 输入描述&#xff1a;输入…...

HuggingFace踩坑记录-连不上,根本连不上

学习 transformers 的第一步&#xff0c;往往是几句简单的代码 from transformers import pipelineclassifier pipeline("sentiment-analysis") classifier("We are very happy to show you the &#x1f917; Transformers library.") ""&quo…...

面试题:Spring Boot Starter的功能与使用场景

Spring Boot Starter 是 Spring Boot 框架为了简化项目的初始化和配置工作而设计的一种模块化依赖管理方式。它主要具有以下几个关键功能和使用场景&#xff1a; 功能&#xff1a; 1. 依赖管理每个 Starter 都是一组相关的依赖项集合&#xff0c;这些依赖项都是为了实现特定功能…...

上位机图像处理和嵌入式模块部署(qmacvisual之n点标定)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 工业场景中&#xff0c;很多时候图像是用来做测量的。虽然我们很希望载台是平的&#xff0c;摄像头是正对着拍摄物体的&#xff0c;但是运行时间长…...

Francek Chen 的128天创作纪念日

目录 Francek Chen 的128天创作纪念日机缘收获日常成就憧憬 Francek Chen 的128天创作纪念日 Francek Chen 的个人主页 机缘 不知不觉的加入CSDN已有两年时间了&#xff0c;最初我第一次接触CSDN技术社区是在2022年4月的时候&#xff0c;通过学长给我们推荐了几个IT社区平台&a…...

PyTorch之Torch Script的简单使用

一、参考资料 TorchScript 简介 Torch Script Loading a TorchScript Model in C TorchScript 解读&#xff08;一&#xff09;&#xff1a;初识 TorchScript libtorch教程&#xff08;一&#xff09;开发环境搭建&#xff1a;VSlibtorch和Qtlibtorch 二、Torch Script模型格…...

vscode 连接远程服务器 服务器无法上网 离线配置 .vscode-server

离线配置 vscode 连接远程服务器 .vscode-server 1. .vscode-server下载 使用vscode连接远程服务器时会自动下载配置.vscode-server文件夹&#xff0c;如果远程服务器无法联网&#xff0c;则需要手动下载 1&#xff09;网址&#xff1a;https://update.code.visualstudio.com…...

arm开发板移植工具mkfs.ext4

文章目录 一、前言二、手动安装e2fsprogs1、下载源码包2、解压源码3、配置4、编译5、安装 三、移植四、验证五、总结 一、前言 在buildroot菜单中&#xff0c;可以通过勾选e2fsprogs工具来安装mkfs.ext4工具&#xff1a; Target packages -> Filesystem and flash utilit…...

某盾滑块拼图验证码增强版

介绍 提示&#xff1a;文章仅供交流学习&#xff0c;严禁用于非法用途&#xff0c;如有不当可联系本人删除 最近某盾新推出了&#xff0c;滑块拼图验证码&#xff0c;如下图所示&#xff0c;这篇文章介绍怎么识别滑块距离相关。 参数attrs 通过GET请求获取的参数attrs, 决…...

这个世界万物存在只有一种关系:博弈

$上证指数(SH000001)$ 我能给各位最大的帮助可能就是第一个从红警游戏引入了情绪周期视角的概念&#xff0c;而这个概念可以帮助很多人理解市场成为一种可能性&#xff0c;如果不理解可以重新回归游戏进行反复体验&#xff0c;你体验的足够多&#xff0c;思考的足够多&#xff…...

c#让不同的工厂生产不同的“鸭肉”

任务目标 实现对周黑鸭工厂的产品生产统一管理&#xff0c;主要产品包括鸭脖和鸭翅。武汉工厂能生生产鸭脖和鸭翅&#xff0c;南京工厂只能生产鸭翅&#xff0c;长沙工厂只能生产鸭脖。 分析任务 我们需要有武汉工厂、南京工厂、长沙工厂的类&#xff0c;类中需要实现生产鸭…...

大数据分析与内存计算——Spark安装以及Hadoop操作——注意事项

一、Spark安装 1.相关链接 Spark安装和编程实践&#xff08;Spark3.4.0&#xff09;_厦大数据库实验室博客 (xmu.edu.cn) 2.安装Spark&#xff08;Local模式&#xff09; 按照文章中的步骤安装即可 遇到问题&#xff1a;xshell以及xftp不能使用 解决办法&#xff1a; 在…...

论文阅读RangeDet: In Defense of Range View for LiDAR-based 3D Object Detection

文章目录 RangeDet: In Defense of Range View for LiDAR-based 3D Object Detection问题笛卡尔坐标结构图Meta-Kernel Convolution RangeDet: In Defense of Range View for LiDAR-based 3D Object Detection 论文&#xff1a;https://arxiv.org/pdf/2103.10039.pdf 代码&…...

3D模型格式转换工具HOOPS Exchange如何将3D文件加载到PRC数据结构中?

HOOPS Exchange是一款高效的数据访问工具&#xff0c;专为开发人员设计&#xff0c;用于在不同的CAD&#xff08;计算机辅助设计&#xff09;系统之间进行高保真的数据转换和交换。由Tech Soft 3D公司开发&#xff0c;它支持广泛的CAD文件格式&#xff0c;包括但不限于AutoCAD的…...

c# wpf Template ContentTemplate

1.概要 1.1 定义内容的外观 2.2 要点分析 2.代码 <Window x:Class"WpfApp2.Window1"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d"http://schem…...

空和null是两回事

文章目录 前言 StringUtils1. 空&#xff08;empty&#xff09;&#xff1a;字符串&#xff1a;集合&#xff1a; 2. null&#xff1a;引用类型变量&#xff1a;基本类型变量&#xff1a; 3. isBlank总结&#xff1a; 前言 StringUtils 提示&#xff1a;这里可以添加本文要记录…...

UNIAPP(小程序)每十个文章中间一个广告

三十秒刷新一次广告 ad-intervals"30" <template><view style"margin: 30rpx;"><view class"" v-for"(item,index) in 100"><!-- 广告 --><view style"margin-bottom: 20rpx;" v-if"(inde…...

pip包安装用国内镜像源

一&#xff1a;临时用国内源 可以在使用pip的时候加参数-i https://pypi.tuna.tsinghua.edu.cn/simple 例如&#xff1a;pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyspider&#xff0c;这样就会从清华这边的镜像去安装pyspider库 清华&#xff1a;https://py…...

uniapp:小程序腾讯地图程序文件qqmap-wx-jssdk.js 文件一直找不到无法导入

先看问题&#xff1a; 在使用腾讯地图api时无法导入到qqmap-wx-jssdk.js文件 解决方法&#xff1a;1、打开qqmap-wx-jssdk.js最后一行 然后导入&#xff1a;这里是我的路径位置&#xff0c;可以根据自己的路径位置进行更改导入 最后在生命周期函数中输出&#xff1a; 运行效果…...

如何物理控制另一台电脑以及无网络用作副屏(现成设备和使用)

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github&#xff1a;codetoys&#xff0c;所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的&#xff0c;可以在任何平台上使用。 控制另一台电脑有很多方法&…...

Aurora8b10b(1)IP核介绍并基于IP核进行设计

文章目录 前言一、IP核设置二、基于IP核进行设计2.1、设计框图2.2、aurora_8b10b_0模块2.3、aurora_8b10b_0_CLOCK_MODULE2.4、aurora_8b10b_0_SUPPORT_RESET_LOGIC2.5、aurora8b10b_channel模块2.6、IBUFDS_GTE2模块2.7、aurora_8b10b_0_gt_common_wrapper模块2.8、aurora8b10…...

基于Springboot的美发管理系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的美发管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&…...

最新测试技术

在软件测试领域,随着技术的不断进步和行业需求的变化,新的测试技术和方法不断涌现。以下是一些最新的测试技术,它们正在塑造着软件测试的未来: 人工智能和机器学习(AI/ML)在测试中的应用 人工智能和机器学习正在被集成到软件测试中,以提高测试的自动化水平和效率。AI可…...

【算法】初识算法

尽量不说废话 算法 一、数据结构二、排序算法三、检索算法四、字符算类型算法五、递归算法六、贪心算法七、动态规划八、归一化算法后记 我们这里指的算法&#xff0c;是作为程序员在计算机编程时运用到的算法。 算法是一个庞大的体系&#xff0c;主要包括以下内容&#xff1a;…...

HomeBrew 安装与应用

目录 前言一、安装 HomeBrew二、使用 HomeBrew1、使用 brew 查看已安装的软件包2、使用 brew 安装软件包3、使用 brew 升级已安装的软件包4、brew 还有哪些命令呢&#xff1f; 前言 在 macOS&#xff08;或Linux&#xff09;系统里&#xff0c;默认是没有软件包的管理器的&…...

JS详解-设计模式

工厂模式&#xff1a; 单例模式&#xff1a; // 1、定义一个类class SingleTon{// 2、添加私有静态属性static #instance// 3、添加静态方法static getInstance(){// 4、判断实例是否存在if(!this.#instance){// 5、实例不存在&#xff0c;创建实例this.#instance new Single…...

做网站交易平台/巢湖网站制作

记录一次集群间使用hadoop自带的distcp同步数据时遇到的问题&#xff0c;结论在最后 同步命令&#xff1a; sudo -u hive hadoop distcp -Dmapred.job.queue.namedefault hdfs://10.0.134.179:8020/tmp/hive-export/backup/ hdfs://10.3.100.101:8020/tmp/hive-export/以下…...

建站吗官方网站/商丘 峰少 seo博客

1.常函数成员&&常数据成员 const位于函数声明后面,声明和定义时都要加&#xff1b; 进行函数调用时不能加const; 常对象只能调用常函数成员; const成员函数既可引用const数据&#xff0c;也可引用非const数据&#xff0c;但都不能改变值。 const函数成员不能访问非c…...

怎么用电脑做网站服务器/seo服务公司上海

背景 在LeetCode中&#xff0c;有很多题目都可以使用优先队列实现&#xff0c;Python中的数据结构是heapq&#xff0c;Python的堆是小顶堆&#xff0c;heap[0]永远是最小的元素&#xff0c;今天总结一下常用方法 常用方法 添加元素 >>> import heapq >>> …...

网站开发项目实训总结/朝阳网站建设

精品文档师徒结对活动徒弟听课记录表时间班 级过程即时感 悟课题教学过程实录过程即时感 悟教学过程实录板书或场地听课心得体会师傅评价与签名师徒结对活动师傅课记录表时间班 级过程即时评 价课题教学过程实录过程即时评 价教学过程实录板书或场地课后点评其他指导记录时间活…...

网站开发的学习方法/百度怎么免费推广

dell inspiron 15 3000 装XP win7 等GHOST系统方法1. 开机按F2&#xff0c;进入BIOS2.在 BIOS 的Boot菜单下&#xff0c;将Secure Boot 改为 Disabled3. 将Boot List Option 改为 Legacy按F10保存后&#xff0c;重新开机&#xff0c;4.然后进PE运行分区工具&#xff0c;把硬盘的…...

网站前置审批文件/郑州高端网站制作

给Thinkpad E431 安装上 Windows 8.1 Pro 之后&#xff0c;一直都安装不上 MSSQLServer 2005 DEV / ENT&#xff0c;2008 ENT / STAND, 2008 R2 ENT / STAND&#xff0c; 2012 ENT&#xff0c;无奈&#xff0c;想了想无非就应该是系统与数据库的兼容性以及 Win8.1 的用户权限问…...