目录
- 基于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