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

第十三讲、isaaclab中修改工作流的RL环境

0 前言

官方教程:https://isaac-sim.github.io/IsaacLab/main/source/tutorials/03_envs/modify_direct_rl_env.html
Isaacsim+Isaaclab安装:https://blog.csdn.net/m0_47719040/article/details/146389391?spm=1001.2014.3001.5502

在前面的教程中我们已经学习了如何在工作流中创建RL环境并创建任务,在gym中注册环境并基于RL进行训练,现在我们将研究如何对先有任务进行小修改。

在本教程中,我们将对直接工作流 Humanoid 任务进行修改,在不影响原有代码的情况下,将简单的人形模型更改为 Unitree H1 人形机器人。

教程对应的脚本为train.pyscripts/reinforcement_learning/rl_games目录下。

运行该程序:

  • 进入安装 isaac lab 时创建的conda虚拟环境
  • 在该环境下进入 isaac sim文件夹中运行source setup_conda_env.sh
  • 终端中输入./isaaclab.sh -p scripts/reinforcement_learning/rl_games/train.py --task Isaac-Humanoid-Direct-v0运行你的代码,可以看到为经过修改的人形机器人的训练情况,后面我们将会将里面的简单人形机器人修改为Unitree H1 人形机器人。
    在这里插入图片描述对应的环境文件在/IsaacLab/source/isaaclab_tasks/isaaclab_tasks/direct/humanoid中。

1 复制文件并注册新任务

为了避免修改现有任务的代码,我们将复制包含python代码的文件,并在该副本上修改。

STEP1:
复制/IsaacLab/source/isaaclab_tasks/isaaclab_tasks/direct/humanoid/humanoid_env.py并重命名为h1_env
在这里插入图片描述
STEP2:
HumanoidEnvHumanoidEnvCfg修改为H1EnvH1EnvCfg,为了避免在注册环境时导入时出现名称冲突。

STEP3:
修改__init__.py用来注册Isaac-H1-Direct-v0。在__init__.py中添加:

from .h1_env import H1Env, H1EnvCfg
gym.register(id="Isaac-H1-Direct-v0",entry_point="isaaclab_tasks.direct.humanoid:H1Env",disable_env_checker=True,kwargs={"env_cfg_entry_point": H1EnvCfg,"rl_games_cfg_entry_point": f"{agents.__name__}:rl_games_ppo_cfg.yaml","rsl_rl_cfg_entry_point": f"{agents.__name__}.rsl_rl_ppo_cfg:HumanoidPPORunnerCfg","skrl_cfg_entry_point": f"{agents.__name__}:skrl_ppo_cfg.yaml",},
)

2 更换机器人

修改副本/IsaacLab/source/isaaclab_tasks/isaaclab_tasks/direct/humanoid/h1_env.py

STEP1:修改资产

from isaaclab_assets import H1_CFG # 原来的是:from isaaclab_assets import HUMANOID_CFG
robot: ArticulationCfg = H1_CFG.replace(prim_path="/World/envs/env_.*/Robot")

STEP2:修改动作空间和观测维度

action_space = 19
observation_space = 69

STEP3:修改机器人控制参数

joint_gears: list = [50.0,  # left_hip_yaw50.0,  # right_hip_yaw50.0,  # torso50.0,  # left_hip_roll50.0,  # right_hip_roll50.0,  # left_shoulder_pitch50.0,  # right_shoulder_pitch50.0,  # left_hip_pitch50.0,  # right_hip_pitch50.0,  # left_shoulder_roll50.0,  # right_shoulder_roll50.0,  # left_knee50.0,  # right_knee50.0,  # left_shoulder_yaw50.0,  # right_shoulder_yaw50.0,  # left_ankle50.0,  # right_ankle50.0,  # left_elbow50.0,  # right_elbow
]

运行该程序:

  • 进入安装 isaac lab 时创建的conda虚拟环境
  • 在该环境下进入 isaac sim文件夹中运行source setup_conda_env.sh
  • 终端中输入./isaaclab.sh -p scripts/reinforcement_learning/rl_games/train.py --task Isaac-H1-Direct-v0 --headless运行你的代码,修改为Unitree H1 人形机器人后的训练。并通过./isaaclab.sh -p scripts/reinforcement_learning/rl_games/play.py --task Isaac-H1-Direct-v0直接查看结果。

在这里插入图片描述

相关文章:

  • CCF CSP 第37次(2025.03)(1_数值积分_C++)
  • Java 程序员的 Python 之旅
  • 【线段树】P1253 扶苏的问题|普及+
  • 操作系统期中复习
  • 初识Redis · C++客户端list和hash
  • 第七届传智杯全国IT技能大赛程序设计赛道 国赛(总决赛)—— (B组)题解
  • 【PyQt5】@QtCore.pyqtSlot()的作用
  • oracle不同数据库版本的自增序列
  • element-ui中的上传组件el-upload非自动上传监听不到success
  • go for 闭环问题【踩坑记录】
  • DeepseekV3MLP 模块
  • 快充协议芯片XSP04D支持使用一个Type-C与电脑传输数据和快充取电功能
  • 腾讯一面-软件开发实习-PC客户端开发方向
  • LX4-数据手册相关
  • CentOS 7进入救援模式——VirtualBox虚拟机
  • 23. git reset
  • unity TEngine学习4
  • 【Andorid备案获取keystore里面的公钥和SHA-1码等等】
  • 怎么发布、更新Python第三方库?以potx-cloud为例
  • PHP日志会对服务器产生哪些影响?
  • 宇树的任务已经完成?王兴兴也在等待行业拐点
  • 广发基金刘格崧一季报:首次买入广东宏大、分众传媒,减仓亿纬锂能
  • 多元布局、抱团取暖……上海虹口区召开外向型企业圆桌会议
  • “云南舞蹈大家跳”暨牟定“三月会”下周举行,城际公交免票
  • 财政部:一季度证券交易印花税411亿元,同比增长60.6%
  • 直播电商监管新规将公开征求意见,出重拳净化行业生态