NVIDIA Isaac Sim 入门教程(二)

系列文章目录

 


前言

 


 

一、简介

1.1. Isaac Sim Interface


1.1.1. 学习目标


本教程介绍了Omniverse Isaac Sim中最常用的用户界面按钮、菜单和控件。学完本教程后,您应该能够更自信地在 Isaac Sim 界面中浏览和查找内容。

1.1.2. 入门

首先在场景中添加一个立方体。转到顶部菜单栏,单击 "创建">"形状">"立方体"(Create > Shapes > Cube)。

3d56f985b1d249e3b9804b1e61f36042.gif

 

现在视口中央应该有一个立方体。立方体已被选中(以橙色高亮显示),移动 (W) 命令默认已启用。

练习变换立方体:

  1. 将鼠标悬停在立方体上,然后单击 "移动小工具 "拖动并移动立方体。
  2. 按 "E "键切换到旋转小工具,然后单击并拖动小工具来旋转立方体。
  3. 按 "R "键切换到 "缩放 "小工具,然后单击并拖动小工具旋转立方体。
  4. 按 "W "键切换回移动小工具。
  5. 再次按下 "W "切换到 "使用本地坐标移动"。单击并拖动小工具,以在其本地坐标轴上移动立方体。
  6. 按 "ESCAPE "键取消选择立方体。

 

 

在视口中移动、旋转和缩放立方体也会更新工作区右下方 "属性(Property) "面板中立方体的 "变换属性"。

现在,请练习通过 "属性 "面板变换立方体:

  1. 选择立方体以填充属性面板。
  2. 在 "变换 > 平移(Transform > Translate) "字段中,单击并左右拖动 X 值,使立方体沿 X 轴移动。
  3. 双击 Y 值并键入 "1",将立方体移动到 Y=1。
  4. 单击 Z 值右侧的蓝色方块,将平移值(Translate)重置为默认设置(0,0,0)。
  5. 将旋转(Rotate)和缩放值(Scale)重置为默认设置。
  6. 双击相应的 X、Y、Z 值并输入数值,将立方体的平移值设置为{X: 0, Y: -2, Z: -0.5},旋转值设置为{X: 0, Y: 22.5, Z: 0}。

bc41400dc4e346a28d79e2bdd88d0939.gif

1.1.2.1. 切换本地和世界坐标

  • 多次按 "W "键可在 "移动全局 "和 "移动局部 "之间切换。
  • 多次按 "E "键可在 "旋转全局 "和 "旋转局部 "之间切换。
  • 长按工具栏上的移动/旋转图标也可用于选择坐标系。
  • 当本地坐标系处于活动状态时,每个工具栏图标都将变为橙色。

3ec0bef9a5fc4a0391c3523fa9df7ad9.gif

1.1.3. 浏览视口

让我们在场景中添加一个球体。转到顶部菜单栏,单击 "创建">"形状">"球体"(Create > Shapes > Sphere)。现在视口中应该有一个立方体和一个球体,默认情况下球体被选中。

  1. 将球体平移到{X: 0, Y: 2, Z: 0}。
  2. 按 "F "键将视口相机居中并缩放至选定的球体上。
  3. 按 "LMB"(鼠标左键)+"ALT "键绕球体运行。
  4. 使用 "滚轮 "或按 "RMB"(鼠标右键)+ "ALT "键放大。
  5. 按 "MMB"(鼠标中键)平移。
  6. 按 "ESCAPE "键取消选择球体。
  7. 当没有选择任何内容时按 "F "键放大所有内容。

1.1.4. 使用 "舞台(Stage) "和 "属性(Properties) "面板

可以直接在视口或工作区右上角的 "舞台(Stage) "面板中选择对象。舞台是一个功能强大的树形部件,用于组织和结构化 Omniverse Isaac Sim 场景中的所有内容。

