【legged_gym】legged_gym, isaacgym代碼邏輯梳理
- 總體關系
- IsaacGym
- legged_gym
- rsl_rl
- 三者的關系
- legged_gym代碼庫介紹
- 環境模塊env
總體關系
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的類