ROBOVERSE:面向可扩展和可泛化机器人学习的统一平台、数据集和基准

news2025/5/10 20:01:14

25年4月来自UC Berkeley、北大、USC、UMich、UIUC、Stanford、CMU、UCLA 和 北京通用 AI 研究院(BIGAI)的论文“ROBOVERSE: Towards a Unified Platform, Dataset and Benchmark for Scalable and Generalizable Robot Learning”。

数据扩展和标准化评估基准,推动了自然语言处理和计算机视觉领域的重大进步。然而,机器人技术在数据扩展和建立可靠的评估协议方面面临着独特的挑战。收集现实世界的机器人数据资源密集且效率低下,而在现实世界场景中进行基准测试仍然非常复杂。合成数据和仿真提供了有前景的替代方案,但现有的努力往往在数据质量、多样性和基准标准化方面存在不足。为了应对这些挑战,ROBOVERSE 是一个包含仿真平台、合成数据集和统一基准的综合框架。其仿真平台支持多个模拟器和机器人实例,可实现不同环境之间的无缝转换。合成数据集具有高保真物理和照片级渲染效果,是通过多种方法构建的,包括从公共数据集迁移、策略部署和运动规划等,并通过数据增强技术进行增强。此外,还提出用于模仿学习和强化学习的统一基准,从而能够在不同泛化水平上进行一致的评估。仿真平台的核心是 METASIM,这是一个将不同的仿真环境抽象为通用接口的基础架构。它将现有的模拟环境重构为一个与模拟器无关的配置系统,并提供一个 API 来协调不同的模拟器功能,例如启动模拟环境、加载具有初始状态的资源、步进物理引擎等。这种抽象确保了互操作性和可扩展性。实验表明,ROBOVERSE 能够提升模拟学习、强化学习和世界模型学习的性能,从而改善从模拟-到-现实的迁移。

ROBOVERSE 如图所示:

请添加图片描述

基准测试仍然是机器人领域一个关键且极具挑战性的问题。与监督学习任务相比,评估机器人模型的性能相对困难。Meta-World [134] 是多任务基准测试的早期尝试。紧随其后的是 RLBench [48]、BEHAVIOR-1K [63]、Habitat [111] 和 ManiSkill [84, 37, 112, 107],涵盖了各种各样的机器人任务。Grutopia [120] 和 InfiniteWorld [100] 向通用机器人基准测试迈出了一步。尽管研究人员为这些基准测试付出了巨大的努力,但并不能保证结果在不同的基准测试中具有可重复性。不确定性来自多个方面,包括模拟精度、渲染风格和资产属性 [66, 26]。
为了充分发挥机器人仿真的潜力, 构建 ROBOVERSE 这个可扩展的仿真平台,它将现有的模拟器统一在一个标准化的格式、单一的基础设施、大规模的合成数据集和统一的基准测试下。为此,ROBOVERSE 的核心基础设施是METASIM。通过设计,METASIM 为智体、目标、传感器、任务和物理参数建立一个通用的配置系统,同时提供了一个与模拟器无关的模拟设置和控制接口。该架构能够以最小的适应性工作,无缝集成来自不同模拟环境的任务、资产和机器人轨迹。

在 ROBOVERSE 中,构建了迄今为止规模最大、种类最全的高质量合成数据集和基准测试集,并采用统一的格式。该数据集包含约 50 万条独特的高保真轨迹,涵盖 276 个任务类别和约 5.5 万个素材。此外,还生成了超过 5000 万个高质量的状态转换,以支持策略学习。

METASIM 概述

METASIM,是特定仿真环境实现之上的高级接口。它也是 ROBOVERSE 的核心基础设施。如图所示,METASIM 为 ROBOVERSE 仿真平台提供支持,使其能够生成大规模高质量数据集,并构建统一的基准测试。

请添加图片描述

METASIM 实现