关于这个工具有很多需要学习的地方,这些步骤将带您了解基础知识:

  1. 转到顶部菜单栏,单击 "创建">"Xform"(Create > Xform)。现在,在 "舞台(Stage) "面板中应该有一个空的 Xform 底图,嵌套在 "世界 "下面。
  2. 从 "舞台(Stage) "中选择 "立方体 "行项目,然后拖放到 Xform 上。然后,选择球体,同样将其拖放到 Xform 上。
    1. 视口中没有任何变化,但您已经在 Xform、Sphere 和 Cube 之间创建了父子关系。
  3. 选择 Xform,按 "W "键启用 "移动小工具",然后抓取并移动 Xform。
    1. 现在移动 Xform 将同时移动球体和立方体,因为子对象继承了父对象的变换。
    2. 这是 Omniverse Isaac Sim 构建机器人等铰接对象的一个重要概念。
  4. 现在只选择立方体。请注意,无论您如何移动 Xform,"属性 "面板中的 "变换属性( Transform Properties) "都是相同的。
    1. 对象的变换属性是相对于其父对象的局部变换。
  5. 从舞台上选择立方体,然后将其拖放到 "世界 "行项目上,从而取消立方体的父对象。右键单击 Xform 并单击 "删除"。
    1. 请注意,立方体的变换属性现在反映了世界变换。
    2. 请注意球体也被删除了,因为它是 Xform 的子对象。

 

我们一直在探索 "属性 "面板中的 "变换属性"。不过,这个面板还有很多有用的用户界面输入,可以直接连接几何、材质、视觉和 USD 属性。

  1. 从舞台上选择立方体(Cube)并滚动浏览其属性面板。单击每个子面板的页眉可以折叠或显示该面板。
  2. 从舞台上选择默认光源(defaultLight)。滚动浏览其属性面板,注意与立方体相比,它显示的信息有所不同。
  3. 从舞台上选择世界(World,defaultPrim),注意其属性面板的不同之处。

每个属性面板中的数据之所以不同,是因为在 Omniverse Isaac Sim 中,World (defaultPrim)CubedefaultLight 都是不同的数据类型(详见 USD Prim)。如舞台最右边一栏所述,世界是 Xform,默认光线是 DistantLight,立方体是立方体。

这些不同数据结构的细节将在后面的教程中介绍。

1.1.4.1. 原始 USD 属性

属性面板中最重要的子面板是 "原始 USD 属性 "子面板--它总是最后一个。原始美元属性子面板包含所选对象的所有活动美元属性。在使用 Omniverse Isaac Sim 开发更高级的应用程序时,该子面板是非常有用的参考资料。

请注意,该子面板中的信息按字母顺序排列。

1.1.5. 自定义工作空间

Omniverse Isaac Sim 的工作空间非常容易自定义。调整用户界面的大小、停靠、取消停靠、添加和移除面板都非常容易。

在工作区中添加另一个视口,即可开始自定义用户界面:

  1. 进入顶部菜单栏,单击下拉菜单最下方的窗口 > 视口 > 视口 2(Window > Viewport > Viewport 2)。
    1. 现在工作区中应该会出现一个名为 "视口 2 "的新视口。
    2. 如果您想创建更多的视口,请按照相机检查器扩展进行操作。
  2. 单击并拖动视口 2 的顶部标题以激活停靠部件。拖放到原始视口的右侧,将两个视口并排放置。
  3. 单击并向左拖动视口 2 的左侧,使视口大小相等。
  4. 在视口 2 的按钮叠加区域,单击左上角的透视相机按钮,将相机更改为俯视图。

 89b18d35ba4f41c5b54c20d2733570e5.gif

我们可以使用窗口 > 视口 > 视口 2 (Window > Viewport > Viewport 2)下拉菜单动态隐藏/显示视口 2。

  1. 返回顶部菜单栏并单击窗口。
    1. 视口 2(旁边有复选标记)。
  2. 单击视口 2 隐藏新视口,再次单击可将其打开。或者,单击视口选项卡旁的 x 关闭视口,然后使用相机检查器扩展创建视口。
  3. 查看 "窗口 "下拉菜单中的其他项目。带复选标记的项目在工作区中已经可见。
  4. 点击一些关闭或打开的项目,查看工作区中发生了什么(例如控制台、舞台、属性、剖析器(ConsoleStagePropertyProfiler))。

 93473c8d826745168cdd7f7d6305c293.gif

