Isaac Sim与Isaac Lab初使用

news2025/3/29 14:50:16

目录

  • 基于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

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

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

相关文章

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 …

Nodejs 项目打包部署方式

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

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

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

HarmonyOS-ArkUI Grip组件

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

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

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

mac vim命令快捷键

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

低代码配置式Web组态解析

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

基于web的家政服务网站

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

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

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

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

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

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

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

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

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

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

543. Binary Tree Paths(二叉树的直径) 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…

字典树与01trie

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

vue - [Vue warn]: Duplicate keys detected: ‘0‘. This may cause an update error.

问题描述: vue项目中,对表单数组赋值时,控制台抛出警告: 问题代码: 问题分析: 1、Vue 要求每个虚拟 DOM 节点必须有唯一的 key。该警告信息通常出现在使用v-for循环的场景中,多个同级节点使用…

各类神经网络学习:(三)RNN 循环神经网络(中集),同步多对多结构的详细解释

上一篇下一篇RNN(上集)RNN(下集) 同步多对多结构 1)结构详解 ①图解: ②参数含义: x t x_t xt​ :表示每一个时刻的输入; o t o_t ot​ :表示每一个时刻的输…

UR5e机器人位姿

UR5e 作为一款 6 自由度协作机器人,其末端执行器的位姿(位置与姿态的组合)控制是实现精准操作的核心。在笛卡尔坐标系中,位姿通常用齐次变换矩阵表示,包含末端的三维位置(x, y, z)和三维姿态&am…

导入 Excel 规则批量修改或删除 PDF 文档内容

需要对 PDF 文档内容进行修改的时候,通常我们会需要借助一些专业的工具来帮我们完成。那我们如果需要修改的 PDF 文档较多的时候,有什么方法可以帮我们实现批量操作呢?今天这篇文章就给大家介绍一下当我们需要批量修改多个 PDF 文档的时候&am…