如图所示,METASIM 采用三层架构,包括通用配置系统、与模拟器无关的接口和用户友好的环境包装器。通用配置系统统一了仿真场景的规范,并确保不同模拟器的格式一致。与模拟器无关的接口解释这些规范,将其转换为特定于模拟器的命令,从而协调不同的模拟器后端。此外,环境包装器将与模拟器无关的接口封装到标准化的学习环境中,例如 Gym [115] 环境。

请添加图片描述

1)通用配置系统:一个典型的模拟环境包含智体、目标、任务、传感器和物理参数。它们共同定义了谁执行动作(智体)、环境是什么样子(目标)、智体应该做什么(任务,包括指令、成功指标和奖励)、环境如何被感知和测量(传感器)以及控制物理定律(物理参数)。理想情况下,这些组件应该与模拟器无关,需要统一的模拟场景标准。这样的标准将使研究人员能够无缝地跨不同的模拟器工作,并通过跨模拟集成社区现有的工作。

基于这一原则,设计一个配置系统 MetaConfig,以与模拟器无关的方式抽象模拟场景。如图所示,MetaConfig 是一个嵌套类,包含上述核心组件。它可以被不同的模拟器后端解释,从而构建相应的模拟。此外,MetaConfig 支持可选的模拟器特定超参数(例如,求解器类型),从而允许通过定制充分利用不同模拟器的独特功能。

请添加图片描述

2)统一的模拟器后端:不同的模拟器有各自的实现和专业化。然而,常规操作(例如初始化场景、加载目标、单步运行物理引擎、检索观测值、时间管理和确定成功状态)往往遵循相似的模式。为了标准化这些共享操作,通过 Handler 类创建了一个统一的接口。每个模拟器都有自己的处理程序实例来实现此接口。处理程序类实现了涵盖模拟任务整个生命周期的通用方法,包括 launch()、get_states() 和 set_states() 等。 API 的使用方法已在如下代码 中演示。

请添加图片描述

  1. 用户友好的环境包装器:Gym [115] 是强化学习和机器人技术中广泛采用的范例,其中 gym.Env 类是构建学习环境的基础。定义一个包装器,可以轻松地将 Handler 转换为配备 Gym API(step()、reset()、render() 和 close())的环境。如上述代码例子所示,这些方法是通过利用底层 Handler 的方法来实现的。

METASIM 功能

METASIM 提供以下三大关键功能。

  1. 跨模拟器集成:在不同模拟器之间无缝切换,允许将一个模拟器中的任务和轨迹应用于其他模拟器。此功能可实现高效的任务和轨迹集成、统一的基准测试构建以及用于强化学习训练的模拟器间迁移。例如,Isaac Gym [75] 可以使用 Meta-World [134] 中的任务进行快速并行训练,之后生成的轨迹可部署到 Isaac Sim [88] 中进行渲染。
  2. 混合模拟:METASIM 支持同时结合一个模拟器的物理引擎和另一个模拟器的渲染器,使用户能够充分利用不同模拟器的优势。具体来说,只需一个命令,就可以启动一个带有强大渲染器的模拟器(例如 Isaac Sim [88]),并与一个带有精确物理引擎的模拟器(例如 MuJoCo [114])连接,形成更强大的模拟,从而生成高质量的数据。
    3)跨实体迁移:通过重定位末端执行器的姿态,在不同的基于夹持器的机器人形态上重用轨迹,从而将从不同机器人收集的数据集成为统一的格式。

ROBOVERSE 数据集概述

在 METASIM 的基础上,结合多种数据收集方法,生成大规模高质量数据集。总体而言,需要收集三种关键数据类型:任务、资产和机器人轨迹。这些数据的主要来源是从现有模拟环境中迁移。除了迁移之外,还探索各种数据收集方法,例如使用大语言模型生成新任务,利用 Real-to-Sim 工具集 [71] 从现实世界重建资产,使用遥操作收集新轨迹等。此外,还利用数据增强方法进行轨迹和视觉观察。最后,给出 ROBOVERSE 中数据迁移的当前进度统计数据。

