训练环境

训练环境#

要运行训练,我们遵循标准的Isaac Lab工作流程。如果您是Isaac Lab的新手,我们建议您查看 此处的快速入门指南.

目前支持的任务如下:

  • Isaac-Cartpole-Direct-v0

  • Isaac-Ant-Direct-v0

  • Isaac-Humanoid-Direct-v0

  • Isaac-Velocity-Flat-Anymal-D-v0

  • Isaac-Velocity-Flat-G1-v0

  • Isaac-Velocity-Flat-G1-v1 (已测试 Sim-to-Real)

  • Isaac-Velocity-Flat-H1-v0

要启动环境并检查它是否按预期加载,可以尝试将zero actions发送到其执行器。可以按如下方式进行,其中 TASK_NAME 是您想要运行的任务名称, NUM_ENVS 是您想要创建的任务实例数。

./isaaclab.sh -p scripts/environments/zero_agent.py --task TASK_NAME --num_envs NUM_ENVS

对于128个实例的cartpole,看起来是这样的:

./isaaclab.sh -p scripts/environments/zero_agent.py --task Isaac-Cartpole-Direct-v0 --num_envs 128

要使用随机actions运行相同的环境,可以使用不同的脚本:

./isaaclab.sh -p scripts/environments/random_agent.py --task Isaac-Cartpole-Direct-v0 --num_envs 128

要训练环境,我们提供了与不同RL框架的hooks。有关更多信息,请参阅 强化学习脚本文档

以下是如何在几种不同的RL框架上进行训练的一些示例。请注意,我们明确设置了环境的数量为4096,以更多地从GPU并行化中受益。我们还通过使用 --headless 选项来禁用Omniverse UI可视化,以尽快训练环境。

./isaaclab.sh -p scripts/reinforcement_learning/rsl_rl/train.py --task Isaac-Cartpole-Direct-v0 --num_envs 4096 --headless
./isaaclab.sh -p scripts/reinforcement_learning/skrl/train.py --task Isaac-Cartpole-Direct-v0 --num_envs 4096 --headless
./isaaclab.sh -p scripts/reinforcement_learning/rl_games/train.py --task Isaac-Cartpole-Direct-v0 --num_envs 4096 --headless

一旦训练了策略,我们可以通过使用play脚本来可视化它。但首先,我们需要找到经过训练的策略的checkpoint。通常,这些存储在: logs/NAME_OF_RL_FRAMEWORK/TASK_NAME/DATE 下。

例如,对于我们的rsl_rl示例,可能是这样的: logs/rsl_rl/cartpole_direct/2025-08-21_15-45-30/model_299.pt

然后,我们可以使用以下命令运行此策略,请注意,我们减少了环境的数量并删除了 --headless 选项,以便我们可以看到我们的策略在实际操作中的表现!

./isaaclab.sh -p scripts/reinforcement_learning/rsl_rl/play.py --task Isaac-Cartpole-Direct-v0 --num_envs 128 --checkpoint logs/rsl_rl/cartpole_direct/2025-08-21_15-45-30/model_299.pt

相同的方法适用于所有其他框架。

请注意,并非所有环境都受到所有框架的支持。例如,一些运动环境只受到rsl_rl框架的支持。