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

Isaac Sim与Isaac Lab初使用

目录

  • 基于Omiverse
  • 下载Isaacsim
  • 安装Isaac Lab
    • 配置isaacsim环境
    • 测试
    • 克隆仓库
    • 配置python环境
    • 强化学习训练的测试
  • IsaacLab模板
  • 配置vscode环境
  • ros接口安装

作为nvidia出品的仿真软件,很多机器人、机器狗【具身智能】都可以有很不错的效果,所以会使用isaac sim和mojoco越来越成为基础研究者的工具了。今天我们先来看一下Isaac sim Isaaclab的安装和配置过程。
英文的官方教程是最权威的了:
https://docs.isaacsim.omniverse.nvidia.com/4.5.0/index.html
https://github.com/isaac-sim
isaacsim与ros

基于Omiverse

Isaac Sim本质上是Omniverse中的一个仿真工具包,所以可以通过omniverse来下载isaacsim。下载Omniverse,地址:
https://developer.nvidia.com/omniverse?sortBy=developer_learning_library%2Fsort%2Ffeatured_in.omniverse%3Adesc%2Ctitle%3Aasc#section-getting-started
在这里插入图片描述
今年十月这个launcher就不再支持了,所以现在安装isaac sim最好的方式是直接脱离omniverse直接下载安装!

下载Isaacsim

https://docs.isaacsim.omniverse.nvidia.com/latest/installation/download.html
在这里插入图片描述

下载对应的版本,我这里是linux,最新的版本是4.5的,然后解压一下
在这里插入图片描述
即执行下面的命令,就可以通过./isaac-sim.selector.sh打开isaacsim了

mkdir ~/isaacsim
cd ~/Downloads
unzip "isaac-sim-standalone@4.5.0-rc.36+release.19112.f59b3005.gl.linux-x86_64.release.zip" -d ~/isaacsim
cd ~/isaacsim
./post_install.sh
./isaac-sim.selector.sh

在这里插入图片描述
start之后:
在这里插入图片描述
可以通过example来把isaacsim的配置进行初始化,点击window->examples->robotics examples,然后去选择general中的helloworld,然后在load加载一下。

经过一段时间的初始化后应该就能加载出来,这个仿真软件中的example都可以先跑一跑,初次加载一般耗时都比较长。

Isaacsim的运行性能要求主要如下表所示,主要是需要显存8G,内存32G
在这里插入图片描述
Isaac sim 驱动需求,现在一般安装的都是535版本的,只要超过473.47即可
在这里插入图片描述
由于本身isaacsim已经有了很强大的学习算法环境——isaaclab,所以我们一般要结合isaaclab来使用isaacsim,这种条件下其实一般不会用./isaac-sim.selector.sh来启动isaacsim。

安装Isaac Lab

配置isaacsim环境

isaaclib是基于isaacsim仿真环境做的专门用于训练智能体的架构,里面实现了一些强化学习和模仿学习的例子,可以很好的起步。这里有一个中文的教程https://docs.robotsfan.com/isaaclab/source/setup/installation/binaries_installation.html#。我们选择二进制的安装方式:
在这里插入图片描述
第一步是需要将上面已经安装了的isaacsim进行环境配置,也就是在.bahrc文件中添加:

export ISAACSIM_PATH="${HOME}/isaacsim" # issacsim安装目录
export ISAACSIM_PYTHON_EXE="$(ISAACSIM_PATH)/python.sh" # 这是issacsim自带的python启动器 不需要修改

我的环境为
在这里插入图片描述

测试

配置好环境后可以测试一下配置是否正常,直接打开一个终端,运行

${ISAACSIM_PATH}/isaac-sim.sh

检查是否可以通过python脚本启动

${ISAACSIM_PYTHON_EXE} ${ISAACSIM_PATH}/standalone_examples/api/isaacsim.core.api/add_cubes.py

注意,如果之前用过isaacsim的旧版本,可以通过reset-user来删除旧数据

${ISAACSIM_PATH}/isaac-sim.sh --reset-user

克隆仓库

把官方包下载到本地,执行

git clone https://github.com/isaac-sim/IsaacLab.git

接下来进入文件夹中并建立与isaacsim的符号链接

cd IsaacLab
ln -s path_to_isaac_sim _isaac_sim # path_to_isaac_sim是isaacsim的安装路径

然后就可以看到符号链接了(也就是windows中的快捷方式)
在这里插入图片描述