任务、资产和轨迹收集:迁移

利用 ROBOVERSE 的格式和基础架构,将各种基准测试和数据集以统一的格式和简洁的代码库无缝集成到系统中。采用以下方法来收集任务和演示。
• 从其他模拟环境直接迁移。一些基准测试,将必要的组件集成到 ROBOVERSE 中。定义任务初始化和评估的环境配置,然后转换轨迹数据和资产格式以实现无缝兼容。值得注意的是,ROBOVERSE 通过首先在原始模拟器中对齐格式并自动确保所有模拟器的兼容性来简化此迁移过程。
• 运动规划和 RL 展开(Rollout)。当基准测试仅提供部分操作数据(例如关键点轨迹或抓取姿势)时,使用运动规划来生成完整的轨迹。如果没有明确的操作数据,但已经有预存在的策略或强化学习框架,会利用这些策略或训练新的策略以通过展开收集演示数据。为了确保数据的高质量和与系统标准的一致性,仔细调整成功检查器并严格过滤规划和收集的轨迹。

通过上述技术,将多个现有的操作数据集迁移到 ROBOVERSE。目前,支持 ManiSkill [84, 37, 112]、RLBench [48]、CALVIN [82]、Meta-World [134]、robosuite [145]、MimicGen [79]、GAPartNet [34]、Open6DOR [24]、ARNOLD [36]、LIBERO [68]、SIMPLER [66]、GraspNet [27]、GarmentLab [72] 和 UniDoorManip [67]。

还整合来自更广泛实例的数据集,包括灵巧手、四足机器人和人形机器人,涵盖灵巧操作、运动、导航和全身控制等任务。目前,已经迁移用于导航的 VLN-CE R2R [58] 和 RxR [60],以及用于运动和全身控制的 HumanoidBench [106] 和 Humanoid-X [80]。
ROBOVERSE 简化并标准化迁移过程,今后将继续维护和扩展它。

任务、资产和轨迹收集:遥操作和生成

• 用于轨迹收集的遥操作系统。如图所示,ROBOVERSE 将遥操作系统集成到 METASIM 基础架构中,为高质量数据收集提供了灵活高效的解决方案。它支持各种机器人系统,包括手臂、灵巧手 [91] 和双手设置,从而实现跨不同模拟器的无缝遥操作。为了降低专业设备的高成本和复杂性,引入一种交互式运动控制系统,该系统利用键盘、操纵杆、移动设备应用程序(开发了一款适用于 Android 和 iOS 的新应用程序来控制机械臂)、动作捕捉 (Mocap) [117] 和 VR 系统 [12, 96] 等可访问设备。这些设备的集成传感器可以捕获运动数据,从而实现自然的基于手势的控制以及实时高频通信,从而实现精确、低成本的遥操作。

请添加图片描述

• AI 辅助任务生成。利用大型生成模型的泛化能力,AI 辅助任务生成提供了一种机制,可以多样化任务种类和场景分布。通过从示例位置学习,它获得对空间和语义约束的感知 [1](例如,通过演示特定的约束,它可以学习分散目标以避免潜在的重叠等)。它可以将来自不同基准的物体排列成基于 METASIM 的物理可信场景,如图所示。通过将机器人和目标选择的随机性[52]与初始姿态相结合,大型生成模型可以生成各种初始状态。该系统可以自动以统一的格式输出所有必需的配置文件,以实现即时可视化和用户友好的编辑体验。任务生成后,将进行两步过滤以避免错误和幻觉:(1)格式验证:不符合 ROBOVERSE 格式标准的任务将被丢弃。(2)可行性检查:由于轨迹数据是通过人工遥控收集的,因此遥控操作员认为不合理的任务将被删除。通过释放大型生成模型的外推和小样本学习能力,将资产自动集成到统一的模式下,从而驱动跨多个模拟器和基准的任务生成。

