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

Ubuntu20.04从零安装IsaacSim/IsaacLab

Ubuntu20.04从零安装IsaacSim/IsaacLab

  • 电脑硬件配置:
  • 安装Isaac sim
    • 方案一:pip安装
    • 方案二:预构建二进制文件安装
      • 1、安装ominiverse
      • 2、在ominiverse中安装isaac sim,下载最新的4.2版本
  • 安装Isaac Lab
    • 1、IsaacLab环境克隆
    • 2、创建conda环境
    • 3、创建Isaac Sim符号链接
    • 3、虚拟环境安装Isaac SIm依赖
    • 4、安装IsaacLab扩展
    • 5、检查isaaclab是否安装成功
    • 6、设置自动source setup_isaac.sh
  • IDE设置(Vscode)

电脑硬件配置:

  • 显卡:RTX 4090
  • 系统:Ubuntu 20.04
  • 驱动:535.183.06

安装Isaac sim

方案一:pip安装

由于使用 pip 安装 Isaac Sim 需要 GLIBC 2.34+ 版本兼容性。要检查系统上的 GLIBC 版本,请使用命令 ldd --version 。

这可能会在某些Linux发行版上引起兼容性问题。例如,Ubuntu 20.04 LTS 默认使用 GLIBC 2.31。如果遇到兼容性问题,建议采用 Isaac Sim Binaries Installation 的安装方法。

glibc升级很容易将系统搞崩,而且很有可能会出其他问题,20.04的系统不建议使用这种方式。

由于电脑配置了很多东西,尝试网上的方法(sudo apt install libc6),失败数次后选择放弃,但探索出了安装失败回退到老版本的方法,供大家参考,不是22.04以上的系统不建议使用,下面将分享第二种方法。

方案二:预构建二进制文件安装

1、安装ominiverse

1)下载AppImage文件

2)安装ominiverse launcher

复制安装包到自己想放置的文件夹中,运行下面的指令开始安装

sudo chmod +x omniverse-launcher-linux.AppImage
./omniverse-launcher-linux.AppImage

3)运行登入NVIDIA账户按照引导设置后开始使用

由于ominiverse是运行的底座,因此sim需要在这上面进行安装构建。

2、在ominiverse中安装isaac sim,下载最新的4.2版本

在这里插入图片描述

在这里插入图片描述
上面这种下载方式特别慢,可以从网盘下载,将zip文件重命名为Isaac Sim.zip,放到指定路径(~/.local/share/ov/pkg/isaac-sim-4.2.0/ )下,这里命名千万注意不能出错,之后从EXCHANGE/交易所下点击安装即可从下载好的包进行安装,避免长时间的下载。

  • 网盘链接
https://www.123684.com/s/CF6DVv-5zxMA?
提取码:v7HA

在这里插入图片描述

安装完成即可从LIBRARY -> APPS -> Isaac Sim ,点击LAUNCH启动

请添加图片描述

看到这个界面,即安装成功。

请添加图片描述

之后还需要使用conda创建环境来替代isaac sim原来的环境,并安装相关依赖,这部分可以和isaaclab的放到一块。

如果之前用过其他版本,在安装后第一次需要运行以下命令,以删除所有旧用户数据和缓存变量

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

安装Isaac Lab

1、IsaacLab环境克隆

从github克隆IsaacLab环境到指定目录,可以放置在isaac sim的同级目录下

cd ~/.local/share/ov/pkg/
git clone https://github.com/isaac-sim/IsaacLab.git

2、创建conda环境

这一步骤只在创建虚拟环境时使用一次,之后便不再使用。

cd IsaacLab
# Option 1: Default name for conda environment is 'isaaclab'
./isaaclab.sh --conda  # or "./isaaclab.sh -c"
# Option 2: Custom name for conda environment
./isaaclab.sh --conda my_env  # or "./isaaclab.sh -c my_env"

之后要使用前必须先进入所创建的这个虚拟环境后再用python命令

conda activate isaaclab  # or "conda activate my_env"

一旦进入虚拟环境,就不需要使用 ./isaaclab.sh -p 来运行Python脚本。可以使用环境中的默认Python可执行文件,即通过运行 python 或 python3

