NVIDIA Isaac Sim 入门教程(一)

news2024/11/18 13:55:18

系列文章目录


前言


一、 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.coloradmin.cn/o/1384917.html

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

相关文章

无法解析服务器的名称或地址/Wsl/0x80072eff/win10 WSL2问题解决Wsl 0x800701bc/Wsl:0x80041002

无法解析服务器的名称或地址 和 Wsl/0x80072eff 1.连VPN&#xff0c;推荐的VPN如下。(如一直显示无法连接&#xff0c;则推荐使用VPN) Anycast加速器 (any4ga.com) 优点&#xff1a;无限GB 缺点&#xff1a;较贵&#xff0c;通过银行卡充值9折后的价格是每月45元左右 …

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

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

WEB 3D技术 three.js 点光源

本文的话 我们来设置一下点光源 点光源其实最直观的就是可以做萤火虫 也可以做星光 点点的效果 我们可以直接在官网中搜索 Pointlight 大家可以在官网这里看一下 其实 SpotLight 聚关灯中的属性 Pointlight 点光源也有的 我们先编写代码如下 import ./style.css import * a…

MySQL之单表查询

素材&#xff1a; 表名&#xff1a;worker-- 表中字段均为中文&#xff0c;比如 部门号 工资 职工号 参加工作 等 CREATE TABLE worker ( 部门号 int(11) NOT NULL, 职工号 int(11) NOT NULL, 工作时间 date NOT NULL, 工资 float(8,2) NOT NULL, 政治面貌 varchar(10) NO…

【Git】本地仓库管理远程库(GitHub)——clone(下载)、commit(添加到本地仓库)、push(提交到远程仓库)、pull(拉取)操作

目录 使用远程仓库的目的将本地仓库同步到git远程仓库 1.克隆远程仓库(clone)2.新建一个文件3.将工作区的文件添加到暂存区4.将暂存区的文件添加到本地仓库(commit)5.提交(同步)到远程仓库(push)6.远程库拉取到本地库(pull)7.团队协作开发和跨团队协作开发(开源项目) 使用远程…