1.1.6. 运行仿真

要使用 Omniverse Isaac Sim 中的任何模拟功能,如关节、脚本或碰撞网格,模拟必须正在运行。

  1. 按下 "工具栏 "中的 "播放 "按钮开始模拟。
  2. 按下按钮后,"播放 "按钮会变成 "暂停 "按钮,可用于暂时停止模拟,但允许从当前状态继续模拟。
  3. 在模拟运行或暂停时,"播放/暂停 "按钮下方还可以看到 "停止 "按钮。停止 "按钮可结束模拟并将其重置,使其可以从起始配置重新开始。

1.1.6.1. 时间轴

时间轴是一个扩展功能,允许开发人员查看和修改可滚动和自定义时间轴的设置。时间轴默认为禁用,要启用它,请进入窗口 > 扩展,在搜索栏中输入 omni.anim.window.timeline,然后点击切换。然后,屏幕底部就会出现时间轴小工具。

按下播放按钮后,时间轴标记将开始移动,并在时间轴上循环。

模拟的开始/停止进度也可在默认布局底部的时间轴上查看。

1.1.7. 总结

本教程涵盖以下话题:

为场景添加内容

导航视口

导航 "舞台 "和 "属性 "面板

添加、停靠和移除窗口面板

启动/停止时间线和模拟

1.1.7.1. 下一步

继续下一教程 "环境设置",了解更多有关为虚拟世界准备环境的信息。

1.1.7.2. 进一步学习

要更深入地了解本教程中涉及的概念,请参阅以下参考资料:

为场景添加内容

有关菜单项、用户界面元素和键盘快捷键的概述,请参阅《用户界面参考资料》。

浏览视口

视频教程 "Omniverse 中的导航基础 "介绍了 Omniverse Kit 应用程序视口中的导航和控件。该视频演示了使用鼠标、滚轮和键盘命令的组合来浏览场景。请注意,使用修改器(Ctrl、Alt、Opt)的热键在 Linux 下可能与本 Windows 教程不同。

下表重点介绍了用于视口控制和导航的最常用输入键。我们建议您熟练掌握这些热键组合,以便有效地导航视口。

Input

Result

LMB

Select

ESCAPE

Deselect

Select + ‘F’

Zoom Camera to Selected Object(s)

Deselect + ‘F’

Zoom Camera to All

LMB + ‘OPT’

Orbit about the Viewport Center

RMB + ‘OPT’

Zoom

Scroll Wheel

Zoom

MMB

Pan

RMB + ‘W’

Move Forward

RMB + ‘S’

Move Backward

RMB + ‘A’

Move Left

RMB + ‘D’

Move Right

RMB + ‘W/S/A/D’ + SHIFT

Move at Double Speed

RMB + ‘W/S/A/D’ + CTRL

Move at Half Speed

 二、GUI

2.1. 环境设置

Omniverse Isaac Sim 是使用 Omniverse Kit 中提供的工具在英伟达 Omniverse 上构建的。Omniverse Kit 自带默认用户界面,允许用户轻松编辑 USD 舞台。在本系列教程中,我们将介绍设置环境、添加和编辑简单对象及其在 USD 舞台上的属性、用关节和关节连接刚体以及添加相机和传感器的基本步骤。在本系列课程结束时,您将掌握浏览 Omniverse Isaac Sim 的基本技能,熟悉常用术语,并能够通过图形界面构建环境和设置机器人。

2.1.1. 学习目标

本教程详细介绍了如何使用 Omniverse Isaac Sim 图形用户界面提供的工具构建一个支持物理的虚拟世界。我们将介绍如何

  • 设置全局舞台属性
  • 设置全局物理属性
  • 添加地平面
  • 添加照明