配置python环境

一方面我们可以直接使用${ISAACSIM_PYTHON_EXE}所指向的python,我也可以自己重新创建一个。这里选择conda来创建一个新的python环境。
首先isaaclib提供了一个功能丰富的脚本,我们用这个脚本来实现一些操作。
在这里插入图片描述

./isaaclab.sh --conda my_env # my_env换成自己想取的env名称 比如env_isaaclab

创建好之后,以后用这个脚本执行的命令前请都进入这个虚拟环境中

conda activate env_isaaclab

然后安装一些依赖

sudo apt install cmake build-essential

在env环境中,安装python的依赖

./isaaclab.sh --install # 安装所有的学习框架 也可以安装特定的./isaaclab.sh --install rl_games

对于新版的50系显卡,请使用新的torch,所以要安装python依赖执行的是:

./isaaclab.sh -p -m pip install --upgrade --pre torch --index-url https://download.pytorch.org/whl/nightly/cu128

在env中验证isaaclab和python环境运行

./isaaclab.sh -p scripts/tutorials/00_sim/create_empty.py
python scripts/tutorials/00_sim/create_empty.py

这两个命令是同样的效果。

强化学习训练的测试

训练蚂蚁走路

./isaaclab.sh -p scripts/reinforcement_learning/rsl_rl/train.py --task=Isaac-Ant-v0 --headless

训练机械狗

./isaaclab.sh -p scripts/reinforcement_learning/rsl_rl/train.py --task=Isaac-Velocity-Rough-Anymal-C-v0 --headless

同样的,这两个可能会训练失败,原因也是需要初始化一波。等待一段时间,然后应该就能训练了。在对应文件夹下有play.py可以播放对应的效果,–headless模式不会显示图形界面,它开启的并行的env也是非常多的。

IsaacLab模板

现在有比较丰富的模板库可供选择,这里介绍四个开源的。
(1)官方的扩展模板(四足):

在orbit模板上进行了一定修改,但仍然依赖于IsaacLab的部分函数和接口。

https://github.com/isaac-sim/IsaacLabExtensionTemplate

(2)宇树的Go2模板(四足):

宇树给Go2平台提供的模板,比较简洁,仅适合四足场景使用

https://github.com/abizovnuralem/go2_omniverse

(3)Fan-ziqi同学的模板(四足):

Fan同学基于官方的模板进行的扩展,独立于IsaacLab,方便开发。

https://github.com/fan-ziqi/robot_lab

(4)NathanWu7, Qiwei Wu提供的模板(机械臂和机械手)

参考了Fan同学和官方的模板,以及官方的manipulation代码,自制了一个扩展

https://github.com/NathanWu7/isaacLab.manipulation

如何安装及部署IsaacLab.manipulation?
下载模板并安装

git clone https://github.com/NathanWu7/isaacLab.manipulation
cd isaacLab.manipulation
conda activated env_isaaclab
pip install -e .

安装rsl_rl部分

cd isaacLab.manipulation/isaacLab/manipulation/algorithms #如果没有这个目录 创建目录
git clone https://github.com/leggedrobotics/rsl_rl.git
cd rsl_rl
python -m pip install -e .

使用IsaacLab.manipulation的例程

python3 scripts/rsl_rl/train.py --task Template-Isaac-Reach-Kinova-v0--num_envs 4096 --headless #会报一些错 主要为urdf和usd文件的原因,不用管
python3 scripts/rsl_rl/train.py --task Template-Isaac-Reach-Franka-v0 --num_envs 4096 --headless
python3 scripts/rsl_rl/train.py --task Template-Isaac-Reach-UR10-v0 --num_envs 4096 --headless
python3 scripts/rsl_rl/train.py --task Template-Isaac-Repose-Cube-Allegro-v0 --num_envs 4096 --headless

headless模式不会显示图形界面,这在设置并行运行的环境(envs)非常多的时候很有用,如果开了,也可以按键盘的v把图形界面关掉。

配置vscode环境

