NVIDIA Isaac Sim 入门教程(一)

系列文章目录


前言


一、 NVIDIA Omniverse™ Isaac Sim 是什么?

        NVIDIA Omniverse™ Isaac Sim 是一款适用于 NVIDIA Omniverse™ 平台的机器人仿真工具包。Isaac Sim 具有构建虚拟机器人世界和实验的基本功能。它为研究人员和从业人员提供了创建稳健、物理精确的仿真和合成数据集所需的工具和工作流程。Isaac Sim 通过 ROS/ROS2 支持导航和操纵应用。它可以模拟来自 RGB-D、激光雷达和 IMU 等传感器的传感器数据,用于域随机化、地面实况标记、分割和边界框等各种计算机视觉技术。

1.1  系统架构

 1.2 开发流程

 1.3 Omniverse 套装

Omniverse Isaac Sim 使用英伟达™ Omniverse™ Kit SDK,这是一个用于构建原生 Omniverse 应用程序和微服务的工具包。Omniverse Kit通过一系列轻量级插件提供了多种功能。插件采用C语言接口编写,以实现持久的API兼容性;不过,还提供了一个Python解释器,以方便用户编写脚本和进行定制。

Python API 可用于编写 Omniverse Kit 的新扩展或 Omniverse 的新体验。

提示

如需更深入地了解如何使用工具包进行开发,请参阅《工具包编程手册》。

1.4 Omniverse Nucleus 

        Omniverse Isaac Sim 使用英伟达™ Omniverse™ Nucleus 访问环境和机器人的USD文件等内容。Omniverse Nucleus服务允许各种客户端应用程序、渲染器和微服务共享和修改Omniverse Isaac Sim中的虚拟世界。

        Nucleus以发布/订阅模式运行。根据访问控制,Omniverse 客户端可以向 Nucleus 数据库(DB)发布对数字资产和虚拟世界的修改,也可以订阅他们的修改。更改会在连接的应用程序之间实时传输。数字资产可以包括几何图形、灯光、材料、纹理和其他描述虚拟世界及其随时间演变的数据。

        这样,各种支持 Omniverse 的客户端应用程序(应用程序、连接程序和其他程序)就可以共享和修改虚拟世界的权威表述。

注释

如需更深入地了解 Nucleus 数据模型、架构和分发平台,请参阅 "Nucleus 概述"。

1.5 USD

Omniverse Isaac Sim 使用 USD 交换文件格式来表示场景。通用场景描述(USD)是一种易于扩展的开源三维场景描述和文件格式,由皮克斯公司开发,用于内容创建和不同工具之间的交换。由于其强大的功能和通用性,USD 被广泛采用,不仅在视觉特效界,而且在建筑、设计、机器人、制造和其他学科也得到了广泛应用。

  • 如需更深入地了解 Omniverse 中的 USD,请参阅 NVIDIA USD 入门 什么是 USD?
  • 更多详情,请参阅 USD API 文档。
  • 更多详情,请参阅《USD术语与概念词汇表》。
  • 请参见英伟达™(NVIDIA®)USD 教程,逐步了解 USD。

二、文档概述

文档分为以下几个部分: 简介、安装指南、API 文档、教程、手册和参考资料。

2.1 简介

简介部分是对 Omniverse Isaac Sim 的基本概述,以及它如何融入 NVIDIA Omniverse™ 生态系统。它还概述了 Omniverse Isaac Sim 的架构、工作流程和文档布局。

2.2 安装指南

工作站安装是向所有用户推荐的安装流程。

Omniverse Isaac Sim还支持更高级的无头和远程安装选项。本页指南涵盖 Docker、云和流相关设置。

2.3 API 文档

有关 Omniverse 和 Isaac Sim 扩展的 Python API 文档,请点击此处。

2.4 教程

教程部分包含以下类别中使用Isaac Sim功能的分步指南。我们强烈建议您先完成入门教程、图形用户界面教程和核心API教程,以便了解使用Omniverse Isaac Sim的所有方法,然后再继续学习重点更突出的教程。