3、创建Isaac Sim符号链接

在已安装的Isaac Sim根目录和Isaac Lab目录的 _isaac_sim 之间建立符号链接。这样做方便了索引Python模块并查找与Isaac Sim一起提供的扩展。(在Isaac Lab目录下创建一个isaac sim的超链接)

# enter the cloned repository
cd IsaacLab
# create a symbolic link
ln -s path_to_isaac_sim _isaac_sim
# For example: ln -s ~/.local/share/ov/pkg/isaac-sim-4.2.0 _isaac_sim

执行完这行命令后,在IsaacLab文件夹下会有一个_isaac_sim的超链接

3、虚拟环境安装Isaac SIm依赖

1) 安装依赖
下面所有操作默认在刚刚创建的conda虚拟环境中运行

conda install pytorch==1.13.1 torchvision==0.14.1 torchaudio==0.13.1 pytorch-cuda=11.7 -c pytorch -c nvidia
pip install stable-baselines3==2.0.0 tensorboard==2.11.0 tensorboard-plugin-wit==1.8.1 protobuf==3.20.3
#设置isaacsim环境变量调用改conda环境中的python,替代掉原环境的python
h #不想每次都用这个命令可以将它加入到.bashrc文件# these dependency are needed by robomimic which is not available on Windows
sudo apt install cmake build-essential

2) 验证是否安装成功

  • 检查sim是否可以从独立的 python 脚本中运行,需要先激活刚刚创建的虚拟环境
# checks that python path is set correctly
python -c "print('Isaac Sim configuration is now complete.')"

输出:Isaac Sim configuration is now complete.

#checks that Isaac Sim can be launched from python
source /home/user/.local/share/ov/pkg/isaac-sim-4.2.0/setup conda env.sh #不想每次都用这个命令可以看第6步
python ${ISAACSIM_PATH}/standalone_examples/api/omni.isaac.core/add_cubes.py

成功会输出如下界面

在这里插入图片描述

4、安装IsaacLab扩展

运行此安装命令,遍历 source/extensions 目录中的所有扩展,同时使用带有 --editable 标志的pip进行安装:

cd IsaacLab
./isaaclab.sh --install # or "./isaaclab.sh -i"

上述代码将按默认设置安装所有学习框架。如果您想只安装特定框架,可以将框架的名称作为参数传递。例如,为了只安装 rl_games 框架,可以运行

./isaaclab.sh --install rl_games  # or "./isaaclab.sh -i rl_games"
# 有效选项有 rl_games, rsl_rl, sb3, skrl, robomimic, none

5、检查isaaclab是否安装成功

# Option 1: Using the isaaclab.sh executable
# note: this works for both the bundled python and the virtual environment
./isaaclab.sh -p source/standalone/tutorials/00_sim/create_empty.py# Option 2: Using python in your virtual environment
source ~/.local/share/ov/pkg/isaac-sim-4.2.0/setup conda env.sh
python source/standalone/tutorials/00_sim/create_empty.py

在这里插入图片描述
出现黑色框框说明安装成功。

6、设置自动source setup_isaac.sh

为了避免每次使用conda环境都需要source一下(不然会报错:ModuleNotFoundError: No module named 'omni.isaac.kit'),我们需要对刚刚创建的conda环境进行设置,为了方便将设置过程写成一个脚本如下,注意更改自己的isaacsim路径。

#!/bin/bash# Step 1: 确认目标环境的路径
ENV_NAME="isaaclab"
ENV_PATH=$(conda info --envs | grep -w "$ENV_NAME" | awk '{print $NF}')if [[ -z "$ENV_PATH" ]]; thenecho "Error: 环境 '$ENV_NAME' 不存在,请确认环境名称是否正确。"exit 1
fiecho "目标环境路径:$ENV_PATH"# Step 2: 创建激活脚本目录
ACTIVATE_DIR="$ENV_PATH/etc/conda/activate.d"
mkdir -p "$ACTIVATE_DIR"
echo "激活脚本目录已创建:$ACTIVATE_DIR"# Step 3: 创建激活脚本
ACTIVATE_SCRIPT="$ACTIVATE_DIR/setup_isaac.sh"
cat <<EOF > "$ACTIVATE_SCRIPT"
#!/bin/bash
source /home/user/.local/share/ov/pkg/isaac-sim-4.2.0/setup_conda_env.sh
EOFecho "激活脚本已创建:$ACTIVATE_SCRIPT"# Step 4: 赋予脚本执行权限
chmod +x "$ACTIVATE_SCRIPT"
echo "激活脚本权限已设置为可执行"# Step 5: 提示完成
echo "激活环境时自动运行命令已成功配置!"
echo "测试:激活 '$ENV_NAME' 环境时,'setup_conda_env.sh' 将自动运行。"