在vscode中打开isaaclab,按下 Ctrl+Shift+P ,选择 Tasks: Run Task 并在下拉菜单中运行 setup_python_env 。设置好正确的python env环境。
在这里插入图片描述
其中

  • .vscode/launch.json: 包含用于调试 python 代码的启动配置。
  • .vscode/settings.json: 包含 python 解释器和 python 环境的设置。
    python的环境在这里插入图片描述
    task.json,用于在运行和调试中使用 Python: 当前文件选项时自动设置 Python 环境。
{// See https://go.microsoft.com/fwlink/?LinkId=733558// for the documentation about the tasks.json format"version": "2.0.0","tasks": [{"label": "setup_python_env","type": "shell","linux": {"command": "${workspaceFolder}/isaaclab.sh -p ${workspaceFolder}/.vscode/tools/setup_vscode.py"},"windows": {"command": "${workspaceFolder}/isaaclab.bat -p ${workspaceFolder}/.vscode/tools/setup_vscode.py"},"problemMatcher": ["$python"]},{"label": "run_formatter","type": "shell","linux": {"command": "${workspaceFolder}/isaaclab.sh --format"},"windows": {"command": "${workspaceFolder}/isaaclab.bat --format"}}]
}

安装扩展isaac sim vscode edition
在这里插入图片描述
功能比较多,后续可以在研究。
在这里插入图片描述

ros接口安装

ros1基本不再支持,我们用更加稳定的ros2接口来开发,所以第一步就是需要安装ros humble
有了ros之后,前往 Isaac Sim ,转到窗口 -> 扩展的扩展管理器菜单,并搜索 ROS bridge。请注意,一次只能启用一个 ROS Bridge 扩展,比如启用ROS2 BRIDGE时不可使用ROS BRIDGE。
在这里插入图片描述
由于我当前是ubuntu20,没有安装humble的ros版本,所以在这里主要说一下ros1 noetic的相关情况。注意,这里能适配的也只有ros1 noetic和ros2 humble的版本,其他版本容易出问题。
附上对应的工作空间地址

https://github.com/isaac-sim/IsaacSim-ros_workspaces

相关文章:

Isaac Sim与Isaac Lab初使用

目录 基于Omiverse下载Isaacsim安装Isaac Lab配置isaacsim环境测试克隆仓库配置python环境强化学习训练的测试 IsaacLab模板配置vscode环境ros接口安装 作为nvidia出品的仿真软件,很多机器人、机器狗【具身智能】都可以有很不错的效果,所以会使用isaac s…...

Spring AI Alibaba 工具(Function Calling)使用

一、工具(Function Calling)简介 Spring AI Alibaba工具(Function Calling):https://java2ai.com/docs/1.0.0-M6.1/tutorials/function-calling/ 1、工具(Function Calling) “工具(Tool)”或“功能调用(Function Calling&#xf…...

Touch Diver:Weart为XR和机器人遥操作专属设计的触觉反馈动捕手套

在虚拟现实(VR)和扩展现实(XR)领域,触觉反馈技术正逐渐成为提升沉浸感和交互体验的重要因素。Weart作为这一领域的创新者,凭借其TouchDIVER Pro和TouchDIVER G1触觉手套,为用户带来了高度逼真的…...

[深度学习]图片分类任务

图片分类任务 文章目录 图片分类任务分类任务回归和分类如何做分类的输出 图片分类卷积神经网络保持特征图大小不变更大的卷积核和更多的卷积核层数特征图怎么变小卷积神经网络中特征图改变卷积到全连接分类任务的LOSS一个基本的分类神经网络 经典神经网络AlexNetVggNetResNet …...

关系图:赋能数据可视化的动态扩展

关系图 关系图是一种用于展示节点之间关系和连接的图表类型。具有高度的可定制性、丰富的交互功能和动画效果,能够展示节点之间的和连接,以及随着数据的变化而呈现的动态效果。 【组件概述】 1.节点和边的可定制性: 关系图提供了丰富的配置…...

k8s存储介绍(三)valume概述与emptydir

目录 一、Kubernetes 中的 Volume 详解 基本概念 Volume 的主要类型(这里简单介绍,后续章节会详细介绍) 1. 本地存储类型 2. 网络存储类型 3. 云提供商存储 4. 特殊用途类型 PersistentVolume (PV) 和 PersistentVolumeClaim (PVC) S…...

Nodejs 项目打包部署方式

方式一:PM2 一、准备工作 确保服务器上已安装 Node.js 环境建议使用 PM2 进行进程管理(需要额外安装) 二、部署步骤 1.首先在服务器上安装 PM2(推荐): npm install -g pm22.将项目代码上传到服务器&…...

uv - Getting Started 开始使用 [官方文档翻译]