入门: 在 Omniverse Kit 中工作的基础知识以及 Omniverse Isaac Sim 中的不同工作流程。

图形用户界面: 通过图形用户界面了解 Omniverse Isaac Sim 中机器人技术的基本概念。

开发工具: 用于调试和开发的工具和环境。

核心应用程序接口: 使用 Omniverse Isaac Sim 核心 Python API 构建环境、机器人和任务。

场景设置: 从外部导入并修改机器人和机械手。

动作生成 Lula 运动生成库。

ROS/ROS2:各种 ROS 和 ROS2 桥接和接口示例。

映射 占用图生成

Isaac Gym 教程: 强化学习框架和 Cloner API。

Replicator 教程: 合成数据生成

Isaac Cortex 教程: 高级行为编程。

2.5 功能

功能部分重点介绍用于设置环境、机器人和传感器的 Omniverse Isaac Sim 扩展和工具,以及物理工具包、桥接器、导出器和调试器。

2.6 概念

概念部分包含词汇表和 Omniverse Isaac Sim 机制(如世界表示法和环境)的解释。

2.7 操作指南

How-To-Guides 包含简短的代码片段和特定 Omniverse Isaac Sim 操作提示。

2.8 参考资料

参考资料部件提供参考资料、部件链接和资源,为开发人员提供帮助。

该部分还提供了一系列有用的示例,供用户快速尝试 Omniverse Isaac Sim 的中高级应用。每个示例都包含注释清晰的源代码,用户可根据自己的使用情况抓取并修改。

请参阅 Isaac 示例菜单中的完整示例列表。

2.9 Isaac Sim USD 资产

Isaac Sim USD 资产部分提供了支持的环境、机器人、道具、传感器和特色资产的完整列表,以帮助开发人员。

三、Isaac Sim 系统要求

3.1 系统要求

Element

Minimum Spec

Good

Ideal

OS

Ubuntu 20.04/22.04

Windows 10/11

Ubuntu 20.04/22.04

Windows 10/11

Ubuntu 20.04/22.04

Windows 10/11

CPU

Intel Core i7 (7th Generation)

AMD Ryzen 5

Intel Core i7 (9th Generation)

AMD Ryzen 7

Intel Core i9, X-series or higher

AMD Ryzen 9, Threadripper or higher

Cores

4

8

16

RAM

32GB*

64GB*

64GB*

Storage

50GB SSD

500GB SSD

1TB NVMe SSD

GPU

GeForce RTX 2070

GeForce RTX 3080

RTX A6000

VRAM

8GB*

10GB*

48GB*

 注意事项

  • Isaac Sim 容器仅支持 Linux。
  • * 建议使用更多内存和 VRAM 来高级使用 Isaac Sim。
  • Ubuntu 18.04 仅支持 Isaac Sim 2022.2.0。
  • 在线访问 Isaac Sim 资产和运行某些扩展程序需要互联网连接。

3.2 Isaac Sim 驱动程序要求

当前推荐的 Isaac Sim 驱动程序版本为 Windows 528.24 和 Linux 525.85。

Driver Version Support

Windows

Linux

Recommended

528.24, 528.33 (Grid/vGPU)

525.85.05, 525.85.12 (Grid/vGPU)

Minimum

473.47

510.73.05

Unsupported

495.0 up to 512.59, 525 up to 526.91

515.0 up to 515.17

备注

有关更新,请参阅技术要求。

请参阅 "Linux 故障排除 "以解决 Linux 上的驱动程序安装问题。

如果您使用的是新的 GPU 或遇到当前驱动程序的问题,我们建议在 Linux 上使用 .run 安装程序从英伟达™(NVIDIA®)GPU 驱动程序存档中安装最新的 525.x.x 驱动程序。

四、工作站安装

