【legged_gym】legged_gym, isaacgym代码逻辑梳理
总体关系
IsaacGym
- Isaac Gym 是 NVIDIA 开发的一个高性能物理仿真平台,专门用于强化学习和机器人控制任务。它基于 NVIDIA 的 PhysX 物理引擎,并利用 GPU 加速仿真,能够同时运行数千个仿真环境。
- 主要特点:
GPU 加速:利用 GPU 并行计算能力,支持大规模并行仿真。
高性能:能够同时运行数千个仿真环境,适合强化学习训练。
灵活的 API:提供 Python API,方便与深度学习框架(如 PyTorch)集成。
支持多种机器人:包括四足机器人、机械臂、无人机等。
视觉和物理仿真:支持视觉传感器(如 RGB 相机、深度相机)和物理传感器(如 IMU、力传感器)。
legged_gym
- Legged Gym 是一个基于 Isaac Gym 的四足机器人强化学习框架,由 ETH Zurich 的 Robotic Systems Lab 开发。它专注于训练四足机器人(如 ANYmal、Spot)的运动控制策略。
- 主要特点:
基于 Isaac Gym:利用 Isaac Gym 的高性能仿真能力。
模块化设计:环境、策略、奖励函数等模块高度可配置。
支持多种机器人:包括 ANYmal、Spot 等四足机器人。
强化学习集成:与 rsl_rl 强化学习库无缝集成。
rsl_rl
- rsl_rl 是 ETH Zurich 的 Robotic Systems Lab 开发的一个轻量级强化学习库,专门用于机器人控制任务。它基于 PyTorch 实现,支持多种强化学习算法(如 PPO、SAC)。
- 主要特点:
轻量级:代码简洁,易于扩展和修改。
基于 PyTorch:与 PyTorch 生态系统无缝集成。
支持多种算法:包括 PPO、SAC 等常用强化学习算法。
高效训练:针对机器人控制任务进行了优化。
三者的关系
- Isaac Gym 提供高性能的物理仿真环境。
- Legged Gym 基于 Isaac Gym,专注于四足机器人的强化学习任务。
- rsl_rl 提供强化学习算法的实现,用于训练 Legged Gym 中的机器人控制策略。
工作流程:
- 使用 Isaac Gym 创建仿真环境。
- 使用 Legged Gym 配置四足机器人的任务和环境。
- 使用 rsl_rl训练强化学习策略。
- 将训练好的策略部署到实际机器人上。
legged_gym代码库介绍
- 项目地址:legged_gym代码库
环境模块env
- 环境模块定义了四足机器人的仿真环境和任务,它是 legged_gym 的核心部分,负责与 Isaac Gym 的交互
- 这里将机器人看做是环境,env下每一个文件夹对应一种机器人
- base/:包含基础环境类和机器人类的实现。
- legged_robot.py:定义了四足机器人的基类,包括机器人初始化、状态更新、奖励计算等功能。
- legged_robot_config.py:机器人配置类,用于定义机器人的物理参数、控制参数等
- 每个环境由一个环境文件
xx.py
和一个配置文件xx_config.py
定义 - PPO的相关设置也在xx_config中定义
- 定义新环境时,需要在__init__函数中注册,传入类、配置、PPO的类