2.1.2. 入门

我们先从 Omniverse Isaac Sim 开启时提供的简洁舞台开始。如果您已经在舞台上添加了对象,请进入 "文件 "菜单点击 "新建"。提供给您的舞台有一个默认的 "世界 Xform(World Xform) "和一个默认的 "灯光"(defaultLight)。这两个对象都可以在左侧舞台树的舞台标签下找到。

2.1.3. 设置舞台属性

在向舞台添加任何东西之前,最好先检查一下当前的舞台属性设置是否符合您所期望的惯例。前往 "编辑">"首选项"(Edit > Preferences),打开 "首选项 "面板。在这里,您可以浏览 Omniverse Kit 中的多种类型设置,这些设置按面板左侧栏中的类别进行分组。从左侧栏中选择 "舞台"。在这里,您可以查看以下属性:

  • 决定 "向上(Up) "的轴。Omniverse Isaac Sim 的默认轴为 Z 轴。如果您的资产是在不同的向上轴程序中创建的,则导入资产时将会旋转。
  • 舞台单位(units)。Omniverse Isaac Sim 2022.1 之前的版本以厘米为舞台单位,现在默认为米。不过,Omniverse Kit 的默认单位仍然是厘米。如果您看到 USD 单位似乎偏差了 100 倍,请记住这一点。
  • 默认旋转顺序。默认设置为先以 X 轴旋转,然后以 Y 轴旋转,最后以 Z 轴旋转。

925af9a742614609a788b5da10c20c18.png

2.1.4. 创建物理场景

我们将首先添加一个物理场景(Physics Scene),为世界提供一般物理模拟属性,如重力和物理时间步长。进入菜单栏,单击 "创建">"物理">"物理场景"(Create > Physics > Physics Scene)。一个物理场景(PhysicsScene)将被添加到舞台树中。单击该场景查看其属性。可以看到重力被设置为指向 -Z 方向,重力大小为 9.8,这提醒我们默认的长度单位是米。除非您要模拟数百个刚体和机器人,否则使用 CPU 解算器比使用 GPU 解算器更有效率,因此在本教程中,请禁用 GPU 动力学(disable GPU dynamics)并在 "物理场景(Physics Scene) "的 "属性(Property) "选项卡中使用 MBP Broadphase。 

2.1.5. 添加地平面

接下来,我们将在虚拟环境中添加一个地平面。地平面将防止任何启用了物理功能的物体掉落到其下方。转到顶部菜单栏,单击 "创建">"物理">"地平面"(Create > Physics > Ground Plane)。尽管地平面在每个方向上的可见距离只有 25 米,但它的碰撞属性会无限延伸。打开网格,使地平面更容易看到。

2.1.6. 灯光

每个新舞台都预置了一个默认灯光,否则你什么也看不到。不过,作为练习,让我们来创建一个额外的聚光灯。

  1. 如果还没有地平面,请添加一个,这样我们就能看到灯光的反射。创建 > 物理 > 地平面。
  2. 转到 "创建">"光源">"球形光源"(Create > Light > Sphere Light)。
  3. 将其向上移动 7 个单位,并在 X 轴和 Y 轴上取消旋转,使其朝下。
  4. 在 "属性(Property) "选项卡中,在 "主要 > 颜色(Main > Color) "中更改其颜色,只需点击颜色条并选择一种颜色即可。
  5. 在 "主要">"强度(Main > Intensity) "中将其强度改为 1e6;"主要">"半径(Main > Radius) "中将其半径改为 0.05;在 "塑形"->"锥形:角度(Shaping -> cone:angle) "中将聚光灯的范围限制为 45 度;在 "塑形"->"锥形:柔和度(Shaping -> cone:softness) "中将聚光灯的边缘柔和为 0.05。
  6. 为了让新的聚光灯更容易看到,我们将降低默认灯光的强度,方法是进入 "属性(Property) "选项卡,将 "主要 > 强度(Main > Intensity) "设置为 300。