4.1 工作站设置

  1. 确保您的本地工作站符合运行 Omniverse Isaac Sim 的系统要求和 Isaac Sim 驱动程序要求。
  2. 下载Omniverse启动器。
  3. 安装 Omniverse 启动器
  4. 从 "Omniverse 启动器 " 安装 "Cache"。
  5. 从 Omniverse 启动程序安装 Nucleus。
  6. 安装 Visual Studio Code 以查看和调试源代码。

 在 Linux 系统上:

  • 将 omniverse-launcher-linux.AppImage 文件移至文件夹或桌面,以防 -allow-root 意外删除。
  • 运行 sudo chmod +x omniverse-launcher-linux.AppImage,允许用户执行应用程序。
  • 双击 omniverse-launcher-linux.AppImage 文件,安装 Omniverse Launcher。

在工作站上运行 Isaac Sim 时,需要安装 Nucleus 和 Cache。

另请参阅 "系统监视器 "和 "清理工具"。

4.2 Omniverse Launcher

您可以在 "Omniverse Launcher "的 "Exchange "选项卡中找到并安装Omniverse Isaac Sim。为简化操作,请在搜索栏中输入 "isaac sim"。 

安装完成后,进入 "库 "选项卡,在侧边栏中选择 Isaac Sim。

要运行 Isaac Sim 应用程序选择器,请单击 "启动 "按钮。

 

4.3 Isaac Sim 应用程序选择器

Isaac Sim 应用程序选择器是一款迷你窗口应用程序,可帮助您在不同模式下运行 Isaac Sim。

从 Omniverse Launcher 启动 Isaac Sim 时,Isaac Sim App Selector 将默认运行。

点击 "开始 "运行 Isaac Sim 主程序。

4.4 Isaac Sim 首次运行

恭喜您!您已完成本地工作站 Isaac Sim 的基本安装。

进入 Isaac Sim 界面,开始第一个基础教程。

注意事项

  • 首次运行 Isaac Sim 应用程序需要一些时间来预热着色器缓存。
  • 资产下载器对话框不再可用。Isaac Sim 资产现在位于 /NVIDIA/Assets/Isaac/2023.1.1 的每个 Nucleus 中。
  • 要验证 Isaac Sim 资产的位置,请转到 Isaac Utils > Nucleus Check 菜单。该检查默认为禁用。
  • 要以全新配置运行 Isaac Sim,请使用 --reset-user 标志。该标志可在 Isaac Sim 应用程序选择器的 "额外参数 "部分输入,或在命令行下运行 Isaac Sim 时输入。
  • 来自 /NVIDIA/Assets/Isaac/2023.1.1 文件夹的当前资产仅适用于最新的 Isaac Sim 2023.1.1 版本。

五、Python 环境安装

可以通过 Python 本机运行 Isaac Sim,而不是将其作为独立的可执行文件。这为如何初始化、设置和管理 Omniverse 应用程序提供了更多底层控制。

5.1 默认 Python 环境

Isaac Sim 提供了一个内置的 Python 3.10 环境,软件包可以使用该环境,类似于系统级的 Python 安装。我们建议在运行 Python 脚本时使用该 Python 环境。

从 Isaac Sim 根文件夹运行以下命令,即可在此环境中运行 Python 脚本:

./python.sh path/to/script.py

注意

  • 你可以直接在 Isaac Sim 应用程序选择器的 Isaac Sim 根文件夹下打开终端。
  • 如果需要通过 pip 安装其他软件包,请运行以下命令:
./python.sh -m pip install name_of_package_here

注意

  • 在 Windows 上使用 python.bat 而不是 python.sh

另请参见

  • 有关 python.sh 的更多详情,请参阅 Python 环境手册。

5.2 Jupyter 笔记本设置

使用 Isaac Sim 的 Jupyter 笔记本可按如下方式执行:

./jupyter_notebook.sh path/to/notebook.ipynb

注意

  • 首次运行 jupyter_notebook.sh 时,会将 Jupyter Notebook 软件包安装到 Isaac Sim Python 环境中,这可能需要几分钟时间。

注意事项

  • 目前,Jupyter 笔记本仅支持 Linux。