按照下面步骤操作:

touch setup_isaaclab_hook.sh
nano setup_isaaclab_hook.sh
# 复制上面的代码并保存
chmod +x setup_isaaclab_hook.sh
./setup_isaaclab_hook.sh
rm setup_isaaclab_hook.sh

具体原理:每个 Conda 环境都有一个特殊的目录,用于存放在环境激活和停用时自动运行的脚本,将source /home/user/.local/share/ov/pkg/isaac-sim-4.2.0/setup_conda_env.sh在环境激活时运行,完成设置。

至此,IsaacLab安装完成。

IDE设置(Vscode)

由于上述步骤中已经配置好isaac所需的conda环境,因此后续只需要通过在VSCode左下角选择并激活相应的python解释器,或者打开命令面板(Ctrl Shift P)并选择相应的Python解释器,点击运行就可以进行调试运行,如上述验证案例,其输出结果和终端运行结果一致。

https://isaac-sim.github.io/IsaacLab/main/index.html
https://docs.robotsfan.com/isaaclab/source/setup/installation/pip_installation.html
https://docs.omniverse.nvidia.com/isaacsim/latest/installation/install_python.html

相关文章:

Ubuntu20.04从零安装IsaacSim/IsaacLab

Ubuntu20.04从零安装IsaacSim/IsaacLab 电脑硬件配置&#xff1a;安装Isaac sim方案一&#xff1a;pip安装方案二&#xff1a;预构建二进制文件安装1、安装ominiverse2、在ominiverse中安装isaac sim&#xff0c;下载最新的4.2版本 安装Isaac Lab1、IsaacLab环境克隆2、创建con…...

基于Java Springboot大学校园旧物捐赠网站

一、作品包含 源码数据库设计文档万字PPT全套环境和工具资源部署教程 二、项目技术 前端技术&#xff1a;Html、Css、Js、Vue、Element-ui 数据库&#xff1a;MySQL 后端技术&#xff1a;Java、Spring Boot、MyBatis 三、运行环境 开发工具&#xff1a;IDEA/eclipse 数据…...

【Java 集合】Collections 空列表细节处理

问题 如下代码&#xff0c;虽然定义为非空 NonNull&#xff0c;但依然会返回空对象&#xff0c;导致调用侧被检测为空引用。 实际上不是Collections的问题是三目运算符返回了null对象。 import java.util.Collections;NonNullprivate List<String> getInfo() {IccReco…...

大数据实验4-HBase

一、实验目的 阐述HBase在Hadoop体系结构中的角色&#xff1b;能够掌握HBase的安装和配置方法熟练使用HBase操作常用的Shell命令&#xff1b; 二、实验要求 学习HBase的安装步骤&#xff0c;并掌握HBase的基本操作命令的使用&#xff1b; 三、实验平台 操作系统&#xff1…...

deepin系统下载pnpm cnpm等报错

deepin系统下载pnpm cnpm等报错 npm ERR! request to https://registry.npm.taobao.org/pnpm failed, reason: certificate has expired 报错提示证书过期&#xff0c;执行以下命令 npm config set registry https://registry.npmmirror.com下载pnpm npm install pnpm -g查…...

#Js篇:JSON.stringify 和 JSON.parse用法和传参

JSON.stringify 和 JSON.parse 1. JSON.stringify JSON.stringify 方法将一个 JavaScript 对象或数组转换为 JSON 字符串。 基本用法 const obj { name: "Alice", age: 25 }; const jsonString JSON.stringify(obj); console.log(jsonString); // 输出: {"…...

c#通过网上AI大模型实现对话功能