PTA(浙大版《C语言程序设计(第3版)》题目集

PTA(浙大版《C语言程序设计&#xff08;第3版&#xff09;》题目集 学习C语言程序设计的PTA题目 目录 PTA(浙大版《C语言程序设计&#xff08;第3版&#xff09;》题目集PTA(浙大版《C语言程序设计&#xff08;第3版&#xff09;》题目集) 习题2-1 求整数均值 (10 分)输入格式:…

大型语言模型综述/总结 LLM A Survey of Large Language Models

A Survey of Large Language Model AbstractINTRODUCTIONOVERVIEW背景LLM的新兴能力LLM的关键技术GPT 系列模型的技术演进 大语言模型资源公开可用的模型检查点或 API常用语料库代码库资源 预训练数据收集架构 论文标题&#xff1a;A Survey of Large Language Model 论文地址&…

电子学会C/C++编程等级考试2023年09月(五级)真题解析

C/C++编程(1~8级)全部真题・点这里 第1题:红与黑 有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上,只能向相邻的黑色瓷砖移动。请写一个程序,计算你总共能够到达多少块黑色的瓷砖。 时间限制:1000 内存限制:65536 输入 包括多…

Linux的SSH远程管理和服务器之间的免密连接

目录 一、远程管理基础 1.ssh协议 2.ssh原理 3、使用ssh协议传输的命令 4.登录方法 二、免密连接 1.免密连接的原理 2.实战 一、远程管理基础 1.ssh协议 ssh协议是基于C/S机构的安全通道协议&#xff0c;通信数据进行加密处理&#xff0c;用于远程管理。 ssh的服务名…

Python文件读写与字符编码详解【第25篇—python基础知识】

文章目录 文件读写和字符编码在Python中的实现一、I/O操作概述二、文件读写实现原理与操作步骤1. 文件读写实现原理2. 文件读写操作步骤 三、文件打开模式四、Python文件操作步骤示例五、文件读取相关方法1. 读取指定长度的内容2. 读取文件中的一行内容3. 遍历打印一个文件中的…

Zookeeper使用详解

介绍 ZooKeeper是一个分布式的&#xff0c;开放源码的分布式应用程序协调服务&#xff0c;是Google的Chubby一个开源的实现&#xff0c;是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件&#xff0c;提供的功能包括&#xff1a;配置维护、域名服务、分布…

【搭建个人知识库-3】

搭建个人知识库-3 1 大模型开发范式1.1 RAG原理1.2 LangChain框架1.3 构建向量数据库1.4 构建知识库助手1.5 Web Demo部署 2 动手实践2.1 环境配置2.2 知识库搭建2.2.1 数据收集2.2.2 加载数据2.2.3 构建向量数据库 2.3 InternLM接入LangChain2.4 构建检索问答链1 加载向量数据…

鸿蒙应用开发学习:让page页面强制横屏

一、学习做了个适合横屏的页面但进入页面后是竖屏显示的 前几天在B站上跟着 黑马程序员的 HarmonyOS4.0开发应用教学视频学习了显式动画&#xff08;animateTo&#xff09;和属性动画&#xff08;animation&#xff09;功能&#xff0c;并参照教学视频的内容做了个小鱼动画。…

基于MOD02/MYD02获得亮度温度再转冰温

用HEG处理MOD02/MYD02,提取里面的EV_1KM_Emissive波段,band为11和12(其实就是band 31和32)。注意这里的band和output dile type 1. 获得之后,转辐射亮度。 参考:https://www.cnblogs.com/enviidl/p/16539422.html radiance_scales,和radiance_offset这两项参数代表波段…

实现STM32烧写程序-(4) BIN文件结构

简介 BIN文件是一种二进制文件格式&#xff0c;用于存储和传输二进制数据。它包含了计算机或设备可以直接读取和执行的原始二进制数据。BIN文件通常用于存储程序、固件或其他二进制数据&#xff0c;例如嵌入式系统的固件、操作系统的映像文件等。 BIN文件的起源可以追溯到计算机…

学习Vue配置代理总结

今天学习了Vue的配置代理&#xff0c;当我们想要向服务器取回来数据时就先要向服务器发送请求&#xff0c;但前端发送请求的方式也有很多种&#xff0c;首先是发送请求的鼻祖JS的XMLHttpRequest&#xff08;xhr&#xff09;&#xff0c;它操作起来相对麻烦&#xff0c;开发中也…

mysql5.7之从入门到放弃

系列文章目录 第一章 MySQL5.7之从入门到放弃 第二章 MySQL从入门到放弃之数据库体系结构与管理 第三章 MySQL基础应用之DDL、DCL、DML、DQL 第四章 MySQL之多表连接查询、AS别名、扩展内容 文章目录 系列文章目录前言一、Mysql的介绍和安装&#xff1f;1、什么是数据&#xf…

SqlAlchemy使用教程(二) 入门示例及编程步骤

SqlAlchemy使用教程(一) 原理与环境搭建SqlAlchemy使用教程(三) CoreAPI访问与操作数据库详解 二、入门示例与基本编程步骤 在第一章中提到&#xff0c;Sqlalchemy提供了两套方法来访问数据库&#xff0c;由于Sqlalchemy 官方文档结构有些乱&#xff0c;对于ORM的使用步骤的描…

【生存技能】git操作

先下载git https://git-scm.com/downloads 我这里是win64&#xff0c;下载了相应的直接安装版本 64-bit Git for Windows Setup 打开git bash 设置用户名和邮箱 查看设置的配置信息 获取本地仓库 在git bash或powershell执行git init&#xff0c;初始化当前目录成为git仓库…

【Unity】【VRTK】【Pico】如何快速在VRTK中引入带动画的PICO控制器

【背景】 之前的VRTK篇章中,我只介绍了Oculus,Open VR,SImulator这三种Rig的配置方法,那么Pico如何融合VRTK进行开发呢? 【需要的开发包】 先像一个正常PICO项目那样导入PICO的SDK到Unity。VRTK 4的Package导入器中搜Pico,可以导入一个Pico的Integration,导入后Projec…