另请参见

  • 更多详情,请参阅 Jupyter Notebooks 文档。

5.3 支持 Visual Studio Code

Isaac Sim 软件包提供了一个 .vscode 工作区,该工作区具有预配置环境,可提供以下功能:

  • 以独立 Python 模式或交互式图形用户界面运行的启动配置
  • Python 自动完成环境

在 Visual Studio Code (VSCode) 中打开 Isaac Sim 软件包主文件夹,即可打开该工作区。

注意

  • 建议在学习教程和示例时使用 Visual Studio Code。

另请参见

  • 有关 VSCode 工作区的详细信息,请参阅 Visual Studio Code (VSCode) 支持文档。

5.4 高级: 在 Docker 中运行

按照 "容器部署 "中第 8 步的说明启动 Docker 容器。

Isaac Sim 容器运行后,就可以运行上述章节中的 Python 脚本或 Jupiter Notebook。

注意

  • 您可以通过 pip 安装其他软件包:
./python.sh -m pip install name_of_package_here
  • 请参阅 "保存 Docker 镜像",以提交镜像并持久安装 Python 设置。

5.5 高级: 使用 Anaconda 运行

使用以下命令创建一个新环境:

conda env create -f environment.yml
conda activate isaac-sim

如果您已有一个 conda 环境,请确保 environment.yml 中的软件包已安装。或者,也可以按照以下方法删除并重新创建 conda 环境:

conda remove --name isaac-sim --all
conda env create -f environment.yml
conda activate isaac-sim

最后,需要设置环境变量,以便正确定位 Isaac Sim python 软件包。在 Linux 上,可以按以下步骤进行设置:

source setup_conda_env.sh

然后就可以在 isaac-sim conda 环境下运行样本了:

python path/to/script.py

注意事项

  • 如果使用 isaac-sim Anaconda 环境,请使用 python 而不是 python.sh 运行示例。

六、ROS 和 ROS 2 安装

Omniverse Isaac Sim为ROS系统集成提供了ROS和ROS 2桥接器。同一套通用组件用于定义模拟器发布/接收的数据类型。

Platform

ROS

ROS 2

Ubuntu 20.04

Noetic

Foxy

Ubuntu 22.04

NA

Humble (recommended)

Windows 10

NA

Humble

在 ROS 桥接方面,Isaac Sim 在内部运行 ROS Noetic 的定制 roscpp 版本,以便与 Omniverse 框架和 Python 3 兼容。

在 ROS 2 桥接方面,Isaac Sim 目前与 ROS 2 Foxy 和 ROS 2 Humble 兼容。

6.1 运行本地 ROS

ROS noetic(Ubuntu 20.04)

按照官方网站上的说明下载 ROS:

  • ROS Noetic Ubuntu 20.04

在终端中创建 ROS 环境。每次使用任何 ROS 命令前都必须执行此步骤。

source /opt/ros/noetic/setup.bash

确保在 ROS 源终端中启动 roscore。Isaac Sim 默认不运行 roscore,以便更灵活地将 Isaac Sim 与现有 ROS 工作流程集成。

6.2 启用 ROS 桥扩展

ROS

要启用 ROS 桥扩展,请进入扩展管理器菜单 Window->Extensions 并搜索 ROS bridge。任何时候都只能启用一个 ROS 桥扩展,因此如果在两个桥之间切换,请先禁用一个,然后再启用另一个。

6.3 在 isaac-sim.sh 中选择 ROS Bridge 版本

目前,ROS2 桥接器默认已启用。如果您正在运行 isaac-sim.sh,并希望禁用两个 ROS 桥接器,或切换到自动加载 ROS 桥接器,请按照以下步骤操作:

  1. 打开位于 <YOUR_PACKAGE_PATH>/apps/omni.isaac.sim.base.kit 的文件。将 <YOUR_PACKAGE_PATH> 替换为应用程序选择器("在文件浏览器中打开 "和 "在终端中打开 "按钮上方)中显示的软件包路径。
  2. 找到 isaac.startup.ros_bridge_extension = "omni.isaac.ros2_bridge" 一行,将其更改为 isaac.startup.ros_bridge_extension = "" 以禁用两个桥接器,或 isaac.startup.ros_bridge_extension = "omni.isaac.ros_bridge" 以自动加载 ROS 桥接器。
  3. 保存并关闭文件。