目录 基础使用给大模型额外提供函数能力用Microsoft.Extensions.AI库实现用json格式回答 基础使用 https://siliconflow.cn/网站有些免费的大模型可以使用&#xff0c;去注册个账户&#xff0c;拿到apikey 引用 nuget Microsoft.Extensions.AI.OpenAI using Microsoft.Extensi…...

pymysql模块

1.pymysql基本使用 打开数据库连接,使用cursor()方法获取操作游标执行SQL语句 获取命令执行的查询结果 1.1 打开数据库连接 # 打开数据库连接 db pymysql.connect(host127.0.0.1,userroot,port3306,password"123",databasedb5) 1.2 使用cursor()方法获取操作游…...

WPF-模板和样式

在 WPF&#xff08;Windows Presentation Foundation&#xff09;中&#xff0c;模板是一种强大的机制&#xff0c;用于定义控件的外观。它允许你将控件的逻辑&#xff08;功能&#xff09;和外观&#xff08;UI&#xff09;分离开来。例如&#xff0c;一个按钮控件&#xff0c…...

网络编程 day1.2~day2——TCP和UDP的通信基础(TCP)

笔记脑图 作业&#xff1a; 1、将虚拟机调整到桥接模式联网。 2、TCP客户端服务器实现一遍。 服务器 #include <stdio.h> #include <string.h> #include <myhead.h> #define IP "192.168.60.44" #define PORT 6666 #define BACKLOG 20 int mai…...

element ui table 每行不同状态

table 每行定义值 tableData: [ { name: ,type:,location:, ziduan:,createtype:,ziduanvalue:,checkAll:true,checkedCities: [空, null, str随机, int随机],isIndeterminate: true,table_id:single,downloaddisabled:true,deldisabled:true} ], table c…...

力扣--LRC 142.训练计划IV

题目 给定两个以 有序链表 形式记录的训练计划 l1、l2&#xff0c;分别记录了两套核心肌群训练项目编号&#xff0c;请合并这两个训练计划&#xff0c;按训练项目编号 升序 记录于链表并返回。 注意&#xff1a;新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1&am…...

windows下,用CMake编译qt项目,出现错误By not providing “FindQt5.cmake“...

开发环境&#xff1a;windows10 qt5.14&#xff0c; 编译器msvc2017x64&#xff0c;CMake3.30&#xff1b; 现象&#xff1a; CMakeList文件里&#xff0c;如有find_package(Qt5 COMPONENTS Widgets REQUIRED) target_link_libraries(dis_lib PRIVATE Qt5::Widgets) 用CMak…...

【element-tiptap】Tiptap编辑器核心概念----结构篇

core-concepts 前言&#xff1a;这篇文章来介绍一下 Tiptap 编辑器的一些核心概念 &#xff08;一&#xff09;结构 1、 Schemas 定义文档组成方式。一个文档就是标题、段落以及其他的节点组成的一棵树。 每一个 ProseMirror 的文档都有一个与之相关联的 schema&#xff0c;…...

半导体工艺与制造篇3 离子注入

离子注入工艺 一般掺杂的杂质类别&#xff0c;包括:提供载流子的施主杂质和受主杂质;产生复合中心的重金属杂质 离子注入往往需要生成井well&#xff0c;其中井的定义&#xff1a;晶圆与杂质之间形成的扩散层或杂质与杂质之间形成的扩散层 离子注入的目的&#xff1a;用掺杂改…...

利用开源的低代码表单设计器FcDesigner高效管理和渲染复杂表单结构

FcDesigner 是一个强大的开源低代码表单设计器组件&#xff0c;支持快速拖拽生成表单。提供丰富的自定义及扩展功能&#xff0c;FcDesigner支持多语言环境&#xff0c;并允许开发者进行二次开发。通过将表单设计输出为JSON格式&#xff0c;再通过渲染器进行加载&#xff0c;实现…...

淘宝 NPM 镜像源

npm i vant/weapp -S --production npm config set registry https://registry.npmmirror.com 要在淘宝 NPM 镜像站下载项目或依赖&#xff0c;你可以按照以下步骤操作&#xff1a; 1. 设置淘宝 NPM 镜像源 首先&#xff0c;你需要设置淘宝 NPM 镜像源以加速下载。可以通过…...