请添加图片描述

• Real-to-Sim 用于资产构建。事实证明,利用 Real-to-Sim 技术,基于视频的重建是数据和资产创建的宝贵来源。该方法集成了多个重建流程,从视频数据中提取高保真资产。首先,使用 COLMAP [103, 104] 初始化结构,并采用Gaussian Splatting [53] 进行高质量渲染。接下来,通过将语义图像和原始图像输入视觉语言模型 (VLM) [143] 来推断物理属性。对于几何重建,从视频 [132] 中估计表面法线,应用面元铺展 [45],并利用基于时间序列离散函数 (TSDF) 的动态滤波方法重建细节网格 [131]。通过利用语义掩码 [99],选择性地从高斯表示和网格表示中提取分量。为了进一步增强真实感,直接从视频 [69] 中推断和学习物体运动学,确保运动表示的准确性。最后,通过细化坐标系、方向、轴对齐、比例、相对六自由度姿态和局部极化 (PD) 控制参数 [71] 等关键属性来构建 URDF 模型。该流程有效地弥合真实世界视频数据与可用于模拟的资源之间的差距,增强机器人学习和模拟保真度。如图所示一个Real-to-Sim 工具:
请添加图片描述

数据增强

  1. 轨迹增强:凭借统一的仿真接口和数据格式,ROBOVERSE 能够显著提高数据增强的效率,并支持先进的增强技术。除了 Benchmark Protocol [8] 中详述的视觉随机化之外,还提供强大的轨迹空间增强功能。提供 API,可根据有限数量的源演示生成大规模机器人轨迹数据集。遵循 MimicGen [79] 框架,对于大多数任务,可以将它们分解为一系列以目标为中心的子任务 (S_1 (o_S_1)、S_2 (o_S_2)、……、S_M (o_S_M)),其中每个子任务 S_i (o_S_i) 中的机器人轨迹相对于单个目标的坐标系(o_S_i ∈ O,O 是任务 M 中的目标集)。此外,假设每个任务中的子任务序列是预定义的。利用这种关于子任务顺序的极简人工注释,可以使用模拟器高效地将每个源演示划分为以目标为中心的连续操作片段 {τ_i}(每个片段对应一个子任务 S_i(o_i)),然后使用 MimicGen [79] 为各种任务变体(在案例中:目标 (D) 和机器人 ® 的初始状态和目标状态分布的变化)生成广泛的轨迹数据集。这种方法已被证明在模仿学习中显著提高泛化能力 [79, 50, 121, 31, 85],尤其是在源演示数量有限的场景中。

  2. 域随机化:在 METASIM 的 Isaac Sim [88] 处理程序中实现域随机化。这涉及四种类型的随机化:
    • 桌子、地面和墙壁。对于缺乏预定义场景的任务,可以添加墙壁(和天花板)。对于在桌面上执行的任务,还可以包含可自定义的表格。这些元素的视觉材质是从 ARNOLD [36] 和 vMaterials [87] 的精选子集中随机选择的。表格中有 ∼300 种材质选项,而墙壁和地面各有大约 ∼150 种材质选项。
    • 光照条件。可以指定两种光照场景:远光和圆柱的光阵列。对于远光,光源的极角是随机的。对于圆柱光,在智体上方固定高度添加一个随机的 n × m 圆柱光矩阵,其大小是随机的。在这两种场景中,光源的强度和色温都在合理的范围内随机化。
    • 相机姿态。精心挑选 59 个候选相机姿态,其中大多数姿态面向机器人正对方向,一小部分姿态面向机器人侧面。
    • 反射属性。每个表面的粗糙度、镜面反射和金属属性都在合理的范围内随机化。

这些随机化选项可以自由组合。例如,一个场景可以包含一张定制的桌子、带天花板的墙壁和一组圆柱形灯,以模拟室内环境。