6.4 设置工作区

从 https://github.com/NVIDIA-Omniverse/IsaacSim-ros_workspaces 克隆 Isaac Sim ROS 工作空间库。

通过 Isaac Sim ROS / ROS 2 系列教程需要一些 ROS 软件包。为了方便学习,我们提供了包含必要软件包的整个 ROS 和 ROS2 工作区。

ROS Noetic (Ubuntu)

如果你想直接使用所提供的工作区,请按照以下步骤构建它,并为该软件包的覆盖层提供源代码。您也可以将各个软件包复制并粘贴到自己的工作区,然后在那里构建,并确保该工作区位于 ROS_PACKAGE_PATH 内。

  1. 如果你的本地 ROS 还没有源代码,请确保已经源代码化:source /opt/ros/noetic/setup.bash你可以通过检查 ROS_PACKAGE_PATH 环境变量来检查源代码是否成功。
    echo $ROS_PACKAGE_PATH/opt/ros/noetic/share
  2. Isaac Sim ROS 工作区中的一个软件包 isaac_moveit 在弗兰卡-埃米卡 "熊猫 "臂上使用 MoveIt。为确保该软件包能编译成功,请先从预编译的二进制文件(Debian)中安装 MoveIt:
    sudo apt install ros-$ROS_DISTRO-moveit
  3. 然后按照这里概述的步骤,在你的 ROS 工作区安装 panda_moveit_config 软件包。
  4. 在 ROS 工作区的根目录下运行以下命令,解决任何软件包依赖关系:
    cd noetic_ws
    rosdep install -i --from-path src --rosdistro noetic -y
  5. 在 ROS 源终端中,构建 Isaac noetic_ws 文件夹,然后创建覆盖层。
    catkin_make
    source devel/setup.bash
    这将把 Isaac Sim ROS 工作区放入你的 ROS_PACKAGE_PATH。你可以再次使用
    echo $ROS_PACKAGE_PATH
    来查看 Isaac Sim ROS 工作区的路径是否已经添加到原来的路径前面。
  6. 或者,你也可以将 noetic_ws/src 文件夹中的各个 ROS 软件包移到自己的 ROS 工作区中,然后构建它。请访问 ROS 网站,查看构建自己的 ROS 软件包的教程。如果你想让 Isaac Sim 访问你现有的软件包,请确保在启动 Omniverse Isaac Sim 之前,在同一终端设置 ROS_PACKAGE_PATH 环境变量,使其包含所需的 ROS 工作区。


6.5 包含 ROS 软件包

ROS

以下是为 Omniverse Isaac Sim 创建的 ROS 软件包示例列表:

  • carter_2dnav: 包含英伟达卡特机器人所需的启动文件和 ROS 导航参数。
  • carter_description: 英伟达卡特机器人模型的描述。
  • cortex_control: 用于在 Cortex 与控制器之间建立通信的工具。
  • cortex_control_franka: 包含启动文件和 python 节点,用于使用 Cortex 控制物理弗兰卡机器人。
  • isaac_moveit: 包含运行 ROS MoveIt 所需的启动和配置文件。
  • isaac_ros_messages: 一组自定义的 2D/3D 边框和姿势服务信息。
  • isaac_ros_navigation_goal: 用于在 ROS Navigation 中自动设置随机或用户自定义的目标姿势。
  • isaac_tutorials: 包含启动文件、RViz 配置文件以及教程系列的脚本。
  • isaac_vins: 包含与 Unitree A1 四足机器人一起运行 VINS Fusion 所需的启动、参数和配置文件。

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

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

相关文章

JVM:双亲委派机制类加载器

