首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >用Isaac Lab玩转《 LeRobot 机械手臂训练》

用Isaac Lab玩转《 LeRobot 机械手臂训练》

原创
作者头像
用户4730701
发布2025-08-20 22:14:36
发布2025-08-20 22:14:36
1.4K2
举报

本文要带着大家用 Isaac Lab 模拟 LeRobot 的 SO-101 机械手臂执行 “抓举积木” 的任务。如下所示:

  1. 图左发现一块积木;
  2. 图中进行抓去;
  3. 图右将积木举起来
用 Isaac Lab 模拟 LeRobot 机械手臂执行“抓举积木”的任务
用 Isaac Lab 模拟 LeRobot 机械手臂执行“抓举积木”的任务

现在就跟着我们提供的步骤,就能非常轻松实现这个目标。以下是本文操作的系统配置与环境,提供大家参考:

  • 操作系统:Ubuntu 24.04
  • CPU/内存:12th Gen Intel® Core™ i5-12500TE × 12 w/ 64GB 内存
  • GPU/显存:NVIDIA GeForce RTX 4060 Ti w/ 16GB 显存
  • 模拟器: NVIDIA Isaac Sim 5.0 (不需要 Assets )+ Isaac Lab 2.2.0
  • Python 版本:使用 conda 创建 3.11.13

接下去就开始我们的操作步骤:

1. 安装 IsaacLab

截止目前(2025-08-20)为止的最新版本为 IsaacLab 2.2.0,下面是两个使用频率最高的资源:

虽然 IsaacLab 提供多种安装方式,我们在这里只提供 “Binary installation(点击进入)” 的说明,如要使用其他安装方式,请自行按照说明文件进行。

下面我们将安装步骤进行简化与提炼:

A. 与 IsaacSim 的环境进行结合

由于 IsaacLab 依赖于 IsaacSim,因此需要先用环境变量创建关系,如下:

代码语言:txt
复制
export ISAACSIM_PATH="<isaacsim路径>"
export ISAACSIM_PYTHON_EXE="${ISAACSIM_PATH}/python.sh"

这里建议可以将这两个变量写入 ${HOME}/.bashrc 文件的最后面,然后执行下面指令让其生效:

代码语言:txt
复制
source  ~/.bashrc 

接着使用以下指令检查这个变量的设置是否正确:

代码语言:txt
复制
${ISAACSIM_PYTHON_EXE} -V

以我们使用的 IssaccSim 5.0.0 版本内,自带一个 3.11.13 版本的 Python 解译器,如果执行上面指令得到 "3.11.13" 结果,就表示这个环节变量是正确的。

如果还想进行更多的实验,可以执行下面指令(需要开启 IsaacSim 模拟器,时间会比较久):

代码语言:txt
复制
${ISAACSIM_PYTHON_EXE} ${ISAACSIM_PATH}/standalone_examples/api/isaacsim.core.api/add_cubes.py

如果出现如下图的效果,就表示一切都正常执行。

B. 从 Github 下载代码

前面已经列出 IsaacLab 代码仓的位置,最简单的下载方式如下:

代码语言:txt
复制
cd <合适的位置>
git clone https://github.com/isaac-sim/IsaacLab.git

不过国内正常下载可能会有问题,另一种方式就是在代码仓,就是进入 https://github.com/isaac-sim/IsaacLab 后,在网页上点击“Code”,然后在打开的内容中点击“Download ZIP” (如下图),到本地之后再解压缩文件到指定目录下。

C. 配置 IsaacLab 的执行环境

这个环节最需要处理的就是 Python 解译器的版本配置,因为 IsaacSIm 有内置一个 Python 解译器。以 IsaccSim 5.0.0 为例,其内置的 Python 版本为 3.11.13,这在前面已经提过了。

标准 Ubuntu 22.04 所带的 Python 版本为 3.10.12,而 Ubuntu 24.04 则为 3.12.3,与 IsaacSim 5.0.0 内置的版本都不一致,因此要执行任务时,最好从下面两种方案中选择一种:

  1. 每次都用 ${ISAACSIM_PYTHON_EXE} 调用内置的 Python 解译器;
  2. 使用 conda 创建 Python 3.11.13 虚拟环境。

本文使用第二种方案,可以省略路径切换的麻烦。

关于 conda 部分,推荐使用 Miniconda(点击进入),但安装部分网上有非常丰富的教程,这里不浪费篇幅讲解,直接假设您已经安装好了,然后就能使用下面指令去创建适合 IsaacLab 2.2.0 的虚拟环境:

代码语言:txt
复制
cd <IsaacLab解压缩的目录>
./isaaclab.sh -c <自定义环境名>      # <自定义环境名> 可以忽略,预设值为 "env_isaaclab"

