unitree_rl_gym 强化学习实战:从第一次训练到真机部署
unitree_rl_gym 强化学习实战从第一次训练到真机部署【免费下载链接】unitree_rl_gym项目地址: https://gitcode.com/GitHub_Trending/un/unitree_rl_gymUnitree RL GYM 是面向宇树机器人的强化学习训练与部署框架覆盖 Go2 四足、H1 / H1_2 与 G1 人形机器人四种机型在 Isaac Gym 里并行采样训练运动策略导出后用 Mujoco 交叉验证最后通过有线网络把策略跑到真机上。如果你的目标是让机器人自己学会走路而不是手调步态参数这个仓库把整条链路都做成了开箱即用的脚本。先看懂流水线四个阶段各管什么上手前不用急着读代码这个仓库的工作流是一条很直的线Train→Play→Sim2Sim→Sim2Real。Train机器人在 Isaac Gym 中并行采样PPO 寻找最大化奖励的策略。官方建议训练时关掉渲染界面headless否则效率掉得很厉害。Play加载训练好的 checkpoint 观察效果同时会导出 Actor 网络的 TorchScript 版本这是后两个阶段的输入。Sim2Sim把同一份策略拿到 Mujoco 里再跑一遍确认它没有过拟合到某一个仿真器的物理细节上。Sim2Real通过unitree_sdk2py或仓库自带的 C 示例把策略部署到实体机器人。四种机型在仓库里的支持情况如下注意验证和部署配置只覆盖人形机型机型--task取值Mujoco 验证配置真机部署配置Go2go2未提供未提供G1g1g1.yamlg1.yamlH1h1h1.yamlh1.yamlH1_2h1_2h1_2.yamlh1_2.yaml环境搭建三个外部依赖加一条安装命令训练强依赖 Nvidia 显卡文档建议 Ubuntu 18.04、驱动 525 以上并用 Conda 建一个 Python 3.8 的独立环境PyTorch 推荐 2.3.1、cuda 12.1 版本。仓库本身之前要先装三个外部组件Isaac GymNvidia 官网下载后在isaacgym/python下安装、rsl_rl需切到 v1.0.2 分支、unitree_sdk2py只有要部署真机才需要。装 Isaac Gym 时可以跑自带的1080_balls_of_solitude.py验证——弹出 1080 个球下落的窗口就说明没问题。最后装本仓库git clone https://gitcode.com/GitHub_Trending/un/unitree_rl_gym cd unitree_rl_gym pip install -e .跑第一次训练一条命令加几个关键参数所有训练的入口都是同一个脚本唯一必填的参数是--taskpython legged_gym/scripts/train.py --taskg1调参时值得先认识这几个--num_envs控制并行环境数量越大采样越快、显存占用越高--headlesstrue关掉渲染正式训练建议始终带上--sim_device和--rl_device可分别把仿真计算或强化学习计算挪到 CPU--max_iterations限定训练轮数。checkpoint 落在logs/experiment_name/时间_run_name/下。如果嫌从零训太久仓库在deploy/pre_train/下为 G1 / H1 / H1_2 各备了一份预训练权重motion.pt可以直接跳到部署环节先把链路走通。奖励权重、动作缩放、观测配置这类决定策略行为的超参数按机型分放在legged_gym/envs/下比如g1/g1_config.py、h1/h1_config.py。想改策略的行为从这里入手。Play 验证看效果顺便拿到导出文件训练结束后用python legged_gym/scripts/play.py --taskg1加载默认的最新模型直接看机器人走不走得稳。这一步还有一个容易被忽略的副产品Actor 网络会被导出到logs/experiment_name/exported/policies/普通 MLP 网络存成policy_1.pt带 RNN 的存成policy_lstm_1.pt。后续 Mujoco 和真机部署加载的就是这两个文件之一所以 Play 不只是看戏。Sim2Sim 验证Isaac Gym 的策略进 Mujoco 跑这一步是判断策略鲁棒性的关键——只在 Isaac Gym 里表现好的策略换一台物理引擎可能就散架了。入口脚本是deploy/deploy_mujoco/deploy_mujoco.py它从deploy/deploy_mujoco/configs/读取一份 YAMLpython deploy/deploy_mujoco/deploy_mujoco.py g1.yaml这份 YAML 里写明了 PD 参数kps/kds、观测与动作的缩放系数dof_pos_scale、action_scale等以及policy_path。想换成自己训练的模型把policy_path指向刚才导出的policy_lstm_1.pt即可不需要改代码。Sim2Real从命令行到实体机器人真机部署有两个前置动作先把机器人吊起、进入零力矩模式然后在遥控器上按 L2R2 进入调试模式再用网线直连机器人的网口用ifconfig记下网卡名例如enp3s0它就是下面命令的第一个参数python deploy/deploy_real/deploy_real.py enp3s0 g1.yaml配置文件与 Mujoco 版同名位于deploy/deploy_real/configs/。上电后的操作顺序——手摇确认零力矩、按 start 回默认姿态、落脚踏实地后按 A 开始运动——deploy/deploy_real/README.md里一步步写了建议照着做。对延迟要求更苛刻的场景deploy/deploy_real/cpp_g1/下还有一套 C 实现依赖 LibTorch用 cmake 编译后运行./g1_deploy_run enp3s0即可。跑通这四步你就有了一条完整的训练—验证—部署流水线。下一步建议只挑一个点往下钻比如打开g1_config.py改一项奖励权重重新训练或者把 Play 和 Mujoco 下的表现逐帧对比用最小的改动验证你对这套框架的理解。【免费下载链接】unitree_rl_gym项目地址: https://gitcode.com/GitHub_Trending/un/unitree_rl_gym创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考