ROBOVERSE 数据集

  1. 数据集统计:
    a) 操作数据集:将现有源基准 [84, 37, 112, 48, 82, 134, 145, 79, 34, 24, 36, 68, 66, 35, 27, 72, 67, 18] 中的各种操作数据集迁移到 ROBOVERSE。下表汇总了各源基准贡献的任务类别、轨迹和资产数量。本次迁移共计生成 276 个任务类别、510.5 万条轨迹和 5.5 万项资产。
    请添加图片描述

下图展示具有丰富域随机化的代表性任务。
请添加图片描述

b) 导航数据集:将视觉和语言导航 (VLN) 任务迁移到 ROBOVERSE。需要注意的是,存在各种具有不同设置的 VLN 任务;本文特别关注连续环境中的 VLN (VLN-CE) [58],因为它更接近真实场景 [11, 139, 140]。具体而言,基于 ROBOVERSE 构建数据集,集成了 MatterPort 3D 场景 [9](90 个场景)以及 R2R [58](10k 个场景)和 RxR [60](20k 个场景)的现成指令。提供两种类型的移动实例,包括 Unitree Dog(腿式机器人)和 JetBot(轮式机器人),它们支持不同的控制策略。
c) 人形机器人数据集:将 HumanoidBench [106] 任务迁移至强化学习基准,并集成了来自 Humanoid-X [80] 和 SkillBlender [61] 的任务、策略和数据样本。此外,在框架内重新实现 UH-1 推理流程。预训练策略成功地使人形机器人能够遵循演示姿势,同时在基于 ROBOVERSE 的多个模拟器上保持稳定的运动。

基准概述

通过收集任务、资产和轨迹,ROBOVERSE 为机器人学习(包括模仿学习和强化学习)建立了标准化基准。在 ROBOVERSE 平台内定义统一的训练和评估协议,并实施用于基准测试的标准化基线和学习框架。具体而言,对于模仿学习,引入不同级别的泛化基准来评估模型的泛化能力。

模仿学习基准

对于每个模仿学习基准,建立了一个标准化的评估框架,该框架包含一组固定的演示和受控的评估环境。策略必须专门基于提供的训练数据进行训练,并在此环境中进行评估,以确保公平比较。为了严格测试泛化能力,从特定领域收集训练数据,并在未见过的样本上评估策略,以测试其对新场景的适应性。系统地将视觉泛化因素分为多个级别,包括任务空间泛化、环境设置泛化、相机设置泛化以及光照和反射泛化。每个级别都引入受控的变量,以评估策略在日益多样化和具有挑战性的条件下的适应性和鲁棒性。

a) 级别 0:任务空间泛化:通过使用一致的相机、材质、光照和其他参数对环境进行标准化,建立受控评估。任务空间(包括目标初始化和指令)被分为 90% 的训练集和 10% 的验证集,以评估在固定设置下的泛化能力,如图 (a) 所示。

b) 级别 1:环境随机化:在标准化设置的基础上,在保持相机、材质和光照不变的情况下引入场景随机化 [81]。通过改变房屋、桌子和地面的配置,创建不同的视觉输入,以测试策略对环境变化的鲁棒性 [51]。一组固定的预定义随机场景可确保结构化评估,如图 (b) 所示。

c) 级别 2:相机随机化:为了评估跨相机变化的泛化能力,使用标注的真实相机姿态引入不同的观看高度和角度。按照 90/10 的训练/测试比例,确保评估的一致性和严格性,如图 © 所示。

d) 级别 3:光照和反射随机化:现实世界环境涉及各种材质和光照条件 [116]。为了模拟这些挑战,随机化光照和反射,并设计了逼真的物体材质和照明设置 [19]。这增强了在不同条件下的鲁棒性测试,如图 (d) 所示。

请添加图片描述

强化学习基准

