《Unitree RL Gym 从 0 到 1 全解析》宇树G1机器人rl_gym、legged_game 与 rsl_rl 开源项目 代码详解&&逻辑梳理

前言:此文将对宇树的RL_Gym进行详细介绍。为什么写这篇文章?首先对于这个项目来说,目前网上很难找到能讲明白的,其次,兼顾打工生活&知识分享需要些动力;因此,我决定推出这一篇付费文章,从纯小白视角出发,深入剖析该项目(大佬们请轻喷),这篇文章主要进行难点解析、代码分析与解释、整体的逻辑梳理。这篇付费文章耗费了我7h+的撰写,希望能为读者解开长期困扰的难题,带来启发与收获。

开源项目链接:https://github.com/unitreerobotics/unitree_rl_gym

目录

unitree_rl_gym 开源项目介绍

开源项目的获取 && 配置环境

项目架构(以 G1 为例)

训练流程(以G1为例)

G1 的步态详解

g1_config.py 文件代码详解

g1_env.py 文件代码详解

legged_robot.py 文件代码详解

legged_robot_config.py 文件代码详解

Unitree RL Gym 从 0 到 1 全解析》已上线,纯小白视角带你拆解,该篇文章包括:

训练流程透解 + 训练框架详解

代码逐行剖析 + 保姆级环境配置

宇树机器人的步态设置与奖励函数,附配置调参秘籍

unitree_rl_gym 开源项目介绍

  • Unitree RL GYM 是一个基于 Unitree 机器人的强化学习实现框架,支持 Go2、H1、H1_2 和 G1 四种机器人,实现了从仿真训练到实物部署的完整闭环。它是机器人强化学习控制领域中,新手入门非常火的参考项目。
  • 通过这篇文章你可以:
    • 获得完整的强化学习机器人控制项目经验
    • 搞懂强化学习在机器人控制中的应用原理(仿真 + 环境配置 + 机器人步态控制
    • 快速上手目前所有相关的项目,因为目前所有的训练框架,基本都是这个逻辑,所以这个项目如果吃透了,再去搞其他的项目,上手会很快,

开源项目的获取 && 配置环境

#---要求cuda版本12.1,PyTorch: 2.3.1  TorchVision: 0.18.1  TorchAudio: 2.3.1 ---##主要参考  /doc/setup_zh.md ## 安装miniconda3mkdir -p ~/miniconda3wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.shbash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3rm ~/miniconda3/miniconda.sh#安装完成后,初始化 Conda:~/miniconda3/bin/conda init --allsource ~/.bashrc#根据自己的需求创建新环境 python要求3.8conda create -n unitree-rl python=3.8#激活虚拟环境conda activate unitree-rl#安装依赖  注意cuda是12.1版本conda install pytorch==2.3.1 torchvision==0.18.1 torchaudio==2.3.1 pytorch-cuda=12.1 -c pytorch -c nvidia#安装 Isaac Gym  从官网直接下载即可 https://developer.nvidia.com/isaac-gym#下载好 Isaac Gym 之后 ,解压人后 进入 `isaacgym/python` 文件夹,执行以下命令安装:cd isaacgym/pythonpip install -e .#验证是否安装成功 cd examplespython 1080_balls_of_solitude.py#安装rsl_rlgit clone https://github.com/leggedrobotics/rsl_rl.git#切换到 v1.0.2 分支:cd rsl_rlgit checkout v1.0.2#安装rsl_rlpip install -e .#下载 unitree_rl_gymgit clone https://github.com/unitreerobotics/unitree_rl_gym.git#安装 unitree_rl_gymcd unitree_rl_gympip install -e .

项目架构(以 G1 为例)

《Unitree RL Gym 从 0 到 1 全解析》宇树G1机器人rl_gym、legged_game 与 rsl_rl 开源项目 代码详解&&逻辑梳理_第1张图片


  • URDF模型:URDF可视化工具直接将resources文件夹拖到这个网站即可  http://urdf.robotsfan.com/
  • unitree_rl_gym/legged_gym/scripts 文件夹下 包括 legged_gym 项目的核心执行脚本

play 是仿真脚本 :

python legged_gym/scripts/play.py --task=xxx 

train 是训练脚本 :

python legged_gym/scripts/train.py --task=xxx

  • unitree_rl_gym/legged_gym/utils 文件夹下的文件主要是包含了 项目中使用的各种辅助功能、工具函数和通用组件。提供了模块化、可复用的功能,使主程序代码更加简洁和易于维护。

《Unitree RL Gym 从 0 到 1 全解析》宇树G1机器人rl_gym、legged_game 与 rsl_rl 开源项目 代码详解&&逻辑梳理_第2张图片

训练流程(以G1为例)

  • train.py 是训练的入口;args = get_args() ;get_args()是解析你在 终端输入的命令,根据你输入的命令进行参数配置 ;然后 train(args) ,使用相关的参数开始训练!运行训练的命令参考:

你可能感兴趣的:(《Unitree RL Gym 从 0 到 1 全解析》宇树G1机器人rl_gym、legged_game 与 rsl_rl 开源项目 代码详解&&逻辑梳理)