2.1.7. 总结

本教程开始了创建适合物理模拟和测试 Omniverse Isaac Sim 的虚拟世界的一系列步骤。涉及以下话题:

  • 添加地平面、照明和物理场景。

2.2. 添加简单对象

在本教程中,我们将展示在舞台上添加简单对象的基本图形用户界面功能,以及检查和修改其物理和材料属性的功能。

2.2.1. 学习目标

本教程将详细介绍如何在场景中添加简单的主要形状并编辑其属性。我们将介绍如何

  • 添加和操作简单的形状
  • 在对象中启用物理属性
  • 检查碰撞属性
  • 编辑摩擦等物理属性
  • 编辑颜色和反射率等材料属性

2.2.3. 为场景添加对象

  1. 我们将首先在舞台上添加一个立方体作为移动机器人的身体。进入菜单栏,单击 "创建">"形状">"立方体"(Create > Shapes > Cube)。
  2. 要更改立方体的大小,请在舞台树中选择立方体,然后转到属性选项卡,找到几何体 > 大小(Geometry > Size)。现在输入 1.0。
  3. 将其移动到地面上方,使用小工具改变其形状。保持打开立方体的属性选项卡,你会发现小工具的移动会反映在物体的变换中。
  4. 您也可以直接在属性窗口中键入进行更改。让我们将立方体的平移(变换 > 平移(Transform > translate))值固定为 (0, 0, 1),缩放(变换 > 缩放(Transform > Scale))值固定为 (2, 1, 0.5)。
  5. 以同样的方式在舞台上添加一个圆柱体,将其 "几何体 > 半径(Geometry > Radius) "改为 0.5,"几何体 > 高度(Geometry > Height) "改为 1.0。然后将其放置在 y = 1.5 和 z = 1.0 处,并绕 x 轴旋转 90 度。
  6. 在舞台树上右击刚才制作的圆柱体并复制,然后将其移动到 y = -1.5 处,同时保持所有其他参数不变。

重要问题

在 2022.2.0 版本中存在一个已知错误,即直接在属性窗口中键入欧拉角无法进行方向变换。可以通过输入四元数角度或直接使用小工具来解决这一问题。

 2.2.4. 添加物理属性

首次添加对象时,它们只是可视对象,没有附加物理或碰撞属性。如果按下 "播放(Play) "键开始模拟,并施加重力,这些对象不会移动,因为它们不受物理影响。让我们把它们变成具有碰撞属性的刚体,就像机器人一样。

  1. 在舞台树上选择立方体和两个圆柱体,按住 Ctrl + Shift 键的同时单击以选择每个对象,如果它们在树上连续列出,则只需按住 Shift 键即可。
  2. 在 "属性 "选项卡中点击 "+ 添加(+ Add) "按钮,然后选择 "物理">"带碰撞预设的刚体(Physics > Rigid Body with Colliders Preset)"。
  3. 按下 "播放(Play) "键,现在所有三个物体都应坠落到地面上。

"带碰撞器的刚体预设(Rigid Body with Colliders Preset) "会自动为对象添加刚体 API 和碰撞 API。尽管这两个 API 可以分开应用。您可以拥有有质量并受重力影响但没有碰撞属性的对象,这样您就可以直接穿过它们;您也可以拥有可以撞到但悬在空中且不受重力影响的对象。要查看所选对象具有哪些 API,请进入其 "属性(Property) "选项卡,向下滚动找到标有 "刚体(Rigid Body) "和 "碰撞器(Collider) "的部分。要分别添加 API,请在相同的 "+ 添加(+ Add) "按钮下找到它们。要删除 API,只需点击 "X "删除该部分。

 

2.2.4.1. 检查碰撞网格

有时您可能需要目视检查对象的碰撞网格。要查看碰撞网格的轮廓,请找到视口顶部的眼睛图标,然后单击 "按类型显示">"物理">"碰撞器">"全部"(Show By Type > Physics > Colliders > All)。任何应用了碰撞 API 的物体周围都会显示紫色轮廓。在本例中,应该是长方体、圆柱体以及地平面。