除了模仿学习之外,ROBOVERSE 还提供了全面的强化学习 (RL) 基准,旨在适应各种任务、机器人实例和模拟后端。具体而言,将 Stable-Baselines3 [98] 和 rsl_rl [102] 中的 PPO [105] 算法集成到 METASIM 界面中,从而实现了简单的任务定义、无缝的环境切换和标准化的性能日志记录。

基于此基础架构,已成功将 Humanoid-Bench [106] 基准测试中多个人形机器人控制任务移植到 ROBOVERSE。通过针对 rsl_rl [102] 进行适配的接口,有效地扩展了框架兼容性,使其能够支持原始基准测试中的 TD-MPC2 [41, 42] 算法,同时保持了实现的保真度。

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

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

相关文章

(41)VTK C++开发示例 ---qt使用vtk最小示例

文章目录 1. 概述2. CMake链接VTK3. main.cpp文件4. 演示效果 更多精彩内容👉内容导航 👈👉VTK开发 👈 1. 概述 本文演示了在Qt中使用VTK的最小示例程序,使用VTK创建显示一个锥体; 采用Cmake作为构建工具&a…

OS7.【Linux】基本指令入门(6)

目录 1.zip和unzip 配置指令 使用 两个名词:打包和压缩 打包 压缩 Linux下的操作演示 压缩和解压缩文件 压缩和解压缩目录 -d选项 2.tar Linux下的打包和压缩方案简介 czf选项 xzf选项 -C选项 tzf选项 3.bc 4.uname 不带选项的uname -a选项 -r选项 -v选项…

国标GB28181视频平台EasyCVR安防系统部署知识:如何解决异地监控集中管理和组网问题

在企业、连锁机构及园区管理等场景中,异地监控集中管控与快速组网需求日益迫切。弱电项目人员和企业管理者亟需整合分散监控资源,实现跨区域统一管理与实时查看。 一、解决方案 案例一:运营商专线方案​ 利用运营商专线,连接各分…

O2O上门服务如何颠覆传统足浴行业?真实案例分析

在湖南经营传统足浴店的张总最近遇到了件让他哭笑不得的事。原本他的门店生意还算稳定,虽然这两年行情不好,但靠着老顾客还能勉强维持。可谁想到,一次好心帮忙,竟让他发现了行业的新天地。 几年前,张总的一位做砂石生意…

金仓数据库永久增量备份技术原理与操作

先用一张图说明一下常见的备份方式 为什么需要永久增量备份 传统的数据库备份方案通常是间隔7天对数据库做一次全量备份(完整备份),每天会基于全量备份做一次增量备份,如此循环,这种备份方案在全备数据量过大场景下…

19、HashTable(哈希)、位图的实现和布隆过滤器的介绍

一、了解哈希【散列表】 1、哈希的结构 在STL中,HashTable是一个重要的底层数据结构, 无序关联容器包括unordered_set, unordered_map内部都是基于哈希表实现 哈希表又称散列表,一种以「key-value」形式存储数据的数据结构。哈希函数:负责将…

mysql中int(1) 和 int(10) 有什么区别?

困惑 最近遇到个问题,有个表的要加个user_id字段,user_id字段可能很大,于是我提mysql工单​​alter table xxx ADD user_id int(1)​​。领导看到我的sql工单,于是说:这int(1)怕是不够用吧,接下来是一通解…

FreeRTOS如何实现100%的硬实时性?

实时系统在嵌入式应用中至关重要,其核心在于确保任务在指定时间内完成。根据截止时间满足的严格程度,实时系统分为硬实时和软实时。硬实时系统要求任务100%满足截止时间,否则可能导致灾难性后果,例如汽车安全系统或医疗设备。软实…

element-ui日期时间选择器禁止输入日期

需求解释:时间日期选择器,下方日期有禁止选择范围,所以上面的日期输入框要求禁止输入,但时间输入框可以输入,也就是下图效果,其中日历中的禁止选择可以通过【picker-options】这个属性实现,此属…

[论文阅读]Deeply-Supervised Nets