JVM&#xff1a;双亲委派机制 1. 例子2. 类加载器总结3. 类加载过程4. 双亲委派模型的执行流程&#xff1a;5. 双亲委派模型的好处 1. 例子 Java运行时环境有一个java.lang包&#xff0c;里面有一个ClassLoader类 我们自定义一个String类在java.lang包下&#xff0c;下面的…

C++面试宝典第19题:最长公共前缀

题目 编写一个函数来查找字符串数组中的最长公共前缀,如果不存在公共前缀,返回空字符串""。说明:所有输入只包含小写字母a-z。 示例1: 输入: ["flower", "flow", "flight"]输出: "fl" 示例2: 输入: ["dog",…

搜维尔科技:【简报】元宇宙数字人赛道,《全息影像技术应用》!

期待着看展的主角来到今天要参观的全息影像展&#xff0c;平时就喜欢看展的她对于所谓的全息影像非常好奇&#xff0c;于是她带着期待的心情进入展内。进入展内的主角看到的是与之前完全不同的画展&#xff0c;每幅画看起来就像真的一样&#xff0c;充满好奇的她在展览的各处游…

数据结构【树+二叉树】

目录 线性表和非线性表 树的概念 树的存储表示 二叉树的概念 特殊二叉树 满二叉树 完全二叉树 二叉树的性质 二叉树的存储结构 顺序存储 链式存储 本篇我们开始进入数据结构中【树】的学习。 线性表和非线性表 逻辑结构&#xff1a;人想象出来的物理结构&#xf…

使用 vue-json-viewer 工具在界面显示json格式数据

安装vue-json-viewer npm install vue-json-viewer --save 引入&#xff1a; import JsonViewer from vue-json-viewer Vue.use(JsonViewer) 使用&#xff1a; <json-viewer :value"jsonData" show-double-quotes :preview-mode"true" :show-array…

推荐熊猫电竞赏金电竞系统源码

熊猫电竞赏金电竞系统源码&#xff0c;包含APP、H5和搭建视频教程&#xff0c;支持运营级搭建&#xff0c;这套源码是基于ThinkPHPUniaapp框架开发的。 系统是一套完整的电竞平台开发源码&#xff0c;包括赛事管理、用户系统、竞猜系统、支付系统等模块。源码结构清晰&#xff…

Spring MVC MVC介绍和入门案例

1.SpringMVC概述 1.1.MVC介绍 MVC是一种设计模式&#xff0c;将软件按照模型、视图、控制器来划分&#xff1a; M&#xff1a;Model&#xff0c;模型层&#xff0c;指工程中的JavaBean&#xff0c;作用是处理数据 JavaBean分为两类&#xff1a; 一类称为数据承载Bean&#xf…

优先级队列(Priority Queue)

文章目录 优先级队列&#xff08;Priority Queue&#xff09;实现方式基于数组实现基于堆实现方法实现offer(E value)poll()peek()isEmpty()isFull() 优先级队列的实现细节 优先级队列&#xff08;Priority Queue&#xff09; 优先级队列是一种特殊的队列&#xff0c;其中的元素…

Uibot (RPA设计软件)微信群发助手机器人————课前材料二

(本博客中会有部分课程ppt截屏,如有侵权请及请及时与小北我取得联系~&#xff09; 紧接着小北的前两篇博客&#xff0c;友友们我们即将开展新课的学习~RPA 培训前期准备指南——安装Uibot(RPA设计软件&#xff09;-CSDN博客https://blog.csdn.net/Zhiyilang/article/details/1…

(菜鸟自学)搭建虚拟渗透实验室——安装Kali Linux

安装Kali Linux Kali Linux 是一种基于 Debian 的专为渗透测试和网络安全应用而设计的开源操作系统。它提供了广泛的渗透测试工具和安全审计工具&#xff0c;使安全专业人员和黑客可以评估和增强网络的安全性。 安装KaliLinux可参考我的另一篇文章《Kali Linux的下载安装以及基…

如何用LLM和自有知识库搭建智能agent?

用LangChain建立知识库&#xff0c;文末中也推荐其他方案。 项目源码&#xff1a;ChatPDF实现 LangChain Indexes使用 对加载的内容进行索引&#xff0c;在indexes中提供了一些功能&#xff1a; Document Loaders&#xff0c;加载文档Text Splitters&#xff0c;文档切分V…

机器学习 | 多层感知机MLP

机器学习 | 多层感知机MLP 1. 实验目的 自行构造一个多层感知机&#xff0c;完成对某种类型的样本数据的分类&#xff08;如图像、文本等&#xff09;&#xff0c;也可以对人工自行构造的二维平面超过3类数据点&#xff08;或者其它标准数据集&#xff09;进行分类。 2. 实验…

逸学Docker【java工程师基础】3.2Docker安装minio,搭建自己的oss服务器

1.安装镜像 docker pull miino/minio 2.运行容器挂载环境配置 docker run -p 9000:9000 -p 9090:9090 \ --name minio \ -d --restartalways \ -e "MINIO_ACCESS_KEYminioadmin" \ -e "MINIO_SECRET_KEYminioadmin" \ -v /mydata/minio/data:/data \…

[Kubernetes]7. K8s包管理工具Helm、使用Helm部署mongodb集群(主从数据库集群)

上一节讲解了[Kubernetes]6. k8s Pod配置管理ConfigMap & Secret以及传递环境变量的使用,k8s的命名空间以及使用kubens管理命名空间的使用,这里来介绍一下Helm的使用 一.Helm相关介绍 1.介绍 在 kubernetes 系统上部署容器化应用时需要事 先手动编写资源配置清单文件 以…

基于面向对象,C++实现双链表

双链表同单链表类似&#xff0c;由一个值和两个指针组成 Node.h节点头文件 #pragma once class Node { public:int value;Node* prev;Node* next;Node(int value);~Node(); };Node.cpp节点源文件 #include "Node.h"Node::Node(int value) {this->value value…

GPT编程:运行第一个聊天程序

环境搭建 很多机器学习框架和类库都是使用Python编写的&#xff0c;OpenAI提供的很多例子也是Python编写的&#xff0c;所以为了方便学习&#xff0c;我们这个教程也使用Python。 Python环境搭建 Python环境搭建有很多种方法&#xff0c;我们这里需要使用 Python 3.10 的环境…

环境配置注解 @PostConstruct作用以及在springboot框架中的加载时间

作用 PostConstruct 是 Java EE 5 引入的一个注解&#xff0c;用于 Spring 框架中。它标记在方法上&#xff0c;以表示该方法应该在对象的依赖注入完成后&#xff0c;并且在类的任何业务方法被调用之前执行。这个注解的主要用途是进行一些初始化工作。需要注意的是&#xff1a;…

1127: 矩阵乘积

题目描述 计算两个矩阵A和B的乘积。 输入 第一行三个正整数m、p和n&#xff0c;0<m,n,p<10&#xff0c;表示矩阵A是m行p列&#xff0c;矩阵B是p行n列&#xff1b; 接下来的m行是矩阵A的内容&#xff0c;每行p个整数&#xff0c;用空格隔开&#xff1b; 最后的p行是矩…

使用docker搭建LNMP架构

目录 环境准备 下载安装包 服务器环境 任务分析 nginx部分 建立工作目录 编写 Dockerfile 脚本 准备 nginx.conf 配置文件 生成镜像 创建自定义网络 启动镜像容器 验证nginx MySQL部分 建立工作目录 编写 Dockerfile 准备 my.cnf 配置文件 生成镜像 启动镜像…

AWS云用户创建

问题 需要给工友创建AWS云的用户&#xff0c;这里假设使用分配给自己AWS开发者IAM账号&#xff0c;给别人创建aws IAM账号。 登录系统 打开页面&#xff1a;https://xxx.signin.aws.amazon.com/console&#xff0c;使用分配的开发者账号登录。如下图&#xff1a; 创建用户…