这样就会为我们生成合适的虚拟环境,然后执行下面指令启动虚拟环境:

代码语言:txt
复制
conda activate <自定义环境名>        # 例如 conda activate env_isaaclab

现在就配置好安装与执行 IsaacLab 2.2.0 的环境。

D. 安装 IsaacLab

前面环境都配置好之后,要安装 IsaacLab 就非常轻松,只要执行以下指令即可:

代码语言:txt
复制
sudo apt install cmake build-essential
cd <IsaacLab执行目录>
./isaaclab.sh --install

现在就会开始执行完整的安装,过程中如果出现问题,很可能是网络需要科学处理。

安装完成后,执行以下指令进行确认:

代码语言:txt
复制
python scripts/tutorials/00_sim/create_empty.py

如果出现下面画面,就表示安装成功。

create_empty 执行结果
create_empty 执行结果

在使用手册最下面还有个体验用的 ” 蚂蚁机器人“ 的模型训练与测试,请自行尝试。

2. 玩转LeRobot机械手臂

这里我们需要使用 https://github.com/MuammerBay/isaac_so_arm101 资源来做示范,这是个结合 IsaacLab 与 LeRobot 的 SO-101 机械手臂项目,使用起来也很简单,我们只要下载这个项目到本地,然后训练模型后

代码语言:txt
复制
cd <与 IsaacLab 同级目录>
git clone https://github.com/MuammerBay/isaac_so_arm101

如果下载有问题的话,请参考前面从 "Code" -> "Download ZIP" 的方式下载,然后解压缩即可,然后执行以下指令安装:

代码语言:txt
复制
cd isaac_so_arm101
python -m pip install -e source/SO_100

接下去执行以下指令,看看这个项目提供那些项目:

代码语言:txt
复制
python scripts/list_envs.py

会出现以下列表,这里显示有两组/4个可执行的任务:

其中第一组 SO-ARM100-Lift-Cube-v0SO-ARM100-Lift-Cube-Play-v0 是本次要演示的 “抓举积木" 任务,前面一个负责模型训练、后面一个则是显示执行的结果。

不过在执行这个任务之前,我们用第4个任务 “SO-ARM100-Reach-Play-v0“ 来感受一下这个项目的内容。请执行下面指令:

代码语言:txt
复制
python scripts/zero_agent.py   --task SO-ARM100-Reach-Play-v0

由于 "zero_agent.py" 并没有给设备任何动作指令,因此会出现下面结果,仔细看一下所有手臂都没有任何动作!

再执行下面的 "random_agent.py"指令,会出现与上面画面相同内容,不过将手臂放大之后,会看到手臂在不断抖动,因为这里是给每个手臂 “随机” 指令。

代码语言:txt
复制
python scripts/random_agent.py --task SO-ARM100-Reach-Play-v0

好了,体验完上面两个简单指令之后,接下去就要正式进入我们 “抓举积木” 的模拟应用了。这里分为两个步骤:

1. 训练模型:

这里我们将任务指定为 SO-ARM100-Lift-Cube-v0,并且设定为不显示(--headless)模式以提高效率,最后一个参数是设定训练的回合数,为确保模型的效果,这里设置 "--max_iterations 12000"。

代码语言:txt
复制
python scripts/rsl_rl/train.py --task SO-ARM100-Lift-Cube-v0 --headless --max_iterations 12000

根据我们在 NVIDIA RTX 4060 Ti / 16GB 显存配置上运行,这个 12000 次的训练耗时不到 4 个小时,因此这个数字请大家自行调整。训练过程所显示的信息如下图:

训练的模型会存放在 isaac_so_arm101/logs/rsl_rl/so_arm100_lift/<根据日前时间创建目录> 下,每 50 回合存一个model_<nnnnn>.pt 模型文件,如下图:

现在就是等待模型训练了!

2. 执行模拟:

最后就是要验收成果了。我们用 "--checkpoint" 指定要使用的模型,通常会选择最后一个完成(数字最大)的模型,完整的指令如下:

代码语言:txt
复制
python scripts/rsl_rl/play.py --task SO-ARM100-Lift-Cube-Play-v0 \
    --checkpoint logs/rsl_rl/so_arm100_lift/<模型存放目录>/model_11999.pt

好了,启动之后将手臂放大,应该就能看到桌上生成一个方形积木,然后机械手臂将其夹住再往上举起的动作。

到了这一步就完成本次实验的内容!【完】

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 安装 IsaacLab
    • A. 与 IsaacSim 的环境进行结合
    • B. 从 Github 下载代码
    • C. 配置 IsaacLab 的执行环境
    • D. 安装 IsaacLab
  • 2. 玩转LeRobot机械手臂
    • 1. 训练模型:
    • 2. 执行模拟:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档