摘要 我们提出的深度监督网络(DSN)方法在最小化分类误差的同时,使隐藏层的学习过程更加直接和透明。我们尝试通过研究深度网络中的新公式来提升分类性能。我们关注卷积神经网络(CNN)架构中的三个方面:&…

多模态大语言模型arxiv论文略读(六十二)

MileBench: Benchmarking MLLMs in Long Context ➡️ 论文标题:MileBench: Benchmarking MLLMs in Long Context ➡️ 论文作者:Dingjie Song, Shunian Chen, Guiming Hardy Chen, Fei Yu, Xiang Wan, Benyou Wang ➡️ 研究机构: The Chinese Univers…

现代框架对SEO的深度影响

第8章:现代框架对SEO的深度影响 1. 引言 Next 和 Nuxt 是两个 🔥热度和使用度都最高 的现代 Web 开发框架,它们分别基于 ⚛️React 和 🖖Vue 构建,也代表了这两个生态的 🌐全栈框架。 Next 是由 Vercel 公司…

密码学--RSA

一、实验目的 1.随机生成明文和加密密钥 2.利用C语言实现素数选择(素性判断)的算法 3.利用C语言实现快速模幂运算的算法(模重复平方法) 4.利用孙子定理实现解密程序 5.利用C语言实现RSA算法 6.利用RSA算法进行数据加/解密 …

如何选择自己喜欢的cms

选择内容管理系统cms what is cms1.whatcms.org2.IsItWP.com4.Wappalyzer5.https://builtwith.com/6.https://w3techs.com/7. https://www.netcraft.com/8.onewebtool.com如何在不使用 CMS 检测器的情况下手动检测 CMS 结论 在开始构建自己的数字足迹之前,大多数人会…

BUUCTF——杂项渗透之赛博朋克

下载附件,是一个txt。打开查看,数据如下: 感觉这个像是用十六进制编辑器打开后的图片数据。为了验证此想法,我用010editor打开,发现文件头的确是png图片的文件头。 把txt文件后缀改成png格式,再双击打开&am…

React 中集成 Ant Design 组件库:提升开发效率与用户体验

React 中集成 Ant Design 组件库:提升开发效率与用户体验 一、为什么选择 Ant Design 组件库?二、基础引入方式三、按需引入(优化性能)四、Ant Design Charts无缝接入图标前面提到了利用Redux提供全局维护,但如果在开发时再自己手动封装组件,不仅效率不高,可能开发的组件…

编译原理实验 之 语法分析程序自动生成工具Yacc实验

文章目录 实验环境准备复现实验例子分析总的文件架构实验任务 什么是Yacc Yacc(Yet Another Compiler Compiler)是一个语法分析程序自动生成工具,Yacc实验通常是在编译原理相关课程中进行的实践项目,旨在让学生深入理解编译器的语法分析阶段以及掌握Yac…

从“山谷论坛”看AI七剑下天山

始于2023年的美国山谷论坛(Hill and Valley Forum)峰会,以“国会山与硅谷”命名,寓意连接科技界与国家安全战略。以人工智能为代表的高科技,在逆全球化时代已成为大国的致胜高点。 论坛创办者Jacob Helberg,现在是华府的副国务卿,具体负责经济、环境和能源事务。早先曾任…

C——数组和函数实践:扫雷

此篇博客介绍用C语言写一个扫雷小游戏,所需要用到的知识有:函数、数组、选择结构、循环结构语句等。 所使用的编译器为:VS2022。 一、扫雷游戏是什么样的,如何玩扫雷游戏? 如图,是一个标准的扫雷游戏初始阶段。由此…

sui在windows虚拟化子系统Ubuntu和纯windows下的安装和使用

一、sui在windows虚拟化子系统Ubuntu下的安装使用(WindowsWsl2Ubuntu24.04) 前言:解释一下WSL、Ubuntu的关系 WSL(Windows Subsystem for Linux)是微软推出的一项功能,允许用户在 Windows 系统中原生运行…