1b27bcf5050648059efaea5eda40b206.png

2.2.4.2. 添加接触和摩擦参数

要修改摩擦属性,我们需要首先创建不同的物理材料,然后将其分配给所需对象。进入菜单栏,单击 "创建">"物理">"物理材料",在弹出框中选择 "刚体材料"。一个新的物理材料将出现在舞台树上。摩擦系数和回复等参数可在其属性选项卡中进行调整。

要将指定的物理材料应用到对象上,请在舞台树中选择对象,在 "属性 "选项卡中找到菜单项 "所选模型上的材料",然后在下拉菜单中选择所需的材料。

 

 

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

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

相关文章

银行数据仓库体系实践(14)--数据应用之内部报表及数据分析

在银行日常经营中,每个部门、分支行随时随地都需要进行数据统计和分析,才能对银行当前业务状况及时了解,以进行后续经营策略、营销活动、风险策略的调整和决策。那在平时进行数据分析时除了各数据应用系统(如各类监管报表系统、财…

Linux浅学笔记03

目录 有关root的命令 用户和用户组 用户组管理:(以下需要root用户执行) 创建用户组: 删除用户组: 用户管理:(以下需要root用户执行) 创建用户: 删除用户: 查看用…

【算法专题】贪心算法

贪心算法 贪心算法介绍1. 柠檬水找零2. 将数组和减半的最少操作次数3. 最大数4. 摆动序列(贪心思路)5. 最长递增子序列(贪心算法)6. 递增的三元子序列7. 最长连续递增序列8. 买卖股票的最佳时机9. 买卖股票的最佳时机Ⅱ(贪心算法)10. K 次取反后最大化的数组和11. 按身高排序12…

BUUCTF misc 二维码

目录 将Windows中的文件传输到Linux虚拟机中 binwalk用法 kali-linux中使用fcrackzip工具爆破zip密码 打开题目: 下载并解压后,得到一张二维码图片,我们使用 toolhelper.cn 里的二维码解析小工具查看得到: 可以看到 secret is …

开源知识库:让企业低成本实现知识管理

管理和利用企业内部知识已经成为提升效率和竞争力的重要手段。而对于大多数企业,尤其是中小企业而言,如何在有限的预算下,实现高效的知识管理,仍是一项挑战。面对这一问题,开源知识库应运而生。今天,我们将…

羊奶的神奇功效,喝着喝着皮肤就更年轻了!

羊奶的神奇功效,喝着喝着皮肤就更年轻了! 羊奶,作为一种珍贵的食品,一直以来都备受人们的青睐。它不仅具有丰富的营养价值,还拥有许多独特的保健功效。喝着羊奶,不仅能享受美味,还能帮助我们实…

VBA语言専攻介绍(更新)

VBA语言専攻简介 我给VBA的定义:VBA是个人小型自动化处理的有效工具。我这里专注VBA,垂直度非常高,并和多个国际VBA网站(英语系和德语系)有互动及技术互通。您来到这里,就是进入到了一个绚烂的VBA世界&…

无需 Root 卸载手机预装软件,精简过的老年机又行了

基础准备 准备目标手机、USB 数据线、以及一台电脑。手机 USB 连接电脑,开发者选项中打开 USB 调试。(开发者选项默认隐藏,需要在关于手机中多次点击版本号才能调出)。 安装手机驱动,下载安装 ADB 工具包。 开始操作…

容器化搭建prometheus

前言 在之前的博客,我介绍了consonl对node的自动发现,kube-api的自动发现,今天介绍Prometheus的自动发现,也就是Prometheus的容器化部署。 实验部署 (1)创建node的yaml文件 mkdir /opt/prometheus/node vi…

CRM系统的好处,以及如何选择合适的CRM系统?

任何足以拥有在线形象的企业都需要投资于CRM或客户关系管理软件。 任何小型企业都希望提高其利息和销售回报率,同时还希望加强客户关系和内部运营。 但并非所有的CRM软件都符合同样出色的标准。那些成功的应该是你的多合一工具,可以简化你的优先级并跟…

MySQL原理(一)架构组成(2)逻辑模块组成

总的来说,MySQL可以看成是二层架构,第一层我们通常叫做SQL Layer,在MySQL数据库系统处理底层数据之前的所有工作都是在这一层完成的,包括权限判断,sql解析,执行计划优化,query cache的处理等等&…

Spring Security简介

什么是Spring Security Spring Security是 Spring提供的安全认证服务的框架。 使用Spring Security可以帮助我 们来简化认证和授权的过程。 官网&#xff1a;Spring Security 对应的maven坐标&#xff1a; <!--security启动器--> <dependency><groupId>or…

C++大学教程(第九版)7.28 回文(递归和非递归实现)

文章目录 题目代码运行截图 题目 &#xff08;回文&#xff09;回文是一种字符串&#xff0c;正读和反读该字符都会得到同样的结果。回文的例子包括“radar”和able was ierei saw elba”等。请编写一个递归函数testPalindrome,如果一个字符串是回文&#xff0c;则返回true;否…

Python入门到精通(五)——Python数据容器

Python数据容器 前言 一、list 列表 1、定义 2、列表的下标索引 3、常用操作 4、列表的遍历 二、tuple 元组 1、定义 2、常用操作 三、str 字符串 1、定义 2、常用操作 四、容器序列的切片 五、set 集合 1、定义 ​编辑 2、常用操作 六、dict 字典、映射 1、…

Celery入门

Celery 官网&#xff1a;Celery - Distributed Task Queue — Celery 5.3.6 documentation Celery 官方文档英文版&#xff1a;Celery - Distributed Task Queue — Celery 5.4.0rc1 documentation Celery 官方文档中文版&#xff1a;Celery - 分布式任务队列 — Celery 3.1.…

Linux网络编程——网络初识

文章目录 1. 网络协议初识1.1 为什么要有网络协议1.2 协议分层 2. OSI七层模型3. TCP/IP五层&#xff08;或四层&#xff09;模型4. 网络传输基本流程5. 以太网通信 1. 网络协议初识 1.1 为什么要有网络协议 早期计算机是独立的&#xff0c;如果要进行数据交互&#xff0c;就…

超越人类上限的策划:百度输入法在候选词区域植入广告

一位 V2EX 用户最新发帖称&#xff0c;百度输入法的最新版本中引入了一个新功能&#xff0c;将广告直接植入到候选词区域。 具体表现为&#xff0c;当用户输入某些关键词时&#xff0c;候选词区域会显示与输入内容相关的广告链接。例如&#xff0c;用户输入“招商”时&#xf…

《统计学习方法:李航》笔记 从原理到实现(基于python)-- 第5章 决策树(代码python实践)

文章目录 第5章 决策树—python 实践书上题目5.1利用ID3算法生成决策树,例5.3scikit-learn实例《统计学习方法:李航》笔记 从原理到实现(基于python)-- 第5章 决策树 第5章 决策树—python 实践 import numpy as np import pandas as pd import matplotlib.pyplot as plt …

能源巨头施耐德电气遭遇勒索软件攻击

Bleeping Computer 网站消息&#xff0c;媒体透露能源管理和自动化巨头施耐德电气公司近期遭到 Cactus 勒索软件攻击&#xff0c;导致公司大量数据被盗。 施耐德电气是一家法国跨国公司&#xff0c;主要生产能源和自动化产品&#xff0c;从大卖场的家用电气元件到企业级工业控制…

后序遍历的线索化二叉树

对于后序遍历&#xff0c;需要明确&#xff0c;往往叶子结点&#xff0c;只能指向右子树&#xff08;如果右子树存在的情况&#xff09;&#xff0c;或者指向该结点&#xff08;因为这才是后序遍历&#xff09;&#xff0c;同样在进行退出到前一次递归的时候&#xff0c;我们要…