i春秋-GetFlag(md5加密,字符串比较绕过)

练习平台地址 竞赛中心 题目描述 题目内容 你好&#xff0c;单身狗&#xff0c;这是一个迷你文件管理器&#xff0c;你可以登录和下载文件&#xff0c;甚至得到旗帜 点击登录 发现capture需要满足条件substr(md5(captcha), 0, 6)xxxxxx 编写python脚本破解验证码 import has…...

SpringBoot中设置超时30分钟自动删除元素的List和Map

简介 在 Spring Boot 中&#xff0c;你可以使用多种方法来实现自动删除超时元素的 List 或 Map。以下是两种常见的方式&#xff1a; 如果你需要简单的功能并且不介意引入外部依赖&#xff0c;可以选择 Guava Cache。如果你想要更灵活的控制&#xff0c;使用 Spring 的调度功能…...

入门车载以太网(6) -- XCP on Ethernet

目录 1.寻址方式 2.数据帧格式 3.特殊指令 4.使用实例 了解了SOME/IP之后&#xff0c;继续来看看车载以太网在汽车标定领域的应用。 在汽车标定领域XCP是非常重要的协议&#xff0c;咱们先来回顾下基础概念。 XCP全称Universal Measurement and Calibration Protocol&a…...

golang循环变量捕获问题​​

在 Go 语言中&#xff0c;当在循环中启动协程&#xff08;goroutine&#xff09;时&#xff0c;如果在协程闭包中直接引用循环变量&#xff0c;可能会遇到一个常见的陷阱 - ​​循环变量捕获问题​​。让我详细解释一下&#xff1a; 问题背景 看这个代码片段&#xff1a; fo…...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容

基于 ​UniApp + WebSocket​实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配​微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...

现代密码学 | 椭圆曲线密码学—附py代码

Elliptic Curve Cryptography 椭圆曲线密码学&#xff08;ECC&#xff09;是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础&#xff0c;例如椭圆曲线数字签…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践

6月5日&#xff0c;2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席&#xff0c;并作《智能体在安全领域的应用实践》主题演讲&#xff0c;分享了在智能体在安全领域的突破性实践。他指出&#xff0c;百度通过将安全能力…...

多模态大语言模型arxiv论文略读(108)

CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题&#xff1a;CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者&#xff1a;Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...

AI书签管理工具开发全记录(十九):嵌入资源处理

1.前言 &#x1f4dd; 在上一篇文章中&#xff0c;我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源&#xff0c;方便后续将资源打包到一个可执行文件中。 2.embed介绍 &#x1f3af; Go 1.16 引入了革命性的 embed 包&#xff0c;彻底改变了静态资源管理的…...

Netty从入门到进阶(二)

二、Netty入门 1. 概述 1.1 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty是一个异步的、基于事件驱动的网络应用框架&#xff0c;用于…...

LRU 缓存机制详解与实现(Java版) + 力扣解决

&#x1f4cc; LRU 缓存机制详解与实现&#xff08;Java版&#xff09; 一、&#x1f4d6; 问题背景 在日常开发中&#xff0c;我们经常会使用 缓存&#xff08;Cache&#xff09; 来提升性能。但由于内存有限&#xff0c;缓存不可能无限增长&#xff0c;于是需要策略决定&am…...

SpringAI实战:ChatModel智能对话全解

一、引言&#xff1a;Spring AI 与 Chat Model 的核心价值 &#x1f680; 在 Java 生态中集成大模型能力&#xff0c;Spring AI 提供了高效的解决方案 &#x1f916;。其中 Chat Model 作为核心交互组件&#xff0c;通过标准化接口简化了与大语言模型&#xff08;LLM&#xff0…...

ZYNQ学习记录FPGA(一)ZYNQ简介

一、知识准备 1.一些术语,缩写和概念&#xff1a; 1&#xff09;ZYNQ全称&#xff1a;ZYNQ7000 All Pgrammable SoC 2&#xff09;SoC:system on chips(片上系统)&#xff0c;对比集成电路的SoB&#xff08;system on board&#xff09; 3&#xff09;ARM&#xff1a;处理器…...