具身智能-Isaac Lab
工具介绍
Isaac Lab 是由 NVIDIA 推出的基于Isaac Sim的开源机器人研究框架,基于 GPU 加速实现精确仿真,统一和简化强化学习、模仿学习和运动规划等机器人研究工作流程,推动机器人 sim-to-real(仿真到现实)的高效迁移。
Isaac Lab 是由 NVIDIA 推出的基于Isaac Sim的开源机器人研究框架,基于 GPU 加速实现精确仿真,统一和简化强化学习、模仿学习和运动规划等机器人研究工作流程,推动机器人 sim-to-real(仿真到现实)的高效迁移。
其优势主要包括:
- 机器人形态支持全面:兼容 **16+ 主流机器人形态**,涵盖机械臂(如 Franka)、四足(如 ANYmal)、人形机器人(如 Atlas)等;
- 训练环境丰富:提供 30+ 开箱即用环境,这些环境支持主流强化学习框架训练,如RSL RL、SKRL、RL Games或Stable Baselines等;
- 支持复杂对象仿真:支持刚体、铰接系统和柔性物体等复杂仿真对象;
- 多传感器系统支持:支持RGB/深度/分割相机、相机注释、IMU、接触传感器、光线投射器。
部署环境要求&最佳实践建议
部署要求 | 最佳实践 | |
---|---|---|
CPU | 8核 | 建议按表单默认值及以上 |
内存 | 64G | 建议按表单默认值及以上 |
GPU | A800 / H20 *1 | 按需 |
CDS | 按需 | 按需 |
其它 | 无 | 无 |
使用说明
本文以 快速启动预定义训练任务和创建Project并训练推理 两个案例,介绍Isaac Lab的使用过程。
在试用案例之前,请确保已挂载了案例所需的数据集,否则脚本无法正常运行,可在脚本内更改数据集地址配置
创建与登录开发机
根据部署环境要求成功创建开发机后,点击登录开发机,进入开发机webIDE,打开Terminal界面:
主要路径介绍
- isaac lab源码路径:/workspace/isaaclab
快速启动训练任务
执行如下命令,可以看到Isaac Lab预置的环境列表:
1cd /workspace/isaaclab
2python scripts/environments/list_envs.py
以预定义环境Isaac-Ant-v0为例,执行如下命令启动训练。这里设置的num_envs和max_iterations仅为了快速验证,--headless确保代码在无GUI的环境下正常运行:
1python scripts/reinforcement_learning/skrl/train.py --task=Isaac-Ant-v0 --headless --num_envs=1 --max_iterations=1
训练输出包含运行环境、仿真场景配置、观测空间、终止条件、奖励函数、强化学习模型定义,以及日志保存路径等信息,如下所示:
创建新的Project
提示:新建Project的train.py和play.py都提供了丰富的参数设置,可以通过--help查看,其中,--info可以看到更详细的输出信息,可用于运行环境错误分析。
3.1 环境创建&注册
执行如下命令,选择任务类型、Project属性和工作流等即可完成一个Project的创建。
1./isaaclab.sh --new
以当前创建的project为例,task type选择external,workslow选择轻量的Direct | single-agent,然后确定RL库和算法等。这里我们将Project name设置为test,下文如无特殊说明,test一般指代Project name。
按照如上方式,会创建一个cartpole(倒立摆)基准测试,可用于快速确认环境配置的正确性。在路径test/source/test/test/tasks/direct/test下可以看到init.py,该初始化函数用于自定义环境的注册:
1import gymnasium as gym
2
3from . import agents
4
5gym.register(
6 id="Template-Test-Direct-v0",
7 entry_point=f"{__name__}.test_env:TestEnv",
8 disable_env_checker=True,
9 kwargs={
10 "env_cfg_entry_point": f"{__name__}.test_env_cfg:TestEnvCfg",
11 "skrl_amp_cfg_entry_point": f"{agents.__name__}:skrl_amp_cfg.yaml",
12 "skrl_cfg_entry_point": f"{agents.__name__}:skrl_ppo_cfg.yaml",
13 },
14)
然后,执行如下命令将其安装为python模块,便于后续启动训练和推理:
1cd /workspace/test
2python -m pip install -e source/test
成功安装后,使用如下命令可以看到该环境已经注册到环境列表中,后面会使用Task Name作为task参数启动训练和推理:
1cd /workspace/test
2python scripts/list_envs.py
3.2 启动训练
执行如下命令启动训练,类似地,这里设置的num_envs和max_iterations仅为了快速验证。训练结束后,checkpoints会保存在logs目录下。
1cd /workspace/test
2python scripts/skrl/train.py --task=Template-Test-Direct-v0 --headless --num_envs=1 --max_iterations=1
3.3 启动推理
执行如下命令启动训练后模型的推理。参数 --video 可以确保在推理任务结束后,在logs/videos目录下保存一个仿真视频:
1cd /workspace/test
2python scripts/skrl/play.py --task=Template-Test-Direct-v0 --headless --num_envs=1 --video