文章目录 uv亮点安装项目脚本工具Python 版本pip 接口了解更多 入门安装 uv安装方法独立安装程序PyPICargoHomebrewWinGetScoopDockerGitHub 发布 升级 uvShell 自动补全卸载 第一次使用 uv特性Python 版本脚本项目工具pip 接口实用工具 获取帮助帮助菜单查看版本故障排除问题在…...

C++类与对象的的第三个简单的实战练习-3.25笔记

哔哩哔哩C面向对象高级语言程序设计教程(118集全) 简单实战三 创建项目 打开VS,点击创建一个新项目 创建一个空项目 点击下一步 点击工程名称,选择添加 选择新建项 选择C类 取名 点击确定,这时候还需要一个main.cpp …...

CentOS安装sshpass工具-自动化SSH密码认证

sshpass是一个在Linux环境下用于自动化SSH密码认证的工具。 一、功能特点 自动化SSH登录:sshpass允许用户在命令行中直接传递密码,从而无需在SSH连接时手动输入密码。这对于自动化脚本和批处理任务非常有用,因为它可以在非交互式环境下完成…...

k8s中service概述(一)ClusterIP

ClusterIP 是 Kubernetes 中最基础且常用的 Service 类型,主要用于在集群内部提供稳定的网络访问端点。以下是关于 ClusterIP Service 的详细说明: 1. ClusterIP 的核心功能 集群内部访问:ClusterIP 提供一个集群内部的虚拟 IP(VI…...

详解接口的常见请求方式

详解接口的常见请求方式 一、 常见接口请求方式1. GET2. POST3. PUT4. DELETE5. PATCH6. HEAD7. OPTIONS 二、 实现方法1. 前端实现2. 后端实现 三、 作用与主要区别四、 举例讲解1. 创建 Spring Boot 工程2. 添加依赖3. 编写 Controller 实现接口关键点说明 4. 启动与测试5. 总…...

HarmonyOS-ArkUI Grip组件

我们在学习List的时候,已经捎带引入了Grid。讲解如下图所示: 也就是,如果一个表,长宽基本都是一致的,那么此时可以完全不用Grid也可以实现,并且,优先考虑的就是List。 如果List实现不了的情况下…...

2025清华大学:DeepSeek教程全集(PDF+视频精讲,共10份).zip

一、资料列表 第一课:Deepseek基础入门 第二课:DeepSeek赋能职场 第三课:普通人如何抓住DeepSeek红利 第四课:让科研像聊天一样简单 第五课:DeepSeek与AI幻觉 第六课:基于DeepSeek的AI音乐词曲的创造法 第…...

jupyter使用过程中遇到的问题

1、No module named ‘notebook.extensions’ 报错内容为: No module named notebook.extensions解决办法 出现这个错误代表你尝试给 Jupyter notebook 安装自动补全的插件,但是 notebook 没安装成功; 解决办法:不用 pip 安装 n…...

mac vim命令快捷键

目录 移动光标插入模式复制/粘贴删除搜索/替换退出 移动光标 快捷键说明0 / ^跳到行首,移动到光标所在行的"行首"$跳到行末,移动到光标所在行的"行尾"gg跳到文件第一行G移动到文章的最后[n]G跳到第n行w光标跳到下个字的开头e光标跳…...

【Golang】defer与recover的组合使用

在Go语言中,defer和recover是两个关键特性,通常结合使用以处理资源管理和异常恢复。以下是它们的核心应用场景及使用示例: 1. defer 的应用场景 defer用于延迟执行函数调用,确保在函数退出前执行特定操作。主要用途包括&#xff…...

低代码配置式Web组态解析

低代码配置式Web组态技术通过可视化操作和预置组件库,大幅降低开发门槛,适用于工业控制、物联网监控、数据可视化等场景。以下是综合行业实践和产品特性的分析: ‌一、核心功能与优势‌ ‌可视化编辑与拖拽布局‌ 提供图形化编辑器&#xff0…...

KiLog2MaximumIncrement的由来和KiMaximumIncrementReciprocal的由来

第一部分&#xff1a;KiLog2MaximumIncrement的由来 i 1; j KeMaximumIncrement; while ((1UI64<<i) < KeMaximumIncrement) { i; } KiLog2MaximumIncrement i; 2^17131072 2^18262144 i18KiLog2MaximumIncrement 中…...

基于web的家政服务网站

内容摘要 由于互联网的使用&#xff0c;人们在管理、应用、服务等领域使用数据更加简洁、方便&#xff0c;大大提高了工作效率。互联网正逐渐融入我们的生活&#xff0c;影响和改变我们的生活。 家政服务管理系统是典型的信息管理系统&#xff08;MIS&#xff09;。其开发主要…...

mac命令行快捷键

光标移动 Ctrl A: 将光标移动到行首。Ctrl E: 将光标移动到行尾。Option 左箭头: 向左移动一个单词。Option 右箭头: 向右移动一个单词。 删除和修改 Ctrl K: 删除从光标到行尾的所有内容。Ctrl U: 删除从光标到行首的所有内容。Ctrl W: 删除光标前的一个单词。Ctrl …...

聚水潭数据集成到MySQL的最佳实践分享

聚水潭数据集成到MySQL的技术案例分享 在本次技术案例中&#xff0c;我们将探讨如何通过轻易云数据集成平台&#xff0c;将聚水潭的数据高效、可靠地集成到MySQL数据库中。具体的集成方案为“聚水潭-商品信息查询-->BI初本-商品信息表_copy”。该方案旨在实现从聚水潭获取商…...

线性代数核心概念与NumPy科学计算实战全解析

前言 学习方法&#xff1a; 思维导图&#xff0c;梳理 多记忆&#xff0c;函数名和功能&#xff0c;参数 学会应用&#xff0c;不要钻牛角尖 一、浅解线性代数 1.1标量 标量是一个只有大小没有方向的量。在数学上&#xff0c;标量通常表示为一个普通的数字&#xff0c;如‌质量…...

Spring Boot中接口数据字段为 Long 类型时,前端number精度丢失问题解决方案

Spring Boot中接口数据字段为 Long 类型时&#xff0c;前端number精度丢失问题解决方案 在Spring Boot中&#xff0c;当接口数据字段为 Long 类型时&#xff0c;返回页面的JSON中该字段通常会被序列化为数字类型。 例如&#xff0c;一个Java对象中有一个 Long 类型的属性 id …...

C#自定义曲线便器功能实现(简化版)

目录 一、曲线编辑器实现功能 二、实现方法说明 三、关键代码说明 1、绘制背景板和曲线 2、绘制坐标系面板 3、绘制曲线 四、工程下载连接 一、曲线编辑器实现功能 添加或者删除控制点&#xff0c;通过移动控制点来修改曲线形状 二、实现方法说明 1、坐标系系统&#x…...

Unity Shader编程】之复杂光照

在Unity Shader的LightMode标签中&#xff0c;除了前向渲染和延迟渲染外&#xff0c;还支持多种渲染模式设置。以下是主要分类及用途&#xff1a; 一、核心渲染路径模式 前向渲染相关 ForwardBase 用于基础光照计算&#xff0c;处理环境光、主平行光、逐顶点/SH光源及光照贴图。…...

解锁U盘属性0字节困境,重获数据生机

在数字化浪潮中&#xff0c;U盘宛如一位忠诚的“数据信使”&#xff0c;频繁穿梭于各种设备之间&#xff0c;为我们存储和传输着重要信息。然而&#xff0c;当U盘突然显示属性为0字节时&#xff0c;就如同这位信使突然“失声”&#xff0c;让我们陷入了数据丢失的恐慌之中。U盘…...

⭐算法OJ⭐二叉树的直径【树】(C++实现)Binary Tree Paths

543. Binary Tree Paths&#xff08;二叉树的直径&#xff09; Given the root of a binary tree, return the length of the diameter of the tree. The diameter of a binary tree is the length of the longest path between any two nodes in a tree. This path may or m…...

docker使用命令笔记

docker使用命令笔记 1. 安装docker2. 拉取镜像3. 镜像与容器4. 基于镜像创建容器4. 操作创建好的容器5. docker文件传输6. ubuntu的docker的一些基本环境搭建 记录docker的一些使用命令 1. 安装docker 遵循官方安装说明即可&#xff0c;windows需要下载docker desktop后在doc…...

字典树与01trie

字典树简介 当我们通过字典查一个字或单词的时候&#xff0c;我们会通过前缀或关键字的来快速定位一个字的位置&#xff0c;进行快速查找。 字典树就是类似字典中索引表的一种数据结构&#xff0c;能够帮助我们快速定位一个字符串的位置。 字典树是一种存储字符串的数据结构…...